Source: libtasn1-6 Version: 3.6-1 Severity: wishlist Tags: patch Hi,
Thanks for your work on maintaing libtasn1 in Debian! As part of this year's "Bootstrappable Debian" Google Summer of Code project I took a look at it 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/libtasn1-6_3.5-2.html - texlive-latex-base depends on texlive-binaries - texlive-binaries depends on libgs9 - libgs9 depends on libcups2 - libcups2 depends on libgnutls28 - libgnutls28 depends on libtasn1-6 What do you think about the attached patches that, only for the case of building in the "stage1" profile designed for bootstrapping, disable the rebuild of the PDF documentation so that libtasn1-6 no longer build-depends on texlive-latex-base? The first patch moves the PDF, HTML and info documentation into a brand new package, libtasn1-6-doc. The goal here is to be able to disable the build at package granularity level: no matter what profile we're building in, if we build a binary package it should have the same contents as if it were built in any other profile (including the default one). So to disable the PDF documentation build, we move the PDF documentation to a package that may be omitted entirely. The second patch modifies the rules file to not build the -doc package if the DEB_BUILD_PROFILES variable contains the word "stage1". This is done in a way that is compatible with the current Debian archive infrastructure; this change may be uploaded now, even before the changes to sbuild, apt, dpkg, etc are present in a stable release. The modification of the control file to add the <!profile.stage1> and the "Build-Profiles: !stage1" notations will be sent in a separate bug report. Thanks again for your work on libtasn1 and on Debian in general! -- System Information: Debian Release: jessie/sid APT prefers testing APT policy: (990, 'testing'), (500, 'stable'), (500, 'oldstable') Architecture: i386 (i686) Foreign Architectures: amd64 Kernel: Linux 3.14-1-686-pae (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 -- no debconf information -- 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 I've heard that this sentence is a rumor.
From ca737332d95e9105fb7cd85c93aa926ad8122e0a Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Thu, 29 May 2014 14:06:39 +0300 Subject: [PATCH 1/2] Move the PDF, HTML and info to libtasn1-6-doc. Break out all the non-manpage documentation into a new package. To avoid user astonishment, let libtasn1-6-dev recommend the new -doc package so that the documentation will most probably remain installed. The main goal is to be able to run a modified build, e.g. in a "stage1" bootstrapping profile, that has fewer dependencies and does not build the documentation at all, but produces the same non-doc binary packages. --- debian/control | 20 ++++++++++++++++++++ debian/libtasn1-6-dev.doc-base | 13 ------------- debian/libtasn1-6-dev.info | 1 - debian/libtasn1-6-dev.install | 3 --- debian/libtasn1-6-dev.links | 1 - debian/libtasn1-6-doc.doc-base | 13 +++++++++++++ debian/libtasn1-6-doc.info | 1 + debian/libtasn1-6-doc.install | 3 +++ debian/libtasn1-6-doc.links | 1 + debian/rules | 2 +- 10 files changed, 39 insertions(+), 19 deletions(-) delete mode 100644 debian/libtasn1-6-dev.doc-base delete mode 100644 debian/libtasn1-6-dev.info delete mode 100644 debian/libtasn1-6-dev.links create mode 100644 debian/libtasn1-6-doc.doc-base create mode 100644 debian/libtasn1-6-doc.info create mode 100644 debian/libtasn1-6-doc.install create mode 100644 debian/libtasn1-6-doc.links diff --git a/debian/control b/debian/control index 5ad6d3e..4d45777 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ Package: libtasn1-6-dev Section: libdevel Architecture: any Depends: libtasn1-6 (= ${binary:Version}), ${misc:Depends} +Recommends: libtasn1-6-doc (= ${source:Version}) Conflicts: libtasn1-dev Provides: libtasn1-dev Priority: optional @@ -29,6 +30,25 @@ Description: Manage ASN.1 structures (development) . This package contains header files and libraries for static linking. +Package: libtasn1-6-doc +Section: doc +Architecture: all +Depends: ${misc:Depends} +Breaks: libtasn1-6-dev (<< 3.6-2) +Replaces: libtasn1-6-dev (<< 3.6-2) +Priority: optional +Description: Manage ASN.1 structures (documentation) + Manage ASN1 (Abstract Syntax Notation One) structures. + The main features of this library are: + * on-line ASN1 structure management that doesn't require any C code + file generation. + * off-line ASN1 structure management with C code file generation + containing an array. + * DER (Distinguish Encoding Rules) encoding + * no limits for INTEGER and ENUMERATED values + . + This package contains the documentation for developing with libtasn1. + Package: libtasn1-6-dbg Section: debug Architecture: any diff --git a/debian/libtasn1-6-dev.doc-base b/debian/libtasn1-6-dev.doc-base deleted file mode 100644 index b41da7a..0000000 --- a/debian/libtasn1-6-dev.doc-base +++ /dev/null @@ -1,13 +0,0 @@ -Document: libtasn1 -Title: Manual for Libtasn1 -Author: Fabio Fiorina, Simon Josefsson -Abstract: This manual is for Libtasn1, which is a library for Abstract - Syntax Notation One (ASN.1) and Distinguish Encoding Rules (DER) manipulation. -Section: Programming/C - -Format: PDF -Files: /usr/share/doc/libtasn1-6-dev/libtasn1.pdf - -Format: info -Index: /usr/share/info/libtasn1.info.gz -Files: /usr/share/info/libtasn1.info* diff --git a/debian/libtasn1-6-dev.info b/debian/libtasn1-6-dev.info deleted file mode 100644 index 18ab22d..0000000 --- a/debian/libtasn1-6-dev.info +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/share/info/*info* diff --git a/debian/libtasn1-6-dev.install b/debian/libtasn1-6-dev.install index dcb646b..5b6a11b 100644 --- a/debian/libtasn1-6-dev.install +++ b/debian/libtasn1-6-dev.install @@ -1,8 +1,5 @@ -../../doc/libtasn1.pdf usr/share/doc/libtasn1-6-dev -../../doc/fdl-1.3.texi usr/share/doc/libtasn1-6-dev usr/include/* usr/lib/*/lib*.a usr/lib/*/lib*.so usr/lib/*/pkgconfig/*.pc usr/share/man/man3/* -usr/share/gtk-doc/html diff --git a/debian/libtasn1-6-dev.links b/debian/libtasn1-6-dev.links deleted file mode 100644 index 1f0dfd1..0000000 --- a/debian/libtasn1-6-dev.links +++ /dev/null @@ -1 +0,0 @@ -usr/share/gtk-doc/html/libtasn1 usr/share/doc/libtasn1-6-dev/reference diff --git a/debian/libtasn1-6-doc.doc-base b/debian/libtasn1-6-doc.doc-base new file mode 100644 index 0000000..36813d0 --- /dev/null +++ b/debian/libtasn1-6-doc.doc-base @@ -0,0 +1,13 @@ +Document: libtasn1 +Title: Manual for Libtasn1 +Author: Fabio Fiorina, Simon Josefsson +Abstract: This manual is for Libtasn1, which is a library for Abstract + Syntax Notation One (ASN.1) and Distinguish Encoding Rules (DER) manipulation. +Section: Programming/C + +Format: PDF +Files: /usr/share/doc/libtasn1-6-doc/libtasn1.pdf + +Format: info +Index: /usr/share/info/libtasn1.info.gz +Files: /usr/share/info/libtasn1.info* diff --git a/debian/libtasn1-6-doc.info b/debian/libtasn1-6-doc.info new file mode 100644 index 0000000..18ab22d --- /dev/null +++ b/debian/libtasn1-6-doc.info @@ -0,0 +1 @@ +debian/tmp/usr/share/info/*info* diff --git a/debian/libtasn1-6-doc.install b/debian/libtasn1-6-doc.install new file mode 100644 index 0000000..d47a4a8 --- /dev/null +++ b/debian/libtasn1-6-doc.install @@ -0,0 +1,3 @@ +../../doc/libtasn1.pdf usr/share/doc/libtasn1-6-doc +../../doc/fdl-1.3.texi usr/share/doc/libtasn1-6-doc +usr/share/gtk-doc/html diff --git a/debian/libtasn1-6-doc.links b/debian/libtasn1-6-doc.links new file mode 100644 index 0000000..15ede1f --- /dev/null +++ b/debian/libtasn1-6-doc.links @@ -0,0 +1 @@ +usr/share/gtk-doc/html/libtasn1 usr/share/doc/libtasn1-6-doc/reference diff --git a/debian/rules b/debian/rules index b4917b3..2410d23 100755 --- a/debian/rules +++ b/debian/rules @@ -18,7 +18,7 @@ DEB_DH_INSTALL_SOURCEDIR = debian/tmp DEB_DH_MAKESHLIBS_ARGS_ALL := -V 'libtasn1-6 (>=3.4-0)' DEB_COMPRESS_EXCLUDE := libtasn1.pdf -build/libtasn1-3-dev:: +build/libtasn1-6-doc:: if ! test -e doc/libtasn1.pdf ; then \ $(MAKE) pdf ; fi if ! test -e doc/libtasn1.html ; then \ -- 2.0.0.rc2
From 0a0d8484b436676480e2cbc751da600a740a988c Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Thu, 29 May 2014 15:34:36 +0300 Subject: [PATCH 2/2] stage1: don't build -doc, drop dependencies. Add build (d/rules) support for the stage1 build profile. If the DEB_BUILD_PROFILES variable contains the word "stage1", the HTML and PDF documentation will not be rebuilt and the -doc package will not be created. This is an intermediate step that may be carried out now, since it does not add the profile.* notation to d/control that the Debian archive infrastructure cannot parse yet. --- debian/control | 2 ++ debian/rules | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 4d45777..47cf4d4 100644 --- a/debian/control +++ b/debian/control @@ -2,6 +2,8 @@ Source: libtasn1-6 Section: libs Maintainer: Debian GnuTLS Maintainers <pkg-gnutls-ma...@lists.alioth.debian.org> Uploaders: Andreas Metzler <ametz...@debian.org>, Eric Dorland <e...@debian.org>, James Westby <jw+deb...@jameswestby.net>, Simon Josefsson <si...@josefsson.org> +# For stage1 bootstrapping builds drop the build dependency on +# gtk-doc-tools and texlive-latex-base. Build-Depends: debhelper (>= 9), cdbs (>= 0.4.93), bison, gtk-doc-tools, texinfo, autotools-dev, texlive-latex-base Standards-Version: 3.9.5 diff --git a/debian/rules b/debian/rules index 2410d23..b83d672 100755 --- a/debian/rules +++ b/debian/rules @@ -1,14 +1,21 @@ #! /usr/bin/make -f # Build the libtasn1 packages for Debian. +ifneq (,$(filter stage1,$(DEB_BUILD_PROFILES))) +DH_OPTIONS += -Nlibtasn1-6-doc +export DH_OPTIONS +endif + include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk DEB_CONFIGURE_EXTRA_FLAGS = --enable-ld-version-script --with-packager=Debian \ --with-packager-bug-reports=http://bugs.debian.org/ \ --with-packager-version="$(DEB_VERSION)" \ - --enable-gtk-doc --enable-gtk-doc-pdf \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) +ifeq (,$(filter stage1,$(DEB_BUILD_PROFILES))) +DEB_CONFIGURE_EXTRA_FLAGS += --enable-gtk-doc --enable-gtk-doc-pdf +endif ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) DEB_MAKE_CHECK_TARGET = check @@ -18,8 +25,10 @@ DEB_DH_INSTALL_SOURCEDIR = debian/tmp DEB_DH_MAKESHLIBS_ARGS_ALL := -V 'libtasn1-6 (>=3.4-0)' DEB_COMPRESS_EXCLUDE := libtasn1.pdf +ifneq (,$(filter stage1,$(DEB_BUILD_PROFILES))) build/libtasn1-6-doc:: if ! test -e doc/libtasn1.pdf ; then \ $(MAKE) pdf ; fi if ! test -e doc/libtasn1.html ; then \ $(MAKE) html ; fi +endif -- 2.0.0.rc2
signature.asc
Description: Digital signature