[Piuparts-devel] [Git][debian/piuparts][develop] 10 commits: d.iteritems() -> iter(d.items()) Py 2 3 compatible
Holger Levsen
gitlab at salsa.debian.org
Thu Aug 1 22:21:04 BST 2019
Holger Levsen pushed to branch develop at Debian / piuparts
Commits:
c3900457 by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
d.iteritems() -> iter(d.items()) Py 2 3 compatible
PEP 469 -- Migration of dict iteration code to Python 3
https://www.python.org/dev/peps/pep-0469/
And in diff_meta_data function:
- a dict (tree1, tree2) to iterate
- a dict (tree1_c, tree2_c) copy to 'del dict[key]'
To avoid RuntimeError or fail to iterate over all entries.
- - - - -
7890a56e by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
Replace .txt files - manpage
- - - - -
cfce316a by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
Create sphinx stuff for piuparts cmd
- - - - -
6c81eae3 by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
Create sphinx stuff for piuparts_slave_run cmd
- - - - -
5663b2ef by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
Create sphinx stuff for piuparts_slave_join cmd
- - - - -
b0cb5aab by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
Create sphinx stuff for piuparts_slave_stop cmd
- - - - -
e7d6549a by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
.txt files deleted - manpage
- - - - -
8d76da93 by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
Rename 'doc_by_sphinx' -> 'docs'
And:
- Add README* files
- Add license.txt file
- Add sphinx files conf.py, index.txt
- - - - -
028bb676 by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
debian dir: adjust files for sphinx build
- - - - -
67744ce8 by Herbert Parentes Fortes Neto at 2019-08-01T21:19:25Z
Makefile for new docs
- - - - -
25 changed files:
- Makefile
- debian/control
- debian/piuparts-master.docs
- + debian/piuparts.doc-base
- debian/piuparts.docs
- + debian/piuparts.links
- README.txt → docs/README.txt
- README_pejacevic.txt → docs/README_pejacevic.txt
- README_server.txt → docs/README_server.txt
- + docs/conf.py
- + docs/index.txt
- + docs/license.txt
- + docs/piuparts/conf.py
- + docs/piuparts/index.txt
- piuparts.1.txt → docs/piuparts/piuparts.1.txt
- + docs/piuparts_slave_join/conf.py
- + docs/piuparts_slave_join/index.txt
- piuparts_slave_join.8.txt → docs/piuparts_slave_join/piuparts_slave_join.8.txt
- + docs/piuparts_slave_run/conf.py
- + docs/piuparts_slave_run/index.txt
- piuparts_slave_run.8.txt → docs/piuparts_slave_run/piuparts_slave_run.8.txt
- + docs/piuparts_slave_stop/conf.py
- + docs/piuparts_slave_stop/index.txt
- piuparts_slave_stop.8.txt → docs/piuparts_slave_stop/piuparts_slave_stop.8.txt
- piuparts.py
Changes:
=====================================
Makefile
=====================================
@@ -5,7 +5,7 @@ mandir = $(sharedir)/man
man1dir = $(mandir)/man1
man8dir = $(mandir)/man8
libdir = $(prefix)/lib
-docdir = $(prefix)/share/doc/piuparts/
+docdir = $(prefix)/share/doc/piuparts
site27 = $(libdir)/python2.7/dist-packages
htdocsdir = $(sharedir)/piuparts/htdocs
etcdir = $(prefix)/etc
@@ -23,7 +23,7 @@ endif
SCRIPTS_TEMPLATES = $(wildcard *.in master-bin/*.in slave-bin/*.in conf/*.in)
SCRIPTS_PYTHON_BINARY = $(wildcard *.py master-bin/*.py slave-bin/*.py)
SCRIPTS_GENERATED = $(SCRIPTS_TEMPLATES:.in=) $(SCRIPTS_PYTHON_BINARY:.py=)
-DOCS_GENERATED = piuparts.1 piuparts.1.html piuparts_slave_run.8 piuparts_slave_join.8 piuparts_slave_stop.8 README.html README_server.html
+DOCS_GENERATED = piuparts.1 piuparts_slave_run.8 piuparts_slave_join.8 piuparts_slave_stop.8 docs/build
define placeholder_substitution
sed -r \
@@ -63,31 +63,63 @@ build-master-stamp:
build-doc: $(DOCS_GENERATED)
-README.html: README.txt
- a2x --copy -a toc -a toclevels=3 -f xhtml -r /etc/asciidoc/ README.txt
+docs/build: docs/build
+ sphinx-build docs/ docs/build/
-README_server.html: README_server.txt
- a2x --copy -a toc -a toclevels=3 -f xhtml -r /etc/asciidoc/ README_server.txt
+piuparts.1: docs/piuparts/piuparts.1.txt
+ sphinx-build -b man -c docs/piuparts/ docs/piuparts/ ./
-piuparts.1: piuparts.1.txt
- a2x -f manpage piuparts.1.txt
+piuparts_slave_run.8: docs/piuparts_slave_run/piuparts_slave_run.8.txt
+ sphinx-build -b man -c docs/piuparts_slave_run/ docs/piuparts_slave_run/ ./
-piuparts_slave_run.8: piuparts_slave_run.8.txt
- a2x -f manpage piuparts_slave_run.8.txt
-
-piuparts_slave_join.8: piuparts_slave_join.8.txt
- a2x -f manpage piuparts_slave_join.8.txt
-
-piuparts_slave_stop.8: piuparts_slave_stop.8.txt
- a2x -f manpage piuparts_slave_stop.8.txt
-
-piuparts.1.html: piuparts.1.txt
- a2x --copy -f xhtml piuparts.1.txt
+piuparts_slave_join.8: docs/piuparts_slave_join/piuparts_slave_join.8.txt
+ sphinx-build -b man -c docs/piuparts_slave_join/ docs/piuparts_slave_join/ ./
+piuparts_slave_stop.8: docs/piuparts_slave_stop/piuparts_slave_stop.8.txt
+ sphinx-build -b man -c docs/piuparts_slave_stop/ docs/piuparts_slave_stop/ ./
install-doc: build-stamp
+ # txt
install -d $(DESTDIR)$(docdir)/
- install -m 0644 README.txt README.html README_server.txt README_server.html docbook-xsl.css $(DESTDIR)$(docdir)/
+ install -m 0644 docs/README.txt docs/README_server.txt $(DESTDIR)$(docdir)/
+ # html
+ install -d $(DESTDIR)$(docdir)/html/
+ install -m 0644 docs/build/*.html $(DESTDIR)$(docdir)/html/
+ install -m 0644 docs/build/searchindex.js $(DESTDIR)$(docdir)/html/
+ install -m 0644 docs/build/objects.inv $(DESTDIR)$(docdir)/html/
+ install -d $(DESTDIR)$(docdir)/html/_static/
+ install -m 0644 docs/build/_static/* $(DESTDIR)$(docdir)/html/_static
+ install -d $(DESTDIR)$(docdir)/html/piuparts/
+ install -m 0644 docs/build/piuparts/index.html $(DESTDIR)$(docdir)/html/piuparts/
+ install -m 0644 docs/build/piuparts/piuparts.1.html $(DESTDIR)$(docdir)/html/piuparts/
+ install -d $(DESTDIR)$(docdir)/html/piuparts_slave_run/
+ install -m 0644 docs/build/piuparts_slave_run/index.html $(DESTDIR)$(docdir)/html/piuparts_slave_run/
+ install -m 0644 docs/build/piuparts_slave_run/piuparts_slave_run.8.html $(DESTDIR)$(docdir)/html/piuparts_slave_run/
+ install -d $(DESTDIR)$(docdir)/html/piuparts_slave_join/
+ install -m 0644 docs/build/piuparts_slave_join/index.html $(DESTDIR)$(docdir)/html/piuparts_slave_join/
+ install -m 0644 docs/build/piuparts_slave_join/piuparts_slave_join.8.html $(DESTDIR)$(docdir)/html/piuparts_slave_join/
+ install -d $(DESTDIR)$(docdir)/html/piuparts_slave_stop/
+ install -m 0644 docs/build/piuparts_slave_stop/index.html $(DESTDIR)$(docdir)/html/piuparts_slave_stop/
+ install -m 0644 docs/build/piuparts_slave_stop/piuparts_slave_stop.8.html $(DESTDIR)$(docdir)/html/piuparts_slave_stop/
+ install -d $(DESTDIR)$(docdir)/html/
+ install -m 0644 docs/build/*.html $(DESTDIR)$(docdir)/html/
+ install -m 0644 docs/build/searchindex.js $(DESTDIR)$(docdir)/html/
+ install -m 0644 docs/build/objects.inv $(DESTDIR)$(docdir)/html/
+ install -d $(DESTDIR)$(docdir)/html/_static/
+ install -m 0644 docs/build/_static/* $(DESTDIR)$(docdir)/html/_static
+ install -d $(DESTDIR)$(docdir)/html/piuparts/
+ install -m 0644 docs/build/piuparts/index.html $(DESTDIR)$(docdir)/html/piuparts/
+ install -m 0644 docs/build/piuparts/piuparts.1.html $(DESTDIR)$(docdir)/html/piuparts/
+ install -d $(DESTDIR)$(docdir)/html/piuparts_slave_run/
+ install -m 0644 docs/build/piuparts_slave_run/index.html $(DESTDIR)$(docdir)/html/piuparts_slave_run/
+ install -m 0644 docs/build/piuparts_slave_run/piuparts_slave_run.8.html $(DESTDIR)$(docdir)/html/piuparts_slave_run/
+ install -d $(DESTDIR)$(docdir)/html/piuparts_slave_join/
+ install -m 0644 docs/build/piuparts_slave_join/index.html $(DESTDIR)$(docdir)/html/piuparts_slave_join/
+ install -m 0644 docs/build/piuparts_slave_join/piuparts_slave_join.8.html $(DESTDIR)$(docdir)/html/piuparts_slave_join/
+ install -d $(DESTDIR)$(docdir)/html/piuparts_slave_stop/
+ install -m 0644 docs/build/piuparts_slave_stop/index.html $(DESTDIR)$(docdir)/html/piuparts_slave_stop/
+ install -m 0644 docs/build/piuparts_slave_stop/piuparts_slave_stop.8.html $(DESTDIR)$(docdir)/html/piuparts_slave_stop/
+ # manpages
install -d $(DESTDIR)$(man1dir)
install -m 0644 piuparts.1 $(DESTDIR)$(man1dir)/
gzip -9fn $(DESTDIR)$(man1dir)/piuparts.1
@@ -96,7 +128,6 @@ install-doc: build-stamp
gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_run.8
gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_join.8
gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_stop.8
- install -m 0644 piuparts.1.html $(DESTDIR)$(docdir)/
install-conf: build-stamp
install -d $(DESTDIR)$(etcdir)/piuparts
@@ -175,8 +206,8 @@ check:
clean:
rm -f build-stamp
rm -f build-master-stamp
- rm -f $(DOCS_GENERATED)
- rm -f piuparts.1.xml README.xml README_server.xml docbook-xsl.css piuparts.html
+ rm -fr $(DOCS_GENERATED)
+ rm -fr .doctrees/
rm -f *.pyc piupartslib/*.pyc master-bin/*.pyc slave-bin/*.pyc tests/*.pyc
rm -f $(SCRIPTS_GENERATED)
$(RM) helpers/debiman-piuparts-distill/debiman-piuparts-distill
=====================================
debian/control
=====================================
@@ -7,7 +7,6 @@ Priority: optional
Standards-Version: 4.4.0
Rules-Requires-Root: no
Build-Depends:
- asciidoc,
debhelper-compat (= 11),
dh-python,
python (>= 2.7),
@@ -19,8 +18,8 @@ Build-Depends:
python-yaml,
python-mox3,
python-lzma,
+ python-sphinx,
golang-any,
- xmlto,
Build-Depends-Indep:
git,
Homepage: https://piuparts.debian.org
@@ -35,6 +34,7 @@ Depends:
# keep this list in sync with piuparts-slave-from-git-deps
debootstrap (>= 1.0.89~),
debsums (>= 2.2.2~),
+ libjs-sphinxdoc,
lsb-release,
lsof,
mount,
@@ -160,6 +160,7 @@ Depends:
# this list is synced from piuparts
debootstrap (>= 1.0.89~),
debsums (>= 2.2.2~),
+ libjs-sphinxdoc,
lsb-release,
lsof,
mount,
=====================================
debian/piuparts-master.docs
=====================================
@@ -1,2 +1,2 @@
-README_server.txt
-README_pejacevic.txt
+docs/README_server.txt
+docs/README_pejacevic.txt
=====================================
debian/piuparts.doc-base
=====================================
@@ -0,0 +1,9 @@
+Document: piuparts
+Title: Piuparts Manual
+Author: Holger
+Abstract: This manual describes what Piuparts is, and how it can be used.
+Section: System/Package Management
+
+Format: HTML
+Index: /usr/share/doc/piuparts/html/index.html
+Files: /usr/share/doc/piuparts/html/*.html
=====================================
debian/piuparts.docs
=====================================
@@ -1,4 +1,2 @@
-README.txt
-README.html
-piuparts.1.html
-docbook-xsl.css
+docs/README.txt
+debian/tmp/usr/share/doc/piuparts/html/
=====================================
debian/piuparts.links
=====================================
@@ -0,0 +1,4 @@
+/usr/share/javascript/sphinxdoc/1.0/jquery.js usr/share/doc/piuparts/html/_static/jquery.js
+/usr/share/javascript/sphinxdoc/1.0/underscore.js usr/share/doc/piuparts/html/_static/underscore.js
+/usr/share/javascript/sphinxdoc/1.0/doctools.js usr/share/doc/piuparts/html/_static/doctools.js
+/usr/share/javascript/sphinxdoc/1.0/searchtools.js usr/share/doc/piuparts/html/_static/searchtools.js
=====================================
README.txt → docs/README.txt
=====================================
@@ -1,5 +1,14 @@
-piuparts README
----------------
+.. raw:: html
+
+ <style> .blue {color:navy} </style>
+
+.. role:: blue
+
+
+.. _top1:
+
+README
+======
Author: Lars Wirzenius
Email: <liw at iki.fi>
@@ -8,7 +17,8 @@ After reading this README you probably also want to have a look
at the piuparts manpage, to learn about the available options.
But read this document first!
-== Introduction
+:blue:`Introduction`
+^^^^^^^^^^^^^^^^^^^^
piuparts is a tool for testing that .deb packages can be
installed, upgraded, and removed without problems. The
@@ -24,16 +34,17 @@ since the Lenny release in 2009, though responsible maintainers
run piuparts locally before uploading packages to the archive.
-== How to use piuparts in 5 minutes
+:blue:`How to use piuparts in 5 minutes`
-=== Basic Usage
+
+:blue:`Basic Usage`
+^^^^^^^^^^^^^^^^^^^
Testing your packages with piuparts is as easy as typing at the
-console prompt:
+console prompt:::
+
+ piuparts sm_0.6-1_i386.deb
-----
-# piuparts sm_0.6-1_i386.deb
-----
Note that in order to work, piuparts has to be executed as user
root, so you need to be logged as root or use 'sudo'.
@@ -42,30 +53,29 @@ This will create a sid chroot with debootstrap, where it'll test
your package.
If you want to test your package in another release, for example,
-testing, you can do so with:
+testing, you can do so with:::
+
+ # piuparts ./sm_0.6-1_i386.deb -d testing
-----
-# piuparts ./sm_0.6-1_i386.deb -d testing
-----
By default, this will read the first mirror from your
'/etc/apt/sources.list' file. If you want to specify a different
-mirror you can do it with the option '-m':
+mirror you can do it with the option '-m':::
+
+ # piuparts ./sm_0.6-1_i386.deb -m http://ftp.de.debian.org/debian
-----
-# piuparts ./sm_0.6-1_i386.deb -m http://ftp.de.debian.org/debian
-----
It's possible to use -d more than once. For example, to do a first
installation in stable, then upgrade to testing, then upgrade to
-unstable and then upgrade to the local package use this:
+unstable and then upgrade to the local package use this:::
+
+ # piuparts -d stable -d testing -d unstable ./sm_0.6-1_i386.deb
-----
-# piuparts -d stable -d testing -d unstable ./sm_0.6-1_i386.deb
-----
+:ref:`top <top1>`
-=== Some tips
+:blue:`Some tips`
+^^^^^^^^^^^^^^^^^
piuparts also has a manpage, where all available options are explained.
@@ -77,47 +87,48 @@ Piuparts has the option of using a tarball as the contents of the
initial chroot, instead of building a new one with debootstrap. A
easy way to use this option is use a tarball created with
pbuilder. If you are not a pbuilder user, you can create this
-tarball with the command (again, as root):
+tarball with the command (again, as root):::
-----
-# pbuilder --create
-----
+ # pbuilder --create
-then you only have to remember to update this tarball with:
-----
-# pbuilder --update
-----
+then you only have to remember to update this tarball with:::
-To run piuparts using this tarball:
+ # pbuilder --update
-----
-# piuparts -p ./sm_0.6-1_i386.deb
-----
-If you want to use your own pre-made tarball:
+To run piuparts using this tarball:::
+
+ # piuparts -p ./sm_0.6-1_i386.deb
+
+
+If you want to use your own pre-made tarball:::
+
+ # piuparts --basetgz=/path/to/my/tarball.tgz ./sm_0.6-1_i386.deb
-----
-# piuparts --basetgz=/path/to/my/tarball.tgz ./sm_0.6-1_i386.deb
-----
Piuparts also has the option of using a tarball as the contents
of the initial chroot, instead of building a new one with
pbuilder. You can save a tarball for later use with the '-s'
-('--save') piuparts option. Some people like this, others prefer
+('*-*-save') piuparts option. Some people like this, others prefer
to only have to maintain one tarball. Read the piuparts manpage
about the '-p', '-b' and '-s' options
While pbuilder itself supports using cdebootstrap, this is not
fully supported by piuparts: You will need to use debootstrap
-or use the '--warn-on-debsums-errors' option for piuparts and then
+or use the '*-*-warn-on-debsums-errors' option for piuparts and then
you will still see spurious warnings in the log.
-=== Piuparts tests
+
+:ref:`top <top1>`
+
+:blue:`Piuparts tests`
+^^^^^^^^^^^^^^^^^^^^^^
By default, piuparts does two tests:
. Installation and purging test.
+
. Installation, upgrade and purging tests.
The first test installs the package in a minimal chroot, removes
@@ -127,11 +138,15 @@ version (deb files given to piuparts in the input), removes and
purges.
If you only want to perfom the first test, you can use the
-option: '--no-upgrade-test'
+option: '*-*-no-upgrade-test'
+
+
+:ref:`top <top1>`
-=== Testing packages in the config-files-remaining state
+:blue:`Testing packages in the config-files-remaining state`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The --install-remove-install option modifies the three piuparts
+The *-*-install-remove-install option modifies the three piuparts
tests in order to test package installation while config files
from a previous installation are remaining, but the package itself
was removed inbetween.
@@ -139,21 +154,26 @@ This exercises different code paths in the maintainer scripts.
. Installation and purging test: install, remove, install again
and purge.
+
. Installation, upgrade and purging test: install the old version,
remove, install the new version and purge.
+
. Distupgrade test: install the version from the first
distribution, remove, distupgrade to the last distribution,
install the new version.
-=== Analyzing piuparts results
+
+:ref:`top <top1>`
+
+:blue:`Analyzing piuparts results`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When piuparts finishes all the tests satisfactorily, you will get
-these lines as final output:
+these lines as final output:::
+
+ 0m39.5s INFO: PASS: All tests.
+ 0m39.5s INFO: piuparts run ends.
-----
-0m39.5s INFO: PASS: All tests.
-0m39.5s INFO: piuparts run ends.
-----
Anyway, it is a good idea to read the whole log in order to
discover possible problems that did not stop the piuparts
@@ -163,11 +183,15 @@ If you do not get those lines, piuparts has failed during a test.
The latest lines should give you a pointer to the problem with
your package.
-== Custom scripts with piuparts
+
+:ref:`top <top1>`
+
+:blue:`Custom scripts with piuparts`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You can specify several custom scripts to be run inside piuparts.
You have to store them in a directory and give it as argument to
-piuparts: '--scriptsdir=/dir/with/the/scripts'
+piuparts: '*-*-scriptsdir=/dir/with/the/scripts'
This option can be given multiple times. The scripts from all
directories will be merged together (and later ones may overwrite
earlier scripts with the same filename).
@@ -194,17 +218,24 @@ Depending on the current test, the variable PIUPARTS_TEST is set
to
. 'install' (installation and purging test),
+
. 'upgrade' (installation, upgrade and purging tests) or
+
. 'distupgrade'.
+
During the 'upgrade' and 'distupgrade' tests, the variable
PIUPARTS_PHASE is set to one of the following values:
. 'install' while initially installing the packages from the
repository,
+
. 'upgrade' when upgrading to the .debs,
+
. 'distupgrade' while reinstalling the packages after
'apt-get dist-upgrade' to ensure they were not removed accidently
+
+
During the 'install' test, the PIUPARTS_PHASE variable is set to
'install'.
@@ -216,13 +247,13 @@ The following prefixes for scripts are recognized:
'post_chroot_unpack' - after the chroot has been unpacked/debootrapped.
Before the chroot gets updated/dist-upgraded initially.
-'post_setup_' - after the *setup* of the chroot is finished.
+'post_setup\_' - after the *setup* of the chroot is finished.
Before metadata of the chroot is recorded for later comparison.
-'pre_test_' - at the beginning of each test. After metadata of
+'pre_test\_' - at the beginning of each test. After metadata of
the chroot was recorded for later comparison.
-'is_testable_' - before *installing* your package. If this script
+'is_testable\_' - before *installing* your package. If this script
returns a non-zero return value, the installation of the package
will be skipped. With a return value of 1 the test will be reported
as successful, but with a return value if 2 it will be reported as
@@ -233,59 +264,62 @@ ressources (e.g. some downloader packages) or are broken beyond
repair (e.g. buggy packages in archived releases). Use the return
value of 2 for seriously broken packages that can break piuparts.
-'pre_install_' - before *installing* your package. Depending on
+'pre_install\_' - before *installing* your package. Depending on
the test, this may be run multiple times. The PIUPARTS_TEST and
PIUPARTS_PHASE variables can be used to distinguish the cases.
-'post_install_' - after *installing* your package and its
+'post_install\_' - after *installing* your package and its
dependencies. Depending on the test, this may be run multiple
times. The PIUPARTS_TEST and PIUPARTS_PHASE variables can be used
to distinguish the cases.
-'pre_remove_' - before *removing* your package.
+'pre_remove\_' - before *removing* your package.
Depending on the test, this may be run multiple times.
-'post_remove_' - after *removing* your package.
+'post_remove\_' - after *removing* your package.
Depending on the test, this may be run multiple times.
-'post_purge_' - after *purging* your package.
+'post_purge\_' - after *purging* your package.
Depending on the test, this may be run multiple times.
-'post_test_' - at the end of each test. Right before performing
+'post_test\_' - at the end of each test. Right before performing
final checks and comparing the chroot with the reference chroot
metadata.
-'pre_distupgrade_' - before *upgrading* the chroot to the *next
+'pre_distupgrade\_' - before *upgrading* the chroot to the *next
distribution*. The next distribution is available in the variable
PIUPARTS_DISTRIBUTION_NEXT.
-'post_distupgrade_' - after *upgrading* the chroot to the *next
+'post_distupgrade\_' - after *upgrading* the chroot to the *next
distribution*. The previous distribution is available in the
variable PIUPARTS_DISTRIBUTION_PREV.
-=== Example custom scripts:
+:ref:`top <top1>`
-'$ cat post_install_numbers'
-----
-#!/bin/bash
+:blue:`Example custom scripts`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-number=`dpkg -l | wc -l`
-echo "There are $number packages installed."
-exit 0
-----
+.. code-block:: text
-'$ cat post_setup_package'
-----
-#!/bin/sh
+ '$ cat post_install_numbers'
+ #!/bin/bash
-echo "$PIUPARTS_OBJECTS will now get tested."
-exit 0
-----
+ number=`dpkg -l | wc -l`
+ echo "There are $number packages installed."
+ exit 0
-== Distributed testing
+ '$ cat post_setup_package'
+ #!/bin/sh
-This is described in README_server.txt.
+ echo "$PIUPARTS_OBJECTS will now get tested."
+ exit 0
-// vim: set filetype=asciidoc:
+
+:ref:`top <top1>`
+
+:blue:`Distributed testing`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This is described in README_server.txt.
=====================================
README_pejacevic.txt → docs/README_pejacevic.txt
=====================================
@@ -1,5 +1,19 @@
-Notes about the piuparts installation on pejacevic.debian.org and it's slave(s)
-===============================================================================
+.. raw:: html
+
+ <style> .blue {color:navy} </style>
+
+.. role:: blue
+
+
+.. _top3:
+
+
+README_perjacevic
+=================
+
+
+:blue:`Notes about the piuparts installation on pejacevic.debian.org and it's slave(s)`
+
This document describes the setup for https://piuparts.debian.org - it's used
for reference for the Debian System Administrators (DSA) as well as a guide
@@ -8,7 +22,8 @@ installed from git. For regular installations we recommend to use the
piuparts-master and piuparts-slaves packages as described in
/usr/share/doc/piuparts-master/README_server.txt
-== Installation
+:blue:`Installation`
+^^^^^^^^^^^^^^^^^^^^
piuparts.debian.org is a setup running on three systems:
@@ -18,7 +33,9 @@ piuparts.debian.org is a setup running on three systems:
actual tests.
* piu-slave-ubc-01.debian.org, running four piuparts-slave nodes as well.
-=== piuparts installation from source
+
+:blue:`piuparts installation from source`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* basically, apt-get build-dep piuparts - in reality both systems get their
package configuration from git.debian.org/git/mirror/debian.org.git
@@ -35,108 +52,129 @@ piuparts.debian.org is a setup running on three systems:
* `sudo ln -s /srv/piuparts.debian.org/etc/piuparts /etc/piuparts`
* See below for further user setup instructions.
-=== User setup
+
+:ref:`top <top3>`
+
+:blue:`User setup`
+^^^^^^^^^^^^^^^^^^
On pejacevic the piuparts-master user piupartsm needs to be created, on
piu-slave-bm-a and piu-slave-ubc-01 a piupartss user is needed for the slave.
Both are members of the group piuparts and '/srv/piuparts.debian.org' needs to
be chmod 2775 and chown piuparts(sm):piuparts.
-==== '~/bashrc' for piupartsm and piupartss
-Do this for the piupartsm user on pejacevic and piupartss on the slave(s):
+:ref:`top <top3>`
+
+:blue:`'~/bashrc' for piupartsm and piuparts`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Do this for the piupartsm user on pejacevic and piupartss on the slave(s):::
+
+ piupartsm at pejacevic$ cat >> ~/.bashrc <<-EOF
-----
-piupartsm at pejacevic$ cat >> ~/.bashrc <<-EOF
+ # added manually for piuparts
+ umask 0002
+ export PATH="~/bin:\$PATH"
+ EOF
-# added manually for piuparts
-umask 0002
-export PATH="~/bin:\$PATH"
-EOF
-----
-==== set up ssh pubkey authentification
+:ref:`top <top3>`
+
+:blue:`set up ssh pubkey authentification`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Then create an SSH keypair for piupartss and put it into
'/etc/ssh/userkeys/piupartsm' on pejacevic, so the piupartss user can login
-with ssh and run only piuparts-master. Restrict it like this:
+with ssh and run only piuparts-master. Restrict it like this:::
+
+ $ cat /etc/ssh/userkeys/piupartsm
+ command="/srv/piuparts.debian.org/share/piuparts/piuparts-master",from="2001:41c8:1000:21::21:7,5.153.231.7",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa ...
-----
-$ cat /etc/ssh/userkeys/piupartsm
-command="/srv/piuparts.debian.org/share/piuparts/piuparts-master",from="2001:41c8:1000:21::21:7,5.153.231.7",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa ...
-----
-=== Setup sudo for the slave(s)
+:ref:`top <top3>`
+
+:blue:`Setup sudo for the slave(s)`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is actually done by DSA:
-==== '/etc/sudoers' for piu-slave-bm-a and piu-slave-ubc-01
+ '/etc/sudoers' for piu-slave-bm-a and piu-slave-ubc-01:
+
+.. code-block:: text
-----
-# The piuparts slave needs to handle chroots.
-piupartss ALL = NOPASSWD: /usr/sbin/piuparts *, \
- /bin/umount /srv/piuparts.debian.org/tmp/tmp*, \
- /usr/bin/test -f /srv/piuparts.debian.org/tmp/tmp*, \
- /usr/bin/rm -rf --one-file-system /srv/piuparts.debian.org/tmp/tmp*
-----
+ # The piuparts slave needs to handle chroots.
+ piupartss ALL = NOPASSWD: /usr/sbin/piuparts *, \
+ /bin/umount /srv/piuparts.debian.org/tmp/tmp*, \
+ /usr/bin/test -f /srv/piuparts.debian.org/tmp/tmp*, \
+ /usr/bin/rm -rf --one-file-system /srv/piuparts.debian.org/tmp/tmp*
-=== Apache configuration
-Any other webserver will do but apache is used on pejacevic (and maintained by DSA):
+:ref:`top <top3>`
-----
-<VirtualHost *:80>
- ServerName piuparts.debian.org
+:blue:`Apache configuration`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- ServerAdmin debian-admin at debian.org
+Any other webserver will do but apache is used on pejacevic (and maintained by DSA):::
- ErrorLog /var/log/apache2/piuparts.debian.org-error.log
- CustomLog /var/log/apache2/piuparts.debian.org-access.log combined
+ <VirtualHost *:80>
+ ServerName piuparts.debian.org
- DocumentRoot /srv/piuparts.debian.org/htdocs
- AddType text/plain .log
- AddDefaultCharset utf-8
+ ServerAdmin debian-admin at debian.org
- HostnameLookups Off
- UseCanonicalName Off
- ServerSignature On
- <IfModule mod_userdir.c>
- UserDir disabled
- </IfModule>
-</VirtualHost>
-# vim:set syn=apache:
-----
+ ErrorLog /var/log/apache2/piuparts.debian.org-error.log
+ CustomLog /var/log/apache2/piuparts.debian.org-access.log combined
-== Running piuparts
+ DocumentRoot /srv/piuparts.debian.org/htdocs
+ AddType text/plain .log
+ AddDefaultCharset utf-8
-=== Updating the piuparts installation
+ HostnameLookups Off
+ UseCanonicalName Off
+ ServerSignature On
+ <IfModule mod_userdir.c>
+ UserDir disabled
+ </IfModule>
+ </VirtualHost>
-Updating the master, pejacevic.debian.org:
-----
-holger at pejacevic~$ sudo su - piupartsm update-piuparts-master-setup develop origin
-----
+:ref:`top <top3>`
-Updating the slave(s), for example on piu-slave-bm-a.debian.org:
+:blue:`Running piuparts`
+^^^^^^^^^^^^^^^^^^^^^^^^
-----
-holger at piu-slave-bm-a~$ sudo su - piupartss update-piuparts-slave-setup develop origin
-----
+Updating the piuparts installation
-=== Running piuparts
+Updating the master, pejacevic.debian.org:::
+
+ holger at pejacevic~$ sudo su - piupartsm update-piuparts-master-setup develop origin
+
+
+Updating the slave(s), for example on piu-slave-bm-a.debian.org:::
+
+ holger at piu-slave-bm-a~$ sudo su - piupartss update-piuparts-slave-setup develop origin
+
+
+:ref:`top <top3>`
+
+:blue:`Running piuparts`
+^^^^^^^^^^^^^^^^^^^^^^^^
When running piuparts in master/slave mode, the master is never run by itself,
instead it is always started by the slave(s).
-==== Starting and stopping the slaves
+
+:ref:`top <top3>`
+
+:blue:`Starting and stopping the slaves`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run the following script under *your* user account to start four instances of
piuparts-slave on pejacevic, piuparts-master will be started automatically by
-the slaves.
+the slaves.::
+
+ holger at piu-slave-bm-a:~$ sudo -u piupartss -i slave_run
-----
-holger at piu-slave-bm-a:~$ sudo -u piupartss -i slave_run
-----
There are several cronjobs installed via '~piupartsm/crontab' and
'~piupartss/crontab') to monitor both master and slave as well as the hosts
@@ -150,22 +188,33 @@ but that may leave temporary directories and processes around.
See the 'piuparts_slave_run (8)' manpage for more information on 'slave_run'.
-==== Joining an existing slave session
-Run the following script under *your* user account:
+:ref:`top <top3>`
+
+:blue:`Joining an existing slave session`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Run the following script under *your* user account:::
+
+ holger at pejacevic:~$ sudo -u piupartss -i slave_join
-----
-holger at pejacevic:~$ sudo -u piupartss -i slave_join
-----
See the 'piuparts_slave_join (8)' manpage for more information on 'slave_join'.
-=== Generating reports for the website
+
+:ref:`top <top3>`
+
+:blue:`Generating reports for the website`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'piuparts-report' is run daily at midnight and at noon from
'~piupartsm/crontab' on pejacevic.
-=== Cronjobs to aid problem spotting
+
+:ref:`top <top3>`
+
+:blue:`Cronjobs to aid problem spotting`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Some cronjobs to aid problem spotting reside in '~piupartsm/bin/' and are run
daily by '~piupartsm/crontab'.
@@ -178,10 +227,11 @@ daily by '~piupartsm/crontab'.
More checks should be added as we become aware of them.
-== Authors
+:ref:`top <top3>`
+
+:blue:`Authors`
+^^^^^^^^^^^^^^^
Last updated: February 2017
Holger Levsen <holger at layer-acht.org>
-
-// vim: set filetype=asciidoc:
=====================================
README_server.txt → docs/README_server.txt
=====================================
@@ -1,10 +1,20 @@
-piuparts README_server
-----------------------
+.. raw:: html
+
+ <style> .blue {color:navy} </style>
+
+.. role:: blue
+
+.. _top:
+
+README_server
+-------------
Authors: Lars Wirzenius, Holger Levsen and Andreas Beckmann
Email: <debian-qa at lists.debian.org>
-=== piuparts runs itself and other stuff as root
+
+:blue:`piuparts runs itself and other stuff as root`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
WARNING: Please note that running piuparts on unknown packages is somewhat
risky, to say the least. There are security implications that you want to
@@ -14,7 +24,8 @@ access.
You have been warned.
-== piuparts in master/slave mode
+:blue:`piuparts in master/slave mode`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
As part of the quality assurance efforts of Debian, piuparts is
run on the Debian package archive. This requires a lot of
@@ -28,57 +39,80 @@ of packages it has tested already, and to get more work.
To set this up for yourself, the following steps should suffice:
-=== Setting up the master
+:blue:`Setting up the master`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
. Pick a machine for running the piuparts master. It cannot be a chroot, but
basically any real (or properly virtualized) Debian system is good enough.
+
. Install the package 'piuparts-master' on it.
+
. Create an account for the master, if you install the piuparts-master package
it will automatically create a 'piupartsm' user for you.
+
. Configure '/etc/piuparts/piuparts.conf' appropriately.
+
. Create the master and backup directories as defined in that 'piuparts.conf'
and make sure master owns them.
+
. To generate the web reports, configure your webserver as needed. If you
want to use the supplied 'conf-available/piuparts-master.conf' for apache2,
you will need to do two things: a.) enable it and b.) link the htdocs
directory defined in 'piuparts.conf' to '/var/lib/piuparts/htdocs'
(thats the DocumentRoot as defined in 'conf-available/piuparts-master.conf').
-=== Setting up the slave(s)
+
+:ref:`top <top>`
+
+:blue:`Setting up the slave(s)`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
. Pick one or more machines for running one or several piuparts slaves. You
can use the machine which is running the master also for running a slave.
It's also perfectly ok to run several slaves on a multi-core machine which
has lots of IO available.
+
. Install the package 'piuparts-slave' on it.
+
. Configure '/etc/piuparts/piuparts.conf' appropriately - if master
and slave share the machine, they also share the config file.
If you want to run more than one slave on a machine, set the slave-count
parameter as desired. By default one slave will be run.
+
. Create the slave and tmp directories as defined in that 'piuparts.conf' and
make sure the slave can read and write there.
+
. Create an account for the slave. This must be different from the master
account. The piuparts-slave package will create a 'piupartss' user on
installation. Whether you run one or many slaves, they run with the same
user.
+
. Create an ssh keypair for the slave. No passphrase. If you installed the
piuparts-slave package this was done automatically and the public key can
be found in '/var/lib/piuparts/piupartss/.ssh/id_rsa.pub'
+
. Copy the slave's public key to the master's '.ssh/authorized_keys', for
an installation from packages this will be
'/var/lib/piuparts/piupartsm/.ssh/authorized_keys'.
The key should be restricted to only allow running 'piuparts-master'
by prefixing it with
'command="/usr/share/piuparts/piuparts-master",no-port-forwarding,no-X11-forwarding,no-agent-forwarding '
+
. Configure sudo to allow the slave account to run several commands as root
as root without password. See the example provided in
'/usr/share/doc/piuparts-slave/examples/' to learn which.
. Run '/usr/bin/piuparts_slave_run' and 'piuparts_slave_join' to actually
let the slave(s) run and to join their sessions.
+
. Run '/usr/bin/piuparts_slave_stop' to stop all piuparts-slaves on a host.
+
. The logs go into the master account, into subdirectories.
-=== Tuning the setup
+
+:ref:`top <top>`
+
+:blue:`Tuning the setup`
+^^^^^^^^^^^^^^^^^^^^^^^^
The piuparts-server package installs a piuparts server along the lines of
https://piuparts.debian.org/.
@@ -98,13 +132,20 @@ There are maintenance cron jobs defined in
piuparts-report will create static html pages, defaulting to
http://localhost/piuparts to be served by any webserver.
-=== Setup from GIT
+
+:ref:`top <top>`
+
+:blue:`Setup from GIT`
+^^^^^^^^^^^^^^^^^^^^^^
https://piuparts.debian.org has been set up directly from GIT, this is
described in '/usr/share/doc/piuparts-master/README_pejacevic.txt'.
-== Distributed piuparts testing protocol
+:ref:`top <top>`
+
+:blue:`Distributed piuparts testing protocol`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The slave machine and the piuparts-master program communicate
using a simplistic line based protocol. SSH takes care of
@@ -128,21 +169,20 @@ the same as for a simple one, the additional lines are prefixed
with a space, and followed by a line containing only a period.
A sample session (">>" indicates what the slave sends, "<<" what
-the master responds with):
-
-----
-<< hello
->> section sid
-<< ok
->> pass liwc 1.2.3-4
->> The piuparts
->> log file comes
->> here
->> .
-<< ok
->> reserve
-<< ok vorbisgain 2.3-4
-----
+the master responds with)::
+
+ << hello
+ >> section sid
+ << ok
+ >> pass liwc 1.2.3-4
+ >> The piuparts
+ >> log file comes
+ >> here
+ >> .
+ << ok
+ >> reserve
+ << ok vorbisgain 2.3-4
+
Here the slave first reports a successful test of package liwc,
version 1.2.3-4, and sends the piuparts log file for it. Then it
@@ -152,38 +192,38 @@ vorbisgain, version 2.3-4.
The communication always starts with the master saying "hello".
The slave shall not speak until the master has spoken.
-Commands and responses in this protocol:
+Commands and responses in this protocol::
+
+ Command: section <string>
+ Success: ok
+ Failure: error
+ Failure: busy
+
-----
-Command: section <string>
-Success: ok
-Failure: error
-Failure: busy
-----
Slave asks master to select the given section.
This must be the very first command sent by the slave, but may
be repeated later on to switch between sections.
It will return "error" if the section is unknown and "busy" if
it is currently processed by another master instance. If the
section command fails, no other commands than "section" will be
-allowed until one succeeds.
+allowed until one succeeds.::
+
+ Command: recycle
+ Success: ok
+ Failure: error
+
-----
-Command: recycle
-Success: ok
-Failure: error
-----
Slave asks master to enable logfile recycling mode. In this mode
logfiles that have been marked for rechecking will be deleted
and reissued in subsequent "reserve" commands. The "recycle"
command must be issued before the first "reserve" (or "status")
command. It will return "error" if no more logfiles are marked
-for rechecking or the command is issued too late.
+for rechecking or the command is issued too late.::
+
+ Command: idle
+ Success: ok <int>
+
-----
-Command: idle
-Success: ok <int>
-----
Slave asks master whether it remembers having no packages
available at a previous "reserve" command. Returns 0 (not known
to be idle or timeout expired) or the number of seconds until
@@ -192,61 +232,57 @@ should be given after "recycle" and logfile submission, but
before "reserve" or "status" commands. If the slave closes the
connection without issuing a "reserve" or "status" command, the
expensive Packages file parsing and status computation will be
-skipped.
+skipped.::
+
+ Command: reserve
+ Success: ok <packagename> <packageversion>
+ Failure: error
+
-----
-Command: reserve
-Success: ok <packagename> <packageversion>
-Failure: error
-----
Slave asks master to reserve a package (a particular version of
it) for the slave to test. The slave may reserve any number of
packages to test. If the transaction fails, there are no more
packages to test, and the slave should disconnect, wait some time
-and try again.
+and try again.::
+
+ Command: unreserve <packagename> <packageversion>
+ Success: ok
-----
-Command: unreserve <packagename> <packageversion>
-Success: ok
-----
Slave informs master it cannot test the desired version of a
-package and the package should be rescheduled by the master.
+package and the package should be rescheduled by the master.::
-----
-Command: pass <packagename> <packageversion>
+ Command: pass <packagename> <packageversion>
log file contents
- .
-Success: ok
-----
+ .
+ Success: ok
+
Slave reports that it has tested a particular version of a
package and that the package passed all tests. Master records
-this and stores the log file somewhere suitable.
+this and stores the log file somewhere suitable.::
-----
-Command: fail <packagename> <packageversion>
+ Command: fail <packagename> <packageversion>
log file contents
- .
-Success: ok
-----
+ .
+ Success: ok
+
-Same as "pass", but package failed one or more tests.
+Same as "pass", but package failed one or more tests.::
-----
-Command: untestable <packagename> <packageversion>
+ Command: untestable <packagename> <packageversion>
log file contents
- .
-Success: ok
-----
+ .
+ Success: ok
+
Slave informs master it cannot test the desired version of a
-package (perhaps it went away from the mirror?).
+package (perhaps it went away from the mirror?).::
+
+ Command: status
+ Success: ok <package-state>=<count> <package-state>=<count>...
+
-----
-Command: status
-Success: ok <package-state>=<count> <package-state>=<count>...
-----
Slave asks master to report the number of packages in all
different states. The "status" command should only be issued
after all logs have been transmitted ("pass", "fail", and
@@ -261,60 +297,68 @@ The master may likewise abort, without an error message, if the
slave sends garbage, or sends too much data.
-== piuparts.conf configuration file
+:ref:`top <top>`
+
+:blue:`piuparts.conf configuration file`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
piuparts-master, piuparts-slave and piuparts-report share the
configuration file '/etc/piuparts/piuparts.conf'. The syntax is
defined by the Python ConfigParser class, and is, briefly, like
-this:
+this:::
+
-----
[master]
foo = bar
-----
-=== global configuration
+
+:ref:`top <top>`
+
+:blue:`Global Configuration`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
These settings have to be placed in the [global] section and are
used for all further sections.
-* "sections" defaults to sid and defines which sections should be
+.. code-block:: text
+
+ * "sections" defaults to sid and defines which sections should be
processed in master-slave mode. Each section defined here has to
have a section with the section specific settings explained below.
The first section defined should always be sid, because the data
from first section a package is in is used for the source package
html report.
-* "basetgz-sections" is an additional list of sections that are only
+ * "basetgz-sections" is an additional list of sections that are only
used to maintain the basetgz tarballs and will therefore be ignored
by all scripts except piuparts-slave.
This list is empty by default.
-* "master-host" is the host where the master exists. The slave will
+ * "master-host" is the host where the master exists. The slave will
give this host to ssh. This option is mandatory.
-* "master-user" is the username of the master. The slave will log in
+ * "master-user" is the username of the master. The slave will log in
using this username. This option is mandatory.
-* "master-directory" is the directory where the master keeps its
+ * "master-directory" is the directory where the master keeps its
files. Can be relative to the master's home directory.
-* "slave-directory" is the directory where the slave keeps its
+ * "slave-directory" is the directory where the slave keeps its
files. Can be relative to the slave's home directory.
-* "slave-count" is the number of concurrent slaves to start.
+ * "slave-count" is the number of concurrent slaves to start.
Default: "1".
-* "slave-flush-interval" is an interval (in seconds) of processing a
+ * "slave-flush-interval" is an interval (in seconds) of processing a
section which has more queued work after that the slave will connect
to the master and flush pending logfiles before resuming the section.
Default: "0", i.e. disabled.
-* "output-directory" is the directory where piuparts-report places
+ * "output-directory" is the directory where piuparts-report places
the logfiles, generated html files, charts, ... that can be
served by a webserver.
-* "backup-directory" is the directory where the prepare_backup
+ * "backup-directory" is the directory where the prepare_backup
script will place copies of the history data needed to generate the
plots. This directory should be included in system backups while
the logfiles and html pages in 'master-directory' and
@@ -322,18 +366,18 @@ used for all further sections.
effort and can be excluded from backups. By default this is
undefined meaning that no backups of the history data will be made.
-* "web-host" is the domain name for the reporting web server.
+ * "web-host" is the domain name for the reporting web server.
Default: "piuparts.debian.org".
-* "doc-root" is the location where the webserver will serve the
+ * "doc-root" is the location where the webserver will serve the
piuparts report from. Default: "/".
-* "slave-load-max" specifies the system load limit when
+ * "slave-load-max" specifies the system load limit when
piuparts-slave will enter sleep mode. Operation will be resumed
after load drops below 'slave-load-max - 1.0'. Floating point
value. Defaults to 0 (= disabled).
-* "proxy" sets the http_proxy that will be used for fetching
+ * "proxy" sets the http_proxy that will be used for fetching
Packages files etc. (by master/slave/report) and .debs etc. (by
piuparts). This will override a http_proxy setting in the
environment. By default (no value being set) the http_proxy
@@ -343,75 +387,82 @@ used for all further sections.
"http://localhost:3128") due to the high bandwidth consumption of
piuparts and repeated downloading of the same files.
-=== section specific configuration
+
+:ref:`top <top>`
+
+:blue:`section specific configuration`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The section specific settings will be reloaded each time a section
is being run. All these keys can be specified in the [global]
section, too, and will serve as defaults for all other sections
(overriding the builtin defaults).
-* "master-command" is the command to run on master-host to start
+.. code-block:: text
+
+ * "master-command" is the command to run on master-host to start
the master. Better then setting it here is actually setting it in
'~piupartsm/.ssh/authorized_keys' to limit ssh access to that
single command. The key should be restricted to only allow running
'piuparts-master' by prefixing it with
'command="/usr/share/piuparts/piuparts-master",no-pty,no-port-forwarding'.
-* "idle-sleep" is the length of time the slave should wait before
+ * "idle-sleep" is the length of time the slave should wait before
querying the master again if the master didn't have any new
packages to test. In seconds, so a value of 300 would mean five
minutes, and that seems to be a good value for a repo that gets
updated frequently. The default is 300 seconds.
-* "max-tgz-age" is used to specify the maximum age (in seconds)
+ * "max-tgz-age" is used to specify the maximum age (in seconds)
after which basesystem tarballs will be recreated. If recreation
fails, the old tarball will be used again. The default is 2592000
seconds, which is 30 days. A value of 0 disables recreation.
-* "min-tgz-retry-delay" is used to specify the minimum time (in
+ * "min-tgz-retry-delay" is used to specify the minimum time (in
seconds) between attempts to recreate a tarball which was created
more than "max-tgz-age" seconds ago. The default is 21600 seconds,
which is 6h.
-* "log-file" is the name of a file to where the master should write
+ * "log-file" is the name of a file to where the master should write
its log messages. In the default configuration file it is
"$SECTION/master.log". To disable logging, set it to "/dev/null".
+
The global "log-file" setting (defaulting to master-error.log) is
used for logging stderr output from piuparts-master. This logfile
will be placed in the 'master-directory' and has the PID appended.
-* "setarch" contains arguments for an optional 'setarch' command
+ * "setarch" contains arguments for an optional 'setarch' command
that can be prepended to the 'piuparts-command'. Recommended value
for running 'i386' tests on an 'amd64' host is 'linux32'.
-* "piuparts-command" is the command the slave uses to start
+ * "piuparts-command" is the command the slave uses to start
piuparts. It should include 'sudo' if necessary so that piuparts
runs with sufficient priviledges to do its testing (and that
means root priviledges). This command should be given in the
[global] section and include all flags that are common for all
sections.
-* "piuparts-flags" are appended to "piuparts-command" and should
+ * "piuparts-flags" are appended to "piuparts-command" and should
contain the section-specific flags.
-* "tmpdir" is the scratch area where piuparts will create the
+ * "tmpdir" is the scratch area where piuparts will create the
chroots. Note: the filesystem where this is located must not be
mounted with the nodev or nosuid options. This is a mandatory
setting with no default. The scripts that are monitoring this
directory for leftover mountpoints and chroots only evaluate the
[global] setting.
-* "description" is a synopsis of the test used in the report. A
+ * "description" is a synopsis of the test used in the report. A
default description will be generated if this is not set or will
be prepended (appended) if the description starts (ends) with
'+'.
-* "mirror" tells the slave which mirror it is to use. The slave
+ * "mirror" tells the slave which mirror it is to use. The slave
gives this to piuparts when it runs it. The URLs for Packages and
Sources files will be generated from this setting, too. Default
(for fetching Packages/Sources): "http://deb.debian.org/debian".
-* "distro" is the distribution the slave should tell piuparts to
+ * "distro" is the distribution the slave should tell piuparts to
use for basic install/purge testing. It is also possible to use a
"partial" distribution as defined in distros.conf. No default.
If 'upgrade-test-distros' is set, this selects the distribution
@@ -426,12 +477,12 @@ section, too, and will serve as defaults for all other sections
'upgrade-test-distros'). This reference basetgz can be shared
between several sections without being affected by their flags.
-* "area" is the archive area used to get the list of packages to
+ * "area" is the archive area used to get the list of packages to
be tested. The Packages file for this area will be loaded. The
default is "main" and the possible values depend on the vendor,
for Debian these are main, contrib, non-free.
-* "components" sets the archive areas that will be available when
+ * "components" sets the archive areas that will be available when
testing the packages selected via the "area" setting. These will
be enabled in the generated sources.list. Defaults to "", which
means all components will be available. A useful setting is
@@ -440,19 +491,19 @@ section, too, and will serve as defaults for all other sections
non-free usually requires additional or all components to be
available.
-* "arch" is the architecture to use.
- Default: dpkg --print-architecture.
+ * "arch" is the architecture to use.
+ Default: dpkg *-*-print-architecture.
-* "chroot-tgz" is the name of the file the slave should use for
+ * "chroot-tgz" is the name of the file the slave should use for
the tarball containing the base chroot. The default name is
generated automatically from the "distro" or "upgrade-test-distros"
setting. If the tarball doesn't exist, the slave creates it.
-* "basetgz-directory" is the directory where "chroot-tgz" (or the
+ * "basetgz-directory" is the directory where "chroot-tgz" (or the
automatically selected default name) is located. The default is
'.'.
-* "chroot-meta-auto" (global, section) is a file in
+ * "chroot-meta-auto" (global, section) is a file in
"chroot-meta-directory" (falling back to the section directory)
where the slave will store cached chroot meta data for
the reference target chroot in distupgrade tests. This speeds up
@@ -462,10 +513,10 @@ section, too, and will serve as defaults for all other sections
versions available in the chroot is detected earlier.
This is not set (and therefore not enabled) by default.
-* "chroot-meta-directory" is the directory where "chroot-meta-auto"
+ * "chroot-meta-directory" is the directory where "chroot-meta-auto"
stores the reference target chroot metadata.
-* "upgrade-test-distros" is the space delimited list of
+ * "upgrade-test-distros" is the space delimited list of
distributions the slave should use for testing upgrades
between distributions (i.e., Debian versions). Using "partial"
distributions as defined in distros.conf is possible. Currently,
@@ -473,7 +524,7 @@ section, too, and will serve as defaults for all other sections
Setting this switches from doing install/purge tests to
dist-upgrade tests. Not set by default.
-* "max-reserved" is the maximum number of packages the slave will
+ * "max-reserved" is the maximum number of packages the slave will
reserve at once. It should be large enough that the host that
runs master is not unduly stressed by frequent ssh logins and
running master (both of which take quite a bit of CPU cycles),
@@ -485,13 +536,13 @@ section, too, and will serve as defaults for all other sections
AMD64 machine with a reasonably fast disk subsystem the value 50
seems to work fine. To disable a section set this to 0.
-* "keep-sources-list" controls whether the slave runs piuparts
- with the '--keep-sources-list' option. This option does not
+ * "keep-sources-list" controls whether the slave runs piuparts
+ with the '*-*-keep-sources-list' option. This option does not
apply to upgrade tests. The value should be "yes" or "no", with
the default being "no". Use this option for dists that you need
a custom sources.list for, such as "stable-proposed-updates".
-* "precedence" controls the order the sections are being processed
+ * "precedence" controls the order the sections are being processed
by the slave. Sections with a larger precedence value will be run
only if all sections with a smaller precedence value are idle,
i.e. master does not have any packages that this slave could
@@ -499,29 +550,29 @@ section, too, and will serve as defaults for all other sections
round-robin until they are all idle (or a more important section
has packages to be tested). The default is 1.
-* "depends-sections" lists additional sections that will be
+ * "depends-sections" lists additional sections that will be
searched for dependencies that are not available in the current
section if that describes a partial distro.
-* "known-problem-directory" is the path to the directory containing
+ * "known-problem-directory" is the path to the directory containing
definitions of known problems.
Default: "${prefix}/share/piuparts/known_problems"
-* "debug" tells the slave whether to log debug level messages. The
+ * "debug" tells the slave whether to log debug level messages. The
value should be "yes" or "no", with the default being "no".
piuparts itself currently always produces debug output and there
is no way to disable that.
-* "PYTHONPATH" (global) sets the search path to the piupartslib
+ * "PYTHONPATH" (global) sets the search path to the piupartslib
python modules if they are not installed in their default location
in /usr.
-* "reschedule-untestable-days" (global) sets the rescheduling
+ * "reschedule-untestable-days" (global) sets the rescheduling
delay for untestable packages (e.g. due to unsatisfied
dependencies). This is handled by the 'report_untestable_packages'
script and the default is "7" days.
-* "reschedule-old-days" (global, section) and the following five
+ * "reschedule-old-days" (global, section) and the following five
settings define the rescheduling scheme that it performed by the
'reschedule_oldest_logs' script. Passed/failed logs that are
older than reschedule-(old|fail)-days will be marked for
@@ -532,36 +583,36 @@ section, too, and will serve as defaults for all other sections
dependencies will be deleted anyway if they are older than
expire-(old|fail)-days.
-* "reschedule-old-count" (global, section) is the maximum number of
+ * "reschedule-old-count" (global, section) is the maximum number of
passed logs that will be marked for recycling. Set to 0 to disable
rescheduling passed logs.
-* "expire-old-days" (global, section) can be set to a value larger
+ * "expire-old-days" (global, section) can be set to a value larger
than 'reschedule-old-days' to delete logs older than the setting
that are marked for recycling but haven't been rechecked due to
failing or missing dependencies. A value starting with "+" is
relative to 'reschedule-old-days'. Disabled by default ("0").
-* "reschedule-fail-days" (global, section) sets the minimum age of
+ * "reschedule-fail-days" (global, section) sets the minimum age of
failing logs (fail/*.log or affected/*.log) before they will be
rechecked.
-* "reschedule-fail-count" (global, section) is the maximum number
+ * "reschedule-fail-count" (global, section) is the maximum number
of failed logs that will be marked for recycling. Set to 0 to
disable rescheduling failed logs.
-* "expire-fail-days" (global, section) can be set to a value larger
+ * "expire-fail-days" (global, section) can be set to a value larger
than 'reschedule-fail-days' to delete logs older than the setting
that are marked for recycling but haven't been rechecked due to
failing or missing dependencies. A value starting with "+" is
relative to 'reschedule-fail-days'. Disabled by default ("0").
-* "auto-reschedule" (section) can be set to "no" to disable
+ * "auto-reschedule" (section) can be set to "no" to disable
rescheduling of passed and failed packages. To disable only
rescheduling one of passed or failed logs, set the corresponding
-count variable to zero.
-* "json-sections" is a space-separated list of the
+ * "json-sections" is a space-separated list of the
section/distribution names which receive test results for this
section. The results, by package, are stored with this name/these
names in the section and global test summary.json files. If
@@ -571,37 +622,43 @@ section, too, and will serve as defaults for all other sections
is "none", the summary will not be created. The "json-sections"
name "overall" is reserved.
-* "exclude-known-problems" (global, section) can be set to a list
+ * "exclude-known-problems" (global, section) can be set to a list
of known_problems conffile names (including the .conf suffix) that
should not be used for this section. Useful if a known problem
triggers on (nearly) all logfiles.
+
Some of the configuration items are not required, but it is best
to set them all to be sure what the configuration actually is.
-=== piuparts.debian.org specific configuration
+
+:ref:`top <top>`
+
+:blue:`piuparts.debian.org specific configuration`
In addition to some of the above settings the following
configuration settings are used by the scripts in '~piuparts?/bin/'
used to run piuparts.debian.org. They are all optional, default
values are set in the scripts.
-* "urlbase" (global) is the base url of the webserver serving this
+.. code-block:: text
+
+ * "urlbase" (global) is the base url of the webserver serving this
piuparts instance. Used to provide links to logfiles in email
reports. It defaults to "https://piuparts.debian.org".
-== Running piuparts-report as it is done for piuparts.debian.org
+
+:ref:`top <top>`
+
+:blue:`Running piuparts-report as it is done for piuparts.debian.org`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you want to run piuparts-report (which is only+very useful if
you run piuparts in master-slave mode), you need to 'apt-get
install python-rpy r-recommended r-base-dev'. For more
information see
-link:https://salsa.debian.org/debian/piuparts/blob/develop/README_pejacevic.txt[https://salsa.debian.org/debian/piuparts/blob/develop/README_pejacevic.txt].
-
-To generate the report on the master host run:
+"https://salsa.debian.org/debian/piuparts/blob/develop/README_pejacevic.txt".
-----
-piupartsm at pejacevic:~$ /usr/share/piuparts/master/generate_daily_report
-----
+To generate the report on the master host run:::
-// vim: set filetype=asciidoc:
+ piupartsm at pejacevic:~$ /usr/share/piuparts/master/generate_daily_report
=====================================
docs/conf.py
=====================================
@@ -0,0 +1,173 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'piuparts'
+copyright = '2019, Lars Wirzenius'
+author = 'Lars Wirzenius'
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = '0.98'
+
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['ntemplates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.txt'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+#html_static_path = ['nstatic']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself. Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'piupartsdoc'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+ # The paper size ('letterpaper' or 'a4paper').
+ #
+ # 'papersize': 'letterpaper',
+
+ # The font size ('10pt', '11pt' or '12pt').
+ #
+ # 'pointsize': '10pt',
+
+ # Additional stuff for the LaTeX preamble.
+ #
+ # 'preamble': '',
+
+ # Latex figure (float) alignment
+ #
+ # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ (master_doc, 'piuparts.tex', 'piuparts Documentation',
+ 'Lars Wirzenius', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'piuparts', 'piuparts Documentation',
+ [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ (master_doc, 'piuparts', 'piuparts Documentation',
+ author, 'piuparts', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
=====================================
docs/index.txt
=====================================
@@ -0,0 +1,21 @@
+Welcome to piuparts's documentation!
+====================================
+
+.. toctree::
+ :maxdepth: 4
+
+ README
+ README_server
+ README_pejacevic
+ piuparts <piuparts/index.txt>
+ piuparts slave join <piuparts_slave_join/index.txt>
+ piuparts slave run <piuparts_slave_run/index.txt>
+ piuparts slave stop <piuparts_slave_stop/index.txt>
+ license
+
+
+
+Search
+======
+
+* :ref:`search`
=====================================
docs/license.txt
=====================================
@@ -0,0 +1,22 @@
+License GPL-2+
+==============
+
+ This program is free software; you can redistribute it
+ and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later
+ version.
+ .
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the GNU General Public License for more
+ details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ '/usr/share/common-licenses/GPL-2'.
+
=====================================
docs/piuparts/conf.py
=====================================
@@ -0,0 +1,63 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'Piuparts'
+copyright = ''
+author = ''
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = '0.98'
+
+
+# source_suffix = ['.rst', '.md']
+source_suffix = '.txt'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'piupartsdoc'
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'piuparts', '.deb installation, upgrade, and removal testing suite\n',
+ '', 1)
+]
+
=====================================
docs/piuparts/index.txt
=====================================
@@ -0,0 +1,8 @@
+Manpage
+=======
+
+
+.. toctree::
+ :maxdepth: 1
+
+ piuparts.1
=====================================
piuparts.1.txt → docs/piuparts/piuparts.1.txt
=====================================
@@ -1,11 +1,11 @@
-piuparts(1)
-===========
-:doctype: manpage
-:revdate: 2017-03-06
+.. only:: html
+
+ piuparts(1)
+ ===========
+ :doctype: manpage
+ :revdate: 2017-03-06
+
-NAME
-----
-piuparts - .deb installation, upgrade, and removal testing suite
SYNOPSIS
--------
@@ -29,7 +29,7 @@ By default, piuparts can do three different tests:
Note that this does not work with experimental, because *apt-get* does not automatically upgrade to packages in experimental. To test a particular package or group of packages in experimental, use the second test.
-Command line arguments are the paths to package files (e.g., _piuparts_1.0-1_all.deb_), paths to changes files (e.g., _piuparts_1.0-1_i386.changes_), or names of packages, if the '--apt' option is given.
+Command line arguments are the paths to package files (e.g., *piuparts_1.0-1_all.deb*), paths to changes files (e.g., *piuparts_1.0-1_i386.changes*), or names of packages, if the '--apt' option is given.
When processing changes files, by default, all packages in a changes file will be processed together with all individual packages given on the command line. Then each package given on the command line is processed in a single group. If the '--single-changes-list' is used, the packages in all changes files are processed together along with any individual packages that were given on the command line. To avoid this behaviour, it is possible to specify '--single-packages'.
@@ -44,7 +44,7 @@ Options must come before the other command line arguments.
*-a*, *--apt*::
The package arguments on the command line are to be treated as package names and installed via *apt-get* instead of being names of package files, to be installed via *dpkg -i*.
-*--allow-database*::
+*-*-allow-database*::
Allow starting MySQL and PostgreSQL database servers in the chroot for
packages requiring database access in their maintainer scripts.
Do not use this option if there is already a database server running on the
@@ -53,208 +53,212 @@ Options must come before the other command line arguments.
may occur, these will be detected by 'detect_piuparts_issues' and the
affected packages will be tested again.
-*--arch*='arch'::
+*-*-arch*='arch'::
Create chroot and run tests for (non-default) architecture 'arch'. The default is the output from 'dpkg --print-architecture'.
-*-b* 'tarball', *--basetgz*='tarball'::
+*-b* 'tarball', *-*-basetgz*='tarball'::
Use tarball as the contents of the initial chroot, instead of building a new one with debootstrap.
-+
-The tarball can be created with the '-s' option, or you can use one that *pbuilder* has created (see '-p'). If you create one manually, make sure the root of the chroot is the root of the tarball.
-*--bindmount*='dir'::
+ The tarball can be created with the '-s' option, or you can use one that *pbuilder* has created (see '-p'). If you create one manually, make sure the root of the chroot is the root of the tarball.
+
+*-*-bindmount*='dir'::
Bind-mount a directory inside the chroot.
-*-d* 'name', *--distribution*='name'::
+*-d* 'name', *-*-distribution*='name'::
Which Debian distribution to use: a code name (for example jessie, stretch or sid) or experimental. The default is sid (=unstable).
-*-D* 'flavor', *--defaults*='flavor'::
+*-D* 'flavor', *-*-defaults*='flavor'::
Use default settings suitable for a particular flavor of Debian: either debian or ubuntu. The default is debian.
-*--do-not-verify-signatures*::
+*-*-do-not-verify-signatures*::
Do not verify signatures from the Release files when running debootstrap. Also set APT::Get::AllowUnauthenticated accordingly in /etc/apt/apt.conf in the chroots.
-*--dpkg-force-confdef*::
+*-*-dpkg-force-confdef*::
Make dpkg use --force-confdef, which lets dpkg always choose the default action when a modified conffile is found. This option will make piuparts ignore errors it was designed to report and therefore should only be used to hide problems in depending packages. 'This option shall normally not be used.' (See #466118.)
-*--dpkg-noforce-unsafe-io*::
+*-*-dpkg-noforce-unsafe-io*::
Prevent running dpkg with --force-unsafe-io. --force-unsafe-io causes dpkg to skip certain file system syncs known to cause substantial performance degradation on some filesystems. Thus, including this option reverts to safe but slower behavior. The --dpkg-noforce-unsafe-io is required for running tests on distributions older than squeeze.
-*--no-eatmydata*::
+*-*-no-eatmydata*::
Prevent use of eatmydata. The --no-eatmydata option is required for running tests on squeeze or older distributions.
-*--extra-old-packages*='pkg1[,pkg2]...'::
+*-*-extra-old-packages*='pkg1[,pkg2]...'::
Install additional old packages before upgrading. Allows testing package renames/merges where the old package is no longer available in the new distribution and the new one utilizes Conflicts/Replaces. The argument is a comma separated list of package names and the option can be given multiple times.
For install/purge tests these packages will be installed before the package
that is to be tested.
-*-e* 'dirname', *--existing-chroot*='dirname'::
+*-e* 'dirname', *-*-existing-chroot*='dirname'::
Use the specified directory as source for the new chroot, instead of building
a new one with debootstrap. This is similar to '--basetgz', but the contents
are not archived. See also the --hard-link option.
-*--distupgrade-to-testdebs*::
+*-*-distupgrade-to-testdebs*::
Use the "testdebs" repository to override the packages in the distupgrade
target distribution. This allows one to test complex upgrade paths before the
packages enter the archive.
-*--extra-repo*='deb-line'::
- Provide an additional (unparsed) line to be appended to sources.list, e.g.
- 'deb <URL> <distrib> <components>' or
+*-*-extra-repo*='deb-line'::
+ Provide an additional (unparsed) line to be appended to sources.list, e.g.::
+
+
+ 'deb <URL> <distrib> <components>'
+ or
'deb file:// </bind/mount> ./'
+
Useful for e.g. backports, security or local repositories that cannot be
handled by '--mirror'. May be repeated to add more than one line.
-*--fake-essential-packages*='pkg1[,pkg2]...'::
+*-*-fake-essential-packages*='pkg1[,pkg2]...'::
Install additional packages in the base chroot that are not removed after
the test. These are available during purge and for checking against
mistreatment.
Takes a comma separated list of package names and can be given multiple
times.
-*--hard-link*::
+*-*-hard-link*::
When the --existing-chroot option is used, and the source directory is on the
same filesystem, hard-link files instead of copying them. This is faster, but
any modifications to files will be reflected in the originals.
-*-i* 'filename', *--ignore*='filename'::
+*-i* 'filename', *-*-ignore*='filename'::
Add a filename to the list of filenames to be ignored when comparing changes
before and after installation. By default, piuparts ignores files that always
change during a package installation and uninstallation, such as *dpkg*
status files. The filename should be relative to the root of the chroot
- (e.g., _var/lib/dpkg/status_).
+ (e.g., *var/lib/dpkg/status*).
Filenames prefixed with a ':' will be logged verbosely if found.
This option can be used as many times as necessary.
-*-I* 'regexp', *--ignore-regexp*='regexp'::
+*-I* 'regexp', *-*-ignore-regexp*='regexp'::
Add a regular expression pattern to the list of patterns for filenames to be
ignored when comparing changes before and after installation.
Patterns prefixed with a ':' will log verbosely all matching files.
This option can be used as many times as necessary.
-*--install-purge-install*::
+*-*-install-purge-install*::
Purge package after installation and reinstall. All dependencies are available during purge.
-*--install-recommends*::
+*-*-install-recommends*::
Enable installation of Recommends.
-*--install-suggests*::
+*-*-install-suggests*::
Enable installation of Suggests.
-*--install-remove-install*::
+*-*-install-remove-install*::
Remove package after installation and reinstall. For testing installation in config-files-remaining state.
-*-k*, *--keep-env*::
+*-k*, *-*-keep-env*::
Depending on which option is passed, keep the environment used for testing after the program ends::
* By default it doesn't remove the temporary directory for the chroot,
* or if --schroot is used, the schroot session is not terminated,
* or if --docker-image is used, the container created is not destroyed.
-*-K*, *--keyring*='filename'::
+*-K*, *-*-keyring*='filename'::
Use FILE as the keyring to use with debootstrap when creating chroots.
-*--keep-sources-list*::
+*-*-keep-sources-list*::
Don't modify the chroot's etc/apt/sources.list.
-*--list-installed-files*::
+*-*-list-installed-files*::
List the files added to the chroot after the installation of the package and after the installation of the package dependencies.
-*--lvm-volume*='lvm-volume'::
+*-*-lvm-volume*='lvm-volume'::
Use the specified lvm-volume as source for the chroot, instead of building a
new one with debootstrap. This creates a snapshot of the given LVM volume and
mounts it to the chroot path.
-*--lvm-snapshot-size*='snapshot-size'::
+*-*-lvm-snapshot-size*='snapshot-size'::
Use the specified snapshot-size as snapshot size when creating a new LVM
snapshot (default: 1G)
-*-l* 'filename', *--log-file*='filename'::
+*-l* 'filename', *-*-log-file*='filename'::
Append log file to _filename_ in addition to the standard output.
-*--log-level*='level'::
+*-*-log-level*='level'::
Display messages from loglevel LEVEL, possible values are: error, info, dump, debug. The default is dump.
-*--max-command-output-size*='size'::
+*-*-max-command-output-size*='size'::
Set the maximum permitted command output to _size_ (in MB) for debugging
runs exceeding the default of 8 MB.
-*--merged-usr*::
+*-*-merged-usr*::
When using debootstrap to create the chroot, use the '--merged-usr' option
to create a chroot with /bin, /lib, /sbin being symlinks to their /usr
counterparts.
-*-m* 'url', *--mirror*='url'::
- Which Debian mirror to use. The default is the first mirror named in _/etc/apt/sources.list_ or _http://deb.debian.org/debian_ if none is found. This option may be used multiple times to use multiple mirrors. Only the first mirror is used with *debootstrap*.
-+
-The 'components' that are used for a mirror can also be set with this option: a space separated list within the same argument (so you need to quote the entire argument in the shell). If no components are given explicitly, the usual Debian components are used (main, contrib, and non-free). For the mirrors read from _/etc/apt/sources.list_, the components are read from the same place.
-+
-Note that file: addresses works if the directories are made accessible from within the chroot with '--bindmount'.
+*-m* 'url', *-*-mirror*='url'::
+ Which Debian mirror to use. The default is the first mirror named in */etc/apt/sources.list* or *http://deb.debian.org/debian* if none is found. This option may be used multiple times to use multiple mirrors. Only the first mirror is used with *debootstrap*.
+
+ The 'components' that are used for a mirror can also be set with this option: a space separated list within the same argument (so you need to quote the entire argument in the shell). If no components are given explicitly, the usual Debian components are used (main, contrib, and non-free). For the mirrors read from */etc/apt/sources.list*, the components are read from the same place.
-*--no-adequate*::
+ Note that file: addresses works if the directories are made accessible from within the chroot with '--bindmount'.
+
+*-*-no-adequate*::
Don't run adequate after installation. The default is to run adequate, provided it is installed.
-*--no-check-valid-until*::
+*-*-no-check-valid-until*::
Set apt option Acquire::Check-Valid-Until=false in the chroot to ignore the
expiration of Release files. This is needed for testing archived releases.
-*--no-diversions*::
+*-*-no-diversions*::
Don't check for broken diversions.
-*-n*, *--no-ignores*::
+*-n*, *-*-no-ignores*::
Forget all built-in and other ignores that have been set so far. Any '-i' or '-I' arguments that come after this one will be obeyed, but none of the ones that come before.
-*-N*, *--no-symlinks*::
+*-N*, *-*-no-symlinks*::
Don't check for broken symlinks.
-*--fail-if-inadequate*::
+*-*-fail-if-inadequate*::
Fail on inadequate results from running adequate. The default is to just issue those errors as warnings.
-*--fail-on-broken-symlinks*::
+*-*-fail-on-broken-symlinks*::
Fail on broken symlinks. The default is to just issue those errors as warnings.
-*--no-upgrade-test*::
+*-*-no-upgrade-test*::
Skip testing upgrade from an existing version in the archive.
-*--no-install-purge-test*::
+*-*-no-install-purge-test*::
Skip the install and purge test.
-*-p, *--pbuilder*::
- Use _/var/cache/pbuilder/base.tgz_ as the base tarball. This is a shorthand so that you don't need to use '-b' for it.
+*-p, *-*-pbuilder*::
+ Use */var/cache/pbuilder/base.tgz* as the base tarball. This is a shorthand so that you don't need to use '-b' for it.
-*--pedantic-purge-test*::
- Be pedantic when checking if a purged package leaves files behind. If this option is not set, files left in _/tmp_ are ignored.")
+*-*-pedantic-purge-test*::
+ Be pedantic when checking if a purged package leaves files behind. If this option is not set, files left in */tmp* are ignored.")
-*--proxy*='URL'::
+*-*-proxy*='URL'::
Use the proxy at URL to access the Debian mirror(s). Takes precedence over
the 'http_proxy' environment variable. Using a local proxy is recommended
because piuparts may use large amounts of bandwidth to repeatedly download
the same files.
-*-s* 'filename', *--save*='filename'::
- Save the chroot, after it has been set up, as a tarball into _filename_. It can then be used with '-b'.
+*-s* 'filename', *-*-save*='filename'::
+ Save the chroot, after it has been set up, as a tarball into *filename*. It can then be used with '-b'.
-*-B* 'FILE', *--end-meta*='FILE'::
+*-B* 'FILE', *-*-end-meta*='FILE'::
Load chroot package selection and file meta data from FILE. See the function install_and_upgrade_between_distros() in piuparts.py for defaults. Mostly useful for large scale distro upgrade tests.
-*-S* 'FILE', *--save-end-meta*='FILE'::
+*-S* 'FILE', *-*-save-end-meta*='FILE'::
Save chroot package selection and file meta data in FILE for later use. See the function install_and_upgrade_between_distros() in piuparts.py for defaults. Mostly useful for large scale distro upgrade tests.
-*--scriptsdir*='DIR'::
+*-*-scriptsdir*='DIR'::
Directory where are custom scripts are placed. By default, this is not set. For more information about this, read README_server.txt
-*--schroot*='SCHROOT-NAME'::
+*-*-schroot*='SCHROOT-NAME'::
Use schroot session named SCHROOT-NAME for the testing environment, instead of building a new one with debootstrap.
-*--docker-image*='DOCKER-IMAGE'::
+*-*-docker-image*='DOCKER-IMAGE'::
Use a container created from the docker image DOCKER-IMAGE for the testing environment, instead of building a new one with debootstrap.
This only supports overlay2 for now and it uses the `MergedDir` layer where piuparts can access, add, edit and remove files easily.
-*--single-changes-list*::
- When processing changes files, piuparts will process the packages in each individual changes file seperately. This option will set piuparts to scan the packages of all changes files together along with any individual package files that may have been given on the command line.
+*-*-single-changes-list*::
+ When processing changes files, piuparts will process the packages in each individual changes file separately. This option will set piuparts to scan the packages of all changes files together along with any individual package files that may have been given on the command line.
-*--single-packages*::
+*-*-single-packages*::
Process every package file or package name individually, thus piuparts process runs multiple times. This option can be useful with conflicting packages.
-*--shell-on-error*::
+*-*-shell-on-error*::
Start an interactive shell in the chroot after an error occurred.
This should help debugging failures directly inside the piuparts test environment.
The chroot cleanup will continue after the shell terminates.
@@ -262,22 +266,25 @@ Note that file: addresses works if the directories are made accessible from with
which is usually the case in command lines directly copied from logfiles
from a master-slave setup. Removing the 'timeout' part is sufficient.
-*--skip-minimize*::
+*-*-skip-minimize*::
Allow skip minimize chroot step. This is useful when you want to test several packages with piuparts. You can prepare a tarball already minimized and skip this step in all the tests. This is the default now.
-*--minimize*::
+*-*-minimize*::
Minimize the chroot with debfoster. This used to be the default until #539142 was fixed.
-*--skip-cronfiles-test*::
+*-*-skip-cronfiles-test*::
Skip testing the output from the cron files left in the system after remove a package.
-*--skip-logrotatefiles-test*::
+*-*-skip-logrotatefiles-test*::
Skip testing the output from the logrotate files left in the system after remove a package.
-*--testdebs-repo*='deb-line'::
- Provide an additional line to be appended to sources.list, e.g.
- 'deb [ trusted=yes ] <URL> <distrib> <components>' or
+*-*-testdebs-repo*='deb-line'::
+ Provide an additional line to be appended to sources.list, e.g.::
+
+ 'deb [ trusted=yes ] <URL> <distrib> <components>'
+ or
'deb [ trusted=yes ] file:// </bind/mount> ./'
+
If only an URL or local path is given as argument, "deb [ trusted=yes ]",
"file://", and "./" will be prepended/appended as needed.
The "testdebs" repository provides the packages to be tested (and some
@@ -288,72 +295,72 @@ Note that file: addresses works if the directories are made accessible from with
for installing the target packages. Dependency resolution will be done by
apt-get. The packages to be tested can be passed as .debs or as package
names (with '--apt').
+
The "trusted=yes" option causes this (and only this) repository to be
trustworthy even if the Packages file is not signed, such that a
(globally acting) '--do-not-verify-signatures' will not be needed.
-*-t directory*, *--tmpdir*='directory'::
- Use directory as the place where temporary files and directories are created. The default is the environment variable *TMPDIR*, or _/tmp_ if not set.
-+
-Note: the temporary directory must *not* be mounted with the _nodev_ or _nosuid_ mount option.
+*-t directory*, *-*-tmpdir*='directory'::
+ Use directory as the place where temporary files and directories are created. The default is the environment variable *TMPDIR*, or */tmp* if not set.
+ Note: the temporary directory must *not* be mounted with the _nodev_ or _nosuid_ mount option.
-*--upgrade-before-dist-upgrade*::
+*-*-upgrade-before-dist-upgrade*::
Perform two-stage upgrades: 'apt-get upgrade && apt-get dist-upgrade'.
-*-v*, *--verbose*::
+*-v*, *-*-verbose*::
This option no longer has any meaning, but it is still accepted for backwards compatibility.
-*-V*, *--version*::
+*-V*, *-*-version*::
Write out the version number of the program.
-*--warn-on-debsums-errors*::
+*-*-warn-on-debsums-errors*::
Print a warning rather than failing if debsums reports modified files.
-*--warn-on-leftovers-after-purge*::
+*-*-warn-on-leftovers-after-purge*::
Print a warning rather than failing if files are left behind after purge.
-*--warn-on-others*::
+*-*-warn-on-others*::
Print a warning rather than failing if files are left behind, modified, or removed by a package that was not given on the command-line.
-+
-This way, you can basically isolate the purge test to your own packages. If a package that is brought in as a dependency doesn't purge cleanly, the test will not fail because of it (but a warning message will be printed).
-+
-Behavior with multiple packages given on the command-line could be problematic, particularly if the dependency tree of one package in the list includes another in the list. Therefore, it is recommended to use this option with one package at a time.
+
+ This way, you can basically isolate the purge test to your own packages. If a package that is brought in as a dependency doesn't purge cleanly, the test will not fail because of it (but a warning message will be printed).
+
+ Behavior with multiple packages given on the command-line could be problematic, particularly if the dependency tree of one package in the list includes another in the list. Therefore, it is recommended to use this option with one package at a time.
EXAMPLES
--------
-Assume that you have just built a new version of your Debian package, to be uploaded to Debian unstable. It is in _../foo_1.0-2_i386.deb_ and you would like to know whether it installs and uninstalls properly. Here's what you would do:
+Assume that you have just built a new version of your Debian package, to be uploaded to Debian unstable. It is in *../foo_1.0-2_i386.deb* and you would like to know whether it installs and uninstalls properly. Here's what you would do::
-----
-piuparts ../foo_1.0-2_i386.deb
-----
+ ----
+ piuparts ../foo_1.0-2_i386.deb
+ ----
If the package exists in the Debian archive already, the above command also tests that it upgrades properly.
-To do the same test, but using a particular mirror, and only the main component, you would do this:
+To do the same test, but using a particular mirror, and only the main component, you would do this::
-----
-piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.deb
-----
+ ----
+ piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.deb
+ ----
-If you want to do the same as above but for your changes files, pass in your changes files when running piuparts, and piuparts will process each package in the changes files as though you had passed all those packages on the command line to piuparts yourself. For example:
+If you want to do the same as above but for your changes files, pass in your changes files when running piuparts, and piuparts will process each package in the changes files as though you had passed all those packages on the command line to piuparts yourself. For example::
-----
-piuparts ../foo_1.0-2_i386.changes
+ ----
+ piuparts ../foo_1.0-2_i386.changes
-piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.changes
-----
+ piuparts -m 'http://gytha/debian main' ../foo_1.0-2_i386.changes
+ ----
-If you want to test that a package installs properly in the stable (currently jessie) Debian release, then can be upgraded to the testing (currently stretch) and unstable (sid) versions, and then uninstalled without problems, you would give the following command:
+If you want to test that a package installs properly in the stable (currently jessie) Debian release, then can be upgraded to the testing (currently stretch) and unstable (sid) versions, and then uninstalled without problems, you would give the following command::
-----
-piuparts -a -d jessie -d stretch -d sid foo
-----
+ ----
+ piuparts -a -d jessie -d stretch -d sid foo
+ ----
ENVIRONMENT
-----------
-*TMPDIR* Location for temporary files and directories. If not set, use _/tmp_. See also the '-t' ('--tmpdir') option.
+*TMPDIR* Location for temporary files and directories. If not set, use */tmp*. See also the '-t' ('--tmpdir') option.
NOTES
-----
@@ -362,10 +369,8 @@ Commands exceeding this limit will be aborted.
SEE ALSO
--------
-*pbuilder*(1), *debootstrap*(8)
+*pbuilder* (1), *debootstrap* (8)
AUTHOR
------
Lars Wirzenius (liw at iki.fi) and others
-
-// vim: set filetype=asciidoc:
=====================================
docs/piuparts_slave_join/conf.py
=====================================
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'Piuparts'
+copyright = ''
+author = ''
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = '0.98'
+
+
+# source_suffix = ['.rst', '.md']
+source_suffix = '.txt'
+
+# The master toctree document.
+master_doc = 'index'
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'piupartsdoc'
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'piuparts_slave_join',
+ 'joins a running piuparts-slave session in screen\n', '', 8)
+]
=====================================
docs/piuparts_slave_join/index.txt
=====================================
@@ -0,0 +1,8 @@
+Manpage
+=======
+
+
+.. toctree::
+ :maxdepth: 1
+
+ piuparts slave join <piuparts_slave_join.8>
=====================================
piuparts_slave_join.8.txt → docs/piuparts_slave_join/piuparts_slave_join.8.txt
=====================================
@@ -1,11 +1,11 @@
-piuparts_slave_join(8)
-======================
-:doctype: manpage
-:revdate: 2016-03-06
+.. only:: html
+
+ piuparts_slave_join(8)
+ ======================
+ :doctype: manpage
+ :revdate: 2016-03-06
+
-NAME
-----
-piuparts_slave_join - join a running piuparts-slave screen session
SYNOPSIS
--------
@@ -21,26 +21,24 @@ There are no options to this command.
ENVIRONMENT
-----------
-Running piuparts in master-slave mode requires configuration in _/etc/piuparts_.
+Running piuparts in master-slave mode requires configuration in */etc/piuparts*.
NOTES
-----
Make sure to also read */usr/share/doc/piuparts-master/README_server.txt*.
-See *screen*(1) for full instructions on how to navigate between displays. In short:
+See *screen* (1) for full instructions on how to navigate between displays. In short::
-*Ctrl-A <n>*::
+ *Ctrl-A <n>*::
Navigates to display <n>. Slaves are found at screens 1 through 'slave-count', defined in the piuparts configuration file.
-*Ctrl-A d*::
+ *Ctrl-A d*::
Detach from *screen*. The session can be re-established with *piuparts-slave-join*.
SEE ALSO
--------
-*piuparts*(1), *piuparts_slave_run*(8), *screen*(1)
+*piuparts* (1), *piuparts_slave_run* (8), *screen* (1)
AUTHOR
------
Holger Levsen (holger at layer-acht.org)
-
-// vim: set filetype=asciidoc:
=====================================
docs/piuparts_slave_run/conf.py
=====================================
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'Piuparts'
+copyright = ''
+author = ''
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = '0.98'
+
+
+# source_suffix = ['.rst', '.md']
+source_suffix = '.txt'
+
+# The master toctree document.
+master_doc = 'index'
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'piupartsdoc'
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'piuparts_slave_run', 'start up piuparts-slave instance(s) in screen\n',
+ '', 8)
+]
+
=====================================
docs/piuparts_slave_run/index.txt
=====================================
@@ -0,0 +1,8 @@
+Manpage
+=======
+
+
+.. toctree::
+ :maxdepth: 1
+
+ piuparts slave run <piuparts_slave_run.8>
=====================================
piuparts_slave_run.8.txt → docs/piuparts_slave_run/piuparts_slave_run.8.txt
=====================================
@@ -1,11 +1,11 @@
-piuparts_slave_run(8)
-=====================
-:doctype: manpage
-:revdate: 2017-03-06
+.. only:: html
+
+ piuparts_slave_run(8)
+ =====================
+ :doctype: manpage
+ :revdate: 2017-03-06
+
-NAME
-----
-piuparts_slave_run - start up piuparts-slave instance(s) in screen
SYNOPSIS
--------
@@ -23,7 +23,7 @@ There are no options to this command currently. Note however that *this interfac
ENVIRONMENT
-----------
-Running piuparts in master-slave mode requires configuration in _/etc/piuparts_.
+Running piuparts in master-slave mode requires configuration in */etc/piuparts*.
BUGS
----
@@ -39,10 +39,8 @@ Make sure to also read */usr/share/doc/piuparts-master/README_server.txt*.
SEE ALSO
--------
-*piuparts*(1), *piuparts_slave_join*(8), *piuparts_slave_stop*(8), *screen*(1)
+*piuparts* (1), *piuparts_slave_join* (8), *piuparts_slave_stop* (8), *screen* (1)
AUTHOR
------
Holger Levsen (holger at layer-acht.org)
-
-// vim: set filetype=asciidoc:
=====================================
docs/piuparts_slave_stop/conf.py
=====================================
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Project information -----------------------------------------------------
+
+project = 'Piuparts'
+copyright = ''
+author = ''
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = '0.98'
+
+# source_suffix = ['.rst', '.md']
+source_suffix = '.txt'
+
+# The master toctree document.
+master_doc = 'index'
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'piupartsdoc'
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'piuparts_slave_stop',
+ 'stop all running piuparts-slaves on a host\n', '', 8)
+]
=====================================
docs/piuparts_slave_stop/index.txt
=====================================
@@ -0,0 +1,8 @@
+Manpage
+=======
+
+
+.. toctree::
+ :maxdepth: 1
+
+ piuparts slave stop <piuparts_slave_stop.8>
=====================================
piuparts_slave_stop.8.txt → docs/piuparts_slave_stop/piuparts_slave_stop.8.txt
=====================================
@@ -1,11 +1,11 @@
-piuparts_slave_stop(8)
-======================
-:doctype: manpage
-:revdate: 2017-03-06
+.. only:: html
+
+ piuparts_slave_stop(8)
+ ======================
+ :doctype: manpage
+ :revdate: 2017-03-06
+
-NAME
-----
-piuparts_slave_stop - stop all running piuparts-slaves on a host.
SYNOPSIS
--------
@@ -26,7 +26,7 @@ There are no options to this command.
ENVIRONMENT
-----------
-Running piuparts in master-slave mode requires configuration in _/etc/piuparts_.
+Running piuparts in master-slave mode requires configuration in */etc/piuparts*.
NOTES
-----
@@ -34,10 +34,8 @@ Make sure to also read */usr/share/doc/piuparts-master/README_server.txt*.
SEE ALSO
--------
-*piuparts*(1), *piuparts_slave_join*(8)
+*piuparts* (1), *piuparts_slave_join* (8)
AUTHOR
------
Holger Levsen (holger at layer-acht.org)
-
-// vim: set filetype=asciidoc:
=====================================
piuparts.py
=====================================
@@ -1537,24 +1537,24 @@ class Chroot:
changes = diff_selections(self, selections)
deps = {}
nondeps = {}
- for name, state_version in changes.iteritems():
+ for name, state_version in iter(changes.items()):
if name in packages:
nondeps[name] = state_version
else:
deps[name] = state_version
- deps_to_remove = [name for name, (state, version) in deps.iteritems()
+ deps_to_remove = [name for name, (state, version) in iter(deps.items())
if state == "remove"]
- deps_to_purge = [name for name, (state, version) in deps.iteritems()
+ deps_to_purge = [name for name, (state, version) in iter(deps.items())
if state == "purge"]
- nondeps_to_remove = [name for name, (state, version) in nondeps.iteritems()
+ nondeps_to_remove = [name for name, (state, version) in iter(nondeps.items())
if state == "remove"]
- nondeps_to_purge = [name for name, (state, version) in nondeps.iteritems()
+ nondeps_to_purge = [name for name, (state, version) in iter(nondeps.items())
if state == "purge"]
all_to_remove = deps_to_remove + deps_to_purge + nondeps_to_remove + nondeps_to_purge
- all_to_install = [(name, version) for name, (state, version) in deps.iteritems()
+ all_to_install = [(name, version) for name, (state, version) in iter(deps.items())
if state == "install"]
- all_to_install += [(name, version) for name, (state, version) in nondeps.iteritems()
+ all_to_install += [(name, version) for name, (state, version) in iter(nondeps.items())
if state == "install"]
# First remove all packages (and reinstall missing ones).
@@ -1999,8 +1999,8 @@ def diff_meta_data(tree1, tree2, quiet=False):
"""Compare two dir trees and return list of new files (only in 'tree2'),
removed files (only in 'tree1'), and modified files."""
- tree1 = tree1.copy()
- tree2 = tree2.copy()
+ tree1_c = tree1.copy()
+ tree2_c = tree2.copy()
for name in settings.ignored_files:
if name[0] == ':':
@@ -2011,11 +2011,11 @@ def diff_meta_data(tree1, tree2, quiet=False):
if name in tree1:
if verbose:
logging.info("IGNORED PATH at 1: %s" % name)
- del tree1[name]
+ del tree1_c[name]
if name in tree2:
if verbose:
logging.info("IGNORED PATH at 2: %s" % name)
- del tree2[name]
+ del tree2_c[name]
for pattern in settings.ignored_patterns:
if pattern[0] == ':':
@@ -2029,27 +2029,27 @@ def diff_meta_data(tree1, tree2, quiet=False):
if m:
if verbose:
logging.info("IGNORED PATH at 1: %s" % name)
- del tree1[name]
+ del tree1_c[name]
for name in tree2.keys():
m = pat.search(name)
if m:
if verbose:
logging.info("IGNORED PATH at 2: %s" % name)
- del tree2[name]
+ del tree2_c[name]
modified = []
- for name in tree1.keys()[:]:
- if name in tree2:
+ for name in tree1.keys():
+ if name in tree2_c:
if objects_are_different(tree1[name], tree2[name]):
if not quiet:
logging.debug("Modified(user, group, mode, size, target): %s expected%s != found%s" %
(name, format_object_attributes(tree1[name]), format_object_attributes(tree2[name])))
modified.append((name, tree1[name]))
- del tree1[name]
- del tree2[name]
+ del tree1_c[name]
+ del tree2_c[name]
- removed = [x for x in tree1.iteritems()]
- new = [x for x in tree2.iteritems()]
+ removed = [x for x in iter(tree1_c.items())]
+ new = [x for x in iter(tree2_c.items())]
# fix for #586793
# prune rc?.d symlinks renamed by insserv
@@ -2120,13 +2120,13 @@ def diff_selections(chroot, selections):
set to to restore original selections."""
changes = {}
current = chroot.get_selections()
- for name, (value, version) in current.iteritems():
+ for name, (value, version) in iter(current.items()):
if name not in selections:
changes[name] = ("purge", None)
elif selections[name][0] != value and \
selections[name][0] in ["purge", "install"]:
changes[name] = selections[name]
- for name, (value, version) in selections.iteritems():
+ for name, (value, version) in iter(selections.items()):
if name not in current or \
current[name][1] != version:
changes[name] = selections[name]
@@ -2511,8 +2511,8 @@ def install_and_upgrade_between_distros(package_files, packages_qualified):
if chroot_state is not None:
if chroot.initial_selections != chroot_state["initial_selections"]:
logging.warn("Initial package selections do not match - ignoring loaded reference chroot state")
- refsel = [(s, p, v) for p, (s, v) in chroot_state["initial_selections"].iteritems()]
- cursel = [(s, p, v) for p, (s, v) in chroot.initial_selections.iteritems()]
+ refsel = [(s, p, v) for p, (s, v) in iter(chroot_state["initial_selections"].items())]
+ cursel = [(s, p, v) for p, (s, v) in iter(chroot.initial_selections.items())]
rsel = [x for x in refsel if not x in cursel]
csel = [x for x in cursel if not x in refsel]
[logging.debug(" -%s" % " ".join(x)) for x in rsel]
View it on GitLab: https://salsa.debian.org/debian/piuparts/compare/98f8c745e6fffd9244ec124d1b6191d7423c1b93...67744ce8c6a69299e4cc535a5321e1b737af28ea
--
View it on GitLab: https://salsa.debian.org/debian/piuparts/compare/98f8c745e6fffd9244ec124d1b6191d7423c1b93...67744ce8c6a69299e4cc535a5321e1b737af28ea
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/piuparts-devel/attachments/20190801/903f1a4a/attachment-0001.html>
More information about the Piuparts-devel
mailing list