[Pkg-octave-commit] [SCM] Debian packaging for octave-communications branch, master, updated. f5d4b9419bf46e41197ea343c8afb2d10da903ee

Rafael Laboissiere rafael at laboissiere.net
Mon Mar 12 20:45:07 UTC 2012


The following commit has been merged in the master branch:
commit 2e15aea27f1c92560f645dac2faea46f0a9d6abf
Author: Rafael Laboissiere <rafael at laboissiere.net>
Date:   Mon Mar 12 17:54:18 2012 +0100

    Build and install the PDF and info forms of documentation
    
    Add the patch debian/patches/build-documentation.patch, that allows
    the proper build of the documentation files.  Add the necessary
    commands to debian/rules.  Add the dh_installinfo file
    debian/octave-communications-common.info.  Add the build-dependency on
    texlive in debian/control.

diff --git a/debian/control b/debian/control
index 3b6d464..c1db02e 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Uploaders: Thomas Weber <tweber at debian.org>,
            Sébastien Villemot <sebastien.villemot at ens.fr>
 DM-Upload-Allowed: yes
 Build-Depends: debhelper (>= 9), cdbs, octave-signal (>=1.0.10),
- octave-pkg-dev (>= 1.0.0)
+ octave-pkg-dev (>= 1.0.0), texlive
 Standards-Version: 3.9.3
 Homepage: http://octave.sourceforge.net/communications
 Vcs-Git: git://git.debian.org/git/pkg-octave/octave-communications.git
