[DRE-maint] Bug#882163: ruby-ronn: unable to satisfy cross Build-Depends

Helmut Grohne helmut at subdivi.de
Sun Nov 19 19:25:52 UTC 2017


Package: ruby-ronn
Version: 0.7.3-5
Tags: patch
User: helmutg at debian.org
Usertags: rebootstrap
Control: affects -1 + src:libidn2

Hi ruby-ronn maintainers,

Your package suddenly became relevant to architecture bootstrap when
libidn2 started to build-depend on it. Unfortunately, this dependency
makes libidn2's Build-Depends unsatisfiable for cross compilation. In
general, Architecture: all packages (like ruby-ronn) can never satisfy
cross Build-Depends unless marked Multi-Arch: foreign.

Unfortunately, marking ruby-ronn in this way is wrong. Another ruby
extension could end up depending on ruby-ronn and thus using
ruby-rdiscount through ruby-ronn. If ruby-ronn was marked Multi-Arch:
foreign, such dependencies could be satisfied from a different
architecture. Thus packages on ruby-ronn would sometimes not work and it
would be difficult to diagnose why. Long story short: We cannot just
mark it Multi-Arch: foreign.

That puts us in a difficult spot: We must mark it and we cannot. Looking
closer, libidn2 really needs /usr/bin/ronn, not the ruby module. A
package containing just the script could be marked. Thus I propose
splitting ruby-ronn into another binary package "ronn" containing
/usr/bin/ronn. This new package could be marked Multi-Arch: foreign and
thus solve the issue around libidn2.

Introducing this new package is not trivial: It must go through the NEW
queue and we need to review the other 35 source packages that depend on
ruby-ronn and maybe switch their dependency over to ronn. Still this
solution sounds manageable to me.

Do you see any alternative?

When closing this bug, libidn2 should be able to build-depend on
ruby-ronn somehow.

Helmut
-------------- next part --------------
diff --minimal -Nru ruby-ronn-0.7.3/debian/changelog ruby-ronn-0.7.3/debian/changelog
--- ruby-ronn-0.7.3/debian/changelog	2016-09-03 17:08:42.000000000 +0200
+++ ruby-ronn-0.7.3/debian/changelog	2017-11-18 21:05:29.000000000 +0100
@@ -1,3 +1,10 @@
+ruby-ronn (0.7.3-5.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Split to new package ronn and mark it M-A:foreign. (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de>  Sat, 18 Nov 2017 21:05:29 +0100
+
 ruby-ronn (0.7.3-5) unstable; urgency=medium
 
   * Team upload.
diff --minimal -Nru ruby-ronn-0.7.3/debian/control ruby-ronn-0.7.3/debian/control
--- ruby-ronn-0.7.3/debian/control	2016-09-03 17:08:42.000000000 +0200
+++ ruby-ronn-0.7.3/debian/control	2017-11-18 21:05:29.000000000 +0100
@@ -36,3 +36,22 @@
  syntax extensions for features commonly found in manpages (definition lists,
  link notation, etc.). The ronn-format(7) manual page defines the format in
  detail.
+ .
+ This package contains the ronn ruby library.
+
+Package: ronn
+Architecture: all
+Multi-Arch: foreign
+Depends: ruby-ronn (= ${source:Version})
+Breaks: ruby-ronn (<< 0.7.3-5.1)
+Replaces: ruby-ronn (<< 0.7.3-5.1)
+Description: Builds manuals from Markdown
+ Ronn builds manuals. It converts simple, human readable textfiles to roff for
+ terminal display, and also to HTML for the web.
+ .
+ The source format includes all of Markdown but has a more rigid structure and
+ syntax extensions for features commonly found in manpages (definition lists,
+ link notation, etc.). The ronn-format(7) manual page defines the format in
+ detail.
+ .
+ This package contains the ronn conversion tool.
diff --minimal -Nru ruby-ronn-0.7.3/debian/ronn.install ruby-ronn-0.7.3/debian/ronn.install
--- ruby-ronn-0.7.3/debian/ronn.install	1970-01-01 01:00:00.000000000 +0100
+++ ruby-ronn-0.7.3/debian/ronn.install	2017-11-18 19:21:45.000000000 +0100
@@ -0,0 +1 @@
+usr/bin
diff --minimal -Nru ruby-ronn-0.7.3/debian/ronn.manpages ruby-ronn-0.7.3/debian/ronn.manpages
--- ruby-ronn-0.7.3/debian/ronn.manpages	1970-01-01 01:00:00.000000000 +0100
+++ ruby-ronn-0.7.3/debian/ronn.manpages	2017-11-18 19:21:16.000000000 +0100
@@ -0,0 +1 @@
+man/ronn.1
diff --minimal -Nru ruby-ronn-0.7.3/debian/ruby-ronn.install ruby-ronn-0.7.3/debian/ruby-ronn.install
--- ruby-ronn-0.7.3/debian/ruby-ronn.install	1970-01-01 01:00:00.000000000 +0100
+++ ruby-ronn-0.7.3/debian/ruby-ronn.install	2017-11-18 19:21:40.000000000 +0100
@@ -0,0 +1,2 @@
+usr/lib
+usr/share
diff --minimal -Nru ruby-ronn-0.7.3/debian/ruby-ronn.manpages ruby-ronn-0.7.3/debian/ruby-ronn.manpages
--- ruby-ronn-0.7.3/debian/ruby-ronn.manpages	2016-09-03 17:08:42.000000000 +0200
+++ ruby-ronn-0.7.3/debian/ruby-ronn.manpages	2017-11-18 19:21:18.000000000 +0100
@@ -1,2 +1 @@
 man/ronn-format.7
-man/ronn.1
diff --minimal -Nru ruby-ronn-0.7.3/debian/rules ruby-ronn-0.7.3/debian/rules
--- ruby-ronn-0.7.3/debian/rules	2016-09-03 17:08:42.000000000 +0200
+++ ruby-ronn-0.7.3/debian/rules	2017-11-18 21:05:29.000000000 +0100
@@ -1,6 +1,10 @@
 #!/usr/bin/make -f
 
 export GEM2DEB_TEST_RUNNER = --check-dependencies
+export DH_RUBY_USE_DH_AUTO_INSTALL_DESTDIR=yes
 
 %:
 	dh $@ --buildsystem=ruby --with ruby
+
+override_dh_installdocs:
+	dh_installdocs --link-doc=ruby-ronn


More information about the Pkg-ruby-extras-maintainers mailing list