[DRE-maint] Bug#907344: ruby-kramdown: move /usr/bin/kramdown into a Multi-Arch: foreign package

Helmut Grohne helmut at subdivi.de
Sun Aug 26 20:33:22 BST 2018


Package: ruby-kramdown
Version: 1.15.0-1
Tags: patch
User: helmutg at 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
-------------- next part --------------
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 <helmut at 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


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