|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| .github/ | H | 27-Dec-2021 | - | 29 | 22 |
| authprogs/ | H | 03-May-2022 | - | 1,838 | 1,353 |
| backends/ | H | 03-May-2022 | - | 11,568 | 7,983 |
| ci/ | H | 27-Dec-2021 | - | 79 | 44 |
| contrib/ | H | 03-May-2022 | - | 4,773 | 2,928 |
| control/ | H | 27-Dec-2021 | - | 3,323 | 1,952 |
| doc/ | H | 27-Dec-2021 | - | 67,058 | 55,094 |
| expire/ | H | 03-May-2022 | - | 3,731 | 2,825 |
| frontends/ | H | 03-May-2022 | - | 10,111 | 7,712 |
| history/ | H | 03-May-2022 | - | 2,472 | 1,754 |
| include/ | H | 27-Dec-2021 | - | 5,420 | 2,640 |
| innd/ | H | 03-May-2022 | - | 18,917 | 14,319 |
| innfeed/ | H | 03-May-2022 | - | 27,642 | 18,873 |
| lib/ | H | 03-May-2022 | - | 20,267 | 13,159 |
| m4/ | H | 27-Dec-2021 | - | 12,209 | 11,115 |
| nnrpd/ | H | 03-May-2022 | - | 13,970 | 10,588 |
| perl/ | H | 27-Dec-2021 | - | 523 | 297 |
| samples/ | H | 27-Dec-2021 | - | 8,531 | 6,403 |
| scripts/ | H | 27-Dec-2021 | - | 9,533 | 7,459 |
| site/ | H | 03-May-2022 | - | 331 | 268 |
| storage/ | H | 03-May-2022 | - | 27,323 | 21,115 |
| support/ | H | 27-Dec-2021 | - | 16,741 | 12,612 |
| tests/ | H | 03-May-2022 | - | 18,087 | 12,686 |
| .clang-format | H A D | 27-Dec-2021 | 575 | 21 | 19 |
| CONTRIBUTORS | H A D | 27-Dec-2021 | 11.2 KiB | 282 | 226 |
| HACKING | H A D | 27-Dec-2021 | 40.8 KiB | 842 | 661 |
| INSTALL | H A D | 27-Dec-2021 | 88.5 KiB | 1,743 | 1,408 |
| LICENSE | H A D | 27-Dec-2021 | 4.2 KiB | 87 | 68 |
| MANIFEST | H A D | 27-Dec-2021 | 66 KiB | 991 | 990 |
| Makefile | H A D | 27-Dec-2021 | 10.8 KiB | 278 | 184 |
| Makefile.global.in | H A D | 27-Dec-2021 | 11 KiB | 324 | 255 |
| NEWS | H A D | 27-Dec-2021 | 125.9 KiB | 2,554 | 1,984 |
| README | H A D | 27-Dec-2021 | 18.2 KiB | 401 | 307 |
| README.snapshot | H A D | 27-Dec-2021 | 562 | 13 | 9 |
| TODO | H A D | 27-Dec-2021 | 37.3 KiB | 749 | 591 |
| autogen | H A D | 27-Dec-2021 | 131 | 8 | 4 |
| configure | H A D | 03-May-2022 | 987.5 KiB | 36,319 | 31,127 |
| configure.ac | H A D | 27-Dec-2021 | 32.1 KiB | 820 | 739 |
| readme.pod | H A D | 27-Dec-2021 | 17.2 KiB | 429 | 315 |
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