flnews(1)                     flnews 0.16 manual                     flnews(1)




NAME

       flnews - Fast and lightweight USENET client with GUI


SYNOPSIS

       flnews [-display [host]:display] [-geometry WxH[+X+Y]]

       flnews [-h|-v]


DESCRIPTION

       If  you don't know what USENET is, you probably want to read this arti-
       cle first:

       https://en.wikipedia.org/wiki/Usenet

       flnews is a client with graphical user interface  that  uses  the  NNTP
       protocol  defined  in  RFC3977  to  get USENET news articles defined in
       RFC5536 from a server via IP network. Version 1 of  the  NNTP  protocol
       (as  defined in RFC977) is supported too and automatically used, if the
       server does not report support for Version 2.

       If compiled with support for ssl(3),  the  NNTPS  protocol  (NNTP  over
       encrypted  TLS  connection)  is  supported.  For  NNTPS connections the
       server to client authentication via X509  certificate  is  always  per-
       formed.  Optionally  the  client can authenticate to the server via the
       AUTHINFO USER/PASS extension defined in RFC4643.

       If compiled with support for compression and zlib(3), the NNTP COMPRESS
       extension  is supported. Compression negotiation is disabled by default
       and can be enabled on the 'Edit->Configuration->Misc' tab in  the  user
       interface.   Because  compression in general can weaken the underlaying
       encryption, the optional authentication is always done before  compres-
       sion is negotiated.  For the same reason compression negotiation should
       be disabled for reading groups that contain articles with  confidential
       information.

       flnews  provides  full Unicode support, including NFC normalization for
       posting and search/compare operations. Article content is converted  to
       ISO8859-1  before  posting  (if  possible)  to  be more friendly to old
       clients.  The ability to display Unicode content  depends  on  the  GUI
       toolkit fltk(3).  Even if the content could not be correctly displayed,
       it is always possible to correctly quote it in follow-up articles.

       flnews has MIME support according  to  RFC2045,  RFC2046,  RFC2047  and
       RFC2231.   Posted  articles should be fully RFC5536 and MIME compliant.
       For the receiving direction, the following  MIME  conformance  require-
       ments from RFC2049 chapter 2 are not implemented yet:

       o  Part  6  (Media  types):  Support  for  "message/rfc822" and "multi-
          part/digest" is missing

       o  Part 6 (Media types): Data with media type "application" can not  be
          stored into a file yet

       Additional  checks  are  implemented that create warnings if an article
       violates common USENET conventions. Conformance to mandatory GNKSA  2.0
       rules was reached with exception of part 4 (the "Reply-To" header field
       can only be modified before the article composer is started):

       https://js.home.xs4all.nl/gnksa/

       Currently flnews 0.16 provides no support for the following features:

       o  Multiple servers

       o  Offline mode

       o  UUCP

       If you need one of these features, use  leafnode(8)  or  another  proxy
       server (consider Hamster for machines with Windows operating system).


OPTIONS

       The following options are supported:

       -display [host]:display  X display to use. More information about X can
                                be found in X(7).

       -geometry WxH[+X+Y]      Window size and position.

       -iconic                  Starts with minimized window.

       -h                       Print help message.

       -v                       Print version and build date.


EXIT STATUS

       Zero on regular exit. All other values indicate an error.