diff --git a/debian/octave-communications-common.info b/debian/octave-communications-common.info
new file mode 100644
index 0000000..21537fe
--- /dev/null
+++ b/debian/octave-communications-common.info
@@ -0,0 +1 @@
+doc/comms.info
diff --git a/debian/patches/build-documentation.patch b/debian/patches/build-documentation.patch
new file mode 100644
index 0000000..4b5f0e2
--- /dev/null
+++ b/debian/patches/build-documentation.patch
@@ -0,0 +1,653 @@
+Description: Build the documentation
+ This patch add the lacking definition of DVIPDF to doc/Makefile, without
+ which the PDF form of the documentation cannot be built.  It also imports
+ the scripts mkdoc and mktexi, which are available in the admin/ directory
+ of the Octave-Forge project.
+Author: Rafael Laboissiere <rafael at laboissiere.net>
+Last-Update: 2012-03-10
+
+--- octave-communications-1.1.0.orig/doc/Makefile
++++ octave-communications-1.1.0/doc/Makefile
+@@ -2,8 +2,8 @@ sinclude ../../../Makeconf
+ 
+ # Fill in the variables as it makes testing the package manager easier
+ ifeq ($(MKDOC),)
+-MKDOC = ../../../admin/mkdoc
+-MKTEXI = ../../../admin/mktexi
++MKDOC = ./mkdoc
++MKTEXI = ./mktexi
+ MAKEINFO = makeinfo --no-split
+ TEXI2DVI = texi2dvi --clean
+ DVIPS = dvips
+@@ -7,6 +7,7 @@
+ MAKEINFO = makeinfo --no-split
+ TEXI2DVI = texi2dvi --clean
+ DVIPS = dvips
++DVIPDF = dvipdf
+ LN_S = ln -s
+ endif
+ 
+--- /dev/null
++++ octave-communications-1.1.0/doc/mkdoc
+@@ -0,0 +1,160 @@
++#!/usr/bin/env perl
++#
++# David Bateman Feb 02 2003
++# 
++# Extracts the help in texinfo format from *.cc and *.m files for use
++# in documentation. Based on make_index script from octave_forge.
++
++use strict;
++use File::Find;
++use File::Basename;
++use FileHandle;
++
++my $docdir = ".";
++if (@ARGV) {
++  $docdir = @ARGV[0];
++}
++
++# locate all C++ and m-files in current directory
++my @m_files = ();
++my @C_files = ();
++find(\&cc_and_m_files, $docdir);
++
++sub cc_and_m_files { # {{{1 populates global array @files
++    return unless -f and /\.(m|cc)$/;  # .m and .cc files
++    my $path = "$File::Find::dir/$_";
++    $path =~ s|^[.]/||;
++    if (/\.m$/) {
++        push @m_files, $path;
++    } else {
++        push @C_files, $path;
++    }
++} # 1}}}
++
++# grab help from C++ files
++foreach my $f ( @C_files ) {
++  # XXX FIXME XXX. Should run the preprocessor over the file first, since 
++  # the help might include defines that are compile dependent.
++    if ( open(IN,$f) ) {
++	while (<IN>) {
++	    # skip to the next function
++	    next unless /^DEFUN_DLD/;
++
++	    # extract function name to pattern space
++	    /\((\w*)\s*,/;
++	    # remember function name
++	    my $function = $1;
++	    # skip to next line if comment doesn't start on this line
++	    # XXX FIXME XXX maybe we want a loop here?
++	    $_ = <IN> unless /\"/;
++	    # skip to the beginning of the comment string by
++	    # chopping everything up to opening "
++	    my $desc = $_;
++            $desc =~ s/^[^\"]*\"//;
++	    # join lines until you get the end of the comment string
++	    # plus a bit more.  You need the "plus a bit more" because
++	    # C compilers allow implicitly concatenated string constants
++	    # "A" "B" ==> "AB".
++	    while ($desc !~ /[^\\]\"\s*\S/ && $desc !~ /^\"/) {
++		# if line ends in '\', chop it and the following '\n'
++		$desc =~ s/\\\s*\n//;
++		# join with the next line
++		$desc .= <IN>;
++		# eliminate consecutive quotes, being careful to ignore
++		# preceding slashes. XXX FIXME XXX what about \\" ?
++		$desc =~ s/([^\\])\"\s*\"/$1/;
++	    }
++	    $desc = "" if $desc =~ /^\"/; # chop everything if it was ""
++	    $desc =~ s/\\n/\n/g;          # insert fake line ends
++	    $desc =~ s/([^\"])\".*$/$1/;  # chop everything after final '"'
++	    $desc =~ s/\\\"/\"/;          # convert \"; XXX FIXME XXX \\"
++	    $desc =~ s/$//g;		  # chop trailing ...
++
++	    if (!($desc =~ /^\s*-[*]- texinfo -[*]-/)) {
++		my $err = sprintf("Function %s, does not contain texinfo help\n",
++				$function);
++		print STDERR "$err";
++	    }
++	    my $entry = sprintf("\037%s\n%s", $function, $desc);
++	    print "$entry", "\n";
++	}
++	close (IN);
++    } else {
++	print STDERR "Could not open file ($f): $!\n";
++    }
++}
++
++# grab help from m-files
++foreach my $f ( @m_files ) {
++    my $desc     = extract_description($f);
++    my $function = basename($f, ('.m'));
++    die "Null function?? [$f]\n" unless $function;
++    if (!($desc =~ /^\s*-[*]- texinfo -[*]-/)) {
++	my $err = sprintf("Function %s, does not contain texinfo help\n",
++				$function);
++	print STDERR "$err";
++    }
++    my $entry = sprintf("\037%s\n%s", $function, $desc);
++    print "$entry", "\n";
++}
++
++sub extract_description { # {{{1
++# grab the entire documentation comment from an m-file
++    my ($file) = @_;
++    my $retval = '';
++
++    if( open( IN, "$file")) {
++	# skip leading blank lines
++	while (<IN>) {
++	    last if /\S/;
++	}
++	if( m/\s*[%\#][\s\#%]* Copyright/) {
++	    # next block is copyright statement, skip it
++	    while (<IN>) {
++		last unless /^\s*[%\#]/;
++	    }
++	}
++	# Skip everything until the next comment block
++	while ( !/^\s*[\#%]/ ) {
++	    $_ = <IN>;
++	    last if not defined $_;
++	}
++        # Return the next comment block as the documentation
++        while (/^\s*[\#%]/) {
++	    s/^[\s%\#]*//;    # strip leading comment characters
++            s/[\cM\s]*$//;   # strip trailing spaces.
++	    s/[\.*]$//;
++	    $retval .= "$_\n";
++	    $_ = <IN>;
++	    last if not defined $_;
++	}
++        close(IN);
++	return $retval;
++    }
++    else {
++	print STDERR "Could not open file ($file): $!\n";
++    }
++} # 1}}}
++__END__
++This program is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 2 of the License, or
++(at your option) any later version.
++This program is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++GNU General Public License for more details.
++You should have received a copy of the GNU General Public License
++along with this program; if not, see <http://www.gnu.org/licenses/>.
++This program is granted to the public domain.
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGE.
+--- /dev/null
++++ octave-communications-1.1.0/doc/mktexi
+@@ -0,0 +1,457 @@
++#!/usr/bin/env perl
++#
++# David Bateman Feb 02 2003
++# 
++# Extracts the help in texinfo format for particular function for use
++# in documentation. Based on make_index script from octave_forge.
++
++use strict;
++use File::Find;
++use File::Basename;
++use Text::Wrap;
++use FileHandle;
++use IPC::Open3;
++use POSIX ":sys_wait_h";
++
++my $file = shift @ARGV;
++my $docfile = shift @ARGV;
++my $indexfile = shift @ARGV;
++my $line;
++
++if ( open(IN,$file) ) {
++  $line = <IN>;
++  my $tex = 0;
++  while ($line) {
++    if ($line =~ /^\@DOCSTRING/) {
++      my $found = 0;
++      my $func = $line;
++      $func =~ s/\@DOCSTRING\(//;
++      $func =~ s/\)[\n\r]+//;
++      my $func0 = $func;
++      my $func1 = $func;
++      $func0 =~ s/,.*$//;
++      $func1 =~ s/^.*,//;
++      if ( open(DOC,$docfile) ) {
++	while (<DOC>) {
++	  next unless /\037/;
++	  my $function = $_;
++	  $function =~ s/\037//;
++	  $function =~ s/[\n\r]+//;
++	  if ($function =~ /^$func0$/) {
++	    my $desc = "";
++	    my $docline;
++	    my $doctex = 0;
++	    while (($docline = <DOC>) && ($docline !~ /^\037/)) {
++	      $docline =~ s/^\s*-[*]- texinfo -[*]-\s*//;
++	      if ($docline =~ /\@tex/) {
++		$doctex = 1;
++	      }
++	      if ($doctex) {
++		$docline =~ s/\\\\/\\/g;
++	      }
++	      if ($docline =~ /\@end tex/) {
++		$doctex = 0;
++	      }
++	      $desc .= $docline;
++	    }
++	    $desc =~ s/$func0/$func1/g;
++	    $desc =~ s/\@seealso\{(.*[^}])\}/See also: \1/g;
++	    print "$desc", "\n";
++	    $found = 1;
++	    last;
++	  }
++        }
++	close (DOC);
++	if (! $found) {
++	  print "\@emph{Not implemented}\n";
++	}
++      } else {
++	print STDERR "Could not open file $docfile\n";
++	exit 1;
++      }
++    } elsif ($line =~ /^\@REFERENCE_SECTION/) {
++      my $secfound = 0;
++      my $sec = $line;
++      $sec =~ s/\@REFERENCE_SECTION\(//;
++      $sec =~ s/\)[\n\r]+//;
++      my @listfunc = ();
++      my $nfunc = 0;
++      my $seccat = 0;
++
++      if ( open(IND,$indexfile) ) {
++	while (<IND>) {
++	  next unless /^[^ ]/;
++	  my $section = $_;
++	  $section =~ s/[\n\r]+//;
++	  if ($section =~ /^(.*?)\s*>>\s*(.*?)$/) {
++	    $section =~ s/.*>>(.*)/\1/;
++	    $seccat = 1;
++	  }
++	  $section =~ s/^ *//;
++	  $section =~ s/ *$//;
++	  if ($section =~ /^$sec$/) {
++	    if ($seccat) {
++	      print "\@iftex\n";
++	      print "\@section Functions by Category\n";
++	      # Get the list of categories to index
++	      my $firstcat = 1;
++	      my $category;
++	      while (<IND>) {
++		last if />>/;
++		if (/^[^ ]/) {	
++		  if (! $firstcat) {
++		    print "\@end table\n";
++		  } else {
++		    $firstcat = 0;
++		  }
++		  $category = $_;
++		  $category =~ s/[\n\r]+//;
++		  print "\@subsection $category\n";
++		  print "\@table \@asis\n";
++		} elsif (/^\s+(\S.*\S)\s*=\s*(\S.*\S)\s*$/) {
++		  my $func = $1;
++		  my $desc = $2;
++		  print "\@item $func\n";
++		  print "$desc\n";
++		  print "\n";
++		} else {
++		  if ($firstcat) {
++		    print STDERR "Error parsing index file\n";
++		    exit 1;
++		  }
++		  s/^\s+//;
++		  my @funcs = split /\s+/;
++		  while ($#funcs >= 0) {
++		    my $func = shift @funcs;
++		    $func =~ s/^ *//;
++		    $func =~ s/[\n\r]+//;
++		    push @listfunc, $func;
++		    $nfunc = $nfunc + 1;
++		    print "\@item $func\n";
++		    print func_summary($func, $docfile);
++		    print "\n";
++		  }
++		}
++	      }
++	      if (! $firstcat) {
++	        print "\@end table\n";
++	      }
++	      print "\n\@section Functions Alphabetically\n";
++	      print "\@end iftex\n\n";
++	    } else {
++	      # Get the list of functions to index
++	      my $indline;
++	      while (($indline = <IND>) && ($indline =~ /^ /)) {
++		if ($indline =~ /^\s+(\S.*\S)\s*=\s*(\S.*\S)\s*$/) {
++		  next;
++		}
++		$indline =~ s/^\s+//;
++		my @funcs = split(/\s+/,$indline);
++		while ($#funcs >= 0) {
++		  my $func = shift @funcs;
++		  $func =~ s/^ *//;
++		  $func =~ s/[\n\r]+//;
++		  push @listfunc, $func;
++		  $nfunc = $nfunc + 1;
++		}
++	      }
++	    }
++	    $secfound = 1;
++	    last;
++	  }
++	}
++	close (IND);
++	if (! $secfound) {
++	  print STDERR "Did not find section $sec\n";
++	}
++      } else {
++	print STDERR "Could not open file $indexfile\n";
++	exit 1;
++      }
++
++      @listfunc = sort(@listfunc);
++      my @listfunc2 = ();
++      my $indent = 16 - 3;
++      print "\@menu\n";
++      foreach my $func (@listfunc) {
++	if ( open(DOC,$docfile) ) {
++	  my $found = 0;
++	  while (<DOC>) {
++	    next unless /\037/;
++	    my $function = $_;
++	    $function =~ s/\037//;
++	    $function =~ s/[\n\r]+//;
++	    if ($function =~ /^$func$/) {
++	      $found = 1;
++	      last;
++	    }
++	  }
++	  close (DOC);
++	  if ($found) {
++	    push @listfunc2, $func;
++	    my $func0 = "${func}::";
++	    my $entry = sprintf("* %-*s %s",$indent,$func0,func_summary($func,$docfile));
++	    print wrap("","\t\t","$entry"), "\n";
++	  }
++	} else {
++	  print STDERR "Could not open file $indexfile\n";
++	  exit 1;
++	}
++      }
++      print "\@end menu\n";
++
++      my $up = "Function Reference";
++      my $next;
++      my $prev;
++      my $mfunc = 1;
++      foreach my $func (@listfunc2) {
++	if ($mfunc == $nfunc) {
++	  $next = "";
++	} else {
++	  $next = @listfunc2[$mfunc];
++	  $mfunc = $mfunc + 1;
++	}
++	print "\n\@node $func, $next, $prev, $up\n";
++	if ($seccat) {
++	  print "\@subsection $func\n\n";
++	} else {
++	  print "\@section $func\n\n";
++	}
++	$prev = $func;
++	my $found = 0;
++	my $desc = "";
++	if ( open(DOC,$docfile) ) {
++	  while (<DOC>) {
++	    next unless /\037/;
++	    my $function = $_;
++	    $function =~ s/\037//;
++	    $function =~ s/[\n\r]+//;
++	    if ($function =~ /^$func$/) {
++	      my $docline;
++	      my $doctex = 0;
++	      while (($docline = <DOC>) && ($docline !~ /^\037/)) {
++		$docline =~ s/^\s*-[*]- texinfo -[*]-\s*//;
++		if ($docline =~ /\@tex/) {
++		  $doctex = 1;
++		}
++		if ($doctex) {
++		  $docline =~ s/\\\\/\\/g;
++		}
++		if ($docline =~ /\@end tex/) {
++		  $doctex = 0;
++		}
++		$desc .= $docline;
++	      }
++	      $desc =~ s/\@seealso\{(.*[^}])\}/See also: \1/g;
++	      print "$desc", "\n";
++	      $found = 1;
++	      last;
++	    }
++	  }
++	  close (DOC);
++	  if (! $found) {
++	    print "\@emph{Not implemented}\n";
++	  }
++        } else {
++	  print STDERR "Could not open file $docfile\n";
++	  exit 1;
++	}
++      }
++    } else {
++      if ($line =~ /\@tex/) {
++	$tex = 1;
++      }
++      if ($tex) {
++	$line =~ s/\\\\/\\/g;
++      }
++      print "$line";
++      if ($line =~ /\@end tex/) {
++	$tex = 0;
++      }
++    }
++    $line = <IN>;
++  }
++} else {
++    print STDERR "Could not open file $file\n";
++    exit 1;
++}
++
++sub func_summary { # {{{1
++  my ($func,		# in function name
++      $docfile		# in DOCSTRINGS
++      )       = @_;
++
++  my $desc = "";
++  my $found = 0;
++  if ( open(DOC,$docfile) ) {
++    while (<DOC>) {
++      next unless /\037/;
++      my $function = $_;
++      $function =~ s/\037//;
++      $function =~ s/[\n\r]+//;
++      if ($function =~ /^$func$/) {
++	my $docline;
++	my $doctex = 0;
++	while (($docline = <DOC>) && ($docline !~ /^\037/)) {
++	  if ($docline =~ /\@tex/) {
++	    $doctex = 1;
++	  }
++	  if ($doctex) {
++	    $docline =~ s/\\\\/\\/g;
++	  }
++	  if ($docline =~ /\@end tex/) {
++	    $doctex = 0;
++	  }
++	  $desc .= $docline;
++	}
++	$desc =~ s/\@seealso\{(.*[^}])\}/See also: \1/g;
++        $found = 1;
++        last;
++      }
++    }
++    close (DOC);
++    if (! $found) {
++      $desc = "\@emph{Not implemented}";
++    }
++  } else {
++    print STDERR "Could not open file $docfile\n";
++    exit 1;
++  }
++  return first_sentence($desc);
++}   # 1}}}
++
++
++sub first_sentence { # {{{1
++# grab the first real sentence from the function documentation
++    my ($desc) = @_;
++    my $retval = '';
++    my $line;
++    my $next;
++    my @lines;
++
++    my $trace = 0;
++    # $trace = 1 if $desc =~ /Levenberg/;
++    return "" unless defined $desc;
++    if ($desc =~ /^\s*-[*]- texinfo -[*]-/) {
++	# help text contains texinfo.  Strip the indicator and run it
++	# through makeinfo. (XXX FIXME XXX this needs to be a function)
++	$desc =~ s/^\s*-[*]- texinfo -[*]-\s*//;
++	my $cmd = "makeinfo --fill-column 1600 --no-warn --no-validate --no-headers --force --ifinfo";
++	open3(*Writer, *Reader, *Errer, $cmd) or die "Could not run info";
++	print Writer "\@macro seealso {args}\n\n\@noindent\nSee also: \\args\\.\n\@end macro\n";
++	print Writer "$desc"; close(Writer);
++	@lines = <Reader>; close(Reader);
++	my @err = <Errer>; close(Errer);
++	waitpid(-1,&WNOHANG);
++
++	# Display source and errors, if any
++	if (@err) {
++	    my $n = 1;
++	    foreach $line ( split(/\n/,$desc) ) {
++		printf "%2d: %s\n",$n++,$line;
++	    }
++	    print ">>> @err";
++	}
++
++	# Print trace showing formatted output
++#	print "<texinfo--------------------------------\n";
++#	print @lines;
++#	print "--------------------------------texinfo>\n";
++
++	# Skip prototype and blank lines
++	while (1) {
++	    return "" unless @lines;
++	    $line = shift @lines;
++	    next if $line =~ /^\s*-/;
++	    next if $line =~ /^\s*$/;
++	    last;
++	}
++
++    } else {
++
++#	print "<plain--------------------------------\n";
++#	print $desc;
++#	print "--------------------------------plain>\n";
++
++	# Skip prototype and blank lines
++	@lines = split(/\n/,$desc);
++	while (1) {
++	    return "" if ($#lines < 0);
++	    $line = shift @lines;
++	    next if $line =~ /^\s*[Uu][Ss][Aa][Gg][Ee]/; # skip " usage "
++
++	    $line =~ s/^\s*\w+\s*://;             # chop " blah : "
++	    print "strip blah: $line\n" if $trace;
++	    $line =~ s/^\s*[Ff]unction\s+//;      # chop " function "
++	    print "strip function $line\n" if $trace;
++	    $line =~ s/^\s*\[.*\]\s*=\s*//;       # chop " [a,b] = "
++	    print "strip []= $line\n" if $trace;
++	    $line =~ s/^\s*\w+\s*=\s*//;          # chop " a = "
++	    print "strip a= $line\n" if $trace;
++	    $line =~ s/^\s*\w+\s*\([^\)]*\)\s*//; # chop " f(x) "
++	    print "strip f(x) $line\n" if $trace;
++	    $line =~ s/^\s*[;:]\s*//;                # chop " ; "
++	    print "strip ; $line\n" if $trace;
++
++	    $line =~ s/^\s*[[:upper:]][[:upper:]0-9_]+//; # chop " BLAH"
++	    print "strip BLAH $line\n" if $trace;
++	    $line =~ s/^\s*\w*\s*[-]+\s+//;        # chop " blah --- "
++	    print "strip blah --- $line\n" if $trace;
++	    $line =~ s/^\s*\w+ *\t\s*//;          # chop " blah <TAB> "
++	    print "strip blah <TAB> $line\n" if $trace;
++	    $line =~ s/^\s*\w+\s\s+//;            # chop " blah  "
++	    print "strip blah <NL> $line\n" if $trace;
++
++#	    next if $line =~ /^\s*\[/;           # skip  [a,b] = f(x)
++#	    next if $line =~ /^\s*\w+\s*(=|\()/; # skip a = f(x) OR f(x)
++	    next if $line =~ /^\s*or\s*$/;      # skip blah \n or \n blah
++	    next if $line =~ /^\s*$/;            # skip blank line
++	    next if $line =~ /^\s?!\//;          # skip # !/usr/bin/octave
++	    # XXX FIXME XXX should be testing for unmatched () in proto
++	    # before going to the next line!
++	    last;
++	}
++    }
++
++    # Try to make a complete sentence, including the '.'
++    if ( "$line " !~ /[^.][.]\s/ && $#lines >= 0) {
++	my $next = $lines[0];
++	$line =~ s/\s*$//;  # trim trailing blanks on last
++	$next =~ s/^\s*//;    # trim leading blanks on next
++	$line .= " $next" if "$next " =~ /[^.][.]\s/; # ends the sentence
++    }
++
++    # Tidy up the sentence.
++    chomp $line;          # trim trailing newline, if there is one
++    $line =~ s/^\s*//;    # trim leading blanks on line
++    $line =~ s/([^.][.])\s.*$/$1/; # trim everything after the sentence
++    print "Skipping:\n$desc---\n" if $line eq "";
++
++    # And return it.
++    return $line;
++
++} # 1}}}
++
++__END__
++This program is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 2 of the License, or
++(at your option) any later version.
++This program is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++GNU General Public License for more details.
++You should have received a copy of the GNU General Public License
++along with this program; if not, see <http://www.gnu.org/licenses/>.
++This program is granted to the public domain.
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGE.
+
diff --git a/debian/patches/series b/debian/patches/series
index d0f3bd0..6f23b39 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 LU-class-name-clash.patch
 fix-huffmandict-test.patch
+build-documentation.patch
diff --git a/debian/rules b/debian/rules
index e4685bd..b969aa8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -9,6 +9,10 @@ indepshr = $(CURDIR)/debian/octave-$(pkg)-common/usr/share
 
 DEB_DH_INSTALL_SOURCEDIR = debian/octave-$(pkg)
 
+build/octave-$(pkg)::
+	chmod +x doc/mkdoc doc/mktexi
+	make -C doc comms.pdf comms.info
+
 install/octave-$(pkg)-common:: install/octave-$(pkg)
 
 install/octave-$(pkg)::
@@ -16,3 +20,6 @@ install/octave-$(pkg)::
 	# package
 	mkdir -p $(indepshr)
 	mv $(archshr)/octave $(indepshr)
+
+clean::
+	make -C doc clean

-- 
Debian packaging for octave-communications



More information about the Pkg-octave-commit mailing list