Control: tag -1 + patch

On Tue, 24 Jun 2014 22:19:52 +0200, Henning Glawe wrote:

> On Tue, Jun 24, 2014 at 10:41:00PM +0300, Niko Tyni wrote:
> > > Did you, by any means, check the documentation system after the perl 
> > > update?
> > > I suspect that (on the command line), 'pdldoc -a slice' would give you an
> > > empty list...
> > 
> > It seems to be worse than that:
> > 
> >  # pdldoc -a slice
> >  Unable to find PDL/pdldoc.db in 
> > /etc/perl:/usr/local/lib/x86_64-linux-gnu/perl/5.20.0:/usr/local/share/perl/5.20.0:/usr/lib/x86_64-linux-gnu/perl5/5.20:/usr/share/perl5:/usr/lib/x86_64-linux-gnu/perl/5.20:/usr/share/perl/5.20:/usr/local/lib/site_perl:.
> >  can't open database 1, scan docs first at 
> > /usr/lib/x86_64-linux-gnu/perl5/5.20/PDL/Doc.pm line 465.
> >      PDL::Doc::ensuredb(PDL::Doc=HASH(0x2836698)) called at 
> > /usr/lib/x86_64-linux-gnu/perl5/5.20/PDL/Doc.pm line 583
> >      PDL::Doc::search(PDL::Doc=HASH(0x2836698), "m/slice/", 
> > ARRAY(0x2009968), 1) called at 
> > /usr/lib/x86_64-linux-gnu/perl5/5.20/PDL/Doc/Perldl.pm line 188
> >      PDL::Doc::Perldl::search_docs("m/slice/", ARRAY(0x2009968), 1) called 
> > at /usr/lib/x86_64-linux-gnu/perl5/5.20/PDL/Doc/Perldl.pm line 165
> >      PDL::Doc::Perldl::aproposover("slice") called at 
> > /usr/lib/x86_64-linux-gnu/perl5/5.20/PDL/Doc/Perldl.pm line 173
> >      PDL::Doc::Perldl::apropos("slice") called at /usr/bin/pdldoc line 57
> essentially, it is not far worse than expected. It just implies that the
> whole PDL documentation is lost to the user.
> oh well...
> have to fix that one.

I've prepared a patch now:

