add link to the list of untestable logs

the list was already generated, it just needed to be linked

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
add more known problem reports

add reports about
- forgotten alternatives
- owned and unowned files in passed tests
- ignored maintainer script errors in passed tests

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
install documentation with mode 0644 instead of 0755

there is no need to have the documentation executable

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
do not miss Pre-Depends in --warn-on-others mode

Add Pre-Depends from the target package to the Depends of the
meta-package created for --warn-on-others to ensure they are
installed, too, before recording file ownership of dependencies.

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
remove added and reinstall missing packages in one apt-get call

Use 'apt-get remove ... $package+' to reinstall missing packages
at the same time as removing the added packages, otherwise (in
some rare cases) dependencies cannot be fulfilled and apt-get
may choose an unwanted solution.

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
master: implement section locking

Implement some simple section locking (fcntl.flock()), only works
on local file systems.
Prevents concurrent slaves to create concurrent master instances
of the same section which would lead to races and duplicate
reservations.

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
do not leak the log file descriptor

use open(..., "we") to set FD_CLOEXEC
(may not be entirely portable, but works on glibc systems)

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
split Section.run() method

simplify error handling by separating chdir, locking, ...
from talking to the master and actually running piuparts

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
skip section after master failure

Do not abort if connection to master failed, just skip the section
and retry later.
The slave is intended to be a long running process and should not
abort on temporary network problems (e.g. master being unable to
fetch a package list).

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
handle master returning 'busy'

If there is another slave currently talking to the master
(accessing the current section), try again later.

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
implement section locking

Implement some simple section locking (fcntl.flock()), only works
on local file systems.
Allows to run multiple slave instances in parallel (but a section
can only be processed by one slave at a time).

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
let sections sleep on error/idle

let sections sleep after error conditions (master failed, busy)
and if idle (15/60 minutes, currently hardcoded)
(processing of other sections continues)

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
use stamp files to propagate idle sections between slaves

Create idle.stamp files to notify concurrent slaves about idle sections.
Also preserves idle state over slave restarts.
Let section sleep until the stamp file is 1 hour old.
Ignore stamps created in the future.

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
simplify and reindent

Signed-off-by: Andreas Beckmann <debian@abeckmann.de>
* piuparts-report: don't create output for disabled sections. (Bye bye Lenny!)
fixup last commit
fixup last commit