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

Attachment: signature.asc
Description: Digital signature

Reply via email to