Hi,

Axel Beckert wrote:
> > Therefore, I would support removing them until there is a fix for
> > them.
> 
> Ok, I'll prepare an NMU based on the patch I posted in my last mail.

That one missed necessary changes to debian/control.in and hence still
produced a (more or less empty) libplplot-d package, so I've
redesigned the whole patch to use the already present
debian/control.in which now has a few more slices which can be left out.

I also reworked the disabling of Octave support from the previous NMU
to use this system. Previously only the ADA support used that feature.

So now:

* debian/control.in contains _all_ packages, all build-dependencies
  and all bindings mentioned in libplplot-dev's long package
  description.

* Depending on the BUILD_* variables at the beginning of debian/rules,
  debian/control gets rewritten by including or excluding the marked
  slices in debian/control.in.

  For build-architecture-dependent inclusion/exclusion this is always
  done at build-time, but with "debian/rules control" this can be done
  by the maintainer before building a source package to upload to also
  adjust the build-dependencies.

* If you change the BUILD_* variables at the beginning of
  debian/rules, run "debian/rules control" once locally to update the
  build-dependencies accordingly.

IMHO this is much cleaner than commenting out and in binary package
stanzas in debian/control, also because all the infrastructure for
doing so is already in the package. Just had to use it.

> Since this RC bug is open for about 6 weeks now without maintainer
> reaction, a direct (0-day) NMU is allowed according to these rules. So
> I'll probably upload directly to get all the plplot reverse
> dependencies back into testing as soon as possible.

Since because of the above, the debdiff is slightly complexer than and
especially very different to my previous patch. I've also documented
the above in debian/README.source. (And noticed that way that it was a
hint how to use quilt despite the package was already source format
"3.0 (quilt)" and hence the file's previous content was already
obsolete.)

So I've attached a full debdiff again and uploaded the package only to
DELAYED/5.

If anyone thinks that I should fast-forward it nevertheless, feel free
to tell me.

                Regards, Axel
-- 
 ,''`.  |  Axel Beckert <a...@debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-    |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
diff -Nru plplot-5.10.0+dfsg2/debian/README.source 
plplot-5.10.0+dfsg2/debian/README.source
--- plplot-5.10.0+dfsg2/debian/README.source    2015-10-06 23:58:30.000000000 
+0200
+++ plplot-5.10.0+dfsg2/debian/README.source    2016-02-16 22:32:21.000000000 
+0100
@@ -1,8 +1,18 @@
 README.source for plplot
 ========================
 
-This package uses quilt to manage all modifications to the upstream sources.
-See `/usr/share/doc/quilt/README.source' to get more information on how to
-use it.
+This package uses debian/rules, debian/control.in and the tool slice
+to generate a debian/control file which contains only those binary
+package stanzas, package descriptions parts and build-dependencies for
+those language bindings which should be build.
 