ENVIRONMENT

       DISPLAY                  X display to use. More information about X can
                                be found in X(7).

       FLTK_SCHEME              Selects  the  FLTK  scheme  to use. FLTK 1.3.0
                                accepts the following options:

                                o  none (Default style)

                                o  gtk+ (GTK+ style)

                                o  plastic (Aqua style)

                                Newer  FLTK  versions  may  accept  additional
                                schemes.

       TMPDIR                   Directory  used for temporary files (as recom-
                                mended by POSIX). This value will override the
                                default "/tmp".

       TZ                       The  timezone  that  is  used by localtime(3).
                                flnews internally uses this function  to  con-
                                vert  POSIX  timestamps  to local time and for
                                creating  'date-time'  tokens   according   to
                                RFC5322.

       In addition, flnews honours the following locale related variables:

       LANG                     Used  as  fallback  if  LC_* variables are not
                                set.

       LC_ALL                   Overdrives all other LC_* variables.

       LC_CTYPE                 Character classification to use. Only  locales
                                with  US-ASCII,  ISO8859-1  and UTF-8 codesets
                                are allowed here. Setting  this  to  a  locale
                                with  UTF-8  codeset is very expensive on some
                                operating systems (e.g. more than an order  of
                                magnitude slower on NetBSD 5).  Note that set-
                                ting this to POSIX or an ISO8859-1 locale will
                                not  completely  disable  Unicode support! You
                                can at least use Unicode for your name in  the
                                identity  configuration  and you can correctly
                                quote Unicode content for  follow-up  articles
                                in any case.

       LC_MESSAGES              Locale  for user interface language. The code-
                                set is ignored because FLTK internally  always
                                use UTF-8 (regardless of the locale settings).
                                If flnews is compiled  without  National  Lan-
                                guage Support (NLS), this variable is ignored.

       As a general rule, POSIX.2 define that all locale sections must use the
       same codeset. More information about NLS can  be  found  in  nls(7)  or
       locale(7) depending on the operating system.


X RESOURCES

       Information about X resources and how to set them can be found in X(7).

       fltk.scheme              (String)    See   the   environment   variable
                                FLTK_SCHEME for possible values. The  environ-
                                ment   variable  takes  precedence  over  this
                                ressource.

       Text.selectBackground    (String) The value of this ressource is  taken
                                as  the  background  color  for selected text.
                                Set it to something like  "gray"  for  a  more
                                decent selection color.

       Xft.antialias            (Boolean)  If FLTK uses the X11 backend and is
                                compiled to use Xft (the  default),  then  the
                                value "true" will enable and "false" will dis-
                                able font anti-aliasing.  The recommended set-
                                ting is "true".

       Xft.hinting              (Boolean)  If FLTK uses the X11 backend and is
                                compiled to use Xft (the  default),  then  the
                                value "true" will enable and "false" will dis-
                                able font hinting.  The recommended setting is
                                "true".

       Xft.autohint             (Boolean)  If  FLTK  uses  the X11 backend, is
                                compiled to use Xft (the default) and  Xft  is
                                configured with enabled font hinting (resource
                                Xft.hinting set to "true") then this  resource
                                controls  the  hinting algorithm. With setting
                                "false" the  BCI  algorithm  is  used,  "true"
                                enables  the  builtin autohinter of Freetype2.
                                The recommended setting is "false".

       Xft.hintstyle            (Integer) If FLTK uses  the  X11  backend,  is
                                compiled  to  use Xft (the default) and Xft is
                                configured with enabled font hinting (resource
                                Xft.hinting  set to "true") then this resource
                                controls the hinting mode. Possible values are
                                "hintnone" (0), "hintslight" (1), "hintmedium"
                                (2) and "hintfull" (3).  The recommended  set-
                                ting is "hintfull" (3).

                                Attention: With some modes it is possible that
                                lines will overlap and characters like  under-
                                score are clipped!


