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

2020-01-22 Thread Chris Hofstaedtler
Control: tags -1 + pending

* Helmut Grohne  [200122 14:55]:
> 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.

This change (introducing a new binary package) is now in NEW.

I've cloned/renamed this bug to espeak-ng so they can add the proper
Build-Depends once it landed.

Thanks,
Chris



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

2018-08-26 Thread Helmut Grohne
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.0 
+0200
+++ ruby-kramdown-1.15.0/debian/changelog   2018-08-26 20:52:27.0 
+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   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.0 +0200
+++ ruby-kramdown-1.15.0/debian/control 2018-08-26 20:52:27.0 +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.install1970-01-01 
01:00:00.0 +0100
+++ ruby-kramdown-1.15.0/debian/kramdown.install2018-08-26 
20:52:27.0 +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.0 +0100
+++ ruby-kramdown-1.15.0/debian/kramdown.manpages   2017-10-01 
15:38:06.0 +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.0 +0200
+++ ruby-kramdown-1.15.0/debian/ruby-kramdown.install   2018-08-26 
20:52:27.0 +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.0 +0200
+++ ruby-kramdown-1.15.0/debian/ruby-kramdown.manpages  1970-01-01 
01:00:00.0 +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.0 +0200
+++ ruby-kramdown-1.15.0/debian/rules