• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H27-Dec-2021-2922

authprogs/H03-May-2022-1,8381,353

backends/H03-May-2022-11,5687,983

ci/H27-Dec-2021-7944

contrib/H03-May-2022-4,7732,928

control/H27-Dec-2021-3,3231,952

doc/H27-Dec-2021-67,05855,094

expire/H03-May-2022-3,7312,825

frontends/H03-May-2022-10,1117,712

history/H03-May-2022-2,4721,754

include/H27-Dec-2021-5,4202,640

innd/H03-May-2022-18,91714,319

innfeed/H03-May-2022-27,64218,873

lib/H03-May-2022-20,26713,159

m4/H27-Dec-2021-12,20911,115

nnrpd/H03-May-2022-13,97010,588

perl/H27-Dec-2021-523297

samples/H27-Dec-2021-8,5316,403

scripts/H27-Dec-2021-9,5337,459

site/H03-May-2022-331268

storage/H03-May-2022-27,32321,115

support/H27-Dec-2021-16,74112,612

tests/H03-May-2022-18,08712,686

.clang-formatH A D27-Dec-2021575 2119

CONTRIBUTORSH A D27-Dec-202111.2 KiB282226

HACKINGH A D27-Dec-202140.8 KiB842661

INSTALLH A D27-Dec-202188.5 KiB1,7431,408

LICENSEH A D27-Dec-20214.2 KiB8768

MANIFESTH A D27-Dec-202166 KiB991990

MakefileH A D27-Dec-202110.8 KiB278184

Makefile.global.inH A D27-Dec-202111 KiB324255

NEWSH A D27-Dec-2021125.9 KiB2,5541,984

READMEH A D27-Dec-202118.2 KiB401307

README.snapshotH A D27-Dec-2021562 139

TODOH A D27-Dec-202137.3 KiB749591

autogenH A D27-Dec-2021131 84

configureH A D03-May-2022987.5 KiB36,31931,127

configure.acH A D27-Dec-202132.1 KiB820739

readme.podH A D27-Dec-202117.2 KiB429315

README

