Skip to content
Commits on Source (14)
*.pyc
/deps.png
/debiman-piuparts-distill/debiman-piuparts-distill
......@@ -111,7 +111,8 @@ depends = stretch
uri = http://deb.debian.org/debian-debug
depends = stretch
[stretch-proposed]
# this is a full distro representing an upcoming (old-)stable point release
[stretch-next]
uri = None
depends = stretch stretch/updates stretch-updates stretch-proposed-updates
candidates = stretch stretch/updates stretch-proposed-updates
......@@ -139,7 +140,8 @@ depends = buster
uri = http://deb.debian.org/debian-debug
depends = buster
[buster-proposed]
# this is a full distro representing an upcoming (old-)stable point release
[buster-next]
uri = None
depends = buster buster/updates buster-updates buster-proposed-updates
candidates = buster buster/updates buster-proposed-updates
......
......@@ -6,7 +6,7 @@ test "$PIUPARTS_PHASE" = "" || exit 0
if [ "$PIUPARTS_DISTRIBUTION" = "buster" ] || \
[ "$PIUPARTS_DISTRIBUTION" = "buster-proposed" ] ; then
[ "$PIUPARTS_DISTRIBUTION" = "buster-next" ] ; then
if [ -d /etc/init ]; then
rmdir --ignore-fail-on-non-empty -v /etc/init
......
......@@ -124,6 +124,9 @@ if [ "${PIUPARTS_DISTRIBUTION}" = "wheezy" ]; then
firmware-b43-lpphy-installer)
skip_distupgrade "#623703: download location no longer available"
;;
geoip-database-contrib)
skip_distupgrade "#885441: download location no longer available"
;;
nautilus-dropbox)
skip_distupgrade "#770402: downloads awfully slow, hangs during installation"
;;
......@@ -134,6 +137,9 @@ fi
if [ "${PIUPARTS_DISTRIBUTION}" = "jessie" ]; then
case ${PIUPARTS_OBJECTS%%=*} in
geoip-database-contrib)
skip_distupgrade "#885441: download location no longer available"
;;
steam)
skip_distupgrade "#772598: cannot preseed licence acceptance"
;;
......@@ -144,6 +150,16 @@ if [ "${PIUPARTS_DISTRIBUTION}" = "jessie" ]; then
fi
if [ "${PIUPARTS_DISTRIBUTION}" = "stretch" ]; then
case ${PIUPARTS_OBJECTS%%=*} in
geoip-database-contrib)
skip_distupgrade "#885441: download location no longer available"
;;
esac
fi
case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
acgvision-agent@squeeze)
# removed after squeeze
......@@ -163,6 +179,11 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
chef-server-api@wheezy)
skip_distupgrade "#681573: chef-solr: fails to install if policy-rc.d forbids to start services"
;;
console-setup-freebsd@*)
if [ "$(uname)" = "Linux" ]; then
skip_always "non-Linux package"
fi
;;
cpushare@wheezy)
# removed after wheezy
skip_distupgrade "#689885: Ships a folder in /var/run or /var/lock"
......
......@@ -61,7 +61,7 @@ if [ "$PIUPARTS_DISTRIBUTION" = "jessie" ] ; then
fi
if [ "$PIUPARTS_DISTRIBUTION" = "stretch" ] || \
[ "$PIUPARTS_DISTRIBUTION" = "stretch-proposed" ] ; then
[ "$PIUPARTS_DISTRIBUTION" = "stretch-next" ] ; then
mark_for_purge libprocps3
mark_for_purge sysvinit
......@@ -75,7 +75,7 @@ if [ "$PIUPARTS_DISTRIBUTION" = "stretch" ] || \
fi
if [ "$PIUPARTS_DISTRIBUTION" = "buster" ] || \
[ "$PIUPARTS_DISTRIBUTION" = "buster-proposed" ] ; then
[ "$PIUPARTS_DISTRIBUTION" = "buster-next" ] ; then
mark_for_purge libcryptsetup4
mark_for_purge libprocps6
......
......@@ -22,14 +22,23 @@ piuparts (0.99) UNRELEASED; urgency=medium
- Add bullseye-proposed-updates.
* piuparts.conf:
- Add section [sid-merged-usr], using --merged-usr. (Closes: #848968)
- Use --warn-on-debsums-errors for tests ending in buster.
- Rename [stretch2proposed] to [stretch2next]
and [buster2proposed] to [buster2next].
* piupartslib/packagesdb.py:
- Keep recycled pass logs while waiting for new test results, continuing
to show them as "successfully-tested" instead of "waiting-to-be-tested".
- Add (hardcoded) list of missing dependencies that resolve to
"ignore-does-not-exist".
Used for packages to be skipped via "is_installable_*" scripts to
exclude them from "dependency-does-not-exist" state.
* piuparts-slave.py:
- New option "slave-flush-interval" to flush logs more frequently to the
master. Set to 30 minutes.
- New option "chroot-meta-directory" to share reference target chroot
metadata between slave instances.
* piuparts-report.py:
- Omit states with 0 packages from section summaries.
* scripts/{post_chroot_unpack,pre_distupgrade}_allow_unauthenticated:
- Disable Check-Valid-Until for wheezy/updates and jessie-backports.
* scripts/post_distupgrade_exceptions:
......
......@@ -31,16 +31,26 @@ flags-leftovers =
--scriptsdir /etc/piuparts/scripts-leftovers
# aliases for the definitions below
flags-start-testing = %(flags-start-buster)s
flags-end-testing = %(flags-end-buster)s
flags-start-testing = %(flags-start-bullseye)s
flags-end-testing = %(flags-end-bullseye)s
flags-start-stable = %(flags-start-stretch)s
flags-end-stable = %(flags-end-stretch)s
flags-start-oldstable = %(flags-start-jessie)s
flags-end-oldstable = %(flags-end-jessie)s
# common flags for tests starting in bullseye
flags-start-bullseye =
# no flags needed
# common flags for tests ending in bullseye
flags-end-bullseye =
# no flags needed
# common flags for tests starting in buster
flags-start-buster =
# no flags needed
# debsums failures won't be fixed in buster, mostly related to
# oldstyle packaging of aspell dictionaries
--warn-on-debsums-errors
# common flags for tests ending in buster
flags-end-buster =
......@@ -179,8 +189,8 @@ sections =
buster-rcmd
buster-security
buster-pu
# buster-proposed
buster2proposed
# buster-next
buster2next
stretch2buster
stretch2Xbuster
stretch2buster-rcmd
......@@ -191,8 +201,8 @@ sections =
stretch-rcmd
stretch-security
stretch-pu
# stretch-proposed
stretch2proposed
# stretch-next
stretch2next
oldstable222sid
oldstable22testing
jessie2stretch
......@@ -504,17 +514,17 @@ depends-sections = buster
distro = buster-proposed-updates
[buster-proposed]
[buster-next]
precedence = 3
json-sections = none
piuparts-flags =
%(flags-default)s
%(flags-start-buster)s
%(flags-end-buster)s
distro = buster-proposed
distro = buster-next
[buster2proposed]
[buster2next]
precedence = 3
json-sections = none
piuparts-flags =
......@@ -522,7 +532,7 @@ piuparts-flags =
%(flags-start-buster)s
%(flags-end-buster)s
distro = buster
upgrade-test-distros = buster buster-proposed
upgrade-test-distros = buster buster-next
[stretch2buster]
......@@ -646,17 +656,17 @@ depends-sections = stretch
distro = stretch-proposed-updates
[stretch-proposed]
[stretch-next]
precedence = 3
json-sections = none
piuparts-flags =
%(flags-default)s
%(flags-start-stretch)s
%(flags-end-stretch)s
distro = stretch-proposed
distro = stretch-next
[stretch2proposed]
[stretch2next]
precedence = 3
json-sections = none
piuparts-flags =
......@@ -664,7 +674,7 @@ piuparts-flags =
%(flags-start-stretch)s
%(flags-end-stretch)s
distro = stretch
upgrade-test-distros = stretch stretch-proposed
upgrade-test-distros = stretch stretch-next
[jessie2stretch]
......
......@@ -22,15 +22,19 @@ flags-leftovers =
--scriptsdir /etc/piuparts/scripts-leftovers
flags-start-testing =
%(flags-start-buster)s
%(flags-start-bullseye)s
flags-end-testing =
%(flags-end-buster)s
%(flags-end-bullseye)s
flags-start-stable =
%(flags-start-stretch)s
flags-start-bullseye =
flags-end-bullseye =
flags-start-buster =
flags-end-buster =
--warn-on-debsums-errors
flags-start-stretch =
flags-end-stretch =
......@@ -1444,7 +1448,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-stretch)s
%(flags-end-stretch)s
distro = stretch-proposed
distro = stretch-next
arch = amd64
area = main
components = main
......@@ -1458,7 +1462,7 @@ piuparts-flags =
%(flags-start-stretch)s
%(flags-end-stretch)s
depends-sections = stretch-next/main stretch-next/non-free
distro = stretch-proposed
distro = stretch-next
arch = amd64
area = contrib
reschedule-old-days = 25
......@@ -1470,7 +1474,7 @@ piuparts-flags =
%(flags-start-stretch)s
%(flags-end-stretch)s
depends-sections = stretch-next/main stretch-next/contrib
distro = stretch-proposed
distro = stretch-next
arch = amd64
area = non-free
reschedule-old-days = 25
......@@ -3740,8 +3744,8 @@ piuparts-flags =
arch = amd64
area = main
components = main
distro = jessie
upgrade-test-distros = jessie stretch testing
distro = jessie-lts
upgrade-test-distros = jessie-lts stretch-next testing
reschedule-old-count = 100
[jessie222testing/contrib]
......@@ -3754,8 +3758,8 @@ piuparts-flags =
depends-sections = jessie222testing/main jessie222testing/non-free
arch = amd64
area = contrib
distro = jessie
upgrade-test-distros = jessie stretch testing
distro = jessie-lts
upgrade-test-distros = jessie-lts stretch-next testing
reschedule-old-count = 100
[jessie222testing/non-free]
......@@ -3768,8 +3772,8 @@ piuparts-flags =
depends-sections = jessie222testing/main jessie222testing/contrib
arch = amd64
area = non-free
distro = jessie
upgrade-test-distros = jessie stretch testing
distro = jessie-lts
upgrade-test-distros = jessie-lts stretch-next testing
reschedule-old-count = 100
......@@ -3784,8 +3788,8 @@ arch = i386
setarch = linux32
area = main
components = main
distro = jessie
upgrade-test-distros = jessie stretch testing
distro = jessie-lts
upgrade-test-distros = jessie-lts stretch-next testing
reschedule-old-count = 100
[jessie222testing_i386/contrib]
......@@ -3799,8 +3803,8 @@ depends-sections = jessie222testing_i386/main jessie222testing_i386/non-free
arch = i386
setarch = linux32
area = contrib
distro = jessie
upgrade-test-distros = jessie stretch testing
distro = jessie-lts
upgrade-test-distros = jessie-lts stretch-next testing
reschedule-old-count = 100
[jessie222testing_i386/non-free]
......@@ -3814,8 +3818,8 @@ depends-sections = jessie222testing_i386/main jessie222testing_i386/contrib
arch = i386
setarch = linux32
area = non-free
distro = jessie
upgrade-test-distros = jessie stretch testing
distro = jessie-lts
upgrade-test-distros = jessie-lts stretch-next testing
reschedule-old-count = 100
......@@ -3829,7 +3833,7 @@ arch = amd64
area = main
components = main
distro = stretch
upgrade-test-distros = stretch stretch-proposed
upgrade-test-distros = stretch stretch-next
[stretch2next/contrib]
precedence = 95
......@@ -3841,7 +3845,7 @@ depends-sections = stretch2next/main stretch2next/non-free
arch = amd64
area = contrib
distro = stretch
upgrade-test-distros = stretch stretch-proposed
upgrade-test-distros = stretch stretch-next
[stretch2next/non-free]
precedence = 95
......@@ -3853,7 +3857,7 @@ depends-sections = stretch2next/main stretch2next/contrib
arch = amd64
area = non-free
distro = stretch
upgrade-test-distros = stretch stretch-proposed
upgrade-test-distros = stretch stretch-next
[stretch2buster/main]
......
#
# detect dkms module source packages that fail to build for a current kernel
#
PATTERN='Error! Bad return status for module build on kernel'
WHERE='fail bugged affected'
ISSUE=0
HEADER="DKMS-packages failing to build a module for a default kernel"
HELPTEXT="
<p>Kernel module source may not be compatible with the latest kernel.
</p>
"
......@@ -2,7 +2,7 @@
# detect dkms module source packages that fail to build for a current kernel
#
PATTERN='Error! Bad return status for module build on kernel'
WHERE='pass fail bugged affected'
WHERE='pass'
ISSUE=1
HEADER="DKMS-packages failing to build a module for a default kernel"
HELPTEXT="
......
......@@ -494,6 +494,7 @@ linktarget_by_template = [
("logrotate_error_after_removal_error.tpl", "due to errors from logrotate after removal"),
("installs_over_symlink_error.tpl", "...and package installs something over existing symlinks"),
("broken_symlinks_error.tpl", "...and logfile also contains 'broken symlinks'"),
("module_build_error_error.tpl", "...and logfile contains dkms module build failures"),
("obsolete_conffiles_error.tpl", "...and logfile reports obsolete conffiles"),
("missing_md5sums_error.tpl", "...and logfile reports missing md5sums"),
("unowned_lib_symlink_error.tpl", "...and logfile reports unowned lib symlinks"),
......@@ -1404,6 +1405,7 @@ class Section:
dir_link += "<a href='%s.html'>%s</a> logs<br>" % (vdir, html_protect(vdir))
if state in ("successfully-tested", "failed-testing"):
analysis = self.create_and_link_to_analysises(state)
if analysis or len(self._binary_db.get_pkg_names_in_state(state)):
tablerows += ("<tr class=\"normalrow\"><td class=\"contentcell2\"><a href='state-%s.html'>%s</a>%s</td>" +
"<td class=\"contentcell2\">%d</td><td class=\"contentcell2\">%s</td></tr>\n") % \
(html_protect(state), html_protect(state), analysis, len(self._binary_db.get_pkg_names_in_state(state)),
......
......@@ -296,6 +296,14 @@ class PackagesDB:
"libnss-mdns-i386": "i386",
}
# these packages are used as dependencies but are only available on
# some architectures or from third-party repositories
# HACK: this hardcoded list should be moved to some data file
_ignored_missing_dependencies = [
"kbdcontrol",
"vidcontrol",
]
# keep in sync with piuparts-report.py: emphasize_reason()
# FIXME: can we reorder this list or remove entries without breaking the counts.txt for the plot?
_states = [
......@@ -315,11 +323,13 @@ class PackagesDB:
"outdated",
# "foreign:*", # can only happen as query result for a dependency
# "does-not-exist", # can only happen as query result for a dependency
# "ignore-does-not-exist", # can only happen as query result for a dependency
]
_good_states = [
"successfully-tested",
"essential-required",
"ignore-does-not-exist",
] + ["foreign:%s" % arch for arch in set(_foreign_packages.values())]
_obsolete_states = [
......@@ -545,7 +555,7 @@ class PackagesDB:
prefer_alt_score = -1
prefer_alt = None
for alternative in alt_deps[d]:
altdep_state = self.get_package_state(alternative)
altdep_state = self.get_best_package_state(alternative)
if altdep_state != "does-not-exist":
alt_found += 1
if prefer_alt_score < 3 and altdep_state == "essential-required":
......@@ -768,6 +778,8 @@ class PackagesDB:
return state
if package_name in self._foreign_packages:
return "foreign:%s" % self._foreign_packages[package_name]
if package_name in self._ignored_missing_dependencies:
return "ignore-does-not-exist"
return "does-not-exist"
def get_best_package_state(self, package_name, resolve_virtual=True, recurse=True):
......