FILES

       ~/.signature             The  signature from this file is automatically
                                appended to all created articles.
                                This file is not used if another location  for
                                the signature file is configured.  See CONFIG-
                                URATION section below for details  (configfile
                                entry "signature_file").

                                Note:  At  this  (shared)  location  the  file
                                should be US-ASCII encoded. If you want to use
                                Unicode  in  signatures, a dedicated signature
                                file for flnews should be configured.

       ~/.flnews/.cancelsecret  Secret for generating Cancel-Locks/-Keys  with
                                scheme SHA256 according to RFC8315.
                                The secret in this file must be a cryptograph-
                                ically random value according to  RFC4086  and
                                should be at least 32 octets in length.

                                flnews  must  be  compiled  with  support  for
                                ssl(3) or this file will be  ignored,  because
                                the cryptographic functions are shared.

                                If  this  file is not present, it is automati-
                                cally created and a new secret is  written  to
                                it  (using  random data from the cryptographic
                                PRNG).

                                If this file is present and not empty, and the
                                domain  entry  is set, flnews creates "Cancel-
                                Lock" (always) and "Cancel-Key" header  fields
                                when canceling or superseding articles.

                                To use the same secret as another installation
                                of flnews (or another newsreader that use  the
                                algorithm  recommended  by  RFC8315  with HMAC
                                based on  SHA256),  copy  the  file  with  the
                                desired secret to this location.

                                To  manually  disable  this  feature, an empty
                                file must be used.

                                Attention: Everybody who get his hands on this
                                secret  can  cancel  articles that were locked
                                using this key in the past! This  file  should
                                be readable only by the user.

                                The  old  scheme  SHA1 is still supported too.
                                See CONFIGURATION section  below  for  details
                                (configfile entry "cancelkey").

       ~/.flnews/configfile     Configuration and user interface state of last
                                session. The file format is forward and  back-
                                ward compatible between all versions with same
                                major number.

                                See CONFIGURATION section below for details.

       ~/.flnews/groupfile      Subscribed groups and already viewed  articles
                                database.  The  data  is  US-ASCII  encoded in
                                newsrc format and can  be  shared  with  other
                                newsreaders  using the entry newsrc in config-
                                file. It is possible to share the  group  data
                                over  machine  borders  by  using a NFS server
                                (advisory file locking support is required).

                                Attention: In any case  all  newsreaders  that
                                share  a  groupfile  must be configured to use
                                the same server! There is a convention to name
                                such files "newsrc-$HOSTNAME" to make it obvi-
                                ous for which server they can be used.

                                It is allowed to share the  groupfile  between
                                multiple instances of flnews that run simulta-
                                neously. The file will contain  the  state  of
                                the instance that is terminated last.

       ~/.flnews/headers/*      Cached article header database. The file names
                                correspond to the article  watermarks  of  the
                                current  NNTP  server.  If the server provides
                                the OVER capability defined in  RFC3977,  this
                                database is not used.

       ~/.flnews/logfile        Protocol  dump  of  server  communication from
                                current/last session. To view this data  while
                                the  program is running, select 'Tools->Proto-
                                col console' in the user interface. This  file
                                is overwritten for every new connection.

       ~/.flnews/scorefile      Scoring  rules. The file format is forward and
                                backward compatible between all versions  with
                                same major number.

                                See SCORING section below for details.


CONFIGURATION

       This section describes the format of the configfile.

       This  file must be a POSIX textfile, this means every line must be ter-
       minated with a LF line break.

       Any line starting with '#' is treated as  a  comment  (not  parsed  and
       ignored).  Missing entries are automatically added, unsupported entries
       are ignored.

       The content can have one of  two  types:  Integer  or  Unicode  string.
       Strings use the UTF-8 representation and NFC normalization of Unicode.

       The  following  entries are supported by version 0.16 but can't be con-
       figured from the GUI. Some have no GUI editor by intent. If  you  don't
       know what you are doing, consider to not modify them.

       o  cancelkey  (String)  Secret  for  generating Cancel-Locks/-Keys with
          scheme SHA1 according to RFC8315

          flnews must be compiled with support for ssl(3) to make  this  work,
          because the cryptographic functions are shared.

          Note:  The  scheme SHA1 is deprecated by RFC8315. This entry is pre-
          served for backward compatibility. After a  transition  period  this
          entry should be left empty and the scheme SHA256 should be used. See
          section above (File "~/.flnews/.cancelsecret").

       o  crl_upd_c (Integer) TLS certificate CRL update choice

          A nonzero value means  that,  after  the  CRL  update  interval  has
          elapsed,  the  user  get  a  choice to select whether the CRL update
          should be delayed.

       o  crl_upd_iv (Integer) TLS certificate CRL update interval

          The value must be positive and is a period of  time  in  hours.  Too
          large  values (longer than one year) are clamped to the upper limit.
          The value zero means that new CRLs should be  downloaded  for  every
          new connection (not recommended).

       o  crl_upd_ts (String) TLS certificate CRL update timestamp

          This  entry contains a timestamp in ISO8601 format for the last suc-
          cessful CRL update.

       o  domain (String) Optional domain under control of  the  user  or  his
          organization

          Must be a valid "dot-atom" according to RFC5322.

          This  entry is used to generate Message-IDs. They are only worldwide
          unique for all time if flnews runs on a machine with a hostname that
          is  unique  inside this domain. In addition the clock of the machine
          must be synchronized to at least some seconds precision.

          If a domain is configured, the header fields  "Message-ID",  "Injec-
          tion-Date",  "Cancel-Lock" and "Cancel-Key" (only when cancelling or
          superseding an article) are created by flnews for all outgoing arti-
          cles.  Note  that RFC5537 specify some nasty details for the "Injec-
          tion-Date" header field (they are the reason to handle it internally
          in this case).

       o  editor (String) Optional external editor for article composition

          The  pathname  of a file containing the data is passed as parameter.
          The editor must be able to process Unicode  data  in  UTF-8  format.
          The  specified  editor  must terminate with exit status zero on suc-
          cess.

          A temporary file is used. Consider to  set  the  TMPDIR  environment
          variable.

       o  immedauth (Integer) Immediate authentication option

          The value one represents the default behaviour to authenticate imme-
          diately after a connection was established.

          The value  zero  switches  the  behaviour,  so  that  authentication
          against the article source is only executed after a request to do so
          (480 response when using NNTP protocol).

       o  intro (String) Introduction line format

          The name of the cited author can be inserted  with  "%s".  The  last
          character should be a colon.

       o  inv_order (Integer) Inverse order

          The value zero is the default behaviour (top down).

          A  nonzero  value  inverts  the order of articles or thread branches
          respectively.

       o  newsrc (String) Optional pathname of file to share group  states  in
          newsrc format

          This  file is imported at startup and used as groupfile. At exit the
          local groupfile is copied back to this location. Note that this file
          is replaced with rename(2) and is not modified in place. If the file
          is accessed via NFS, advisory locking must be available.

       o  organization (String) Optional name of the users organization

          The string is inserted as 'Organization' header  field  in  outgoing
          articles.

       o  post_proc (String) Pathname of an optional article postprocessor

          Note: The postprocessor can be used to insert custom header fields.

          The postprocessor must be a filter in Unix sense. It must accept the
          article on its standard input, process it and write  the  result  to
          its  standard  output.   After successful completion of this task is
          must terminate with exit status zero. In the case of an  error,  the
          postprocessor must terminate with a nonzero exit status.

          Note  that  the  article feeded into the postprocessor has canonical
          format (CR+LF line breaks) and use Unicode UTF-8  encoding  for  the
          body.  Modifications must preserve this format.  The Unicode normal-
          ization, potential conversion to the target character  set  and  the
          application  of  the transfer encoding to the body is done after the
          postprocessing. Therefore the postprocessor is not  allowed  to  add
          "Content-Type" and "Content-Transfer-Encoding" header fields!

          The  header is already in RFC2047 format. If the postprocessor modi-
          fies an existing header field, this format must be preserved.  If  a
          new header field is added, the postprocessor is responsible for cre-
          ating valid RFC2047 encoding and Unicode normalization to NFC.

       o  scorerc (String) Optional pathname of file to share scoring rules

          This file is imported at startup and used as scorefile. At exit  the
          local scorefile is copied back to this location. Note that this file
          is replaced with rename(2) and is not modified in place. If the file
          is accessed via NFS, advisory locking must be available.

       o  signature_file (String) Pathname of file with signature (relative to
          home directory)

          Default value: ".signature".

          If this file is present, its content is used as signature.  The sig-
          nature  separator  "dash dash space" plus LF line break is automati-
          cally prepended if not already present in this file.  The file  must
          be  a POSIX text file (LF line break after every line, including the
          last one) with Unicode encoding in UTF-8 format (Unicode  normaliza-
          tion is not important and applied automatically).

          Use an empty string to disable signature generation.

       o  testgrp_ere (String) POSIX.2 extended regular expression (Unicode is
          allowed)

          If non US-ASCII characters are used in the regular expression,  they
          must be representable in the codeset of the character classification
          locale used at runtime. Otherwise the regular expression  from  this
          entry  is  ignored  and will never match. See the desciption for the
          LC_CTYPE environment variable above for details.

          Note that this regular expression is used for matching against indi-
          vidual  group  names,  not  group lists. This means '^' and '$' will
          match start and end of individual group names.

          If a match is detected against a group name, this group  is  treated
          as  a  test  group  that may require special control commands in the
          "Keywords" header field to silence e.g. reflector  bots  (see  entry
          "testgrp_kwords" for keyword configuration).

       o  testgrp_kwords (String) Comma separated list of words

          If  a  target  group of an article is identified as a test group (as
          described for the "testgrp_ere" entry), the header field  "Keywords"
          is initialized to the value defined with this entry.

          Attention:  Version  0.16 of flnews currently only supports US-ASCII
          keywords. Do not use spaces around commas.

       o  timestamp_comment (Integer) Generate Date header field with timezone
          comment

          The  value  zero  represents the default behaviour to append no com-
          ment.

          The value one switches the behaviour, so that  a  comment  with  the
          name  of  the  timezone is appended to the Date header field. If the
          operating system does not provide timezone information,  this  entry
          is ignored.

       o  nntp_no_over  (Integer) Disable usage of overview (OVER command) for
          NNTP protocol

          Setting this to a nonzero value disables usage of overview and makes
          the whole newsgroup list usable for scoring rules.

          In general the default value 0 should be used. There are two scenar-
          ios for which this option may be useful.

          If the network connection to the server is very  slow  and  no  data
          compression  is available: In this case the transfer of the (larger)
          overview may be slower than the transfer  of  a  few  (smaller)  new
          headers,  because  the  older  headers  can  be taken from the local
          cache.

          If one or more scoring rules should match other (not the current  or
          not  subscribed  at all) newsgroups in Xposts: Because the newsgroup
          list is not part of the overview, only the current group  is  avail-
          able if the overview is used.

       o  dist_suggestions (Integer) Use distribution suggestions

          Setting this to a nonzero value automatically initialize the distri-
          bution header field in the composer with suggested distribution data
          (if  available).   If  no distribution suggestions are available for
          the target groups, the header field is  initialized  to  "world"  as
          with this option set to zero.

          Any  time  a  distribution  suggestion is used, the user is informed
          with a popup window in the GUI.

          With the NNTP protocol the command  LIST  DISTRIB.PATS  is  used  to
          retrieve the distribution suggestions from the server.


SCORING

       This section describes the format of the scorefile.

       This  file must be a POSIX textfile, this means every line must be ter-
       minated with a LF line break.

       Any line starting with '#' is treated as  a  comment  (not  parsed  and
       ignored).   All  other lines are parsed as rules with 3 colon-separated
       fields:

       o  Type The header field to which the rule is associated. This field is
          case sensitive.

          The  following  types (in alphabetical order) are recognized by ver-
          sion 0.16.

          Type "from": The string from the third field  must  match  literally
          against the "From" header field.

          Type "from_ere": The string from the third field is interpreted as a
          POSIX.2 extended regular  expression  and  must  match  against  the
          "From" header field.

          Type  "group":  The string from the third field must match literally
          against a group element in the "Newsgroups" header field.

          Type "msgid_ere": The string from the third field is interpreted  as
          a  POSIX.2  extended  regular  expression and must match against the
          "Message-ID" header field.

          Type "subject": The string from the third field must match literally
          against the "Subject" header field.

          Type  "subject_ere":  The string from the third field is interpreted
          as a POSIX.2 extended regular expression and must match against  the
          "Subject" header field.

          Type  "extended": All rules with this type use a new, different syn-
          tax with 5 fields. This  type  is  used  for  compatibility  reasons
          (older  parsers  will ignore "extended" rules).  The second field of
          this type is a newsgroup wildmat that allows to limit the  scope  of
          the  rule.  The  wildmat  syntax  is  as defined in RFC3977 with the
          exceptions that colon is not allowed (because it is  used  as  field
          separator)  and  SP is not allowed between tokens (e.g. around comma
          or exclamation mark).  The last 3 fields are the same  as  with  the
          original syntax.

          Note  that  rules  using  wildmats  and/or  regular  expressions are
          ignored if flnews is compiled without support  for  regular  expres-
          sions.

       o  Score The score value that apply if the filter rule matches.

          This  must  be  a  signed  integer value. If the scorefile is shared
          between multiple instances of flnews, the values must be usable  for
          the whole group. The machine with the smallest limits will clamp the
          values if they are too large or too small respectively.

       o  String The rules content string.

          This must always be an Unicode string (in UTF-8 format with NFC nor-
          malization).

          Attention:  If the normalization is wrong, the rule may not match as
          intended!

          The colon has no special meaning inside this field anymore and  must
          not be quoted for any of the rule types listed above.

       The  default  score  for  every article is zero. If a rule matches, the
       score value from the second field will be added  to  the  corresponding
       article.  Note  that  the  processing is not stopped after a match, the
       following rules are applied too.

       Articles with nonzero score result are marked with icons  in  the  GUI.
       Articles with negative score result are additionally marked as read.


NOTES

       flnews is based in part on the work of the following projects:

       o  FLTK project (http://www.fltk.org/)

       o  Unicode standard (http://www.unicode.org/)

          Unicode  is  a  registered  trademark of Unicode, Inc. in the United
          States and other countries.

       o  OpenSSL project (http://www.openssl.org/)

          If compiled with support for TLS.

       o  zlib compression library (http://zlib.net/)

          If compiled with support for compression.


AUTHORS

       To  view  the  list  of  authors  and   the   license   terms,   select
       'Help->License' in the user interface.


BUGS

       To report bugs, select 'Help->Bug report' in the user interface.


STANDARDS

       flnews tries to comply with the following standards:

       ISO2022,  ISO8601,  ISO8859,  RFC20,  RFC822,  RFC850, RFC977, RFC1468,
       RFC1738, RFC2045, RFC2046, RFC2047, RFC2049, RFC2104, RFC2152, RFC2231,
       RFC2246, RFC2368, RFC2585, RFC2606, RFC2646, RFC2980, RFC3174, RFC3629,
       RFC3676, RFC3977, RFC3986, RFC4346, RFC4642, RFC4643, RFC5198, RFC5246,
       RFC5280, RFC5322, RFC5536, RFC5537, RFC5538, RFC6048, RFC6066, RFC6176,
       RFC6048, RFC6657, RFC7230, RFC7231, RFC7234, RFC7366, RFC7507, RFC7568,
       RFC7627,    RFC8054,    RFC8143,    RFC8315,   RFC8446,   POSIX.2-1992,
       POSIX.1-1996, POSIX.1-2001, Unicode 11.0.0


SEE ALSO

       fltk(3), leafnode(8), locale(7), localtime(3), nls(7), ssl(3), zlib(3),
       X(7)
       https://en.wikipedia.org/wiki/Usenet>
       https://js.home.xs4all.nl/gnksa/>



Unix                              2019-01-19                         flnews(1)