1Welcome to the InterNetNews project!
2
3  INN 2.7
4
5    Our "main" branch is for the current development of the next INN 2.7
6    major release.  Head to the 2.6 branch for the maintenance of the most
7    recently released stable version.
8
9    This code is under active development and may or may not be stable at
10    any given time.  Contributions and bug reports are welcome and
11    encouraged.
12
13    This work is sponsored by Internet Systems Consortium.
14
15    The official homepage of the project is
16    <https://www.isc.org/othersoftware/>.
17
18    You'll also find very useful information about INN on Russ Allbery's web
19    site <https://www.eyrie.org/~eagle/software/inn/>.
20
21    Please see:
22
23    *   INSTALL
24        <https://www.eyrie.org/~eagle/software/inn/docs/install.html> for
25        installation instructions,
26
27    *   NEWS <https://www.eyrie.org/~eagle/software/inn/docs/news.html> for
28        what's changed from the previous release,
29
30    *   and LICENSE
31        <https://www.eyrie.org/~eagle/software/inn/docs/license.html> for
32        the copyright, license, and distribution terms.
33
34    These files can also be found in the doc/pod directory if not present at
35    top-level.
36
37What is INN?
38
39    INN (InterNetNews), originally written by Rich Salz, is a very
40    full-featured and extremely flexible and configurable Usenet / Netnews
41    news server.  For a complete description of the protocols behind Usenet
42    and Netnews, see RFC 3977 (NNTP), RFC 4642 updated by RFC 8143
43    (TLS/NNTP), RFC 4643 (NNTP authentication), RFC 4644 (streaming NNTP
44    feeds), RFC 5536 (USEFOR), RFC 5537 (USEPRO), RFC 6048 (NNTP LIST
45    additions) and RFC 8054 (NNTP compression) or their replacements.
46
47    In brief, Netnews is a set of protocols for exchanging messages between
48    a decentralized network of news servers.  News articles are organized
49    into newsgroups, which are themselves organized into hierarchies.  Each
50    individual news server stores locally all articles it has received for a
51    given newsgroup, making access to stored articles extremely fast.
52    Netnews does not require any central server; instead, each news server
53    passes along articles it receives to all of the news servers it peers
54    with, those servers pass the articles along to their peers, and so on,
55    resulting in "flood fill" propagation of news articles.
56
57    A news server performs three basic functions: it accepts articles from
58    other servers and stores them on disk, sends articles it has received
59    out to other servers, and offers stored news articles to readers on
60    demand.  It additionally has to perform some periodic maintenance tasks,
61    such as deleting older articles to make room for new ones.
62
63    Originally, a news server would just store all of the news articles it
64    had received in a file system.  Users could then read news by reading
65    the article files on disk (or more commonly using news reading software
66    that did this efficiently).  These days, news servers are almost always
67    stand-alone systems and news reading is supported via network
68    connections.  A user who wants to read a newsgroup opens that newsgroup
69    in their newsreader software, which opens a network connection to the
70    news server and sends requests for articles and related information.
71    The protocol that a newsreader uses to talk to a news server and that a
72    news server uses to talk to another news server over TCP/IP is called
73    NNTP (Network News Transport Protocol).
74
75    INN supports accepting articles via either NNTP connections or via UUCP.
76    innd, the heart of INN, handles NNTP feeding connections directly; UUCP
77    newsfeeds use rnews (included in INN) to hand articles off to innd.
78    Other parts of INN handle feeding articles out to other news servers,
79    most commonly innfeed (for real-time outgoing feeds) or nntpsend and
80    innxmit (used to send batches of news created by innd to a remote site
81    via TCP/IP).  INN can also handle outgoing UUCP feeds.
82
83    The part of INN that handles connections from newsreaders is nnrpd.
84
85    Also included in INN are a wide variety of supporting programs to handle
86    periodic maintenance and recovery from crashes, process special control
87    messages, maintain the list of active newsgroups, and generate and
88    record a staggering variety of statistics and summary information on the
89    usage and performance of the server.
90
91    INN also supports an extremely powerful filtering system that allows the
92    server administrator to reject unwanted articles (such as spam and other
93    abuses of Usenet).
94
95    INN is free software, supported by Internet Systems Consortium and
96    volunteers around the world.  See "Supporting the INN Effort" below.
97
98Prerequisites
99
100    Compiling INN requires an ANSI C compiler (gcc is recommended).  INN was
101    originally written in K&R C, but supporting pre-ANSI compilers has
102    become enough of a headache that a lot of the newer parts of INN will no
103    longer compile with a non-ANSI compiler.  gcc itself will compile with
104    most vendor non-ANSI compilers, however, so if you're stuck with one,
105    installing gcc is highly recommended.  Not only will it let you build
106    INN, it will make installing lots of other software much easier.  You
107    may also need GNU make (particularly if your system make is
108    BSD-derived), although most SysV make programs should work fine.
109    Compiling INN also currently requires a yacc implementation (bison will
110    do fine).
111
112    INN uses GNU autoconf to probe the capabilities of your system, and
113    therefore should compile on nearly any Unix system.  It does, however,
114    make extensive use of mmap(), which can cause problems on some older
115    operating systems.  See INSTALL
116    <https://www.eyrie.org/~eagle/software/inn/docs/install.html> for a list
117    of systems it is known to work on.  If you encounter problems compiling
118    or running INN, or if you successfully run INN on a platform that isn't
119    listed in INSTALL, please let us know (see "Reporting Bugs" below).
120
121    Perl 5.004_03 or later is required to build INN and use the embedded
122    Perl filtering and authentication hook support (which is highly
123    recommended; some excellent spam filters have been written for INN).
124    Since all versions of Perl previous to 5.004 are buggy (including
125    security problems) and have fewer features, installing Perl 5.004_03 or
126    later (like at least Perl 5.8.0) is recommended.  Depending on what
127    language you want to write your filters and authentication hooks in, you
128    may also want to install Python 2.3.0 or later, or Python 3.3.0 or
129    later.
130
131    For support for authenticated control messages, you will need either PGP
132    or GnuPG, the latter being recommended.  See INSTALL for more details.
133
134    For the "ovdb" overview storage method, you'll need Berkeley DB 4.4 or
135    later (4.7 or later recommended).  For the "ovsqlite" overview storage
136    method, you'll need SQLite 3.8.2 or later (3.20.0 or later recommended).
137    If you have zlib available, you can also compress overview before it's
138    stored into "ovdb" or "ovsqlite", and enable the COMPRESS capability, an
139    NNTP extension.  For support for news reading over TLS, you'll need
140    OpenSSL or LibreSSL.  To support SASL authentication to nnrpd or to feed
141    newsgroups to an IMAP server with SASL authentication, you'll need the
142    Cyrus SASL libraries.  INN can also check passwords against a Kerberos
143    KDC; for this, you will need Kerberos libraries.
144
145Getting Started
146
147    A news server can be a fairly complicated piece of software to set up
148    just because of the wide variety of pieces that have to be configured
149    (who is authorized to read from the server, what newsgroups it carries,
150    and how the articles are stored on disk at a bare minimum, and if the
151    server isn't completely stand-alone -- and very few servers are -- both
152    incoming and outgoing feeds have to be set up and tested).  Be prepared
153    to take some time to understand what's going on and how all the pieces
154    fit together.  If you have any specific suggestions for documentation,
155    or comments about things that are unclear, please send them to the INN
156    maintainers (see "Reporting Bugs" below).
157
158  Download
159
160    Source code tarballs of the official releases can be downloaded from
161    <https://downloads.isc.org/isc/inn/>.  The InterNetNews project does not
162    distribute releases in binary form.  Yet, precompiled versions may exist
163    on your operating system.
164
165    When installing a new INN server, you may wish to download the latest
166    snapshot of the stable branch rather than the last official release, so
167    that to pick up possible bug fixes.
168
169  Build and Install
170
171    See INSTALL
172    <https://www.eyrie.org/~eagle/software/inn/docs/install.html> for
173    step-by-step instructions for setting up and configuring a news server.
174
175  Documentation
176
177    INN also comes with a very complete set of man pages; there is a man
178    page for every configuration file and program that comes with INN.  (If
179    you find one that doesn't have a man page, that's a bug.  Please do
180    report it.)  When trying to figure out some specific problem, reading
181    the man pages for all of the configuration files involved is a very good
182    start.
183
184    URL: <https://www.eyrie.org/~eagle/software/inn/docs/> (online
185    documentation)
186
187Reporting Bugs
188
189    We're interested in all bug reports.  Not just on the programs, but on
190    the documentation too.  Please use the GitHub issue tracker to send such
191    bug reports, or alternatively send them to
192
193        inn-workers@lists.isc.org
194
195    (patches are certainly welcome, see below).  Even if you post to Usenet,
196    please CC the above address.
197
198    If you have general "how do I do this" questions or problems configuring
199    your server that you don't believe are due to a bug in INN, you should
200    post them to news.software.nntp.  A lot of experienced INN users,
201    including several of the INN maintainers, read that newsgroup regularly.
202    Please don't send general questions to the above addresses; those
203    addresses are specifically for INN, and the INN maintainers usually
204    won't have time to answer general questions.
205
206Testing and Development
207
208  Source Code
209
210    INN is maintained using the Git version control system.  The official
211    InterNetNews Git repository is located at
212    <https://github.com/InterNetNews/inn>.  A local copy of the current
213    development source can be obtained by cloning it using a Git client:
214
215        git clone https://github.com/InterNetNews/inn.git
216
217    You can also download daily snapshots
218    <https://archives.eyrie.org/software/inn/snapshots/> produced only if
219    the current code compiles and passes the test suite, so they have
220    undergone at least some basic validation, although they've not been
221    tested by a human.
222
223  Contributing Code
224
225    If you have a patch or a utility that you'd like to be considered for
226    inclusion into INN, please make a GitHub pull request, or alternatively
227    mail it to
228
229        inn-workers@lists.isc.org
230
231    in the body of the message (not as an attachment because the
232    mailing-list might strip it), or put it on a webpage and send a link.
233    Patches included with a bug report as described above should follow the
234    same procedure.
235
236    Please submit all patches against the current main branch, not against a
237    stable release.  The development version of INN is often much different
238    than the last stable release.
239
240    Also please take a look at HACKING
241    <https://www.eyrie.org/~eagle/software/inn/docs/hacking.html> for
242    information about development and coding style.
243
244    Have fun!
245
246Mailing Lists
247
248    There are various INN-related mailing lists you can join or send
249    messages to if you like.  Some of them you must be a member of before
250    you can send mail to them (thank the spammers for that policy), and one
251    of them is read-only (no postings allowed).
252
253    inn-announce@lists.isc.org
254            Where announcements about INN are set (only maintainers may
255            post).
256
257            URL: <https://lists.isc.org/mailman/listinfo/inn-announce>
258
259    inn-workers@lists.isc.org
260            Discussion of INN development.  If you prefer not to use GitHub
261            to create an issue or a pull request, it is also where to send
262            bug reports and patches for consideration for inclusion into INN
263            (postings by members only).  If you're an INN expert and have
264            the time to help out other users, we encourage you to join this
265            mailing list to answer questions.  (You may also want to read
266            the newsgroup news.software.nntp, which gets a lot of
267            INN-related questions.)
268
269            URL: <https://lists.isc.org/mailman/listinfo/inn-workers>
270
271    inn-committers@lists.isc.org
272            Git commit messages for INN are sent to this list (only the
273            automated messages are sent here, no regular posting).
274
275            URL: <https://lists.isc.org/mailman/listinfo/inn-committers>
276
277    inn-bugs@lists.isc.org
278            GitHub issues for INN are sent to this list (only the automated
279            messages are sent here, no regular posting).  Bug reports should
280            be sent to the inn-workers mailing list, or a GitHub issue
281            created.
282
283            URL: <https://lists.isc.org/mailman/listinfo/inn-bugs>
284
285    To join these lists, send a subscription request to the "-request"
286    address.  The addresses for the above lists are:
287
288       inn-announce-request@lists.isc.org
289       inn-workers-request@lists.isc.org
290       inn-committers-request@lists.isc.org
291       inn-bugs-request@lists.isc.org
292
293    You can alternatively join them from the subscription form in their
294    public web pages.
295
296Who's Responsible / Who to Thank
297
298    See CONTRIBUTORS
299    <https://www.eyrie.org/~eagle/software/inn/docs/contributors.html> for a
300    long list of past contributors as well as people from the inn-workers
301    mailing list who have dedicated a lot of time and effort to getting this
302    new version together.  They deserve a big round of applause.  They've
303    certainly got our thanks.
304
305    This product includes software developed by UUNET Technologies, Inc. and
306    by the University of California, Berkeley and its contributors.
307
308    Last, but certainly not least, Rich Salz, the original author of INN
309    deserves a lion's share of the credit for writing INN in the first place
310    and making it the most popular news server software on the planet (no
311    NNTP yet to the moon, but we plan to be there first).
312
313Related Packages
314
315    INN users may also be interested in the following software packages that
316    work with INN or are based on it.  Please note that none of this
317    software is developed or maintained by ISC; we don't support it and
318    generally can't answer questions about it.
319
320    Cleanfeed
321        URL: <https://www.mixmin.net/cleanfeed/> (maintained by Steve Crook)
322
323        Cleanfeed is an extremely powerful spam filter, probably the most
324        widely used spam filter on Usenet currently.  It catches excessive
325        multiposting and a host of other things, and is highly configurable.
326        Note that it requires that INN be built with Perl support (the
327        --with-perl option to configure).
328
329        Cleanfeed was originally developed by Jeremy Nixon who maintained it
330        until 1998.  Then Marco d'Itri until 2002.  Steve Crook has been
331        maintaining it since 2007.
332
333        A Python-based variant of Cleanfeed, named PyClean, also exists and
334        can be found at <https://github.com/crooks/PyClean>.
335
336    GUP (Group Update Program)
337        URL: <https://tracker.debian.org/pkg/gup>
338
339        GUP provides a way for your peers to update their newsfeeds entries
340        as they want without having to ask you to edit the configuration
341        file all the time.  It's useful when feeding peers take limited and
342        very specific feeds that change periodically.
343
344    innduct
345        URL:
346        <https://www.chiark.greenend.org.uk/ucgi/~ian/git-manpage/innduct.gi
347        t/innduct.8> (maintained by Ian Jackson)
348
349        A possible replacement for innfeed, innxmit and nntpsend that
350        quickly and reliably streams Usenet article to a remote site.
351        innduct is designed to be robust and not to lose any articles (when
352        offered to peers) in case it unexpectedly dies, contrary to innfeed.
353        It also permits a realtime feed, contrary to innxmit or nntpsend.
354
355    NewsPortal
356        URL: <https://gitlab.com/yamo-nntp/newsportal>
357
358        A PHP-based web news reader that works as a front-end to a regular
359        news server such as INN and lets people read and post without
360        learning a news reader.
361
362        NewsPortal was originally written by Florian Amrhein
363        <https://amrhein.eu/newsportal/doc/> and is now maintained by
364        Stéphane Grégoire who notably did a great job fixing a few bugs and
365        adapting it for use on smartphones.
366
367    PersonalINN
368        URL: <http://www.ritual.org/summer/pinn/>
369
370        PersonalINN is a version of INN modified for personal use and with a
371        friendly GUI built on top of it.  It is available for NEXTSTEP or
372        OPENSTEP only, unfortunately.
373
374    suck
375        URL: <https://github.com/lazarus-pkgs/suck>
376
377        suck is a separate package for downloading a news feed via a reading
378        connection (rather than via a direct NNTP or UUCP feed) and sending
379        outgoing local posts via POST.  It's intended primarily for personal
380        or small-organization news servers who get their news via an ISP and
381        are too small to warrant setting up a regular news feed.
382
383Supporting the INN Effort
384
385    Note that INN is supported by Internet Systems Consortium, and although
386    it is free for use and redistribution and incorporation into vendor
387    products and export and anything else you can think of, it costs money
388    to produce.  That money comes from ISPs, hardware and software vendors,
389    companies who make extensive use of the software, and generally
390    kind-hearted folk such as yourself.
391
392    Internet Systems Consortium has also commissioned a DHCP server
393    implementation and handles the official support/release of BIND.  You
394    can learn more about the ISC's goals and accomplishments from the web
395    page at <https://www.isc.org/>.
396
397                                            Russ Allbery
398                                            Katsuhiro Kondou
399                                            <inn@isc.org>
400
401