#v+
  * Fix "hardcodes /usr/lib/perl5":
    - rename files in debian/ which contain "/usr/lib/perl5" to .in, replace
      "/usr/lib/perl5" with a variable
    - create original files from debian/rules, replacing the variable with
      the current value of $Config{vendorarch}
    (Closes: #752351)
#v-

The reason for not using executable debhelper files is that this
works only for parts of the files in debian/, so I though the way to
use .in + @variable@ + sed for everything is more consistent.

The resulting package look ok to me (both with 5.18 and 5.20), and
under 5.20 I installed the package and tried the above:

# pdldoc -a slice
PDL::NiceSlice  Module: toward a nicer slicing syntax for PDL
PDL::Perldl2::Plugin::NiceSlice ...
                Module: enable PDL NiceSlice syntax
PDL::Slices     Module: Indexing, slicing, and dicing
diagonalI       Returns the multidimensional diagonal over the specified 
dimensions.
dice            Dice rows/columns/planes out of a PDL using indexes for each 
dimension.
[...]

Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Pat Metheny, B.B. King, Dave Brubeck: Dave Brubeck Quartet / Lover M
diff -Nru pdl-2.007/debian/changelog pdl-2.007/debian/changelog
--- pdl-2.007/debian/changelog	2013-11-12 14:43:07.000000000 +0100
+++ pdl-2.007/debian/changelog	2014-07-21 19:14:41.000000000 +0200
@@ -1,3 +1,15 @@
+pdl (1:2.007-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix "hardcodes /usr/lib/perl5":
+    - rename files in debian/ which contain "/usr/lib/perl5" to .in, replace
+      "/usr/lib/perl5" with a variable
+    - create original files from debian/rules, replacing the variable with
+      the current value of $Config{vendorarch}
+    (Closes: #752351)
+
+ -- gregor herrmann <gre...@debian.org>  Mon, 21 Jul 2014 18:29:33 +0200
+
 pdl (1:2.007-2) unstable; urgency=low
 
   * successfully built with gcc 4.8 (closes: #701335, #713346)
diff -Nru pdl-2.007/debian/pdl.install pdl-2.007/debian/pdl.install
--- pdl-2.007/debian/pdl.install	2012-05-25 17:18:47.000000000 +0200
+++ pdl-2.007/debian/pdl.install	1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-Doc/scantree.pl usr/lib/perl5/PDL/Doc/
-Doc/mkhtmldoc.pl usr/lib/perl5/PDL/Doc/
-debian/dh_pdl usr/bin
diff -Nru pdl-2.007/debian/pdl.install.in pdl-2.007/debian/pdl.install.in
--- pdl-2.007/debian/pdl.install.in	1970-01-01 01:00:00.000000000 +0100
+++ pdl-2.007/debian/pdl.install.in	2014-07-21 19:12:35.000000000 +0200
@@ -0,0 +1,3 @@
+Doc/scantree.pl @vendorarch@/PDL/Doc/
+Doc/mkhtmldoc.pl @vendorarch@/PDL/Doc/
+debian/dh_pdl usr/bin
diff -Nru pdl-2.007/debian/pdl.links pdl-2.007/debian/pdl.links
--- pdl-2.007/debian/pdl.links	2012-02-19 10:23:33.000000000 +0100
+++ pdl-2.007/debian/pdl.links	1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-/var/lib/pdl/Index.pod /usr/lib/perl5/PDL/Index.pod
-/var/lib/pdl/pdldoc.db /usr/lib/perl5/PDL/pdldoc.db
-/var/lib/pdl/html /usr/share/doc/pdl/html
-/usr/share/man/man3/PDL.3pm.gz /usr/share/man/man1/pdl.1.gz
diff -Nru pdl-2.007/debian/pdl.links.in pdl-2.007/debian/pdl.links.in
--- pdl-2.007/debian/pdl.links.in	1970-01-01 01:00:00.000000000 +0100
+++ pdl-2.007/debian/pdl.links.in	2014-07-21 19:12:35.000000000 +0200
@@ -0,0 +1,4 @@
+/var/lib/pdl/Index.pod /@vendorarch@/PDL/Index.pod
+/var/lib/pdl/pdldoc.db /@vendorarch@/PDL/pdldoc.db
+/var/lib/pdl/html /usr/share/doc/pdl/html
+/usr/share/man/man3/PDL.3pm.gz /usr/share/man/man1/pdl.1.gz
diff -Nru pdl-2.007/debian/pdl.lintian-overrides pdl-2.007/debian/pdl.lintian-overrides
--- pdl-2.007/debian/pdl.lintian-overrides	2013-11-07 16:00:20.000000000 +0100
+++ pdl-2.007/debian/pdl.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-# HG: the html doc is generated in the postinst maintainer script, so lintian
-#     just does not see it
-pdl: doc-base-file-references-missing-file pdl:12 /var/lib/pdl/html/Index.html
-pdl: doc-base-file-references-missing-file pdl:13 /var/lib/pdl/html/*.html
-# there is one long code line in the manpage, which cannot be broken
-pdl: manpage-has-errors-from-man usr/share/man/man3/PDL::FFT.3pm.gz 232: warning [p 2, 3.3i]: can't break line
-# these two images neeed to be in usr/lib
-pdl: image-file-in-usr-lib usr/lib/perl5/PDL/Transform/Cartography/earth_day.jpg
-pdl: image-file-in-usr-lib usr/lib/perl5/PDL/Transform/Cartography/earth_night.jpg
diff -Nru pdl-2.007/debian/pdl.lintian-overrides.in pdl-2.007/debian/pdl.lintian-overrides.in
--- pdl-2.007/debian/pdl.lintian-overrides.in	1970-01-01 01:00:00.000000000 +0100
+++ pdl-2.007/debian/pdl.lintian-overrides.in	2014-07-21 19:12:35.000000000 +0200
@@ -0,0 +1,9 @@
+# HG: the html doc is generated in the postinst maintainer script, so lintian
+#     just does not see it
+pdl: doc-base-file-references-missing-file pdl:12 /var/lib/pdl/html/Index.html
+pdl: doc-base-file-references-missing-file pdl:13 /var/lib/pdl/html/*.html
+# there is one long code line in the manpage, which cannot be broken
+pdl: manpage-has-errors-from-man usr/share/man/man3/PDL::FFT.3pm.gz 232: warning [p 2, 3.3i]: can't break line
+# these two images neeed to be in usr/lib
+pdl: image-file-in-usr-lib @vendorarch@/PDL/Transform/Cartography/earth_day.jpg
+pdl: image-file-in-usr-lib @vendorarch@/PDL/Transform/Cartography/earth_night.jpg
diff -Nru pdl-2.007/debian/pdl.postinst pdl-2.007/debian/pdl.postinst
--- pdl-2.007/debian/pdl.postinst	2013-11-08 09:17:49.000000000 +0100
+++ pdl-2.007/debian/pdl.postinst	1970-01-01 01:00:00.000000000 +0100
@@ -1,44 +0,0 @@
-#! /bin/sh
-# postinst script for pdl
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-#        * <postinst> `configure' <most-recently-configured-version>
-#        * <old-postinst> `abort-upgrade' <new version>
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-#          <new-version>
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-#          <failed-install-package> <version> `removing'
-#          <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-#
-
-case "$1" in
-    configure|triggered)
-      perl /usr/lib/perl5/PDL/Doc/scantree.pl /usr/lib/perl5/,/usr/share/perl5 /var/lib/pdl/pdldoc.db /var/lib/pdl/Index.pod >/dev/null 2>&1
-      perl /usr/lib/perl5/PDL/Doc/mkhtmldoc.pl -s "PDL/" /usr/lib/perl5/PDL /var/lib/pdl/html >/dev/null 2>&1
-      perl /usr/lib/perl5/PDL/Doc/mkhtmldoc.pl -s "PDL/" /usr/share/perl5/PDL /var/lib/pdl/html >/dev/null 2>&1
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
diff -Nru pdl-2.007/debian/pdl.postinst.in pdl-2.007/debian/pdl.postinst.in
--- pdl-2.007/debian/pdl.postinst.in	1970-01-01 01:00:00.000000000 +0100
+++ pdl-2.007/debian/pdl.postinst.in	2014-07-21 19:12:35.000000000 +0200
@@ -0,0 +1,44 @@
+#! /bin/sh
+# postinst script for pdl
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+    configure|triggered)
+      perl /@vendorarch@/PDL/Doc/scantree.pl /@vendorarch@/,/usr/share/perl5 /var/lib/pdl/pdldoc.db /var/lib/pdl/Index.pod >/dev/null 2>&1
+      perl /@vendorarch@/PDL/Doc/mkhtmldoc.pl -s "PDL/" /@vendorarch@/PDL /var/lib/pdl/html >/dev/null 2>&1
+      perl /@vendorarch@/PDL/Doc/mkhtmldoc.pl -s "PDL/" /usr/share/perl5/PDL /var/lib/pdl/html >/dev/null 2>&1
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff -Nru pdl-2.007/debian/pdl.triggers pdl-2.007/debian/pdl.triggers
--- pdl-2.007/debian/pdl.triggers	2013-11-07 20:18:40.000000000 +0100
+++ pdl-2.007/debian/pdl.triggers	1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-interest /usr/lib/perl5/PDL
-interest /usr/share/perl5/PDL
diff -Nru pdl-2.007/debian/pdl.triggers.in pdl-2.007/debian/pdl.triggers.in
--- pdl-2.007/debian/pdl.triggers.in	1970-01-01 01:00:00.000000000 +0100
+++ pdl-2.007/debian/pdl.triggers.in	2014-07-21 19:12:35.000000000 +0200
@@ -0,0 +1,2 @@
+interest /@vendorarch@/PDL
+interest /usr/share/perl5/PDL
diff -Nru pdl-2.007/debian/rules pdl-2.007/debian/rules
--- pdl-2.007/debian/rules	2013-11-09 00:59:01.000000000 +0100
+++ pdl-2.007/debian/rules	2014-07-21 19:03:38.000000000 +0200
@@ -26,6 +26,8 @@
 
 subst_pdlapi  = -Vpdlapi:Provides="`perl -Mblib -MPDL::Config::Debian -e 'print \"pdlapi-$$PDL::Config::Debian::pdl_core_version\n\"'`"
 
+vendorarch := $(shell perl -MConfig -e 'print substr($$Config{vendorarch}, 1)')
+
 configure: configure-stamp
 configure-stamp:
 	dh_testdir
@@ -67,7 +69,10 @@
 	# Add here commands to clean up after the build process.
 	[ ! -f Makefile ] || $(MAKE) distclean
 	rm -f t/callext.o t/callext.so Graphics/TriD/OpenGL/tmp*.h-out \
-	 	Perldl2/pdl2.pod debian/dh_pdl.1
+	 	Perldl2/pdl2.pod debian/dh_pdl.1 \
+	 	debian/pdl.lintian-overrides debian/pdl.install \
+	 	debian/pdl.links debian/pdl.postinst \
+	 	debian/pdl.triggers
 
 install: build test
 	dh_testdir
@@ -81,6 +86,12 @@
 	# create placeholder in usr/share/perl5/PDL
 	echo > $(CURDIR)/debian/pdl/usr/share/perl5/PDL/.placeholder
 
+	# set perl vendorarch directory dynamically
+	for f in debian/pdl.lintian-overrides debian/pdl.install \
+	 	debian/pdl.links debian/pdl.postinst \
+	 	debian/pdl.triggers ; do \
+	 	sed -e 's,@vendorarch@,$(vendorarch),g' $$f.in > $$f ; \
+	done
 
 # Build architecture-independent files here.
 binary-indep: build install

Attachment: signature.asc
Description: Digital Signature

Reply via email to