Source: python-defaults Version: 2.7.6-2 Severity: wishlist Tags: patch Hi,
First of all, thanks for maintaining Python in Debian! As part of this year's "Bootstrappable Debian" Google Summer of Code project I took a look at python-defaults to break a circular build dependency as noted in the "Feedback Arc Set" section of http://bootstrap.debian.net/amd64/ and, more specifically, at http://bootstrap.debian.net/source/python-defaults.html and the version-specific pages linked from it. There are two primary goals to my work on this GSoC project: - The first goal is to modify some packages so that they may be built in some limited way ("nocheck", binary-only, or build profiles like "stage1") without some of their usual build dependencies. In most cases this is caused by one or more dependency loops between binary and source packages, so that a source package requires for its building, directly or indirectly, one of its own binary packages to be already built. The modifications make the source build in a limited fashion (not generating documentation, not running tests, not building some of the binary packages) so that this may happen with only the rest of the build dependencies, so Debian may be bootstrapped on a new architecture starting from a very few cross-built toolchain packages and then moving along, source package by source package. - The second goal, which is actually closely related to the first, is that in the process of modifications, any changes (some files not regenerated, others not built at all) can be made with binary package level granularity. This means that if a binary package is built at all during a limited build, then it must have the same contents as the same binary package resulting from a full build. The point here is to avoid breakage if other packages in the archive depend on some functionality provided by the omitted files; if so, it should be obvious that the functionality is missing, and the clearest way to do that is by omitting a full binary package or, rather, delaying its build until the rest of the build dependencies are present. After this somewhat lengthy introduction, the point of my work on python-defaults was to remove two circular build dependencies: lsb-release and python-docutils, both of which require python to be already present. It was very easy to drop lsb-release, since dpkg-dev 1.15.1 and later provide the needed functionality in the dpkg-vendor utility. With python-docutils the result was a bit more... unconventional than I'd like. The usual way to resolve these circular build dependencies is to make sure all the files that need more tools for generating are moved to a separate package and this package is built conditionally. For documentation files, this is usually very easy, as with libtasn1-6 in #749854, autogen in #751470, flex in #749344 - in some cases it's as easy as moving some packages from Build-Depends to Build-Depends-Indep and slightly adjusting the rules file to only build the documentation in build-indep/binary-indep. Well, with python-docutils this led to two weird consequences: - the Python Policy and the Python FAQ had to be moved from the python binary package to the python-doc one, which meant that, to avoid replacing the /usr/share/doc/python/python-policy.html/ directory with a symlink to ../python-doc/python-policy.html/, I had to let python-doc install stuff into /usr/share/doc/python/. I know that this usually raises a few eyebrows, but it seems to be the cleanest way to do it (dpkg does not seem to handle very well a directory being replaced with a symlink during a package upgrade). - the manual pages for the executable tools in the python and python-minimal binary packages are also generated documentation, which means that there was a choice: go with statically-generated versions and make sure they are refreshed periodically, or move them to python-doc, too. Well, moving them to python-doc leads to it now installing manual pages for utilities in another package - another "raise a few eyebrows" situation. I added a Recommends: python-doc to both python and python-minimal, so that in the usual "recommended packages are installed by default" case both the Python Policy and the manual pages will be present on the system. Still, I realize that this is a bit fishy, and in the end you have the final say as actual maintainers of the Python packages in Debian, so... here are the proposed patches, let the critique begin! :) Thanks again for your work on Python and on Debian in general! G'luck, Peter -- System Information: Debian Release: jessie/sid APT prefers testing APT policy: (990, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.14-1-amd64 (SMP w/4 CPU cores) Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash -- Peter Pentchev r...@ringlet.net r...@freebsd.org p.penc...@storpool.com PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13
From acf832fc5bcd5d51da6e44dbbbf2b1215d68d4a3 Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sun, 15 Jun 2014 20:17:32 +0300 Subject: [PATCH 1/9] Regenerate debian/control. --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index a3efed5..570bfe0 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: python-defaults Section: python Priority: optional Maintainer: Matthias Klose <d...@debian.org> -Uploaders: Scott Kitterman <sc...@kitterman.com>, Piotr Ożarowski <pi...@debian.org>, Barry Warsaw <ba...@debian.org> +Uploaders: Scott Kitterman <sc...@kitterman.com>, Piotr Ożarowski <pi...@debian.org> Build-Depends: debhelper (>= 8~), python-docutils (>= 0.4-3), libhtml-tree-perl, debiandoc-sgml, lsb-release Standards-Version: 3.9.5 -- 2.0.0
From dbf71bacc4c7cfcefab0438079a66fca1895a200 Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Fri, 13 Jun 2014 17:47:22 +0300 Subject: [PATCH 2/9] Use dpkg-vendor instead of lsb_release. Drop a circular build dependency on lsb-release by using dpkg-vendor instead of lsb_release to find out whether we are on a Debian or a Ubuntu distribution. The dpkg-vendor utility was added in dpkg-dev 1.15.1, so there is no need for a versioned build dependency. --- debian/control.in | 2 +- debian/rules | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control.in b/debian/control.in index 5ffad46..f5839f4 100644 --- a/debian/control.in +++ b/debian/control.in @@ -4,7 +4,7 @@ Priority: optional Maintainer: Matthias Klose <d...@debian.org> Uploaders: Scott Kitterman <sc...@kitterman.com>, Piotr Ożarowski <pi...@debian.org> Build-Depends: debhelper (>= 8~), python-docutils (>= 0.4-3), - libhtml-tree-perl, debiandoc-sgml, lsb-release + libhtml-tree-perl, debiandoc-sgml Standards-Version: 3.9.5 Homepage: http://www.python.org/ Vcs-Bzr: http://alioth.debian.org/anonscm/bzr/pkg-python/python-defaults-debian diff --git a/debian/rules b/debian/rules index e131a80..7fca98e 100755 --- a/debian/rules +++ b/debian/rules @@ -14,7 +14,7 @@ changelog_values := $(shell dpkg-parsechangelog \ PKGSOURCE := $(word 1, $(changelog_values)) PKGVERSION := $(word 2, $(changelog_values)) -distribution := $(shell lsb_release -is) +distribution := $(shell dpkg-vendor --query Vendor) export VER=2.7 export NVER=2.8 -- 2.0.0
From d49580c06404d58c03ff1e96f37db2c96830b763 Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sun, 15 Jun 2014 20:18:28 +0300 Subject: [PATCH 3/9] Regenerate debian/control. --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 570bfe0..4320b93 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: optional Maintainer: Matthias Klose <d...@debian.org> Uploaders: Scott Kitterman <sc...@kitterman.com>, Piotr Ożarowski <pi...@debian.org> Build-Depends: debhelper (>= 8~), python-docutils (>= 0.4-3), - libhtml-tree-perl, debiandoc-sgml, lsb-release + libhtml-tree-perl, debiandoc-sgml Standards-Version: 3.9.5 Homepage: http://www.python.org/ Vcs-Bzr: http://alioth.debian.org/anonscm/bzr/pkg-python/python-defaults-debian -- 2.0.0
From 6a17cd15a742d87eebae3a9bbdec93f3eb9e195c Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sat, 14 Jun 2014 14:21:32 +0300 Subject: [PATCH 4/9] Move the Python Policy and the FAQ to python-doc. Move the documents that need additional tools for building to the python-doc package so that they may be cleanly isolated in a binary-only build. The goal is to be able to build the architecture-dependent packages without relying on python-docutils or similar in order to be able to break a circular build dependency and improve the process of bootstrapping Debian on a new architecture. In the process, move the actual generation of the documentation files to a build-indep stage, do not do everything in the install and binary stages. --- debian/python-doc.doc-base.python-policy | 19 ++++++++ debian/python-doc.docs | 3 ++ debian/python-doc.install | 1 + debian/python.doc-base.python-policy | 19 -------- debian/rules | 83 ++++++++++++++++++-------------- 5 files changed, 71 insertions(+), 54 deletions(-) create mode 100644 debian/python-doc.doc-base.python-policy create mode 100644 debian/python-doc.install delete mode 100644 debian/python.doc-base.python-policy diff --git a/debian/python-doc.doc-base.python-policy b/debian/python-doc.doc-base.python-policy new file mode 100644 index 0000000..da7267e --- /dev/null +++ b/debian/python-doc.doc-base.python-policy @@ -0,0 +1,19 @@ +Document: python-policy +Title: Debian Python Policy (Proposal) +Author: Neil Schemenauer, Matthias Klose, Gregor Hoffleit +Abstract: This document describes the packaging of Python within the Debian + GNU/Linux distribution and the policy requirements for packaged Python + programs and modules. + . + The Debian Python Policy has still a draft status. +Section: Debian + +Format: debiandoc-sgml +Files: /usr/share/doc/python-doc/python-policy.sgml.gz + +Format: text +Files: /usr/share/doc/python-doc/python-policy.txt.gz + +Format: HTML +Index: /usr/share/doc/python-doc/python-policy.html/index.html +Files: /usr/share/doc/python-doc/python-policy.html/*.html diff --git a/debian/python-doc.docs b/debian/python-doc.docs index 7f88ca4..d9cc702 100644 --- a/debian/python-doc.docs +++ b/debian/python-doc.docs @@ -1 +1,4 @@ +debian/python-policy.txt +debian/python-policy.sgml +debian/python-policy.html pydist/README.PyDist* diff --git a/debian/python-doc.install b/debian/python-doc.install new file mode 100644 index 0000000..1308ca2 --- /dev/null +++ b/debian/python-doc.install @@ -0,0 +1 @@ +faq/*.html usr/share/doc/python-doc/faq diff --git a/debian/python.doc-base.python-policy b/debian/python.doc-base.python-policy deleted file mode 100644 index 049a475..0000000 --- a/debian/python.doc-base.python-policy +++ /dev/null @@ -1,19 +0,0 @@ -Document: python-policy -Title: Debian Python Policy (Proposal) -Author: Neil Schemenauer, Matthias Klose, Gregor Hoffleit -Abstract: This document describes the packaging of Python within the Debian - GNU/Linux distribution and the policy requirements for packaged Python - programs and modules. - . - The Debian Python Policy has still a draft status. -Section: Debian - -Format: debiandoc-sgml -Files: /usr/share/doc/python/python-policy.sgml.gz - -Format: text -Files: /usr/share/doc/python/python-policy.txt.gz - -Format: HTML -Index: /usr/share/doc/python/python-policy.html/index.html -Files: /usr/share/doc/python/python-policy.html/*.html diff --git a/debian/rules b/debian/rules index 7fca98e..5d933f9 100755 --- a/debian/rules +++ b/debian/rules @@ -42,12 +42,29 @@ ifneq ($(with_doc),yes) endif build: stamp-build -build-arch: stamp-build -build-indep: stamp-build -stamp-build: +build-arch: stamp-build-arch +build-indep: stamp-build-indep +stamp-build: stamp-build-arch stamp-build-indep touch stamp-build -stamp-doc-policy: +stamp-build-arch: control-file + touch stamp-build-arch + +stamp-build-indep: control-file stamp-doc + touch stamp-build-indep + +stamp-doc-faq: control-file + set -e; \ + cd faq && \ + for p in *.ht; do \ + p=`basename $$p .ht`; \ + echo $(rst2html) $$p.ht $$p.html; \ + awk 'NR > 2' $$p.ht > $$p.ht2; \ + $(rst2html) $$p.ht2 $$p.html; \ + done + touch stamp-doc-faq + +stamp-doc-policy: control-file debiandoc2text debian/python-policy.sgml mv -f python-policy.txt debian/ debiandoc2html -l en.UTF-8 debian/python-policy.sgml @@ -56,7 +73,7 @@ stamp-doc-policy: make -C pydist README.PyDist.html touch stamp-doc-policy -stamp-doc: stamp-doc-policy +stamp-doc: stamp-doc-policy stamp-doc-faq touch stamp-doc control-file: @@ -130,27 +147,23 @@ stamp-control: fi; \ done -install: build stamp-dh_python stamp-install -stamp-install: stamp-build control-file stamp-control +install-arch: build-arch stamp-dh_python stamp-install-arch +install-indep: build-indep stamp-install-indep + +stamp-install-arch: stamp-build-arch dh_testdir dh_testroot - dh_installdirs usr/share/doc/python/faq - dh_install + dh_install -a + touch stamp-install-arch - set -e; \ - cd faq && \ - for p in *.ht; do \ - p=`basename $$p .ht`; \ - echo $(rst2html) $$p.ht $$p.html; \ - awk 'NR > 2' $$p.ht > $$p.ht2; \ - $(rst2html) $$p.ht2 $$p.html; \ - mv $$p.html ../debian/python/usr/share/doc/python/faq/; \ - rm -f $$p.ht2; \ - done - mv debian/python/usr/share/doc/python/faq/FAQ.html \ - debian/python/usr/share/doc/python/ +stamp-install-indep: stamp-build-indep + dh_testdir + dh_testroot + dh_installdirs -ppython-doc usr/share/doc/python-doc/faq usr/share/doc/python-doc/python-policy.html + mv faq/FAQ.html debian/python-doc/usr/share/doc/python-doc/ + dh_install -i - touch stamp-install + touch stamp-install-indep stamp-dh_python: dh_testdir @@ -165,7 +178,7 @@ stamp-dh_python: touch $@ # Build architecture-independent files here. -binary-indep: build install stamp-doc +binary-indep: build-indep install-indep stamp-doc dh_testdir -i dh_testroot -i dh_installman -i @@ -212,7 +225,7 @@ endif dh_builddeb -i $(NOPKGS) # Build architecture-dependent files here. -binary-arch: build install stamp-doc +binary-arch: build-arch install-arch dh_testdir -a dh_testroot -a dh_installman -a @@ -266,19 +279,23 @@ binary-arch: build install stamp-doc ln -sf 2to3-$(VER).1.gz \ debian/python/usr/share/man/man1/2to3.1.gz - mkdir -p debian/python/usr/share/doc/python - cp -a debian/python-policy.{html,sgml,txt} \ - debian/python/usr/share/doc/python/ - mkdir -p debian/python/usr/share/pixmaps ln -sf python$(VER).xpm debian/python/usr/share/pixmaps/python.xpm : # add symlinks to policy files - mkdir -p debian/python/usr/share/doc/python$(VER) + mkdir -p debian/python/usr/share/doc/python debian/python/usr/share/doc/python$(VER) for ext in html sgml.gz txt.gz; do \ - ln -sf ../python/python-policy.$$ext \ + ln -sf ../python-doc/python-policy.$$ext \ + debian/python/usr/share/doc/python/python-policy.$$ext; \ + ln -sf ../python-doc/python-policy.$$ext \ debian/python/usr/share/doc/python$(VER)/python-policy.$$ext; \ done + for faq in faq FAQ.html; do \ + ln -sf ../python-doc/$$faq \ + debian/python/usr/share/doc/python/$$faq; \ + ln -sf ../python-doc/$$faq \ + debian/python/usr/share/doc/python$(VER)/$$faq; \ + done mkdir -p debian/python/usr/share/apps/konsole cp -p debian/python.desktop debian/python/usr/share/apps/konsole/ @@ -375,13 +392,9 @@ endif dh_md5sums -a $(NOPKGS) dh_builddeb -a $(NOPKGS) -# Build architecture-dependent files here. -binary-arch: build install -# nothing to do - binary: binary-indep binary-arch -.PHONY: control-file configure build clean binary-indep binary-arch binary install +.PHONY: control-file configure build clean binary-indep binary-arch binary install-indep install-arch # Local Variables: # mode: makefile -- 2.0.0
From 0068888d8ec6f6517e77dd4677e7eb3513e0970e Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sat, 14 Jun 2014 14:35:07 +0300 Subject: [PATCH 5/9] Let python-doc install into /usr/share/doc/python. This, although a little bit inappropriate, takes care of a couple of problems that arise when we attempt to replace a directory with a symbolic link during a package upgrade. --- debian/python-doc.doc-base.python-policy | 8 ++++---- debian/python-doc.docs | 3 --- debian/python-doc.install | 5 ++++- debian/rules | 15 ++++----------- 4 files changed, 12 insertions(+), 19 deletions(-) diff --git a/debian/python-doc.doc-base.python-policy b/debian/python-doc.doc-base.python-policy index da7267e..049a475 100644 --- a/debian/python-doc.doc-base.python-policy +++ b/debian/python-doc.doc-base.python-policy @@ -9,11 +9,11 @@ Abstract: This document describes the packaging of Python within the Debian Section: Debian Format: debiandoc-sgml -Files: /usr/share/doc/python-doc/python-policy.sgml.gz +Files: /usr/share/doc/python/python-policy.sgml.gz Format: text -Files: /usr/share/doc/python-doc/python-policy.txt.gz +Files: /usr/share/doc/python/python-policy.txt.gz Format: HTML -Index: /usr/share/doc/python-doc/python-policy.html/index.html -Files: /usr/share/doc/python-doc/python-policy.html/*.html +Index: /usr/share/doc/python/python-policy.html/index.html +Files: /usr/share/doc/python/python-policy.html/*.html diff --git a/debian/python-doc.docs b/debian/python-doc.docs index d9cc702..7f88ca4 100644 --- a/debian/python-doc.docs +++ b/debian/python-doc.docs @@ -1,4 +1 @@ -debian/python-policy.txt -debian/python-policy.sgml -debian/python-policy.html pydist/README.PyDist* diff --git a/debian/python-doc.install b/debian/python-doc.install index 1308ca2..077626a 100644 --- a/debian/python-doc.install +++ b/debian/python-doc.install @@ -1 +1,4 @@ -faq/*.html usr/share/doc/python-doc/faq +faq/*.html usr/share/doc/python/faq +debian/python-policy.txt usr/share/doc/python +debian/python-policy.sgml usr/share/doc/python +debian/python-policy.html usr/share/doc/python diff --git a/debian/rules b/debian/rules index 5d933f9..ea96686 100755 --- a/debian/rules +++ b/debian/rules @@ -159,8 +159,8 @@ stamp-install-arch: stamp-build-arch stamp-install-indep: stamp-build-indep dh_testdir dh_testroot - dh_installdirs -ppython-doc usr/share/doc/python-doc/faq usr/share/doc/python-doc/python-policy.html - mv faq/FAQ.html debian/python-doc/usr/share/doc/python-doc/ + dh_installdirs -ppython-doc usr/share/doc/python/faq usr/share/doc/python/python-policy.html + mv faq/FAQ.html debian/python-doc/usr/share/doc/python/ dh_install -i touch stamp-install-indep @@ -187,9 +187,6 @@ ifeq ($(with_doc),yes) mkdir -p debian/python-doc/usr/share/doc/python ln -sf ../python$(VER)-doc/html \ debian/python-doc/usr/share/doc/python/html - mkdir -p debian/python-doc/usr/share/doc/python-doc - ln -sf ../python$(VER)-doc/html \ - debian/python-doc/usr/share/doc/python-doc/html endif : # provide the idle and idle.1 defaults @@ -285,15 +282,11 @@ binary-arch: build-arch install-arch : # add symlinks to policy files mkdir -p debian/python/usr/share/doc/python debian/python/usr/share/doc/python$(VER) for ext in html sgml.gz txt.gz; do \ - ln -sf ../python-doc/python-policy.$$ext \ - debian/python/usr/share/doc/python/python-policy.$$ext; \ - ln -sf ../python-doc/python-policy.$$ext \ + ln -sf ../python/python-policy.$$ext \ debian/python/usr/share/doc/python$(VER)/python-policy.$$ext; \ done for faq in faq FAQ.html; do \ - ln -sf ../python-doc/$$faq \ - debian/python/usr/share/doc/python/$$faq; \ - ln -sf ../python-doc/$$faq \ + ln -sf ../python/$$faq \ debian/python/usr/share/doc/python$(VER)/$$faq; \ done -- 2.0.0
From f8c45e5e26c86b35055bb3d5cd87a0bd07ec7138 Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sun, 15 Jun 2014 20:07:56 +0300 Subject: [PATCH 6/9] Move the manpages to python-doc, too. This is a bit unconventional, since now a package contains manpages for programs found in another package, but this allows us to build the rest of the packages without a build-dependency on rst2man. --- debian/python-doc.manpages | 3 +++ debian/python-minimal.manpages | 2 -- debian/python.manpages | 1 - debian/rules | 8 ++++++-- 4 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 debian/python-doc.manpages delete mode 100644 debian/python-minimal.manpages delete mode 100644 debian/python.manpages diff --git a/debian/python-doc.manpages b/debian/python-doc.manpages new file mode 100644 index 0000000..3bd2723 --- /dev/null +++ b/debian/python-doc.manpages @@ -0,0 +1,3 @@ +pyclean.1 +pycompile.1 +dh_python2.1 diff --git a/debian/python-minimal.manpages b/debian/python-minimal.manpages deleted file mode 100644 index 242b101..0000000 --- a/debian/python-minimal.manpages +++ /dev/null @@ -1,2 +0,0 @@ -pyclean.1 -pycompile.1 diff --git a/debian/python.manpages b/debian/python.manpages deleted file mode 100644 index 47df0aa..0000000 --- a/debian/python.manpages +++ /dev/null @@ -1 +0,0 @@ -dh_python2.1 diff --git a/debian/rules b/debian/rules index ea96686..cf0b090 100755 --- a/debian/rules +++ b/debian/rules @@ -73,7 +73,11 @@ stamp-doc-policy: control-file make -C pydist README.PyDist.html touch stamp-doc-policy -stamp-doc: stamp-doc-policy stamp-doc-faq +stamp-doc-manpages: control-file + DESTDIR=debian/python-minimal PREFIX=/usr make manpages + touch stamp-doc-manpages + +stamp-doc: stamp-doc-policy stamp-doc-faq stamp-doc-manpages touch stamp-doc control-file: @@ -171,7 +175,7 @@ stamp-dh_python: dh_installdirs -make check_versions DESTDIR=debian/python PREFIX=/usr make install-dev - DESTDIR=debian/python-minimal PREFIX=/usr make install-runtime manpages + DESTDIR=debian/python-minimal PREFIX=/usr make install-runtime # disabled by default, run manually if you want to update it # (requires apt-file and network connection) #make -C pydist dist_fallback -- 2.0.0
From a2e25502199b24972f64f40897ac73c7d3a25107 Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sun, 15 Jun 2014 20:05:32 +0300 Subject: [PATCH 7/9] "make clean" in tests requires python-minimal installed. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 135614d..5d17068 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ PREFIX ?= /usr/local MANPAGES ?= dh_python2.1 pycompile.1 pyclean.1 clean: - make -C tests clean + if pyversions -s > /dev/null 2>&1; then make -C tests clean; fi make -C pydist clean find . -name '*.py[co]' -delete rm -f .coverage $(MANPAGES) -- 2.0.0
From f0cb817e511a6602f1a33cb36fadab369808e236 Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sun, 15 Jun 2014 20:09:30 +0300 Subject: [PATCH 8/9] Move python-docutils to B-D-I. Break a circular build dependency by only depending on python-docutils (which depends on python) while building architecture-independent packages. This allows the bootstrap builds to generate the binary packages, using arch:all packages already built for other architectures if necessary. --- debian/control.in | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/debian/control.in b/debian/control.in index f5839f4..1472626 100644 --- a/debian/control.in +++ b/debian/control.in @@ -3,8 +3,9 @@ Section: python Priority: optional Maintainer: Matthias Klose <d...@debian.org> Uploaders: Scott Kitterman <sc...@kitterman.com>, Piotr Ożarowski <pi...@debian.org> -Build-Depends: debhelper (>= 8~), python-docutils (>= 0.4-3), - libhtml-tree-perl, debiandoc-sgml +Build-Depends: debhelper (>= 8~) +Build-Depends-Indep: python-docutils (>= 0.4-3), debiandoc-sgml, + libhtml-tree-perl Standards-Version: 3.9.5 Homepage: http://www.python.org/ Vcs-Bzr: http://alioth.debian.org/anonscm/bzr/pkg-python/python-defaults-debian @@ -15,7 +16,8 @@ Architecture: any Multi-Arch: allowed Priority: standard Depends: ${misc:Depends}, @PVER@ (>= @PREVVER@), python-minimal (= ${binary:Version}), libpython-stdlib (= ${binary:Version}) -Suggests: python-doc (= ${binary:Version}), python-tk (>= @PREVVER@) +Recommends: python-doc (= ${source:Version}) +Suggests: python-tk (>= @PREVVER@) Conflicts: python-central (<< 0.5.5) Breaks: python-csv (<< 1.0-4), python-bz2 (<< 1.1-8), python-email (<< 2.5.5-3), update-manager-core (<< 0.200.5-2) Replaces: python-dev (<< 2.6.5-2) @@ -33,7 +35,7 @@ Architecture: any Multi-Arch: allowed Priority: standard Depends: ${misc:Depends}, @PVER@-minimal (>= @PREVVER@), dpkg (>= 1.13.20) -Recommends: python +Recommends: python, python-doc (= ${source:Version}) Conflicts: python-central (<< 0.5.5) Breaks: python (<= 2.7.3-1~), python-dev (<< 2.6), python-dbg (<< 2.6), python-all (<< 2.6), python-all-dev (<< 2.6), python-all-dbg (<< 2.6), python-examples (<< 2.6), idle (<< 2.6), python2.5-minimal (<< 2.5.5-7), python2.6-minimal (<< 2.6.5~rc2-2), python3.1-minimal (<< 3.1.2~rc1-2), python-support (<< 1.0.10ubuntu2) Replaces: python (<= 2.7.3-1~) -- 2.0.0
From dad1118b67332cdf42944ed8d9a35335d2d8467a Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Sun, 15 Jun 2014 20:19:06 +0300 Subject: [PATCH 9/9] Regenerate debian/control. --- debian/control | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/debian/control b/debian/control index 4320b93..6fd5e50 100644 --- a/debian/control +++ b/debian/control @@ -3,8 +3,9 @@ Section: python Priority: optional Maintainer: Matthias Klose <d...@debian.org> Uploaders: Scott Kitterman <sc...@kitterman.com>, Piotr Ożarowski <pi...@debian.org> -Build-Depends: debhelper (>= 8~), python-docutils (>= 0.4-3), - libhtml-tree-perl, debiandoc-sgml +Build-Depends: debhelper (>= 8~) +Build-Depends-Indep: python-docutils (>= 0.4-3), debiandoc-sgml, + libhtml-tree-perl Standards-Version: 3.9.5 Homepage: http://www.python.org/ Vcs-Bzr: http://alioth.debian.org/anonscm/bzr/pkg-python/python-defaults-debian @@ -15,7 +16,8 @@ Architecture: any Multi-Arch: allowed Priority: standard Depends: ${misc:Depends}, python2.7 (>= 2.7.7-1~), python-minimal (= ${binary:Version}), libpython-stdlib (= ${binary:Version}) -Suggests: python-doc (= ${binary:Version}), python-tk (>= 2.7.7-1~) +Recommends: python-doc (= ${source:Version}) +Suggests: python-tk (>= 2.7.7-1~) Conflicts: python-central (<< 0.5.5) Breaks: python-csv (<< 1.0-4), python-bz2 (<< 1.1-8), python-email (<< 2.5.5-3), update-manager-core (<< 0.200.5-2) Replaces: python-dev (<< 2.6.5-2) @@ -33,7 +35,7 @@ Architecture: any Multi-Arch: allowed Priority: standard Depends: ${misc:Depends}, python2.7-minimal (>= 2.7.7-1~), dpkg (>= 1.13.20) -Recommends: python +Recommends: python, python-doc (= ${source:Version}) Conflicts: python-central (<< 0.5.5) Breaks: python (<= 2.7.3-1~), python-dev (<< 2.6), python-dbg (<< 2.6), python-all (<< 2.6), python-all-dev (<< 2.6), python-all-dbg (<< 2.6), python-examples (<< 2.6), idle (<< 2.6), python2.5-minimal (<< 2.5.5-7), python2.6-minimal (<< 2.6.5~rc2-2), python3.1-minimal (<< 3.1.2~rc1-2), python-support (<< 1.0.10ubuntu2) Replaces: python (<= 2.7.3-1~) -- 2.0.0
signature.asc
Description: Digital signature