README.snapshot

1This is a snapshot of the current development version of INN, pulled
2automatically from the Git repository.  It was made on:
3
4    December 27, 2021 @ 10:24 AM UTC
5
6This code should be considered experimental.  Only a default compile and
7automated testing is done before it is made available.  If it breaks, we'd
8like to know at <inn-workers@lists.isc.org>, but if it causes your system to
9explode, don't blame us.
10
11If you are using this code, it's highly recommended that you be on the
12<inn-workers@lists.isc.org> mailing list.  See README for more information.
13

readme.pod

1=encoding utf8
2
3=head1 Welcome to the InterNetNews project!
4
5=head2 INN 2.7
6
7Our C<main> branch is for the current development of the next S<INN 2.7>
8major release.  Head to the C<2.6> branch for the maintenance of the
9most recently released stable version.
10
11This code is under active development and may or may not be
12stable at any given time.  Contributions and bug reports are welcome
13and encouraged.
14
15This work is sponsored by Internet Systems Consortium.
16
17The official homepage of the project is
18L<https://www.isc.org/othersoftware/>.
19
20You'll also find very useful information about INN on L<Russ Allbery's
21web site|https://www.eyrie.org/~eagle/software/inn/>.
22
23Please see:
24
25=over 4
26
27=item *
28
29L<INSTALL|https://www.eyrie.org/~eagle/software/inn/docs/install.html>
30for installation instructions,
31
32=item *
33
34L<NEWS|https://www.eyrie.org/~eagle/software/inn/docs/news.html> for
35what's changed from the previous release,
36
37=item *
38
39and
40L<LICENSE|https://www.eyrie.org/~eagle/software/inn/docs/license.html>
41for the copyright, license, and distribution terms.
42
43=back
44
45These files can also be found in the F<doc/pod> directory if not present
46at top-level.
47
48=head1 What is INN?
49
50INN (InterNetNews), originally written by Rich Salz, is a very
51full-featured and extremely flexible and configurable Usenet / Netnews
52news server.  For a complete description of the protocols behind Usenet
53and Netnews, see S<RFC 3977> (NNTP), S<RFC 4642> updated by S<RFC 8143>
54(TLS/NNTP), S<RFC 4643> (NNTP authentication), S<RFC 4644> (streaming
55NNTP feeds), S<RFC 5536> (USEFOR), S<RFC 5537> (USEPRO), S<RFC 6048>
56(NNTP LIST additions) and S<RFC 8054> (NNTP compression) or their
57replacements.
58
59In brief, Netnews is a set of protocols for exchanging messages between
60a decentralized network of news servers.  News articles are organized
61into newsgroups, which are themselves organized into hierarchies.
62Each individual news server stores locally all articles it has received
63for a given newsgroup, making access to stored articles extremely fast.
64Netnews does not require any central server; instead, each news server
65passes along articles it receives to all of the news servers it peers
66with, those servers pass the articles along to their peers, and so on,
67resulting in "flood fill" propagation of news articles.
68
69A news server performs three basic functions: it accepts articles from
70other servers and stores them on disk, sends articles it has received out
71to other servers, and offers stored news articles to readers on demand.
72It additionally has to perform some periodic maintenance tasks, such as
73deleting older articles to make room for new ones.
74
75Originally, a news server would just store all of the news articles it had
76received in a file system.  Users could then read news by reading the
77article files on disk (or more commonly using news reading software that
78did this efficiently).  These days, news servers are almost always
79stand-alone systems and news reading is supported via network connections.
80A user who wants to read a newsgroup opens that newsgroup in their
81newsreader software, which opens a network connection to the news server
82and sends requests for articles and related information.  The protocol
83that a newsreader uses to talk to a news server and that a news server
84uses to talk to another news server over TCP/IP is called NNTP (Network
85News Transport Protocol).
86
87INN supports accepting articles via either NNTP connections or via UUCP.
88B<innd>, the heart of INN, handles NNTP feeding connections directly;
89UUCP newsfeeds use B<rnews> (included in INN) to hand articles off to
90B<innd>.  Other parts of INN handle feeding articles out to other news
91servers, most commonly B<innfeed> (for real-time outgoing feeds) or
92B<nntpsend> and B<innxmit> (used to send batches of news created by B<innd>
93to a remote site via TCP/IP).  INN can also handle outgoing UUCP feeds.
94
95The part of INN that handles connections from newsreaders is B<nnrpd>.
96
97Also included in INN are a wide variety of supporting programs to handle
98periodic maintenance and recovery from crashes, process special control
99messages, maintain the list of active newsgroups, and generate and record
100a staggering variety of statistics and summary information on the usage
101and performance of the server.
102
103INN also supports an extremely powerful filtering system that allows the
104server administrator to reject unwanted articles (such as spam and other
105abuses of Usenet).
106
107INN is free software, supported by Internet Systems Consortium and
108volunteers around the world.  See L<"Supporting the INN Effort"> below.
109
110=head1 Prerequisites
111
112Compiling INN requires an S<ANSI C> compiler (B<gcc> is recommended).  INN was
113originally written in S<K&R C>, but supporting pre-ANSI compilers has become
114enough of a headache that a lot of the newer parts of INN will no longer
115compile with a non-ANSI compiler.  B<gcc> itself will compile with most
116vendor non-ANSI compilers, however, so if you're stuck with one,
117installing B<gcc> is highly recommended.  Not only will it let you build INN,
118it will make installing lots of other software much easier.  You may also
119need GNU B<make> (particularly if your system B<make> is BSD-derived), although
120most SysV B<make> programs should work fine.  Compiling INN also currently
121requires a B<yacc> implementation (B<bison> will do fine).
122
123INN uses GNU B<autoconf> to probe the capabilities of your
124system, and therefore should compile on nearly any Unix
125system.  It does, however, make extensive use of mmap(),
126which can cause problems on some older operating systems.  See
127L<INSTALL|https://www.eyrie.org/~eagle/software/inn/docs/install.html>
128for a list of systems it is known to work on.  If you encounter problems
129compiling or running INN, or if you successfully run INN on a platform
130that isn't listed in F<INSTALL>, please let us know (see L<"Reporting
131Bugs"> below).
132
133S<Perl 5.004_03> or later is required to build INN and use the embedded
134Perl filtering and authentication hook support (which is highly
135recommended; some excellent spam filters have been written for INN).
136Since all versions of Perl previous to 5.004 are buggy (including
137security problems) and have fewer features, installing S<Perl 5.004_03>
138or later (like at least S<Perl 5.8.0>) is recommended.  Depending on
139what language you want to write your filters and authentication hooks in,
140you may also want to install S<Python 2.3.0> or later, or S<Python 3.3.0>
141or later.
142
143For support for authenticated control messages, you will need either PGP
144or GnuPG, the latter being recommended.  See F<INSTALL> for more details.
145
146For the C<ovdb> overview storage method, you'll need S<Berkeley
147DB 4.4> or later (4.7 or later recommended).  For the C<ovsqlite>
148overview storage method, you'll need S<SQLite 3.8.2> or later (3.20.0
149or later recommended).  If you have zlib available, you can also compress
150overview before it's stored into C<ovdb> or C<ovsqlite>, and enable the
151COMPRESS capability, an NNTP extension.  For support for news reading
152over TLS, you'll need OpenSSL or LibreSSL.  To support SASL authentication
153to B<nnrpd> or to feed newsgroups to an IMAP server with SASL
154authentication, you'll need the Cyrus SASL libraries.  INN can also
155check passwords against a Kerberos KDC; for this, you will need Kerberos
156libraries.
157
158=head1 Getting Started
159
160A news server can be a fairly complicated piece of software to set up just
161because of the wide variety of pieces that have to be configured (who is
162authorized to read from the server, what newsgroups it carries, and how
163the articles are stored on disk at a bare minimum, and if the server isn't
164completely stand-alone S<-- and> very few servers S<are --> both incoming and
165outgoing feeds have to be set up and tested).  Be prepared to take some
166time to understand what's going on and how all the pieces fit together.
167If you have any specific suggestions for documentation, or comments about
168things that are unclear, please send them to the INN maintainers (see
169L<"Reporting Bugs"> below).
170
171=head2 Download
172
173Source code tarballs of the official releases can be downloaded from
174L<https://downloads.isc.org/isc/inn/>.  The InterNetNews project does
175not distribute releases in binary form.  Yet, precompiled versions may
176exist on your operating system.
177
178When installing a new INN server, you may wish to download the latest
179snapshot of the stable branch rather than the last official release,
180so that to pick up possible bug fixes.
181
182=head2 Build and Install
183
184See
185L<INSTALL|https://www.eyrie.org/~eagle/software/inn/docs/install.html>
186for step-by-step instructions for setting up and configuring a news
187server.
188
189=head2 Documentation
190
191INN also comes with a very complete set of man pages; there is a man page
192for every configuration file and program that comes with INN.  (If you
193find one that doesn't have a man page, that's a bug.  Please do report
194it.)  When trying to figure out some specific problem, reading the man
195pages for all of the configuration files involved is a very good start.
196
197URL: L<https://www.eyrie.org/~eagle/software/inn/docs/> (online
198documentation)
199
200=head1 Reporting Bugs
201
202We're interested in all bug reports.  Not just on the programs, but on the
203documentation too.  Please use the GitHub issue tracker to send such bug
204reports, or alternatively send them to
205
206    inn-workers@lists.isc.org
207
208(patches are certainly welcome, see below).  Even if you post to Usenet,
209please CC the above address.
210
211If you have general "how do I do this" questions or problems configuring
212your server that you don't believe are due to a bug in INN, you should
213post them to news.software.nntp.  A lot of experienced INN users,
214including several of the INN maintainers, read that newsgroup regularly.
215Please don't send general questions to the above addresses; those
216addresses are specifically for INN, and the INN maintainers usually won't
217have time to answer general questions.
218
219=head1 Testing and Development
220
221=head2 Source Code
222
223INN is maintained using the Git version control system.
224The official InterNetNews Git repository is located at
225L<https://github.com/InterNetNews/inn>.  A local copy of the current
226development source can be obtained by cloning it using a Git client:
227
228    git clone https://github.com/InterNetNews/inn.git
229
230You can also download L<daily
231snapshots|https://archives.eyrie.org/software/inn/snapshots/> produced
232only if the current code compiles and passes the test suite, so they
233have undergone at least some basic validation, although they've not
234been tested by a human.
235
236=head2 Contributing Code
237
238If you have a patch or a utility that you'd like to be considered for
239inclusion into INN, please make a GitHub pull request, or alternatively
240mail it to
241
242    inn-workers@lists.isc.org
243
244in the body of the message (not as an attachment because the mailing-list
245might strip it), or put it on a webpage and send a link.  Patches included
246with a bug report as described above should follow the same procedure.
247
248Please submit all patches against the current main branch, not against a
249stable release.  The development version of INN is often much different
250than the last stable release.
251
252Also please take a look at
253L<HACKING|https://www.eyrie.org/~eagle/software/inn/docs/hacking.html>
254for information about development and coding style.
255
256Have fun!
257
258=head1 Mailing Lists
259
260There are various INN-related mailing lists you can join or send messages
261to if you like.  Some of them you must be a member of before you can send
262mail to them (thank the spammers for that policy), and one of them is
263read-only (no postings allowed).
264
265=over 8
266
267=item inn-announce@lists.isc.org
268
269Where announcements about INN are set (only maintainers may post).
270
271URL: L<https://lists.isc.org/mailman/listinfo/inn-announce>
272
273=item inn-workers@lists.isc.org
274
275Discussion of INN development.  If you prefer not to use GitHub to create
276an issue or a pull request, it is also where to send bug reports and
277patches for consideration for inclusion into INN (postings by members
278only).  If you're an INN expert and have the time to help out other
279users, we encourage you to join this mailing list to answer questions.
280(You may also want to read the newsgroup news.software.nntp, which gets
281a lot of INN-related questions.)
282
283URL: L<https://lists.isc.org/mailman/listinfo/inn-workers>
284
285=item inn-committers@lists.isc.org
286
287Git commit messages for INN are sent to this list (only the automated
288messages are sent here, no regular posting).
289
290URL: L<https://lists.isc.org/mailman/listinfo/inn-committers>
291
292=item inn-bugs@lists.isc.org
293
294GitHub issues for INN are sent to this list (only the automated messages
295are sent here, no regular posting).  Bug reports should be sent to
296the inn-workers mailing list, or a GitHub issue created.
297
298URL: L<https://lists.isc.org/mailman/listinfo/inn-bugs>
299
300=back
301
302To join these lists, send a subscription request to the C<-request>
303address.  The addresses for the above lists are:
304
305   inn-announce-request@lists.isc.org
306   inn-workers-request@lists.isc.org
307   inn-committers-request@lists.isc.org
308   inn-bugs-request@lists.isc.org
309
310You can alternatively join them from the subscription form in their
311public web pages.
312
313=head1 Who's Responsible / Who to Thank
314
315See
316L<CONTRIBUTORS|https://www.eyrie.org/~eagle/software/inn/docs/contributors.html>
317for a long list of past contributors as well as people from the
318inn-workers mailing list who have dedicated a lot of time and effort to
319getting this new version together.  They deserve a big round of applause.
320They've certainly got our thanks.
321
322This product includes software developed by UUNET Technologies, Inc. and
323by the University of California, Berkeley and its contributors.
324
325Last, but certainly not least, Rich Salz, the original author of INN
326deserves a lion's share of the credit for writing INN in the first place
327and making it the most popular news server software on the planet (no NNTP
328yet to the moon, but we plan to be there first).
329
330=head1 Related Packages
331
332INN users may also be interested in the following software packages that
333work with INN or are based on it.  Please note that none of this software
334is developed or maintained by ISC; we don't support it and generally can't
335answer questions about it.
336
337=over 4
338
339=item Cleanfeed
340
341URL: L<https://www.mixmin.net/cleanfeed/> (maintained by Steve Crook)
342
343Cleanfeed is an extremely powerful spam filter, probably the most widely
344used spam filter on Usenet currently.  It catches excessive multiposting
345and a host of other things, and is highly configurable.  Note that it
346requires that INN be built with Perl support (the B<--with-perl> option to
347configure).
348
349Cleanfeed was originally developed by Jeremy Nixon who maintained it
350until 1998.  Then Marco d'Itri until 2002.  Steve Crook has been
351maintaining it since 2007.
352
353A Python-based variant of Cleanfeed, named PyClean, also exists and
354can be found at L<https://github.com/crooks/PyClean>.
355
356=item GUP (Group Update Program)
357
358URL: L<https://tracker.debian.org/pkg/gup>
359
360GUP provides a way for your peers to update their F<newsfeeds> entries as
361they want without having to ask you to edit the configuration file all the
362time.  It's useful when feeding peers take limited and very specific
363feeds that change periodically.
364
365=item innduct
366
367URL:
368L<https://www.chiark.greenend.org.uk/ucgi/~ian/git-manpage/innduct.git/innduct.8>
369(maintained by Ian Jackson)
370
371A possible replacement for B<innfeed>, B<innxmit> and B<nntpsend>
372that quickly and reliably streams Usenet article to a remote site.
373B<innduct> is designed to be robust and not to lose any articles (when
374offered to peers) in case it unexpectedly dies, contrary to B<innfeed>.
375It also permits a realtime feed, contrary to B<innxmit> or B<nntpsend>.
376
377=item NewsPortal
378
379URL: L<https://gitlab.com/yamo-nntp/newsportal>
380
381A PHP-based web news reader that works as a front-end to a regular news
382server such as INN and lets people read and post without learning a news
383reader.
384
385NewsPortal was originally written by Florian Amrhein
386L<https://amrhein.eu/newsportal/doc/> and is now maintained by Stéphane
387Grégoire who notably did a great job fixing a few bugs and adapting
388it for use on smartphones.
389
390=item PersonalINN
391
392URL: L<http://www.ritual.org/summer/pinn/>
393
394PersonalINN is a version of INN modified for personal use and with a
395friendly GUI built on top of it.  It is available for NEXTSTEP or OPENSTEP
396only, unfortunately.
397
398=item suck
399
400URL: L<https://github.com/lazarus-pkgs/suck>
401
402B<suck> is a separate package for downloading a news feed via a reading
403connection (rather than via a direct NNTP or UUCP feed) and sending
404outgoing local posts via POST.  It's intended primarily for personal or
405small-organization news servers who get their news via an ISP and are too
406small to warrant setting up a regular news feed.
407
408=back
409
410=head1 Supporting the INN Effort
411
412Note that INN is supported by Internet Systems Consortium, and although it
413is free for use and redistribution and incorporation into vendor products
414and export and anything else you can think of, it costs money to produce.
415That money comes from ISPs, hardware and software vendors, companies who
416make extensive use of the software, and generally kind-hearted folk such
417as yourself.
418
419Internet Systems Consortium has also commissioned a DHCP server
420implementation and handles the official support/release of BIND.  You can
421learn more about the ISC's goals and accomplishments from the web page at
422L<https://www.isc.org/>.
423
424                                        Russ Allbery
425                                        Katsuhiro Kondou
426                                        <inn@isc.org>
427
428=cut
429