PREFACE ======= Original Author - Tim Smith (address unknown) Maintainers: March 1995 - Sven Goldt (goldt@math.tu-berlin.de) July 1995 - Robert A. Yetman (bobyetman@sucknews.org) September 2017 - Michael Vetter (jubalh@iodoru.org) Current Maintainer - jubalh@iodoru.org LOCATION ======== https://github.com/lazarus-pkgs/suck INTRODUCTION ============ The primary use for suck is to feed a local NNTP server, without the remote NNTP feeding you articles. It is designed for a small, partial news feed. It is NOT designed to feed 10,000 groups and 3 Gigs of articles a day. This package contains software for copying news from an NNTP server to your local machine, and copying replies back up to an NNTP server. It works with most standard NNTP servers, including INN, CNEWS, DNEWS, and typhoon. The suck/rpost combination allows you to run your own site, controlling where you get your news, and where you post outgoing articles. Suck/rpost use only standard NNTP commands that are used by your favorite news reader (tin, xvnews, strn) such as POST and ARTICLE. If you can use tin or xvnews against a NNTP site, than you can use Suck/Rpost. suck Pull a small newsfeed from an NNTP server lpost Gives one article fetched by suck to the local server. rpost Posts article(s) to a remote NNTP server testhost Check to see what commands your host recognizes or get the active or new list. lmove put articles in news/group/number format. LICENSING INFO ============== Suck is Public Domain, feel free to make any changes you want, just don't blame me when they break. NOTES: ====== Suck will not work with obsolete NNTP servers that can't handle the xhdr command. This code assumes an ANSI-compliant compiler, it will NOT work with old compilers which don't accept function prototypes. The Makefile assumes you are using GNU make, other makes may or may not work. If your remote INN server slows drastically after 100 messages are downloaded, and they are using INN 1.5.1 or newer, chances are they compiled INN with "LIKE_PULLERS" set to DONT, which causes INN to put a small sleep before each message. Talk to the SA for the system and see if they'll compile with "DO". Chances are they didn't even know this option existed. An interesting program for processing the killfile log and forcing suck to download some of the articles in it can be found at: http://ourworld.compuserve.com/homepages/jvanerp/suckmore.html Is suck Y2K compliant? As far as I can make it yes. The only program that uses dates is testhost, and the date is sent to the remote NNTP host for the NEWGRP command. I don't do any date calculations. Once servers take an 8 digit date (right now its YYMMDD), I'll update testhost. HOW-TO-USE ========== 0. Run ./configure --help to see the options, especially the ones listed last (--with-inn-lib && with-inn-include) 1. run ./configure If it can't find your Inn libraries/includes, make sure you use the --with-inn-lib=path & --with-inn-include=path options 2. Check over the Makefile, make sure it found everything, if not fix it. If your flatfile history file is not at /var/lib/news/history, you'll need to use the -HF option, to tell suck where it is. If you're using Inn 2.3 or newer, make sure the Makefile knows where your libinn.a and includes are, otherwise, the dedupe function won't work. See step #4. Typically, these are in the source tree. If you don't have the source, get it, see below. 3. If you're using SSL edit the Makefile step #nr7. 4. Make it. (make , make install) If you are having problems compiling suck, look at the Makefile, there are comments in there for the various common problems I see. 5. READ THE MAN PAGES. 6. Create a sucknewsrc - which groups to download (see suck man pg). If you have INND/CNEWS/DNEWS/PNEWS already running, then just use 'suck remotehost -A -hl localhost', and the sucknewsrc will be built for you. BUT, before you do this, create a active.ignore file, listing all the groups on the local host that you don't want downloaded from the remote host (see man page for sample). 7. Take a look at the sample directory. There are two shell scripts in there that show the whole scheme from how to download news (with suck), and how to upload news (with rpost). Use get.news.inn if you have INN running, as it knows how to gracefully get the outgoing article listing. get.news.generic is for everyone else. WARNING: These scripts need editing before you can use them. You must change the various variables at the top of the scripts to ensure they point to the right files/directories. If you're using Inn 2.3.X with CNFS, you'll need to use the 'put.news.sm*' scripts, to deal with the tokens that Inn puts in the outgoing file instead of the article number. WHERE TO GET STUFF ================== inn: anonymous ftp from ftp.isc.org /isc/inn perl: http://www.perl.com/CPAN/src/latest.tar.gz anonymous ftp from prep.ai.mit.edu /gnu Perl/Tk: http://www.perl.com/CPAN/modules/by-module/Tk/Tk8XX.XXX.tar.gz SSL: http://www.openssl.org/ FUTURE PLANS. ========================