Self Cycles in Debian Sid as of 2013-01-01

List of self cycles during a bootstrapping of Debian. This list takes into account an existing minimal build system containing essential:yes, build-essential and debhelper. It takes into account architecture:all and otherwise available packages during a bootstrapping scenario. Multiarch, package provides, dependency resolution and strong dependency generation are natively handled by dose3.

These lists were generated for amd64 and therefor miss out on binary packages which exist on other architectures. Most notably they do not contain packages which are i386 only but still in a self-cycle like cmucl, mit-scheme or oaklisp. But since existing architectures are not relevant for bootstrapping this is not an issue.

The first list shows the class of self cycles where a source package build depends on a binary package it builds itself.

source packackage

strongly depends on

because of the source package build depending on

alex

alex

alex

fpc

fp-utils-2.6.0, fp-units-rtl-2.6.0, fp-units-fcl-2.6.0, fp-units-base-2.6.0, fp-compiler-2.6.0

fp-utils-2.6.0, fp-utils, fp-units-fcl-2.6.0, fp-units-fcl, fp-units-base-2.6.0, fp-units-base, fp-compiler-2.6.0, fp-compiler

gforth

gforth-lib, gforth

gforth

ghc

ghc

ghc

happy

happy

happy

mlton

mlton-tools, mlton-runtime-x86-64-linux-gnu, mlton-compiler

mlton

sbcl

sbcl

sbcl

The second list shows the class of self cycles where a source package A build depends on a binary package B which needs another binary package C to be installable. But C is built by A and therefor leads to a cycle. The first column contains the source package A. The second column contains the binary package(s) C. The third column shown the binary package(s) B on which A directly depends. There are three ways to break the cycles:

If you wonder how the source package in the first column ends up depending on the binary package it builds in the second column through its dependencies in the third column, consider using apt-rdepends on the binary packages in the third column.

source packackage

strongly depends on

because of the source package build depending on

avahi

libavahi-common3, libavahi-common-data, libavahi-client3

python-gtk2, libgtk2.0-dev, libgtk-3-dev

colord

libcolord1

libgtk-3-dev

cups

libcupsimage2, libcups2

ghostscript

cyrus-sasl2

libsasl2-2

libpq-dev, libldap2-dev, heimdal-multidev

dbus

libdbus-1-dev, libdbus-1-3

python-dbus, libdbus-glib-1-dev

ecj

libecj-java-gcj, ecj-gcj, ecj

gcj-jdk, gcj-4.7-jdk

gnat-4.6

libgnatvsn4.6, libgnatprj4.6, libgnat-4.6, gnat-4.6-base, gnat-4.6

gnat

gnutls26

libgnutls26

gtk-doc-tools

hscolour

hscolour

haskell-devscripts

ijs

libijs-0.35

ghostscript, docbook-utils

java-atk-wrapper

libatk-wrapper-java-jni

default-jdk

libav

libswscale2, libswscale-dev, libavutil51, libavutil-dev, libavformat53, libavformat-dev, libavcodec-extra-53, libavcodec-dev

libopencv-dev, libcv-dev

libfontenc

libfontenc1

xfonts-utils

libgcrypt11

libgcrypt11

texlive-latex-base, texlive-generic-recommended

libproxy

libproxy0

libwebkitgtk-dev

libtasn1-3

libtasn1-3

texlive-latex-base, gtk-doc-tools

openldap

libldap-2.4-2

heimdal-dev

opensp

libosp5

openjade1.3, openjade

pkg-config

pkg-config

libglib2.0-dev

python2.7

python2.7-minimal, python2.7, libpython2.7

python, lsb-release, gdb

python-numpy

python-numpy

python-matplotlib

x264

libx264-123

libffms2-dev, libavformat-dev

The following table shows build dependency cycles which are not strong. The dependency cycles can be broken by choosing a different installation set. Unfortunately, during bootstrapping, this might not always be possible as the alternative package selection might not be available at the time.

source package

in a not-strong cycle with

d-conf

libdconf0, dconf-service, dconf-gsettings-backend

original-awk

original-awk

phonon-backend-gstreamer

phonon-backend-gstreamer

vala-0.16

valac-0.16, libvala-0.16-0