Package: ruby-kramdown
Version: 1.15.0-1
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap
Control: affects -1 + src:espeak-ng

espeak-ng fails to cross build from source, because its dependeny on
ruby-kramdown is unsatisfiable. In general, Architecture: all packages
can never satisfy cross Build-Depends unless marked Multi-Arch: foreign.
In the case of ruby-kramdown, such a marking would be fatal, because the
kramdown library builds on architecture-dependent ruby extensions and
that architecture-dependence would be masked by the marking. Bummer.

The issue here is that the ruby-kramdown package ships both a library
and a tool. That's something the Debian policy advises against.
Splitting library and tool into separate binary packages solves the
issue: A separate "kramdown" package containing the kramdown command can
be marked Multi-Arch: foreign.

Please consider applying the attached patch.

Helmut
diff --minimal -Nru ruby-kramdown-1.15.0/debian/changelog 
ruby-kramdown-1.15.0/debian/changelog
--- ruby-kramdown-1.15.0/debian/changelog       2017-10-01 15:38:06.000000000 
+0200
+++ ruby-kramdown-1.15.0/debian/changelog       2018-08-26 20:52:27.000000000 
+0200
@@ -1,3 +1,11 @@
+ruby-kramdown (1.15.0-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Split kramdown command into a separate Multi-Arch: foreign package.
+    (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Sun, 26 Aug 2018 20:52:27 +0200
+
 ruby-kramdown (1.15.0-1) unstable; urgency=medium
 
   * Team upload
diff --minimal -Nru ruby-kramdown-1.15.0/debian/control 
ruby-kramdown-1.15.0/debian/control
--- ruby-kramdown-1.15.0/debian/control 2017-10-01 15:38:06.000000000 +0200
+++ ruby-kramdown-1.15.0/debian/control 2018-08-26 20:52:27.000000000 +0200
@@ -27,7 +27,6 @@
 Architecture: all
 XB-Ruby-Versions: ${ruby:Versions}
 Depends: libjs-jquery,
-         ruby | ruby-interpreter,
          ruby-coderay,
          ruby-prawn,
          ruby-prawn-table,
@@ -36,7 +35,7 @@
          ${misc:Depends},
          ${shlibs:Depends}
 Suggests: libjs-mathjax
-Description: Fast, pure-Ruby Markdown-superset converter
+Description: Fast, pure-Ruby Markdown-superset converter - ruby library
  The kramdown is a fast, pure Ruby, Markdown parser and converter, using
  a strict syntax definition and supporting several common
  extensions.
@@ -47,3 +46,27 @@
  supported formats:
    * input formats: kramdown (a Markdown superset), Markdown, HTML
    * output formats: HTML, kramdown, LaTeX (and therefore PDF)
+ .
+ This package contains the ruby library.
+
+Package: kramdown
+Architecture: all
+Multi-Arch: foreign
+Depends: ruby | ruby-interpreter,
+        ruby-kramdown (= ${binary:Version}),
+         ${misc:Depends},
+Breaks: ruby-kramdown (<< 1.15.0-1.1~)
+Replaces: ruby-kramdown (<< 1.15.0-1.1~)
+Description: Fast, pure-Ruby Markdown-superset converter - kramdown command
+ The kramdown is a fast, pure Ruby, Markdown parser and converter, using
+ a strict syntax definition and supporting several common
+ extensions.
+ .
+ The kramdown library is mainly written to support the kramdown-to-HTML
+ conversion chain. However, due to its flexibility it supports other
+ input and output formats as well. Here is a list of the
+ supported formats:
+   * input formats: kramdown (a Markdown superset), Markdown, HTML
+   * output formats: HTML, kramdown, LaTeX (and therefore PDF)
+ .
+ This package contains the kramdown command.
diff --minimal -Nru ruby-kramdown-1.15.0/debian/kramdown.install 
ruby-kramdown-1.15.0/debian/kramdown.install
--- ruby-kramdown-1.15.0/debian/kramdown.install        1970-01-01 
01:00:00.000000000 +0100
+++ ruby-kramdown-1.15.0/debian/kramdown.install        2018-08-26 
20:52:27.000000000 +0200
@@ -0,0 +1 @@
+usr/bin
diff --minimal -Nru ruby-kramdown-1.15.0/debian/kramdown.manpages 
ruby-kramdown-1.15.0/debian/kramdown.manpages
--- ruby-kramdown-1.15.0/debian/kramdown.manpages       1970-01-01 
01:00:00.000000000 +0100
+++ ruby-kramdown-1.15.0/debian/kramdown.manpages       2017-10-01 
15:38:06.000000000 +0200
@@ -0,0 +1 @@
+man/man1/kramdown.1
diff --minimal -Nru ruby-kramdown-1.15.0/debian/ruby-kramdown.install 
ruby-kramdown-1.15.0/debian/ruby-kramdown.install
--- ruby-kramdown-1.15.0/debian/ruby-kramdown.install   2017-10-01 
15:38:06.000000000 +0200
+++ ruby-kramdown-1.15.0/debian/ruby-kramdown.install   2018-08-26 
20:52:27.000000000 +0200
@@ -1 +1,2 @@
 data/kramdown usr/share
+usr/lib
diff --minimal -Nru ruby-kramdown-1.15.0/debian/ruby-kramdown.manpages 
ruby-kramdown-1.15.0/debian/ruby-kramdown.manpages
--- ruby-kramdown-1.15.0/debian/ruby-kramdown.manpages  2017-10-01 
15:38:06.000000000 +0200
+++ ruby-kramdown-1.15.0/debian/ruby-kramdown.manpages  1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-man/man1/kramdown.1
diff --minimal -Nru ruby-kramdown-1.15.0/debian/rules 
ruby-kramdown-1.15.0/debian/rules
--- ruby-kramdown-1.15.0/debian/rules   2017-10-01 15:38:06.000000000 +0200
+++ ruby-kramdown-1.15.0/debian/rules   2018-08-26 20:52:27.000000000 +0200
@@ -1,6 +1,7 @@
 #!/usr/bin/make -f
 
 export GEM2DEB_TEST_RUNNER = --check-dependencies
+export DH_RUBY_USE_DH_AUTO_INSTALL_DESTDIR = yes
 
 %:
        dh $@ --buildsystem=ruby --with ruby
@@ -9,4 +10,4 @@
        rdoc --all --line-numbers \
          -o $(CURDIR)/debian/ruby-kramdown/usr/share/doc/ruby-kramdown/rdoc 
lib README.md
        rm -f 
$(CURDIR)/debian/ruby-kramdown/usr/share/doc/ruby-kramdown/rdoc/js/jquery.js
-       dh_installdocs
+       dh_installdocs --link-doc=ruby-kramdown

Reply via email to