From 60167856af243f5683840d7365493ed0b3fa6cd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ru=C5=BEi=C4=8Dka?= Date: Fri, 9 Apr 2021 16:35:10 +0200 Subject: [PATCH] docs: disable docs subpackage to fix FTBFS Adressing following FTBFS on all older debian/ubuntu distros: Can't locate LinuxDocTools/Data/Latin1ToSgml.pm in @INC (you may need to install the LinuxDocTools::Data::Latin1ToSgml module) --- distro/pkg/deb/bird2-doc.docs | 4 - distro/pkg/deb/control | 15 - ...c-mangled-files-with-linuxdoc-tools_.patch | 1394 ----------------- distro/pkg/deb/patches/series | 1 - distro/pkg/deb/rules | 1 - distro/pkg/rpm/bird.spec | 6 +- 6 files changed, 1 insertion(+), 1420 deletions(-) delete mode 100644 distro/pkg/deb/bird2-doc.docs delete mode 100644 distro/pkg/deb/patches/0001-Sync-the-linuxdoc-mangled-files-with-linuxdoc-tools_.patch delete mode 100644 distro/pkg/deb/patches/series diff --git a/distro/pkg/deb/bird2-doc.docs b/distro/pkg/deb/bird2-doc.docs deleted file mode 100644 index 4c0c6465..00000000 --- a/distro/pkg/deb/bird2-doc.docs +++ /dev/null @@ -1,4 +0,0 @@ -obj/doc/bird*.html -obj/doc/bird.pdf -obj/doc/prog*.html -obj/doc/prog.pdf diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 4935c696..879c1d6e 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -8,11 +8,9 @@ Build-Depends: bison, libncurses5-dev, libreadline-dev | libreadline6-dev | libreadline5-dev, libssh-gcrypt-dev, - linuxdoc-tools-latex, m4, opensp, quilt, - texlive-latex-extra, xsltproc Maintainer: Jakub Ružička Uploaders: Ondřej Surý @@ -31,7 +29,6 @@ Depends: adduser, ${misc:Depends}, ${shlibs:Depends} Conflicts: bird -Suggests: bird2-doc Description: Internet Routing Daemon BIRD is an Internet routing daemon with full support for all the major routing protocols. It allows redistribution between protocols with a @@ -41,15 +38,3 @@ Description: Internet Routing Daemon BIRD supports IPv4 and IPv6 versions of OSPF, RIP, BGP and Babel routing protocols. It also supports supplementary protocols like BFD, RPKI-Router and IPv6 router advertisements. - -Package: bird2-doc -Architecture: all -Section: doc -Depends: ${misc:Depends} -Description: Internet Routing Daemon - documentation - BIRD is an Internet routing daemon with full support for all the major - routing protocols. It allows redistribution between protocols with a - powerful route filtering syntax and an easy-to-use configuration - interface. - . - This package provides the user and developer documentation. diff --git a/distro/pkg/deb/patches/0001-Sync-the-linuxdoc-mangled-files-with-linuxdoc-tools_.patch b/distro/pkg/deb/patches/0001-Sync-the-linuxdoc-mangled-files-with-linuxdoc-tools_.patch deleted file mode 100644 index 9ac96817..00000000 --- a/distro/pkg/deb/patches/0001-Sync-the-linuxdoc-mangled-files-with-linuxdoc-tools_.patch +++ /dev/null @@ -1,1394 +0,0 @@ -From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= -Date: Mon, 11 May 2020 10:27:06 +0200 -Subject: Sync the linuxdoc mangled files with linuxdoc-tools_0.9.73-2 - ---- - doc/LinuxDocTools.pm | 903 ++++++++++++++++++++++++++------------------------- - doc/sgml2html | 77 +++-- - doc/sgml2latex | 77 +++-- - doc/sgml2txt | 77 +++-- - 4 files changed, 611 insertions(+), 523 deletions(-) - -diff --git a/doc/LinuxDocTools.pm b/doc/LinuxDocTools.pm -index d32f317..c035f62 100644 ---- a/doc/LinuxDocTools.pm -+++ b/doc/LinuxDocTools.pm -@@ -1,21 +1,19 @@ --#! /usr/bin/perl -+#! /usr/bin/perl - # - # LinuxDocTools.pm - # --# $Id$ --# --# LinuxDoc-Tools driver core. This contains all the basic functionality --# we need to control all other components. --# --# Copyright 1996, Cees de Groot. --# Copyright 2000, Taketoshi Sano --# --# THIS VERSION HAS BEEN HACKED FOR BIRD BY MARTIN MARES -+# LinuxDoc-Tools driver core. This contains all the basic -+# functionality we need to control all other components. - # -+# Copyright 1996, Cees de Groot. -+# Copyright 2000, Taketoshi Sano -+# Copyright 2006-2020, Agustin Martin -+# ------------------------------------------------------------------- - package LinuxDocTools; - --require 5.004; -+require 5.006; - use strict; -+use LinuxDocTools::Data::Latin1ToSgml qw{ldt_latin1tosgml}; - - =head1 NAME - -@@ -33,8 +31,8 @@ LinuxDocTools - SGML conversion utilities for LinuxDoc DTD. - =head1 DESCRIPTION - - The LinuxDocTools package encapsulates all the functionality offered by --LinuxDoc-Tools. It is used, of course, by LinuxDoc-Tools; --but the encapsulation should provide for a simple interface for other users as well. -+LinuxDoc-Tools. It is used, of course, by LinuxDoc-Tools; -+but the encapsulation should provide for a simple interface for other users as well. - - =head1 FUNCTIONS - -@@ -42,21 +40,24 @@ but the encapsulation should provide for a simple interface for other users as w - - =cut - --use DirHandle; --use File::Basename; --use File::Find; - use File::Copy; --use FileHandle; --use IPC::Open2; --use Cwd; -+use File::Temp qw(tempdir); -+use File::Basename qw(fileparse); - use LinuxDocTools::Lang; --use LinuxDocTools::Utils qw(process_options usage cleanup trap_signals remove_tmpfiles create_temp); -+use LinuxDocTools::Utils qw( -+ cleanup -+ create_temp -+ ldt_log -+ remove_tmpfiles -+ trap_signals -+ usage -+ ); - use LinuxDocTools::Vars; - - sub BEGIN - { - # -- # Make sure we're always looking here. Note that "use lib" adds -+ # Make sure we're always looking here. Note that "use lib" adds - # on the front of the search path, so we first push dist, then - # site, so that site is searched first. - # -@@ -64,54 +65,127 @@ sub BEGIN - use lib "$main::DataDir/site"; - } - -+# ------------------------------------------------------------------- -+sub ldt_searchfile { -+ # ----------------------------------------------------------------- -+ # Look for a readable file in the locations. Return first math. -+ # ----------------------------------------------------------------- -+ my $files = shift; -+ foreach my $file ( @$files ){ -+ return $file if -r $file; -+ } -+} -+ -+# ------------------------------------------------------------------- -+sub ldt_getdtd_v1 { -+ # ----------------------------------------------------------------- -+ # Get the dtd -+ # ----------------------------------------------------------------- -+ my $file = shift; -+ my $error_header = "LinuxdocTools::ldt_getdtd_v1"; -+ my $dtd; -+ -+ open ( my $FILE, "< $file") -+ or die "$error_header: Could not open \"$file\" for reading. Aborting ...\n"; -+ -+ while ( <$FILE> ) { -+ tr/A-Z/a-z/; -+ # check for [) && ! ( $dtd2 =~ /^\(/) ) { }; -+ close $TMP; -+ $dtd2 =~ s/^\(//; -+ $dtd2 =~ tr/A-Z/a-z/; -+ chomp $dtd2; -+ return $dtd2; -+} -+ -+# ------------------------------------------------------------------- -+ - =item LinuxDocTools::init - - Takes care of initialization of package-global variables (which are actually - defined in L). The package-global variables are I<$global>, - a reference to a hash containing numerous settings, I<%Formats>, a hash - containing all the formats, and I<%FmtList>, a hash containing the currently --active formats for help texts. -+active formats for help texts. - - Apart from this, C also finds all distributed and site-local - formatting backends and Cs them. - - =cut - --sub init --{ -+# ------------------------------------------------------------------- -+sub init { -+# ------------------------------------------------------------------- - trap_signals; - -- # -- # Register the ``global'' pseudoformat. Apart from the global settings, -- # we also use $global to keep the global variable name space clean; -- # everything that we need to provide to other modules is stuffed -- # into $global. -- # -- $global = {}; -- $global->{NAME} = "global"; -- $global->{HELP} = ""; -- $global->{OPTIONS} = [ -- { option => "backend", type => "l", -- 'values' => [ "html", "info", "latex", -- "lyx", "rtf", "txt", "check" ], -- short => "B" }, -- { option => "papersize", type => "l", -- 'values' => [ "a4", "letter" ], short => "p" }, -- { option => "language", type => "l", -- 'values' => [ @LinuxDocTools::Lang::Languages ], short => "l" }, -- { option => "charset", type => "l", -- 'values' => [ "latin", "ascii", "nippon", "euc-kr" ], short => "c" }, -- { option => "style", type => "s", short => "S" }, -- { option => "tabsize", type => "i", short => "t" }, --# { option => "verbose", type => "f", short => "v" }, -- { option => "debug", type => "f", short => "d" }, -- { option => "define", type => "s", short => "D" }, -- { option => "include", type => "s", short => "i" }, -- { option => "pass", type => "s", short => "P" } -- ]; -+ # Register the ``global'' pseudoformat. Apart from the global settings, we -+ # also use $global to keep the global variable name space clean everything -+ # that we need to provide to other modules is stuffed into $global. -+ $global = {}; -+ $global->{NAME} = "global"; -+ $global->{HELP} = ""; -+ $global->{OPTIONS} = [ -+ { option => "backend", -+ type => "l", -+ 'values' => [ "html", "info", "latex", "lyx", "rtf", "txt", "check" ], -+ short => "B" }, -+ { option => "papersize", -+ type => "l", -+ 'values' => [ "a4", "letter" ], -+ short => "p" }, -+ { option => "language", -+ type => "l", -+ 'values' => [ @LinuxDocTools::Lang::Languages ], -+ short => "l" }, -+ { option => "charset", type => "l", -+ 'values' => [ "latin", "ascii", "nippon", "euc-kr" , "utf-8"], -+ short => "c" }, -+ { option => "style", type => "s", short => "S" }, -+ { option => "tabsize", type => "i", short => "t" }, -+ # { option => "verbose", type => "f", short => "v" }, -+ { option => "debug", type => "f", short => "d" }, -+ { option => "define", type => "s", short => "D" }, -+ { option => "include", type => "s", short => "i" }, -+ { option => "pass", type => "s", short => "P" } -+ ]; - $global->{backend} = "linuxdoc"; - $global->{papersize} = "a4"; -- $global->{language} = "en"; -+ $global->{language} = ''; - $global->{charset} = "ascii"; - $global->{style} = ""; - $global->{tabsize} = 8; -@@ -119,11 +193,24 @@ sub init - $global->{define} = ""; - $global->{debug} = 0; - $global->{include} = ""; -+ $global->{logfile} = ''; - $global->{pass} = ""; - $global->{InFiles} = []; -+ $global->{fmtlist} = ""; # List of loaded fmt files - $Formats{$global->{NAME}} = $global; # All formats we know. - $FmtList{$global->{NAME}} = $global; # List of formats for help msgs. - -+ $global->{sgmlpre} = "$main::AuxBinDir/sgmlpre"; -+ my $error_header = "LinuxdocTools::init"; -+ -+ if ( -e "/etc/papersize" ){ -+ open (my $PAPERSIZE,"< /etc/papersize") || -+ die "$error_header: Count not open \"/etc/papersize\" for reading\n"; -+ chomp (my $paper = <$PAPERSIZE>); -+ $global->{papersize} = "letter" if ( $paper eq "letter"); -+ close $PAPERSIZE; -+ } -+ - # automatic language detection: disabled by default - # { - # my $lang; -@@ -137,42 +224,39 @@ sub init - # } - # } - -- # -- # Used when the format is "global" (from sgmlcheck). -- # -+ # ------------------------------------------------------------------- - $global->{preNSGMLS} = sub { -- $global->{NsgmlsOpts} .= " -s "; -+ # ----------------------------------------------------------------- -+ # Define a fallback preNSGMLS. Used when the format is "global" -+ # (from sgmlcheck). -+ # ----------------------------------------------------------------- -+ $global->{NsgmlsOpts} .= " -s "; - $global->{NsgmlsPrePipe} = "cat $global->{file}"; - }; - -- # -- # Build up the list of formatters. -- # -- my $savdir = cwd; -- my %Locs; -- chdir "$main::DataDir/dist"; -- my $dir = new DirHandle("."); -- die "Unable to read directory $main::DataDir/dist: $!" unless defined($dir); -- foreach my $fmt (grep(/^fmt_.*\.pl$/, $dir->read())) -- { -- $Locs{$fmt} = "dist"; -- } -- $dir->close(); -- chdir "$main::DataDir/site"; -- $dir = new DirHandle("."); -- die "Unable to read directory $main::DataDir/site: $!" unless defined($dir); -- foreach my $fmt (grep(/^fmt_.*\.pl$/, $dir->read())) -- { -- $Locs{$fmt} = "site"; -+ # We need to load all fmt files here, so the allowed options for all -+ # format are put into $global and a complete usage message is built, -+ # including options for all formats. -+ my %locations = (); -+ foreach my $path ("$main::DataDir/site", -+ "$main::DataDir/dist", -+ "$main::DataDir/fmt"){ -+ foreach my $location (<$path/fmt_*.pl>){ -+ my $fmt = $location; -+ $fmt =~ s/^.*_//; -+ $fmt =~ s/\.pl$//; -+ $locations{$fmt} = $location unless defined $locations{$fmt}; -+ } - } -- $dir->close(); -- foreach my $fmt (keys %Locs) -- { -- require $fmt; -+ -+ foreach my $fmt ( keys %locations ){ -+ $global->{fmtlist} .= " Loading $locations{$fmt}\n"; -+ require $locations{$fmt}; - } -- chdir $savdir; - } - -+# ------------------------------------------------------------------------ -+ - =item LinuxDocTools::process_options ($0, @ARGV) - - This function contains all initialization that is bound to the current -@@ -181,91 +265,113 @@ should be used (ld2txt activates the I backend) and parses the - options array. It returns an array of filenames it encountered during - option processing. - --As a side effect, the environment variables I and --I are modified. -+As a side effect, the environment variable I is -+modified and, once I<$global->{format}> is known, I is set. - - =cut - --sub process_options --{ -- my $progname = shift; -- my @args = @_; -+# ------------------------------------------------------------------- -+sub process_options { -+ # ----------------------------------------------------------------- -+ my $progname = shift; -+ my @tmpargs = @_; -+ my @args = (); -+ my $format = ''; -+ my $msgheader = "LinuxDocTools::process_options"; -+ -+ # Try getting the format. We need to do this here so process_options -+ # knows which is the format and which format options are allowed -+ -+ # First, see if we have an explicit backend option by looping over command line. -+ # Do not shift in the while condition itself, 0 in options like '-s 0' will -+ # otherwise stop looping -+ while ( @tmpargs ){ -+ $_ = shift @tmpargs; -+ if ( s/--backend=// ){ -+ $format = $_; -+ } elsif ( $_ eq "-B" ){ -+ $format = shift @tmpargs; -+ } else { -+ push @args, $_; -+ } -+ } - -- # -- # Deduce the format from the caller's file name -- # -- my ($format, $dummy1, $dummy2) = fileparse ($progname, ""); -- $global->{myname} = $format; -- $format =~ s/sgml2*(.*)/$1/; -+ unless ( $format ){ -+ my ($tmpfmt, $dummy1, $dummy2) = fileparse($progname, ""); -+ if ( $tmpfmt =~ s/^sgml2// ) { # Calling program through sgml2xx symlinks -+ $format = $tmpfmt; -+ } elsif ( $tmpfmt eq "sgmlcheck" ) { # Calling program through sgmlcheck symlink -+ $format = "global"; -+ } -+ } - -- # -- # check the option "--backend / -B" -- # -- if ($format eq "linuxdoc") { -- my @backends = @args; -- my $arg; -- while (@backends) { -- $arg = shift @backends; -- if ($arg eq "-B") { -- $arg = shift @backends; -- $format = $arg; -- last; -- } -- if ( $arg =~ s/--backend=(.*)/$1/ ) { -- $format = $arg; -- last; -- } -+ if ( $format ) { -+ if ( $format eq "check" ){ -+ $format = "global"; -+ } elsif ( $format eq "latex" ){ -+ $format = "latex2e"; -+ } -+ $FmtList{$format} = $Formats{$format} or -+ usage("$format: Unknown format"); -+ $global->{format} = $format; -+ } else { -+ usage(""); -+ } -+ -+ # Parse all the options from @args, and return files. -+ my @files = LinuxDocTools::Utils::process_options(@args); -+ -+ # Check the number of given files -+ $#files > -1 || usage("No filenames given"); -+ -+ # Normalize language string -+ $global->{language} = Any2ISO($global->{language}) -+ if ( defined $global->{language} ); -+ -+ # Fine tune japanese and korean charsets when not utf-8 -+ if ($global->{charset} ne "utf-8") { -+ if ($global->{language} eq "ja" ){ -+ $global->{charset} = "nippon"; -+ } elsif ($global->{language} eq "ko"){ -+ if ($global->{format} eq "groff") { -+ $global->{charset} = "latin1"; -+ } else { -+ $global->{charset} = "euc-kr"; - } -+ } - } - -- $format = "global" if $format eq "check"; -- usage ("") if $format eq "linuxdoc"; -- $format = "latex2e" if $format eq "latex"; -- $FmtList{$format} = $Formats{$format} or -- usage ("$global->{myname}: unknown format"); -- $global->{format} = $format; -+ # Setup the SGML environment. -+ my @sgmlcatalogs = -+ (# SGML iso-entities catalog location in Debian sgml-data package -+ "$main::isoentities_prefix/share/sgml/entities/sgml-iso-entities-8879.1986/catalog", -+ # SGML iso-entities catalog location in ArchLinux, Fedora and Gentoo -+ "$main::isoentities_prefix/share/sgml/sgml-iso-entities-8879.1986/catalog", -+ # SGML iso-entities catalog location when installed from linuxdoc-tools -+ "$main::isoentities_prefix/share/sgml/iso-entities-8879.1986/iso-entities.cat", -+ # dtd/catalog for SGML-Tools -+ "$main::DataDir/linuxdoc-tools.catalog", -+ # The super catalog -+ "/etc/sgml/catalog"); - -- # -- # Parse all the options. -- # -- my @files = LinuxDocTools::Utils::process_options (@args); -- $global->{language} = Any2ISO ($global->{language}); -- # -- # check the number of given files -- $#files > -1 || usage ("no filenames given"); -+ @sgmlcatalogs = ($ENV{SGML_CATALOG_FILES}, @sgmlcatalogs) if defined $ENV{SGML_CATALOG_FILES}; - -- # -- # Setup the SGML environment. -- # (Note that Debian package rewrite path to catalog of -- # iso-entities using debian/rules so that it can use -- # entities from sgml-data pacakge. debian/rules also -- # removes iso-entites sub directory after doing make install.) -- # -- $ENV{SGML_CATALOG_FILES} .= (defined $ENV{SGML_CATALOG_FILES} ? ":" : "") . -- "$main::prefix/share/sgml/sgml-iso-entities-8879.1986/catalog:" . -- "$main::prefix/share/sgml/entities/sgml-iso-entities-8879.1986/catalog"; -- $ENV{SGML_CATALOG_FILES} .= ":$main::DataDir/linuxdoc-tools.catalog"; -- $ENV{SGML_CATALOG_FILES} .= ":$main::/etc/sgml.catalog"; -- if (-f "$main::DataDir/dtd/$format.dcl") -- { -- $ENV{SGMLDECL} = "$main::DataDir/dtd/$format.dcl"; -- } -- elsif (-f "$main::DataDir/dtd/$global->{style}.dcl") -- { -- $ENV{SGMLDECL} = "$main::DataDir/dtd/$global->{style}.dcl"; -- } -- elsif (-f "$main::DataDir/dtd/sgml.dcl") -- { -- $ENV{SGMLDECL} = "$main::DataDir/dtd/sgml.dcl"; -- } -+ $ENV{SGML_CATALOG_FILES} = join(':', @sgmlcatalogs); - -- # -- # OK. Give the list of files we distilled from the options -- # back to the caller. -- # -+ # Set to one of these if readable, nil otherwise -+ $ENV{SGMLDECL} = ldt_searchfile(["$main::DataDir/dtd/$global->{format}.dcl", -+ "$main::DataDir/dtd/$global->{style}.dcl", -+ "$main::DataDir/dtd/sgml.dcl"]); -+ -+ # Show the list of loaded fmt_*.pl files if debugging -+ print STDERR $global->{fmtlist} if $global->{debug}; -+ -+ # Return the list of files to be processed - return @files; - } - -+# ------------------------------------------------------------------- -+ - =item LinuxDocTools::process_file - - With all the configuration done, this routine will take a single filename -@@ -294,330 +400,243 @@ etcetera. See the code for details. - - =cut - --sub process_file --{ -- my $file = shift (@_); -- my $saved_umask = umask; -+# ------------------------------------------------------------------- -+sub process_file { -+ # ---------------------------------------------------------------- -+ my $file = $global->{origfile} = shift (@_); -+ my $saved_umask = umask; -+ my $error_header = "LinuxdocTools::process_file"; -+ my $fmtopts = $Formats{$global->{format}}; - - print "Processing file $file\n"; - umask 0077; - -- my ($filename, $filepath, $filesuffix) = fileparse ($file, "\.sgml"); -- my $tmpnam = $filepath . '/' . $filename; -- $file = $tmpnam . $filesuffix; -- -f $file || $file =~ /.*.sgml$/ || ($file .= '.sgml'); -- -f $file || ($file = $tmpnam . '.SGML'); -- -f $file || die "Cannot find $file\n"; -+ my ($filename, $filepath, $filesuffix) = fileparse($file, "\.sgml"); - $global->{filename} = $filename; -- $global->{file} = $file; - $global->{filepath} = $filepath; -+ $global->{file} = ldt_searchfile(["$filepath/$filename.sgml", -+ "$filepath/$filename.SGML"]) -+ or die "$error_header: Cannot find $file. Aborting ...\n"; -+ -+ my $dtd = ldt_getdtd_v1("$global->{file}"); -+ print STDERR "DTD: " . $dtd . "\n" if $global->{debug}; -+ -+ # -- Prepare temporary directory -+ my $tmpdir = $ENV{'TMPDIR'} || '/tmp'; -+ $tmpdir = tempdir("linuxdoc-tools.XXXXXXXXXX", DIR => "$tmpdir"); -+ -+ # -- Set common base name for temp files and temp file names -+ my $tmpbase = $global->{tmpbase} = $tmpdir . '/sgmltmp.' . $filename; -+ my $precmdout = "$tmpbase.01.precmdout"; -+ my $nsgmlsout = "$tmpbase.02.nsgmlsout"; # Was $tmpbase.1 -+ my $preaspout = "$tmpbase.03.preaspout"; # Was $tmpbase.2 -+ my $aspout = "$tmpbase.04.aspout"; # Was $tmpbase.3 -+ -+ # -- Set $global->{logfile} and initialize logfile. -+ $global->{logfile} = "$tmpbase.$global->{format}.log"; -+ open (my $LOGFILE, ">", "$global->{logfile}") -+ or die "$error_header: Could not open \"$global->{logfile}\" logfile for write.\n"; -+ print $LOGFILE "--- Opening \"$global->{logfile}\" logfile ---\n"; -+ close $LOGFILE; -+ -+ # -- Write info about some global options -+ ldt_log "--- Begin: Info about global options"; -+ foreach ( sort keys %$global ){ -+ next if m/fmtlist|InFiles|OPTIONS/; -+ ldt_log "$_: $global->{$_}"; -+ } -+ ldt_log "--- End: Info about global options"; -+ ldt_log "$global->{fmtlist}"; -+ -+ # -- Write info about some backend options -+ ldt_log "--- Begin: Info about backend options"; -+ foreach ( sort keys %$fmtopts ){ -+ next if m/fmtlist|InFiles|OPTIONS/; -+ ldt_log "$_: $fmtopts->{$_}"; -+ } -+ ldt_log "--- End: Info about backend options"; - -- my $tmp = new FileHandle "<$file"; -- my $dtd; -- while ( <$tmp> ) -- { -- tr/A-Z/a-z/; -- # check for [close; -- if ( $global->{debug} ) -- { -- print "DTD: " . $dtd . "\n"; -+ # Set up the preprocessing command. Conditionals have to be -+ # handled here until they can be moved into the DTD, otherwise -+ # a validating SGML parser will choke on them. -+ -+ # -- Check if output option for latex is pdf or not -+ if ($global->{format} eq "latex2e") { -+ if ($Formats{$global->{format}}{output} eq "pdf") { -+ $global->{define} .= " pdflatex=yes"; - } -- $global->{dtd} = $dtd; -+ } - -- # prepare temporary directory -- my $tmpdir = $ENV{'TMPDIR'} || '/tmp'; -- $tmpdir = $tmpdir . '/' . 'linuxdoc-dir-' . $$; -- mkdir ($tmpdir, 0700) || -- die " - temporary files can not be created, aborted - \n"; -+ # -- Set the actual pre-processing command -+ my($precmd) = "| $global->{sgmlpre} output=$global->{format} $global->{define}"; -+ ldt_log " ${error_header}::precmd:\n $precmd"; - -- my $tmpbase = $global->{tmpbase} = $tmpdir . '/sgmltmp.' . $filename; -+ # -- Make sure path of file to be processed is in SGML_SEARCH_PATH - $ENV{"SGML_SEARCH_PATH"} .= ":$filepath"; - -- # -- # Set up the preprocessing command. Conditionals have to be -- # handled here until they can be moved into the DTD, otherwise -- # a validating SGML parser will choke on them. -- # -- # check if output option for latex is pdf or not -- if ($global->{format} eq "latex2e") -- { -- if ($Formats{$global->{format}}{output} eq "pdf") -- { -- $global->{define} .= " pdflatex=yes"; -- } -- } -- # -+ # -- You can hack $NsgmlsOpts here, etcetera. -+ $global->{NsgmlsOpts} .= "-D $main::prefix/share/sgml -D $main::DataDir"; -+ $global->{NsgmlsOpts} .= "-i$global->{include}" if ($global->{include}); -+ -+ # If a preNSGMLS function is defined in the fmt file, pipe its output to $FILE, -+ # otherwise just open $global->{file} as $IFILE -+ # ----------------------------------------------------------------- -+ ldt_log "- PreNsgmls stage started."; -+ my $IFILE; -+ if ( defined $Formats{$global->{format}}{preNSGMLS} ) { -+ $global->{NsgmlsPrePipe} = &{$Formats{$global->{format}}{preNSGMLS}}; -+ ldt_log " ${error_header}::NsgmlsPrePipe: $global->{NsgmlsPrePipe} |"; -+ open ($IFILE,"$global->{NsgmlsPrePipe} |") -+ || die "$error_header: Could not open pipe from $global->{NsgmlsPrePipe}. Aborting ...\n"; -+ } else { -+ ldt_log " ${error_header}: No prepipe. Just opening \"$global->{file}\" for read"; -+ open ($IFILE,"< $global->{file}") -+ || die "$error_header: Could not open $global->{file} for reading. Aborting ...\n"; -+ } - -- local $ENV{PATH} = "$ENV{PATH}:/usr/lib/linuxdoc-tools"; -- my($precmd) = "|sgmlpre output=$global->{format} $global->{define}"; -+ # -- Create a temp file with $precmd output -+ my $precmd_command = "$precmd > $precmdout"; -+ ldt_log " ${error_header}::precmd_command:\n $precmd_command"; - -- # -- # You can hack $NsgmlsOpts here, etcetera. -- # -- $global->{NsgmlsOpts} .= "-D $main::prefix/share/sgml -D $main::DataDir"; -- $global->{NsgmlsOpts} .= "-i$global->{include}" if ($global->{include}); -- $global->{NsgmlsPrePipe} = "NOTHING"; -- if ( defined $Formats{$global->{format}}{preNSGMLS} ) -- { -- $global->{NsgmlsPrePipe} = &{$Formats{$global->{format}}{preNSGMLS}}; -- } -+ open (my $PRECMDOUT, "$precmd_command") -+ or die "$error_header: Could not open pipe to $precmdout. Aborting ...\n"; - -- # -- # Run the prepocessor and nsgmls. -- # -- my ($ifile, $writensgmls); -+ # -- Convert latin1 chars to sgml entities for html backend -+ if ( $global->{format} eq "html" -+ && $global->{charset} eq "latin" ) { -+ ldt_log " ${error_header}: Converting latin1 chars to sgml entities for html backend"; -+ print $PRECMDOUT ldt_latin1tosgml($IFILE); -+ } else { -+ copy($IFILE,$PRECMDOUT); -+ } - -- if ($global->{NsgmlsPrePipe} eq "NOTHING") -- { -- $ifile = new FileHandle $file; -- } -- else -- { -- $ifile = new FileHandle "$global->{NsgmlsPrePipe}|"; -- } -+ close $IFILE; -+ close $PRECMDOUT; -+ ldt_log "- PreNsgmls stage finished."; - -- create_temp("$tmpbase.1"); -- $writensgmls = new FileHandle -- "$precmd|$main::progs->{NSGMLS} $global->{NsgmlsOpts} $ENV{SGMLDECL} >\"$tmpbase.1\""; -- if ($global->{charset} eq "latin") -- { -- while (<$ifile>) -- { -- # Outline these commands later on - CdG -- #change latin1 characters to SGML -- #by Farzad Farid, adapted by Greg Hankins -- s//\À/g; -- s//\Á/g; -- s//\Â/g; -- s//\Ã/g; -- s//\Ä/g; -- s//\Å/g; -- s//\Æ/g; -- s//\Ç/g; -- s//\È/g; -- s//\É/g; -- s//\Ê/g; -- s//\Ë/g; -- s//\Ì/g; -- s//\Í/g; -- s//\Î/g; -- s//\Ï/g; -- s//\Ñ/g; -- s//\Ò/g; -- s//\Ó/g; -- s//\Ô/g; -- s//\Õ/g; -- s//\Ö/g; -- s//\Ø/g; -- s//\Ù/g; -- s//\Ú/g; -- s//\Û/g; -- s//\Ü/g; -- s//\Ý/g; -- s//\Þ/g; -- s//\ß/g; -- s//\à/g; -- s//\á/g; -- s//\â/g; -- s//\ã/g; -- s//\ä/g; -- s//\å/g; -- s//\æ/g; -- s//\ç/g; -- s//\è/g; -- s//\é/g; -- s//\ê/g; -- s//\ë/g; -- s//\ì/g; -- s//\í/g; -- s//\î/g; -- s//\ï/g; -- s//\μ/g; -- s//\ð/g; -- s//\ñ/g; -- s//\ò/g; -- s//\ó/g; -- s//\ô/g; -- s//\õ/g; -- s//\ö/g; -- s//\ø/g; -- s//\ù/g; -- s//\ú/g; -- s//\û/g; -- s//\ü/g; -- s//\ý/g; -- s//\þ/g; -- s//\ÿ/g; -- print $writensgmls $_; -- } -- } -- else -- { -- while (<$ifile>) -- { -- print $writensgmls $_; -- } -- } -- $ifile->close; -- $writensgmls->close; -- -- # -- # Special case: if format is global, we're just checking. -- # -- $global->{format} eq "global" && cleanup; -+ ldt_log "- Nsgmls stage started."; - -- # -- # If the output file is empty, something went wrong. -- # -- ! -e "$tmpbase.1" and die "can't create file - exiting"; -- -z "$tmpbase.1" and die "SGML parsing error - exiting"; -- if ( $global->{debug} ) -- { -- print "Nsgmls stage finished.\n"; -- } -+ # -- Pass apropriate envvars to nsgmls to better deal with utf-8 -+ my $NSGMLS_envvars = ($global->{charset} eq "utf-8") -+ ? "SP_CHARSET_FIXED=yes SP_ENCODING=utf-8" : ""; -+ -+ # -- Process with nsgmls. -+ my $nsgmls_command = "$NSGMLS_envvars $main::progs->{NSGMLS} $global->{NsgmlsOpts} $ENV{SGMLDECL} $precmdout > $nsgmlsout"; -+ ldt_log " ${error_header}::nsgmls_command:\n $nsgmls_command"; -+ system($nsgmls_command) == 0 -+ or die "${error_header}: Error: \"$nsgmls_command\" failed with exit status: ",$? >> 8,"\n"; -+ -+ # -- Special case: if format is global, we're just checking. -+ cleanup if ( $global->{format} eq "global"); -+ -+ # -- If output file does not exists or is empty, something went wrong. -+ if ( ! -e "$nsgmlsout" ) { -+ die "$error_header: Can't create file $nsgmlsout. Aborting ...\n"; -+ } elsif ( -z "$nsgmlsout" ){ -+ die "$error_header: $nsgmlsout empty, SGML parsing error. Aborting ...\n"; -+ } -+ -+ print "- Nsgmls stage finished.\n" if $global->{debug}; -+ ldt_log "- Nsgmls stage finished."; - -- # - # If a preASP stage is defined, let the format handle it. -- # -- # preASP ($inhandle, $outhandle); -- # -- my $inpreasp = new FileHandle "<$tmpbase.1"; -- my $outpreasp = new FileHandle "$tmpbase.2",O_WRONLY|O_CREAT|O_EXCL,0600; -- if (defined $Formats{$global->{format}}{preASP}) -- { -- &{$Formats{$global->{format}}{preASP}}($inpreasp, $outpreasp) == 0 or -- die "error pre-processing $global->{format}.\n"; -- } -- else -- { -- copy ($inpreasp, $outpreasp); -- } -- $inpreasp->close; -- $outpreasp->close; -- ! -e "$tmpbase.2" and die "can't create file - exiting"; -+ # -------------------------------------------------------- -+ ldt_log "- PreASP stage started."; -+ open (my $PREASP_IN, "< $nsgmlsout") -+ or die "$error_header: Could not open $nsgmlsout for reading. Aborting ...\n"; -+ open (my $PREASP_OUT, "> $preaspout") -+ or die "$error_header: Could not open $preaspout for writing. Aborting ...\n"; -+ -+ if (defined $Formats{$global->{format}}{preASP}) { -+ # Usage: preASP ($INHANDLE, $OUTHANDLE); -+ &{$Formats{$global->{format}}{preASP}}($PREASP_IN, $PREASP_OUT) == 0 -+ or die "$error_header: Error pre-processing $global->{format}.\n"; -+ } else { -+ copy ($PREASP_IN, $PREASP_OUT); -+ } - -- if ( $global->{debug} ) -- { -- print "PreASP stage finished.\n"; -- } -+ close $PREASP_IN; -+ close $PREASP_OUT; -+ -+ die "$error_header: Can't create $preaspout file. Aborting ...\n" -+ unless -e "$preaspout"; -+ -+ print "- PreASP stage finished.\n" if ( $global->{debug} ); -+ ldt_log "- PreASP stage finished."; -+ -+ # Run sgmlsasp, with an optional style if specified. -+ # ----------------------------------------------------------- -+ ldt_log "- ASP stage started."; -+ my $dtd2 = ldt_getdtd_v2($preaspout) -+ or die "$error_header: Could not read dtd from $preaspout. Aborting ...\n"; -+ -+ ldt_log " $error_header: dtd_v1: $dtd, dtd_v2: $dtd2, both must match, dtd_v2 prevails"; -+ unless ( $dtd eq $dtd2 ){ -+ print STDERR "Warning: Two different values for dtd, dtd1: $dtd, dtd2: $dtd2\n"; -+ $dtd = $dtd2; -+ } -+ -+ $global->{'dtd'} = $dtd; - -- # -- # Run sgmlsasp, with an optional style if specified. -- # - # Search order: - # - datadir/site// - # - datadir/dist// -- # So we need to fetch the doctype from the intermediate. -- # -- # Note: this is a very simplistic check - but as far as I know, -- # it is correct. Am I right? -- # -- my $tmp = new FileHandle "<$tmpbase.2"; -- my $dtd; -- while ( ($dtd = <$tmp>) && ! ( $dtd =~ /^\(/) ) { }; -- $tmp->close; -- $dtd =~ s/^\(//; -- $dtd =~ tr/A-Z/a-z/; -- chop $dtd; -- $global->{dtd} = $dtd; -- -- my $style = ""; -- if ($global->{style}) -- { -- $style = "$main::DataDir/site/$dtd/$global->{format}/$global->{style}mapping"; -- -r $style or -- $style = "$main::DataDir/dist/$dtd/$global->{format}/$global->{style}mapping"; -- } -- my $mapping = "$main::DataDir/site/$dtd/$global->{format}/mapping"; -- -r $mapping or $mapping = "$main::DataDir/dist/$dtd/$global->{format}/mapping"; - -- $global->{charset} = "nippon" if ($global->{language} eq "ja"); -- # -- # we don't have Korean groff so charset should be latin1. -- # -- if ($global->{language} eq "ko") -- { -- if ($global->{format} eq "groff") -- { -- $global->{charset} = "latin1"; -- } -- else -- { -- $global->{charset} = "euc-kr"; -- } -- } -- -- if ($global->{format} eq "groff" or $global->{format} eq "latex2e") -- { -- if ($dtd eq "linuxdoctr") -- { -- $mapping = "$main::DataDir/dist/$dtd/$global->{format}/tr-mapping"; -- } -- } -+ my $style = ($global->{style}) ? -+ ldt_searchfile(["$main::DataDir/site/$dtd/$global->{format}/$global->{style}mapping", -+ "$main::DataDir/dist/$dtd/$global->{format}/$global->{style}mapping", -+ "$main::DataDir/mappings/$global->{format}/$global->{style}mapping"]) -+ : -+ ''; - -- create_temp("$tmpbase.3"); -- system ("$main::progs->{SGMLSASP} $style $mapping <\"$tmpbase.2\" | -- expand -$global->{tabsize} >\"$tmpbase.3\""); -- ! -e "$tmpbase.3" and die "can't create file - exiting"; -+ my $mapping = ldt_searchfile(["$main::DataDir/site/$dtd/$global->{format}/mapping", -+ "$main::DataDir/dist/$dtd/$global->{format}/mapping", -+ "$main::DataDir/mappings/$global->{format}/mapping"]) -+ or die "$error_header: Could not find mapping file for $dtd/$global->{format}. Aborting ...\n"; - -+ $mapping = "$style $mapping" if $style; - -- if ( $global->{debug} ) -- { -- print "ASP stage finished.\n"; -+ if ($global->{format} eq "groff"){ -+ if ($dtd eq "linuxdoctr") { -+ $mapping = "$main::DataDir/mappings/$global->{format}/tr-mapping"; - } -+ } -+ -+ my $sgmlsasp_command = "$main::progs->{SGMLSASP} $mapping < $preaspout | -+ expand -t $global->{tabsize} > $aspout"; -+ ldt_log " ${error_header}::sgmlsasp_command:\n $sgmlsasp_command"; -+ system ($sgmlsasp_command) == 0 -+ or die "$error_header: Error running $sgmlsasp_command. Aborting ...\n"; -+ -+ die "$error_header: Can't create $aspout file. Aborting ...\n" -+ unless -e "$aspout"; -+ -+ print "- ASP stage finished.\n" if ( $global->{debug} ); -+ ldt_log "- ASP stage finished."; - -- # - # If a postASP stage is defined, let the format handle it. -- # It should leave whatever it thinks is right based on $file. -- # -- # postASP ($inhandle) -- # -+ # ---------------------------------------------------------------- -+ ldt_log "- postASP stage started."; - umask $saved_umask; -- my $inpostasp = new FileHandle "<$tmpbase.3"; -- if (defined $Formats{$global->{format}}{postASP}) -- { -- &{$Formats{$global->{format}}{postASP}}($inpostasp) == 0 or -- die "error post-processing $global->{format}.\n"; -- } -- $inpostasp->close; -- -- if ( $global->{debug} ) -- { -- print "postASP stage finished.\n"; -- } - -- # -- # All done, remove the temporaries. -- # -- if( !$global->{debug} ) { -- remove_tmpfiles($tmpbase); -+ open (my $INPOSTASP, "< $aspout" ) -+ or die "$error_header: Could not open $aspout for reading. Aborting ...\n"; -+ if (defined $Formats{$global->{format}}{postASP}) { -+ # Usage: postASP ($INHANDLE) -+ # Should leave whatever it thinks is right based on $INHANDLE. -+ &{$Formats{$global->{format}}{postASP}}($INPOSTASP) == 0 -+ or die "$error_header: Error post-processing $global->{format}. Aborting ...\n"; - } -+ close $INPOSTASP; -+ -+ print "- postASP stage finished.\n" if ( $global->{debug} ); -+ ldt_log "- postASP stage finished."; -+ -+ # -- Reset $global->{logfile} for next file -+ $global->{logfile} = ''; -+ -+ # -- All done, remove the temporaries. -+ remove_tmpfiles($tmpbase) unless ( $global->{debug} ); - } - - =pod -@@ -629,7 +648,7 @@ sub process_file - Documentation for various sub-packages of LinuxDocTools. - - =head1 AUTHOR --SGMLTools are written by Cees de Groot, Ccg@cdegroot.comE>, -+SGMLTools are written by Cees de Groot, Ccg@cdegroot.comE>, - and various SGML-Tools contributors as listed in C. - Taketoshi Sano Csano@debian.org> rename to LinuxDocTools. - -diff --git a/doc/sgml2html b/doc/sgml2html -index ea8e8c9..98a688c 100755 ---- a/doc/sgml2html -+++ b/doc/sgml2html -@@ -1,53 +1,76 @@ - #!/usr/bin/perl - # --# sgmltools.in --# --# $Id$ --# --# SGML-Tools driver. Calls all other SGML-Tools components, contains --# configuration information, etcetera. -+# linuxdoc.in - # -+# LinuxDoc-Tools driver. Calls all other LinuxDoc-Tools components, -+# contains configuration information, etcetera. -+# ------------------------------------------------------------------- -+ - package main; - --sub BEGIN --{ -+sub BEGIN { - require 5.004; - } -+ - use strict; - --use vars qw($prefix $DataDir $BinDir $progs); -+use vars qw($prefix -+ $isoentities_prefix -+ $DataDir -+ $AuxBinDir -+ $progs); - - use FindBin; - --$prefix = "/usr"; --$DataDir = "$FindBin::Bin/sbase"; --$BinDir = "/usr/bin"; -+$prefix = "/usr"; -+$isoentities_prefix = "/usr"; -+$DataDir = "$FindBin::Bin/sbase"; -+$AuxBinDir = "/usr/lib/linuxdoc-tools"; - - use lib "/usr/share/linuxdoc-tools"; --use lib "/usr/perl5"; --use lib "/usr/lib/perl5"; - use lib "/usr/share/perl5"; --$progs = { -- "NSGMLS" => "/usr/bin/nsgmls", -- "SGMLSASP" => "/usr/bin/sgmlsasp", -- "GROFF" => "/usr/bin/groff", -+ -+# --------------------------------------------------------------------- -+sub ldt_which { -+# --------------------------------------------------------------------- -+# --------------------------------------------------------------------- -+ die "ldt_which: No filename(s) array given. Aborting ...\n" unless scalar @_; -+ -+ foreach my $file ( @_ ){ -+ if ( $file =~ m/\// ) { -+ return $file if -x $file; -+ } else { -+ foreach my $path ( split(':',$ENV{'PATH'}) ){ -+ $path =~ s/\/+$//; -+ return $file if -x "$path/$file"; -+ } -+ } -+ } -+ die "No executable found in path for (", join(' ',@_) ,"). Aborting ...\n"; -+} -+ -+$progs = { -+ "SGMLSASP" => ldt_which("sgmlsasp"), -+ "NSGMLS" => ldt_which("nsgmls","onsgmls"), -+ "GROFF" => ldt_which("groff"), - "GROFFMACRO" => "-ms", -- "AWK" => "/usr/share/linuxdoc-tools/awkwhich" -+# "NKF" => "@NKF@" - }; - --if (! -x $progs->{"NSGMLS"}) -- { $progs->{"NSGMLS"} = "/usr/bin/onsgmls"; } -- - $ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog" . - (defined $ENV{SGML_CATALOG_FILES} ? ":$ENV{SGML_CATALOG_FILES}" : ""); - - require "$FindBin::Bin/LinuxDocTools.pm"; - &LinuxDocTools::init; - --my @FileList = LinuxDocTools::process_options ("html", @ARGV); --for my $curfile (@FileList) -- { -- LinuxDocTools::process_file ($curfile); -- } -+my @FileList = LinuxDocTools::process_options ($0, @ARGV); -+ -+foreach my $curfile (@FileList) { -+ &LinuxDocTools::process_file ($curfile); -+} - - exit 0; -+ -+# Local Variables: -+# mode: perl -+# End: -diff --git a/doc/sgml2latex b/doc/sgml2latex -index 79c6df0..98a688c 100755 ---- a/doc/sgml2latex -+++ b/doc/sgml2latex -@@ -1,53 +1,76 @@ - #!/usr/bin/perl - # --# sgmltools.in --# --# $Id$ --# --# SGML-Tools driver. Calls all other SGML-Tools components, contains --# configuration information, etcetera. -+# linuxdoc.in - # -+# LinuxDoc-Tools driver. Calls all other LinuxDoc-Tools components, -+# contains configuration information, etcetera. -+# ------------------------------------------------------------------- -+ - package main; - --sub BEGIN --{ -+sub BEGIN { - require 5.004; - } -+ - use strict; - --use vars qw($prefix $DataDir $BinDir $progs); -+use vars qw($prefix -+ $isoentities_prefix -+ $DataDir -+ $AuxBinDir -+ $progs); - - use FindBin; - --$prefix = "/usr"; --$DataDir = "$FindBin::Bin/sbase"; --$BinDir = "/usr/bin"; -+$prefix = "/usr"; -+$isoentities_prefix = "/usr"; -+$DataDir = "$FindBin::Bin/sbase"; -+$AuxBinDir = "/usr/lib/linuxdoc-tools"; - - use lib "/usr/share/linuxdoc-tools"; --use lib "/usr/perl5"; --use lib "/usr/lib/perl5"; - use lib "/usr/share/perl5"; --$progs = { -- "NSGMLS" => "/usr/bin/nsgmls", -- "SGMLSASP" => "/usr/bin/sgmlsasp", -- "GROFF" => "/usr/bin/groff", -+ -+# --------------------------------------------------------------------- -+sub ldt_which { -+# --------------------------------------------------------------------- -+# --------------------------------------------------------------------- -+ die "ldt_which: No filename(s) array given. Aborting ...\n" unless scalar @_; -+ -+ foreach my $file ( @_ ){ -+ if ( $file =~ m/\// ) { -+ return $file if -x $file; -+ } else { -+ foreach my $path ( split(':',$ENV{'PATH'}) ){ -+ $path =~ s/\/+$//; -+ return $file if -x "$path/$file"; -+ } -+ } -+ } -+ die "No executable found in path for (", join(' ',@_) ,"). Aborting ...\n"; -+} -+ -+$progs = { -+ "SGMLSASP" => ldt_which("sgmlsasp"), -+ "NSGMLS" => ldt_which("nsgmls","onsgmls"), -+ "GROFF" => ldt_which("groff"), - "GROFFMACRO" => "-ms", -- "AWK" => "/usr/share/linuxdoc-tools/awkwhich" -+# "NKF" => "@NKF@" - }; - --if (! -x $progs->{"NSGMLS"}) -- { $progs->{"NSGMLS"} = "/usr/bin/onsgmls"; } -- - $ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog" . - (defined $ENV{SGML_CATALOG_FILES} ? ":$ENV{SGML_CATALOG_FILES}" : ""); - - require "$FindBin::Bin/LinuxDocTools.pm"; - &LinuxDocTools::init; - --my @FileList = LinuxDocTools::process_options ("latex", @ARGV); --for my $curfile (@FileList) -- { -- LinuxDocTools::process_file ($curfile); -- } -+my @FileList = LinuxDocTools::process_options ($0, @ARGV); -+ -+foreach my $curfile (@FileList) { -+ &LinuxDocTools::process_file ($curfile); -+} - - exit 0; -+ -+# Local Variables: -+# mode: perl -+# End: -diff --git a/doc/sgml2txt b/doc/sgml2txt -index 013479f..98a688c 100755 ---- a/doc/sgml2txt -+++ b/doc/sgml2txt -@@ -1,53 +1,76 @@ - #!/usr/bin/perl - # --# sgmltools.in --# --# $Id$ --# --# SGML-Tools driver. Calls all other SGML-Tools components, contains --# configuration information, etcetera. -+# linuxdoc.in - # -+# LinuxDoc-Tools driver. Calls all other LinuxDoc-Tools components, -+# contains configuration information, etcetera. -+# ------------------------------------------------------------------- -+ - package main; - --sub BEGIN --{ -+sub BEGIN { - require 5.004; - } -+ - use strict; - --use vars qw($prefix $DataDir $BinDir $progs); -+use vars qw($prefix -+ $isoentities_prefix -+ $DataDir -+ $AuxBinDir -+ $progs); - - use FindBin; - --$prefix = "/usr"; --$DataDir = "$FindBin::Bin/sbase"; --$BinDir = "/usr/bin"; -+$prefix = "/usr"; -+$isoentities_prefix = "/usr"; -+$DataDir = "$FindBin::Bin/sbase"; -+$AuxBinDir = "/usr/lib/linuxdoc-tools"; - - use lib "/usr/share/linuxdoc-tools"; --use lib "/usr/perl5"; --use lib "/usr/lib/perl5"; - use lib "/usr/share/perl5"; --$progs = { -- "NSGMLS" => "/usr/bin/nsgmls", -- "SGMLSASP" => "/usr/bin/sgmlsasp", -- "GROFF" => "/usr/bin/groff", -+ -+# --------------------------------------------------------------------- -+sub ldt_which { -+# --------------------------------------------------------------------- -+# --------------------------------------------------------------------- -+ die "ldt_which: No filename(s) array given. Aborting ...\n" unless scalar @_; -+ -+ foreach my $file ( @_ ){ -+ if ( $file =~ m/\// ) { -+ return $file if -x $file; -+ } else { -+ foreach my $path ( split(':',$ENV{'PATH'}) ){ -+ $path =~ s/\/+$//; -+ return $file if -x "$path/$file"; -+ } -+ } -+ } -+ die "No executable found in path for (", join(' ',@_) ,"). Aborting ...\n"; -+} -+ -+$progs = { -+ "SGMLSASP" => ldt_which("sgmlsasp"), -+ "NSGMLS" => ldt_which("nsgmls","onsgmls"), -+ "GROFF" => ldt_which("groff"), - "GROFFMACRO" => "-ms", -- "AWK" => "/usr/share/linuxdoc-tools/awkwhich" -+# "NKF" => "@NKF@" - }; - --if (! -x $progs->{"NSGMLS"}) -- { $progs->{"NSGMLS"} = "/usr/bin/onsgmls"; } -- - $ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog" . - (defined $ENV{SGML_CATALOG_FILES} ? ":$ENV{SGML_CATALOG_FILES}" : ""); - - require "$FindBin::Bin/LinuxDocTools.pm"; - &LinuxDocTools::init; - --my @FileList = LinuxDocTools::process_options ("txt", @ARGV); --for my $curfile (@FileList) -- { -- LinuxDocTools::process_file ($curfile); -- } -+my @FileList = LinuxDocTools::process_options ($0, @ARGV); -+ -+foreach my $curfile (@FileList) { -+ &LinuxDocTools::process_file ($curfile); -+} - - exit 0; -+ -+# Local Variables: -+# mode: perl -+# End: diff --git a/distro/pkg/deb/patches/series b/distro/pkg/deb/patches/series deleted file mode 100644 index 3a10aac9..00000000 --- a/distro/pkg/deb/patches/series +++ /dev/null @@ -1 +0,0 @@ -0001-Sync-the-linuxdoc-mangled-files-with-linuxdoc-tools_.patch diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules index 5630ed1c..5b66d493 100755 --- a/distro/pkg/deb/rules +++ b/distro/pkg/deb/rules @@ -25,7 +25,6 @@ override_dh_auto_configure: override_dh_auto_build: dh_auto_build - dh_auto_build -- docs override_dh_auto_install: dh_auto_install --destdir=debian/tmp diff --git a/distro/pkg/rpm/bird.spec b/distro/pkg/rpm/bird.spec index 1267cf9b..f56547bf 100644 --- a/distro/pkg/rpm/bird.spec +++ b/distro/pkg/rpm/bird.spec @@ -1,9 +1,5 @@ %global _hardened_build 1 - -%if "x%{?suse_version}" == "x" -# missing linuxdoc-tools and sgml-common on SUSE -%define _without_doc 1 -%endif +%global _without_doc 1 Name: bird Version: {{ version }}