- -- Rafael Laboissiere <raf...@debian.org>  Thu, 23 Apr 2009 09:13:07 +0100
+See the beginning of debian/rules for the according BUILD_*
+variables. Run "debian/rules control" after you've changed them to
+rebuild debian/control accordingly.
+
+debian/control is rebuild at build-time anyways to accomodate
+architecture-dependent changes like automatic disabling of ADA support
+on sh4, etc. But while this also changes the source stanza, it doesn't
+really affect the build-dependencies as they are parsed in advance.
+
+ -- Axel Beckert <a...@debian.org>, Tue, 16 Feb 2016 22:27:41 +0100
diff -Nru plplot-5.10.0+dfsg2/debian/changelog 
plplot-5.10.0+dfsg2/debian/changelog
--- plplot-5.10.0+dfsg2/debian/changelog        2015-10-14 17:18:03.000000000 
+0200
+++ plplot-5.10.0+dfsg2/debian/changelog        2016-02-16 22:32:31.000000000 
+0100
@@ -1,3 +1,16 @@
+plplot (5.10.0+dfsg2-0.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Switch enabling/disabling of D and Octave support to slice +
+    debian/control.in instead of commenting. Allow to disable ADA support
+    completely (not only for sh4) that way, too.
+  * Disable ADA and D support which currently FTBFS. (Closes: #809592)
+  * Update debian/control from debian/control.in with "debian/rules
+    control".
+  * Replace out-dated debian/README.source with according instructions.
+
+ -- Axel Beckert <a...@debian.org>  Tue, 16 Feb 2016 22:32:30 +0100
+
 plplot (5.10.0+dfsg2-0.1) unstable; urgency=low
 
   [ Axel Beckert ]
diff -Nru plplot-5.10.0+dfsg2/debian/control plplot-5.10.0+dfsg2/debian/control
--- plplot-5.10.0+dfsg2/debian/control  2015-10-14 15:59:50.000000000 +0200
+++ plplot-5.10.0+dfsg2/debian/control  2016-02-16 18:37:24.000000000 +0100
@@ -11,14 +11,14 @@
  slice, python-gtk2-dev, libwxgtk3.0-dev, 
  python-all-dev (>= 2.6.6-3~),
  python-numpy (>= 1:1.4.1-4~), default-jdk,
- fastjar, swig, gnat [!sh4], libqt4-dev, python-sip-dev, 
+ fastjar, swig, libqt4-dev, python-sip-dev,
  python-qt4, python-qt4-dev, 
  ocaml-nox, camlidl, ocaml-findlib, libcairo-ocaml-dev,
- liblablgtk2-ocaml-dev, liblua5.1-0-dev, lua5.1, gdc, libshp-dev,
+ liblablgtk2-ocaml-dev, liblua5.1-0-dev, lua5.1, libshp-dev,
  xvfb, xauth, dh-python
 Build-Depends-Indep: xmlto, fop, docbook-xml, docbook-xsl, docbook2x, 
  dblatex, texlive-xetex, ghostscript, lmodern, fonts-freefont-ttf
-Build-Conflicts: libplplot5, liboctave-dev, tcl8.6, tk8.6
+Build-Conflicts: libplplot5, tcl8.6, tk8.6
 X-Python-Version: >=2.4
 Homepage: http://www.plplot.org
 Vcs-Svn: https://plplot.svn.sourceforge.net/svnroot/plplot/trunk/debian
@@ -71,10 +71,10 @@
  .
  This package contains all that is needed for doing development in C, C++
  and Fortran with PLplot.  Examples of programs for these languages are
- also included.  For development in Tcl/Tk, Python, Octave, Ada and Java 
- install the plplot-tcl-dev, python-plplot, octave-plplot, libplplot-ada1-dev
+ also included.  For development in Tcl/Tk, Python and Java 
+ install the plplot-tcl-dev, python-plplot
  and libplplot-java packages, respectively. This package also includes the 
- OCaml, lua and D examples. To use one of these languages you will also 
+ OCaml and lua examples. To use one of these languages you will also 
  need to install the libplplot-xxx package for that language.
 
 Package: libplplot-c++11
@@ -331,68 +331,6 @@
  This package provides Python bindings to allow use of the PLplot API in 
  qt applications.
 
-#Package: octave-plplot
-#Architecture: any
-#Pre-Depends: ${misc:Pre-Depends}
-#Multi-Arch: same
-#Depends: libplplot12 (= ${binary:Version}), octave (>= 3.6.1), 
${shlibs:Depends},
-# ${misc:Depends}
-#Description: Octave support for PLplot, a plotting library
-# PLplot is relatively small, portable, freely distributable, and is rich
-# enough to satisfy most users.  It has a wide range of plot types including
-# line (linear, log), contour, 3D, fill, and almost 1000 characters
-# (including Greek and mathematical) in its extended font set.  The package
-# is designed to make it easy to quickly get graphical output; only a
-# handful of function calls is typically required.  For more advanced use,
-# virtually all aspects of plotting are configurable.
-# .
-# This package contains the Octave bindings for PLplot.  It provides an
-# almost drop-in replacement for the traditional Gnuplot graphical
-# interface in Octave. Examples are also provided.
-
-Package: libplplot-ada1
-Architecture: any
-Pre-Depends: ${misc:Pre-Depends}
-Multi-Arch: same
-Depends: libplplot12 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
-Breaks: libplplot-ada (<< 5.9.8-2)
-Replaces: libplplot-ada (<< 5.9.8-2)
-Description: Ada support for PLplot, a plotting library
- PLplot is relatively small, portable, freely distributable, and is rich
- enough to satisfy most users.  It has a wide range of plot types including
- line (linear, log), contour, 3D, fill, and almost 1000 characters
- (including Greek and mathematical) in its extended font set.  The package
- is designed to make it easy to quickly get graphical output; only a
- handful of function calls is typically required.  For more advanced use,
- virtually all aspects of plotting are configurable.
- .
- This package contains the runtime Ada bindings library for PLplot.  
-
-
-Package: libplplot-ada1-dev
-Architecture: any
-Section: libdevel
-Suggests: plplot-doc
-Pre-Depends: ${misc:Pre-Depends}
-Multi-Arch: same
-Depends: libplplot12 (= ${binary:Version}), libqhull-dev, libfreetype6-dev,
- libltdl3-dev, libqsastime-dev, gnat, gnat-4.9, ${misc:Depends}, 
- libplplot-ada1 (= ${binary:Version})
-Recommends: libplplot-dev
-Breaks: libplplot-ada (<< 5.9.8-2), libplplot-dev (<< 5.9.8-2)
-Description: Ada support for PLplot, a plotting library (development files)
- PLplot is relatively small, portable, freely distributable, and is rich
- enough to satisfy most users.  It has a wide range of plot types including
- line (linear, log), contour, 3D, fill, and almost 1000 characters
- (including Greek and mathematical) in its extended font set.  The package
- is designed to make it easy to quickly get graphical output; only a
- handful of function calls is typically required.  For more advanced use,
- virtually all aspects of plotting are configurable.
- .
- This package contains all that is needed for doing PLplot development in 
- Ada.
-
-
 Package: plplot-doc
 Architecture: all
 Section: doc
@@ -429,7 +367,6 @@
  This package provides the qt driver module for PLplot. It also provides
  C++ bindings to allow use of the PLplot API in qt applications.
 
-
 Package: libplplot-ocaml
 Architecture: any
 Section: ocaml
@@ -445,7 +382,6 @@
  .
  This package provides the OCaml bindings for PLplot.
 
-
 Package: libplplot-lua
 Architecture: any
 Section: libs
@@ -462,21 +398,3 @@
  virtually all aspects of plotting are configurable.
  .
  This package provides the lua bindings for PLplot.
-
-
-Package: libplplot-d
-Architecture: any
-Section: libs
-Pre-Depends: ${misc:Pre-Depends}
-Multi-Arch: same
-Depends: libplplot12, ${shlibs:Depends}, ${misc:Depends}
-Description: Scientific plotting library (D language bindings)
- PLplot is relatively small, portable, freely distributable, and is rich
- enough to satisfy most users.  It has a wide range of plot types including
- line (linear, log), contour, 3D, fill, and almost 1000 characters
- (including Greek and mathematical) in its extended font set.  The package
- is designed to make it easy to quickly get graphical output; only a
- handful of function calls is typically required.  For more advanced use,
- virtually all aspects of plotting are configurable.
- .
- This package provides the D language bindings for PLplot.
diff -Nru plplot-5.10.0+dfsg2/debian/control.in 
plplot-5.10.0+dfsg2/debian/control.in
--- plplot-5.10.0+dfsg2/debian/control.in       2015-10-09 15:09:24.000000000 
+0200
+++ plplot-5.10.0+dfsg2/debian/control.in       2016-02-16 18:37:24.000000000 
+0100
@@ -11,14 +11,14 @@
  slice, python-gtk2-dev, libwxgtk3.0-dev, 
  python-all-dev (>= 2.6.6-3~),
  python-numpy (>= 1:1.4.1-4~), default-jdk,
- fastjar, swig, gnat [!sh4], libqt4-dev, python-sip-dev, 
+ fastjar, swig, libqt4-dev, python-sip-dev,
  python-qt4, python-qt4-dev, 
  ocaml-nox, camlidl, ocaml-findlib, libcairo-ocaml-dev,
- liblablgtk2-ocaml-dev, liblua5.1-0-dev, lua5.1, gdc, libshp-dev,
- xvfb, xauth, dh-python
+ liblablgtk2-ocaml-dev, liblua5.1-0-dev, lua5.1, libshp-dev,
+ xvfb, xauth, dh-python[ADA:, gnat [!sh4]:][D:, gdc:]
 Build-Depends-Indep: xmlto, fop, docbook-xml, docbook-xsl, docbook2x, 
  dblatex, texlive-xetex, ghostscript, lmodern, fonts-freefont-ttf
-Build-Conflicts: libplplot5, liboctave-dev, tcl8.6, tk8.6
+Build-Conflicts: libplplot5[OCT:, liboctave-dev:], tcl8.6, tk8.6
 X-Python-Version: >=2.4
 Homepage: http://www.plplot.org
 Vcs-Svn: https://plplot.svn.sourceforge.net/svnroot/plplot/trunk/debian
@@ -71,10 +71,10 @@
  .
  This package contains all that is needed for doing development in C, C++
  and Fortran with PLplot.  Examples of programs for these languages are
- also included.  For development in Tcl/Tk, Python, Octave, Ada and Java 
- install the plplot-tcl-dev, python-plplot, octave-plplot, libplplot-ada1-dev
+ also included.  For development in Tcl/Tk, Python[OCT:, Octave:][ADA:, Ada:] 
and Java 
+ install the plplot-tcl-dev, python-plplot[OCT:, octave-plplot:][ADA:, 
libplplot-ada1-dev:]
  and libplplot-java packages, respectively. This package also includes the 
- OCaml, lua and D examples. To use one of these languages you will also 
+ OCaml[D:, D:] and lua examples. To use one of these languages you will also 
  need to install the libplplot-xxx package for that language.
 
 Package: libplplot-c++11
@@ -331,26 +331,26 @@
  This package provides Python bindings to allow use of the PLplot API in 
  qt applications.
 
-#Package: octave-plplot
-#Architecture: any
-#Pre-Depends: ${misc:Pre-Depends}
-#Multi-Arch: same
-#Depends: libplplot12 (= ${binary:Version}), octave (>= 3.6.1), 
${shlibs:Depends},
-# ${misc:Depends}
-#Description: Octave support for PLplot, a plotting library
-# PLplot is relatively small, portable, freely distributable, and is rich
-# enough to satisfy most users.  It has a wide range of plot types including
-# line (linear, log), contour, 3D, fill, and almost 1000 characters
-# (including Greek and mathematical) in its extended font set.  The package
-# is designed to make it easy to quickly get graphical output; only a
-# handful of function calls is typically required.  For more advanced use,
-# virtually all aspects of plotting are configurable.
-# .
-# This package contains the Octave bindings for PLplot.  It provides an
-# almost drop-in replacement for the traditional Gnuplot graphical
-# interface in Octave. Examples are also provided.
+[OCT:Package: octave-plplot
+Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Depends: libplplot12 (= ${binary:Version}), octave (>= 3.6.1), 
${shlibs:Depends},
+ ${misc:Depends}
+Description: Octave support for PLplot, a plotting library
+ PLplot is relatively small, portable, freely distributable, and is rich
+ enough to satisfy most users.  It has a wide range of plot types including
+ line (linear, log), contour, 3D, fill, and almost 1000 characters
+ (including Greek and mathematical) in its extended font set.  The package
+ is designed to make it easy to quickly get graphical output; only a
+ handful of function calls is typically required.  For more advanced use,
+ virtually all aspects of plotting are configurable.
+ .
+ This package contains the Octave bindings for PLplot.  It provides an
+ almost drop-in replacement for the traditional Gnuplot graphical
+ interface in Octave. Examples are also provided.
 
-[ADA:Package: libplplot-ada1
+:][ADA:Package: libplplot-ada1
 Architecture: any
 Pre-Depends: ${misc:Pre-Depends}
 Multi-Arch: same
@@ -367,9 +367,8 @@
  virtually all aspects of plotting are configurable.
  .
  This package contains the runtime Ada bindings library for PLplot.  
-:]
 
-[ADA:Package: libplplot-ada1-dev
+Package: libplplot-ada1-dev
 Architecture: any
 Section: libdevel
 Suggests: plplot-doc
@@ -391,9 +390,8 @@
  .
  This package contains all that is needed for doing PLplot development in 
  Ada.
-:]
 
-Package: plplot-doc
+:]Package: plplot-doc
 Architecture: all
 Section: doc
 Suggests: libplplot-dev
@@ -429,7 +427,6 @@
  This package provides the qt driver module for PLplot. It also provides
  C++ bindings to allow use of the PLplot API in qt applications.
 
-
 Package: libplplot-ocaml
 Architecture: any
 Section: ocaml
@@ -445,7 +442,6 @@
  .
  This package provides the OCaml bindings for PLplot.
 
-
 Package: libplplot-lua
 Architecture: any
 Section: libs
@@ -461,8 +457,7 @@
  handful of function calls is typically required.  For more advanced use,
  virtually all aspects of plotting are configurable.
  .
- This package provides the lua bindings for PLplot.
-
+ This package provides the lua bindings for PLplot.[D:
 
 Package: libplplot-d
 Architecture: any
@@ -479,4 +474,4 @@
  handful of function calls is typically required.  For more advanced use,
  virtually all aspects of plotting are configurable.
  .
- This package provides the D language bindings for PLplot.
+ This package provides the D language bindings for PLplot.:]
diff -Nru plplot-5.10.0+dfsg2/debian/rules plplot-5.10.0+dfsg2/debian/rules
--- plplot-5.10.0+dfsg2/debian/rules    2015-10-06 23:58:30.000000000 +0200
+++ plplot-5.10.0+dfsg2/debian/rules    2016-02-16 18:37:24.000000000 +0100
@@ -11,13 +11,26 @@
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
-with_oct := $(if $(filter octave-plplot, $(shell dh_listpackages)),yes)
+# Update build-depedencies in debian/control with "debian/rules control"
+# after changing one of these.
+BUILD_ADA = no
+BUILD_D   = no
+BUILD_OCT = no
 
-ifeq ($(with_oct),yes)
+# Default slice, don't change. Will be extended as necessary based on
+# the above.
+SLICES=UNDEF
+
+ifeq ($(BUILD_OCT),yes)
   # Paths for Octave
   MDIR = $(shell octave-config --print LOCALAPIFCNFILEDIR)
   OCTDIR = $(shell octave-config --print LOCALAPIOCTFILEDIR)
   octver := $(shell octave-config -v)
+  SLICES := $(SLICES)+OCT
+endif
+
+ifeq ($(BUILD_D),yes)
+  SLICES := $(SLICES)+D
 endif
 
 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
@@ -60,18 +73,17 @@
 
 # Disable Ada build on sh4 - gnat not available at the moment.
 
+ifeq ($(BUILD_ADA),yes)
 ifneq (,$(findstring :$(DEB_BUILD_ARCH):,:sh4:))
 BUILD_ADA = no
-else
-BUILD_ADA = yes
+endif
 endif
 
 # Configure options
 
 ifeq ($(BUILD_ADA),yes)
 ADA_OPTIONS = -DENABLE_ada=ON
-else
-ADA_OPTIONS = -DENABLE_ada=OFF
+SLICES := $(SLICES)+ADA
 endif
 
 JAVA_OPTIONS = \
@@ -95,11 +107,7 @@
 SRC_DIR = $(shell pwd)
 
 control:
-ifeq ($(BUILD_ADA),no)
-       slice -o UNDEF:debian/control debian/control.in
-else
-       slice -o UNDEF+ADA:debian/control debian/control.in
-endif
+       slice -o $(SLICES):debian/control debian/control.in
 
 config: config-stamp
 config-stamp: control

Attachment: signature.asc
Description: Digital signature

Reply via email to