#+TITLE: Pain in the APT
#+SUBTITLE: Pester people about available package updates by jabber or email
#+MAN_CLASS_OPTIONS: :section-id "8"
#+OPTIONS: timestamp:nil

*Pain in the APT* pesters people about available package upgrades, just
like apticron or cron-apt. However, it does so by XMPP (direct,
MUC/conference room, or pubsub node), SMTP, or by calling =mailx=.
* What does it do?
1. updates the APT cache and checks for updates
2. sends list of available updates to Jabber contacts or a conference
   room or pubsub node immediately
3. or sends list of available updates and relevant changelogs (slow)
   to email recipients
4. downloads packages, but does not install them

Messages are only sent when there is any change in either the list of
updates or in the configuration of =painintheapt=.
* Options
- =-c=, =--configfile= *configuration file* ::
  configuration file, (defaults: =/etc/painintheapt.conf=)
- =-d=, =--debug= ::
  print debug output to stderr
- =-f=, =--force= ::
  send message, even if updates did not change
- =-h=, =--help= ::
  print help
- =-s=, =--stampfile= *stamp file* ::
  stamp file (default: /var/lib/painintheapt/stamp)
- =-t=, =--testmessage= ::
  send a test message only
- =-v=, =--version= ::
  print version
* Configuration
The default configuration file is =/etc/painintheapt.conf= in inifile
format.

There are up to three sections, =XPMP=, =SMTP=, and =MAILX=.
** XMPP
The keys for =XMPP= are =jid=, =password_file=, =avatar=, =to=, =room=,
=pubsub_service=, =pubsub_node=, =send_changes=, =host=, and =port=. The latter
two are only necessary in exceptional cases.

The most simple setup only needs =jid=, =password_file=, and =to=.

It is recommended to set the accompanying logo as Jabber avatar for
the respective JID. This can be done automatically by =painintheapt=.
** SMTP
The keys for =SMTP= are =server=, =port=, =username=, =password_file=, =from=, =to=,
=cc=, and =send_changes=.
** MAILX
The keys for =MAILX= are =from=, =to=, =cc=, and =send_changes=.
* Usage
=painintheapt= is typically run from systemd timers. One may call
=painintheapt= without arguments daily, and with the =--force= option
weekly, just to make sure that everything works fine.
* Resources
- Homepage: https://salsa.debian.org/debacle/painintheapt
* License
Affero General Public License 3 or higher
* Logo
#+BEGIN_EXAMPLE
 (___)
○(@ @)○
 -\∞/-
/__‾__\
#+END_EXAMPLE
Maybe a cow, a gnu, or a dragon?
* Author
Martin <debacle@debian.org>
