Source: shared-mime-info Version: 1.3-1 Severity: wishlist Tags: patch Hi,
Thanks for taking care of shared-mime-info in Debian! As part of this year's "Bootstrappable Debian" Google Summer of Code project I took a look at shared-mime-info 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/shared-mime-info.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. The problem with shared-mime-info is that it uses docbook-utils to rebuild its specification document, but docbook-utils has several indirect dependency paths back to shared-mime-info. The most straightforward way to solve this problem is to move the specification to its own binary package, an architecture-independent one, and only depend on docbook-utils when actually building that. In this way, "normal" buildd and bootstrap builds (binary packages only) will not ever need to bring in docbook-utils, and if any need arises to rebuild the specification, this may be done in a full build on an already-bootstrapped architecture with a docbook-utils package available. So what do you think about the attached patch that implements this - creates a new binary package, shared-mime-info-common, modifies the rules file so that only the building of the new package uses docbook-utils, and consequently moves docbook-utils to B-D-I? If anything should go wrong with the patch, it is also available at https://gitorious.org/roam-debian-bootstrap/shared-mime-info-debian/commits/roam-indep Thanks in advance for your time, and thanks for your work on Debian! 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-2-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 -- no debconf information
From df5db752fb1d6a8716f2433a09e6edcfa8a26288 Mon Sep 17 00:00:00 2001 From: Peter Pentchev <r...@ringlet.net> Date: Mon, 21 Jul 2014 00:05:26 +0300 Subject: [PATCH] Break the spec into a new shared-mime-info-common. This breaks several instances of a build dependency loop involving docbook-utils; see the version-specific pages linked from bootstrap.debian.net/source/shared-mime-info.html --- debian/control | 19 +++++++++++++++---- debian/rules | 3 ++- debian/shared-mime-info-common.doc-base | 12 ++++++++++++ debian/shared-mime-info-common.install | 1 + debian/shared-mime-info.doc-base | 12 ------------ debian/shared-mime-info.docs | 3 --- 6 files changed, 30 insertions(+), 20 deletions(-) create mode 100644 debian/shared-mime-info-common.doc-base create mode 100644 debian/shared-mime-info-common.install delete mode 100644 debian/shared-mime-info.doc-base delete mode 100644 debian/shared-mime-info.docs diff --git a/debian/control b/debian/control index 4b1ec20..4682fc2 100644 --- a/debian/control +++ b/debian/control @@ -6,12 +6,11 @@ Uploaders: Emilio Pozuelo Monfort <po...@debian.org> Build-Depends: cdbs (>= 0.4.35), debhelper (>= 7), autotools-dev, - docbook-utils, - docbook-xml, libglib2.0-dev (>= 2.6.0), libxml2-dev (>= 2.4), intltool (>= 0.35), libxml2-utils +Build-Depends-Indep: docbook-utils, docbook-xml Standards-Version: 3.9.5 Vcs-Svn: svn://anonscm.debian.org/pkg-freedesktop/trunk/shared-mime-info Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-freedesktop/trunk/shared-mime-info/ @@ -20,14 +19,26 @@ Homepage: http://freedesktop.org/wiki/Software/shared-mime-info Package: shared-mime-info Architecture: any Depends: ${misc:Depends}, - ${shlibs:Depends} + ${shlibs:Depends}, + shared-mime-info-common Conflicts: libglib2.0-0 (<< 2.17.2), tracker (<< 0.6.90), libgnomevfs2-0 (<< 1:2.24.0) Multi-Arch: foreign -Description: FreeDesktop.org shared MIME database and spec +Description: FreeDesktop.org shared MIME database This is the shared MIME-info database from the X Desktop Group. It is required by any program complying to the Shared MIME-Info Database spec, which is also included in this package. . At this time at least ROX, GNOME, KDE and XFCE use this database. + +Package: shared-mime-info-common +Architecture: all +Depends: ${misc:Depends} +Multi-Arch: foreign +Description: FreeDesktop.org shared MIME database specification + This is the shared MIME-info database from the X Desktop Group. It is required + by any program complying to the Shared MIME-Info Database spec, which is also + included in this package. + . + This package contains the Shared MIME-info Database Specification. diff --git a/debian/rules b/debian/rules index 4376ef3..3518568 100755 --- a/debian/rules +++ b/debian/rules @@ -6,11 +6,12 @@ include /usr/share/cdbs/1/rules/debhelper.mk DEB_CONFIGURE_EXTRA_FLAGS += --disable-update-mimedb DEB_COMPRESS_EXCLUDE += ".pdf" +DEB_DESTDIR = $(CURDIR)/debian/shared-mime-info makebuilddir:: rm -f freedesktop.org.xml -build/shared-mime-info:: +build/shared-mime-info-common:: docbook2pdf shared-mime-info-spec.xml && \ docbook2html -o shared-mime-info-spec.html shared-mime-info-spec.xml diff --git a/debian/shared-mime-info-common.doc-base b/debian/shared-mime-info-common.doc-base new file mode 100644 index 0000000..d9760c7 --- /dev/null +++ b/debian/shared-mime-info-common.doc-base @@ -0,0 +1,12 @@ +Document: shared-mime-info +Title: Shared MIME-info Database specification +Author: Thomas Leonard and others +Abstract: This document specifies a unified MIME database system for use by application developers. +Section: Help/Standards + +Format: pdf +Files: /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf + +Format: html +Index: /usr/share/doc/shared-mime-info/shared-mime-info-spec.html/index.html +Files: /usr/share/doc/shared-mime-info/shared-mime-info-spec.html/*.html diff --git a/debian/shared-mime-info-common.install b/debian/shared-mime-info-common.install new file mode 100644 index 0000000..67cb136 --- /dev/null +++ b/debian/shared-mime-info-common.install @@ -0,0 +1 @@ +shared-mime-info-spec.* usr/share/doc/shared-mime-info diff --git a/debian/shared-mime-info.doc-base b/debian/shared-mime-info.doc-base deleted file mode 100644 index d9760c7..0000000 --- a/debian/shared-mime-info.doc-base +++ /dev/null @@ -1,12 +0,0 @@ -Document: shared-mime-info -Title: Shared MIME-info Database specification -Author: Thomas Leonard and others -Abstract: This document specifies a unified MIME database system for use by application developers. -Section: Help/Standards - -Format: pdf -Files: /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf - -Format: html -Index: /usr/share/doc/shared-mime-info/shared-mime-info-spec.html/index.html -Files: /usr/share/doc/shared-mime-info/shared-mime-info-spec.html/*.html diff --git a/debian/shared-mime-info.docs b/debian/shared-mime-info.docs deleted file mode 100644 index 8d768bb..0000000 --- a/debian/shared-mime-info.docs +++ /dev/null @@ -1,3 +0,0 @@ -shared-mime-info-spec.xml -shared-mime-info-spec.pdf -shared-mime-info-spec.html -- 2.1.0.rc1
signature.asc
Description: Digital signature