Serge Victor 6 years ago
parent 681bcd27a6
commit 6c4f76e7c9
  1. 0
      LDP/users/Peter-Bieringer/.cvsignore
  2. 19310
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html
  3. 23915
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.lyx
  4. BIN
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.pdf
  5. 3450
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml
  6. 17785
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.fr.html
  7. 21639
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.fr.lyx
  8. BIN
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.fr.pdf
  9. 2962
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.fr.sgml
  10. 22306
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html
  11. 31055
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.lyx
  12. BIN
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pdf
  13. 20753
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pt_BR.html
  14. 31492
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pt_BR.lyx
  15. BIN
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pt_BR.pdf
  16. 5007
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pt_BR.sgml
  17. 5307
      LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.sgml
  18. 397
      LDP/users/Peter-Bieringer/check_urls.pl
  19. 35
      LDP/users/Peter-Bieringer/copytohowtodir.sh
  20. 11
      LDP/users/Peter-Bieringer/generate-all.sh
  21. 11
      LDP/users/Peter-Bieringer/generate-en-de.sh
  22. 345
      LDP/users/Peter-Bieringer/generate.sh
  23. 30
      LDP/users/Peter-Bieringer/info.txt
  24. 351
      LDP/users/Peter-Bieringer/ldp.dsl
  25. 173
      LDP/users/Peter-Bieringer/lyxcodelinewrapper.pl
  26. 335
      LDP/users/Peter-Bieringer/make.sh
  27. 47
      LDP/users/Peter-Bieringer/runsgmlfix.sh
  28. 48
      LDP/users/Peter-Bieringer/sgmllyxquotefix.pl
  29. 45
      LDP/users/Peter-Bieringer/sgmllyxtabletagfix.pl

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,397 +0,0 @@
#!/usr/bin/perl -W
# (P) & (C) 2006 by Peter Bieringer <pb at bieringer dot de>
# This program extracts URLs from a Lyx file and checks them
# 20060822/PB: major improvement, add support for persistent XML database
# 20081109/PB: enhancement to detect URLs in newer lyx file format
# 20090214/PB: detect IPv6 addresses in brackets and remove brackets, otherwise it won't work
# 20131112/PB: support newer Perl
use strict;
use Net::HTTP;
use Net::FTP;
use Net::NNTP;
use Crypt::SSLeay;
use LWP::UserAgent;
use XML::Dumper;
use Socket qw(NI_NUMERICSERV NI_NUMERICHOST getaddrinfo inet_pton);
my $debug = 0xffff & ~(0x20);
my %urls;
my $p_urls = \%urls;
my %hosts;
my $time = time;
my $dbfile;
my $dbfile_suffix = ".url-database.xml";
sub quote($) {
$_[0] =~ s/\`/#60/g;
$_[0] =~ s/[\200-\377]/\?/g;
return $_[0];
};
sub extract_urls($) {
my ($url, $desc);
print STDERR "DEBUG/extract_urls: open file: $_[0]\n";
open FILE, "<" . $_[0] || die "ERROR : can't open file: " . $_[0];
my $linecounter = 0;
while (<FILE>) {
$linecounter++;
chomp $_;
if ($_ =~ /LatexCommand \\url\[([^]]*)\]{([^}]*)}/) {
$desc = $1;
$url = $2;
print STDERR "DEBUG/extract_urls: desc='$desc' URL=$url\n" if ($debug & 0x10);
if (defined $$p_urls{$url}->{'line'}) {
print STDERR "DEBUG/extract_urls: URL already found earlier - skip\n" if ($debug & 0x10);
if ($$p_urls{$url}->{'time'} == $time) {
} else {
# from database, update now
$$p_urls{$url}->{'time'} = $time;
$$p_urls{$url}->{'line'} = $linecounter;
$$p_urls{$url}->{'desc'} = quote($desc);
};
next;
} else {
$$p_urls{$url}->{'desc'} = quote($desc);
$$p_urls{$url}->{'time'} = $time;
$$p_urls{$url}->{'line'} = $linecounter;
};
$url = "";
$desc = "";
} elsif ($_ =~ /name \"([^"]*)\"/) {
# name "IPv6 & Linux - HowTo"
$desc = $1;
} elsif ($_ =~ /target \"([^"]*)\"/) {
# target "http://www.bieringer.de/linux/IPv6/"
$url = $1;
print STDERR "DEBUG/extract_urls: desc='$desc' URL=$url\n" if ($debug & 0x10);
if (defined $$p_urls{$url}->{'line'}) {
print STDERR "DEBUG/extract_urls: URL already found earlier - skip\n" if ($debug & 0x10);
if ($$p_urls{$url}->{'time'} == $time) {
} else {
# from database, update now
$$p_urls{$url}->{'time'} = $time;
$$p_urls{$url}->{'line'} = $linecounter;
$$p_urls{$url}->{'desc'} = quote($desc);
};
next;
} else {
$$p_urls{$url}->{'desc'} = quote($desc);
$$p_urls{$url}->{'time'} = $time;
$$p_urls{$url}->{'line'} = $linecounter;
};
};
};
close(FILE);
};
sub load_urls() {
if (! -f $dbfile) {
print STDERR "DEBUG/load_urls: database file doesn't exist, skip load: $dbfile\n" if ($debug & 0x10);
return 2;
};
my $dump = new XML::Dumper;
print STDERR "DEBUG/load_urls: load database file: $dbfile\n" if ($debug & 0x10);
$p_urls = $dump->xml2pl($dbfile);
};
sub store_urls() {
my $dump = new XML::Dumper;
$dump->pl2xml($p_urls, $dbfile);
};
sub cleanup_old_urls() {
for my $url (keys %$p_urls) {
if ($$p_urls{$url}->{'time'} < $time) {
print STDERR "DEBUG/cleanup_old_urls: remove old URL from database: $url\n" if ($debug & 0x10);
my $p_h = $$p_urls{$url};
delete $$p_urls{$url};
};
};
};
sub check_ipv6only($$) {
print STDERR "DEBUG/check_ipv6only: begin\n" if ($debug & 0x10);
print STDERR "DEBUG/check_ipv6only: check: " . $_[0] . " on port " . $_[1] . "\n" if ($debug & 0x10);
my ($family, $socktype, $proto, $saddr, $canonname, @res, $err);
my ($host, $port);
$family = -1;
if ($_[0] =~ /^\[([0-9a-fA-F:]+)\]$/) {
# Strip [...]
$host = $1;
$port = $_[1];
print STDERR "DEBUG/check_ipv6only: host: " . $host . "\n" if ($debug & 0x10);
socket(Socket_Handle, PF_INET6, SOCK_STREAM, 0) || return 1;
$saddr = pack_sockaddr_in6($port, inet_pton(AF_INET6, $host));
connect(Socket_Handle, $saddr) && return 0;
close(Socket_Handle);
} else {
my %hints = ( socktype => SOCK_STREAM, family => AF_INET6);
($err, @res) = getaddrinfo($_[0], "echo", \%hints);
if (defined $err) {
print STDERR "ERROR/check_ipv6only: getaddrinfo fails: $err\n" if ($debug & 0x10);
return 1;
};
if (scalar(@res) < 5) {
print STDERR "ERROR/check_ipv6only: getaddrinfo fails\n" if ($debug & 0x10);
return 1;
};
$family = -1;
while (scalar(@res) >= 5) {
($family, $socktype, $proto, $saddr, $canonname, @res) = @res;
($host, $port) = getnameinfo($saddr, NI_NUMERICHOST | NI_NUMERICSERV);
print STDERR "Trying to connect to $host port $port...\n";
socket(Socket_Handle, $family, $socktype, $proto) || next;
connect(Socket_Handle, $saddr) && last;
close(Socket_Handle);
$family = -1;
};
if ($family != -1) {
print STDERR "connected to $host port $port\n";
close(Socket_Handle);
return 0;
} else {
warn "connect attempt failed\n";
return 1;
};
};
};
sub check_urls() {
print STDERR "DEBUG/check_urls: begin\n" if ($debug & 0x10);
for my $url (sort keys %$p_urls) {
if (defined $$p_urls{$url}->{'checktime'}) {
if ($$p_urls{$url}->{'checktime'} > $time - 60*60*24*7) {
if (defined $$p_urls{$url}->{'checkresult'} && $$p_urls{$url}->{'checkresult'} =~ /^ok/) {
# Checked during last 7 days - skip
print STDERR "DEBUG/check_urls: checked during last 7 days - skip: $url\n" if ($debug & 0x10);
next;
};
};
};
print STDERR "DEBUG/check_urls: check now: $url\n" if ($debug & 0x10);
my ($host, $port);
my $desc = $$p_urls{$url}->{'desc'};
my $status = "undef";
# Extract host
my ($proto, $hostport, $uri) = $url =~ /^([^:]+):\/\/([^\/]+)(.*)$/;
if ($hostport =~ /^([^:]):([0-9]+)$/) {
$host = $1;
$port = $2;
} else {
$host = $hostport;
if ($proto eq "http") {
$port = 80;
} elsif ($proto eq "ftp") {
$port = 21;
} elsif ($proto eq "nntp") {
$port = 119;
} elsif ($proto eq "https") {
$port = 443;
};
};
# Strip trailing #
$uri =~ s/#.*//;
if (length($uri) == 0) {
$status = "URI is empty";
goto ("LABEL_PRINT");
};
my $s;
if ($proto eq "ftp") {
# Check FTP
print STDERR "DEBUG/check_urls: open FTP connection: $host:$port\n" if ($debug & 0x20);
$s = Net::FTP->new(Host => $host, Port => $port, Timeout => 30, Passive => 1);
if (! defined $s) {
$status = "Host not found";
if (! check_ipv6only($host,$port)) {
$status = "ok (IPv6 only)";
};
goto ("LABEL_PRINT");
};
if (!$s->login("anonymous",'-anonymous@')) {
$status = "FTP anonymous login failed";
goto ("LABEL_PRINT");
};
if (!$s->cwd($uri)) {
$status = "FTP can't change to directory $uri";
goto ("LABEL_PRINT");
};
$status = "ok";
$s->quit;
} elsif ($proto eq "nntp") {
my $s = Net::NNTP->new(Host => $host, Timeout => 30);
if (! defined $s) {
$status = "Host not found";
if (! check_ipv6only($host,$port)) {
$status = "ok (IPv6 only)";
};
goto ("LABEL_PRINT");
};
$status = "ok";
$s->quit;
} elsif ($proto eq "https") {
my $ua = new LWP::UserAgent;
my $req = new HTTP::Request('HEAD', $url);
my $res = $ua->request($req);
my $code = $res->code;
if ($code !~ /^[23]/) {
$status = "HTTPS reports: $code";
} else {
$status = "ok";
};
} elsif ($proto eq "http") {
# Check HTTP
print STDERR "DEBUG/check_urls: open HTTP connection: $host:$port\n" if ($debug & 0x20);
$s = Net::HTTP->new(Host => $host, PeerPort => $port, Timeout => 30);
if (! defined $s) {
$status = "Host not found";
if (! check_ipv6only($host,$port)) {
$status = "ok (IPv6 only)";
};
goto ("LABEL_PRINT");
};
print STDERR "DEBUG/check_urls: send HEAD request: $uri\n" if ($debug & 0x20);
if ($s->write_request(HEAD => $uri, 'User-Agent' => "Mozilla/5.0") == 0) {
$status = "trouble with uri";
goto ("LABEL_PRINT");
};
print STDERR "DEBUG/check_urls: wait for response\n" if ($debug & 0x20);
my($code, $mess, %h) = $s->read_response_headers;
print STDERR "DEBUG/check_urls: check response\n" if ($debug & 0x10);
if ($code !~ /^[23]/) {
$status = "HTTP reports: $code";
} else {
$status = "ok";
};
};
LABEL_PRINT:
if ($status ne "ok") {
print "desc='$desc' URL=$url proto=$proto host=$host port=$port uri='$uri'";
print " status=$status\n\n";
die;
};
LABEL_END:
$$p_urls{$url}->{'checktime'} = $time;
$$p_urls{$url}->{'checkresult'} = $status;
undef $s;
store_urls();
};
};
sub report_urls() {
print STDERR "DEBUG/report_urls: begin\n" if ($debug & 0x10);
for my $url (sort { $$p_urls{$a}->{'line'} <=> $$p_urls{$b}->{'line'} } ( keys %$p_urls)) {
if ($$p_urls{$url}->{'checkresult'} =~ /^ok/) {
next;
};
print "NOTICE: URL has a problem: $url\n";
print " Description : " . $$p_urls{$url}->{'desc'} . "\n";
print " Line number : " . $$p_urls{$url}->{'line'} . "\n";
print " Result : " . $$p_urls{$url}->{'checkresult'} . "\n";
print "\n";
};
};
sub check_rfc_urls() {
print STDERR "DEBUG/check_rfc_urls: begin\n" if ($debug & 0x10);
for my $url (sort { $$p_urls{$a}->{'line'} <=> $$p_urls{$b}->{'line'} } ( keys %$p_urls)) {
if ($url =~ /rfc[0-9]{1,4}/) {
print "NOTICE: URL points to RFC: $url\n";
print " Description : " . $$p_urls{$url}->{'desc'} . "\n";
print " Line number : " . $$p_urls{$url}->{'line'} . "\n";
print "\n";
};
};
};
##### Main
if (! defined $ARGV[0] || $ARGV[0] eq "") {
die "Missing file name (arg1)";
};
if (! -f $ARGV[0]) {
die "Argument 1 is not an existing file: " . $ARGV[0];
};
$dbfile = $ARGV[0] . $dbfile_suffix;
load_urls();
extract_urls($ARGV[0]);
cleanup_old_urls();
check_urls();
store_urls();
check_rfc_urls();
report_urls();

@ -1,35 +0,0 @@
#!/bin/sh
#
# $Id$
#
# Small helper script to copy SGML file to howto dir
#
# (P) & (C) by Peter Bieringer <pb at bieringer dot de>
#
# 20020119/PB: initial
FILE_SGML="Linux+IPv6-HOWTO.sgml"
DIRSRC="./"
DIRDST="../../howto/docbook/"
if [ ! -f "${DIRSRC}${FILE_SGML}" ]; then
echo "ERR : Missing SGML file '${DIRSRC}${FILE_SGML}'!"
exit 1
fi
if [ -f "${DIRDST}${FILE_SGML}" ]; then
if [ "${DIRDST}${FILE_SGML}" -nt "${DIRSRC}${FILE_SGML}" ]; then
echo "ERR : SGML file at destination is newer than source!"
exit 1
fi
fi
if [ -f "${DIRDST}${FILE_SGML}" ]; then
echo "INF : Remove old SGML file '${DIRDST}${FILE_SGML}'"
rm "${DIRDST}${FILE_SGML}"
fi
echo "INF : Copy new SGML file"
cp "${DIRSRC}${FILE_SGML}" "${DIRDST}${FILE_SGML}"

@ -1,11 +0,0 @@
#!/bin/sh
# Generate all available howtos
list="Linux+IPv6-HOWTO.sgml Linux+IPv6-HOWTO.de.sgml Linux+IPv6-HOWTO.fr.sgml Linux+IPv6-HOWTO.pt_BR.sgml"
for lyx in $list; do
./generate.sh $lyx
done
echo -en "\a"

@ -1,11 +0,0 @@
#!/bin/sh
# Generate all available howtos
list="Linux+IPv6-HOWTO.sgml Linux+IPv6-HOWTO.de.sgml"
for lyx in $list; do
./generate.sh $lyx $* || exit 1
done
echo -en "\a"

@ -1,345 +0,0 @@
#!/bin/sh
#
# (P) & (C) 2003-2016 by Dr. Peter Bieringer <pb@bieringer.de>
#
# Generator script
#
# $Id$
#
# Requires: htmldoc recode docbook-utils-pdf
#
# Changelog
#
# 20020117/PB: review
# 20020128/PB: change PDF generation to LDP conform one, PS is still not LDP conform
# 20070401/PB: disable sgmlfixer (no longer needed)
# add support for XML file, replace nsgmls by onsgmls
# 20090214/PB: remove </?dummy> tag from SGML, onsgmls don't like it
# 20090523/PB: extend required binary check
# 20091220/PB: catch recode problem
# 20110508/PB: force UTF-8 as input format to fix mixed charset problems in HTML
# renice whole script
# support also ldp.dsl stored in same directory as the script
# 20110509/PB: add charset meta header on each html page to force UTF-8
# 20161215/PB: remove VGWort URL appender
loglevel=6
# parse options
while getopts "ql:" opt; do
case $opt in
q)
loglevel=4
;;
l)
loglevel=$OPTARG
echo "INFO : set loglevel to: $loglevel"
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
shift $((OPTIND-1))
if [ -z "$1" ]; then
file_input="Linux+IPv6-HOWTO.sgml"
#file_input="Linux+IPv6-HOWTO.xml"
else
file_input="$1"
fi
if echo "$file_input" | grep -q ".sgml$"; then
# ok, SGML
true
elif echo "$file_input" | grep -q ".xml$"; then
# ok, XML
true
else
echo "ERR: file is not a SGML/XML file: $file_input"
exit 1
fi
if head -1 "$file_input" |grep -q DOCTYPE ; then
doctype="SGML"
elif head -1 "$file_input" |grep -q "xml version" ; then
doctype="XML"
else
echo "ERR: file is not a SGML file: $file_input"
exit 1
fi
echo "Used SGML file: $file_input"
file_base="${file_input%.*}"
ONSGMLS="/usr/bin/onsgmls"
JADE="/usr/bin/jade"
DB2PS="/usr/bin/db2ps"
DB2PDF="/usr/bin/db2pdf"
LDP_PRINT="/usr/local/bin/ldp_print"
PS2ASCII="/usr/bin/ps2ascii"
RECODE="/usr/bin/recode"
HTMLDOC="/usr/bin/htmldoc"
#LDP_PDFPS="yes"
checklist_bin="ONSGMLS JADE DB2PS DB2PDF PS2ASCII RECODE HTMLDOC"
if [ "$LDP_PDFPS" = "yes" ]; then
checklist_bin="$checklist_bin LDP_PRINT"
fi
file_ps="$file_base.ps"
file_pdf="$file_base.pdf"
file_txt="$file_base.txt"
file_html="$file_base.html"
file_ldpdsl="/usr/local/share/sgml/dsssl/ldp.dsl"
if [ ! -f $file_ldpdsl ]; then
# try local stored one
file_ldpdsl="`dirname $0`"
if [ "$file_ldpdsl" = "." ]; then
file_ldpdsl="`pwd`"
fi
file_ldpdsl="$file_ldpdsl/ldp.dsl"
fi
file_xmldcl="/usr/share/sgml/xml.dcl"
dir_dssslstylesheets="/usr/share/sgml/docbook/dsssl-stylesheets"
if [ ! -f "$file_ldpdsl" ]; then
echo "ERR: Missing DSL file: $file_ldpdsl"
exit 1
fi
if [ ! -f $file_input ]; then
echo "ERR: Missing SGML file, perhaps export DocBook of LyX won't work"
exit 1
fi
# look for required files
for f in $file_ldpdsl $file_xmldcl; do
if [ ! -e $f ]; then
echo "Missing file: $f"
exit 1
fi
done
# look for required binaries
for name in $checklist_bin; do
f="${!name}"
if [ ! -e $f ]; then
echo "Missing file: $f ($name)"
exit 1
fi
if [ ! -x $f ]; then
echo "Cannot executue: $f ($name)"
exit 1
fi
done
# run sgmlfix
#if [ -e ./runsgmlfix.sh ]; then
# ./runsgmlfix.sh "$file_input"
#else
# echo "WARN: cannot execute 'runsgmlfix.sh'"
#fi
export SP_ENCODING=UTF-8
export SP_CHARSET_FIXED=yes
## Functions
validate_sgml() {
# remove tags <dummy>, </dummy>
perl -pi -e 's|</?dummy>||g' "$file_input"
echo "INFO : Validate SGML/XML code '$file_input'"
if [ "$doctype" = "XML" ]; then
local options="$file_xmldcl"
fi
[ $loglevel -ge 7 ] && set -x
$ONSGMLS -s $options $file_input
local retval=$?
[ $loglevel -ge 7 ] && set +x
if [ $retval -gt 0 ]; then
echo "ERR: Validation results in errors!"
return 1
else
echo "INFO : Validation was successfully"
fi
}
create_html_multipage() {
echo "INFO : Create HTML multipages"
if [ ! -d "$file_base" ]; then
mkdir "$file_base" || exit 1
fi
pushd "$file_base" >/dev/null || exit 1
rm -f *
[ $loglevel -ge 7 ] && set -x
$JADE -t sgml -i html -D $dir_dssslstylesheets -d "${file_ldpdsl}#html" ../$file_input
local retval=$?
[ $loglevel -ge 7 ] && set +x
perl -pi -e 's#><META#><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"\n><META#o' *.html
local r=$?
if [ $r -ne 0 ]; then
retval=$?
fi
popd >/dev/null
return $retval
}
create_html_singlepage() {
echo "INFO : Create HTML singlepage '$file_html' from '$file_input'"
[ $loglevel -ge 7 ] && set -x
$JADE -t sgml -i html -V nochunks -d "${file_ldpdsl}#html" $file_input >$file_html
local retval=$?
[ $loglevel -ge 7 ] && set +x
perl -pi -e 's#><META#><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"\n><META#o' $file_html
local r=$?
if [ $r -ne 0 ]; then
retval=$?
fi
if [ $retval -eq 0 ]; then
echo "INFO : Create HTML singlepage - done"
else
echo "ERR: Create HTML singlepage - an error occurs!"
fi
return $retval
}
create_rtf() {
echo "INFO : Create RTF file '$file_rtf'"
[ $loglevel -ge 7 ] && set -x
$JADE -t rtf -d ${file_ldpdsl} $file_input
local retval=$?
[ $loglevel -ge 7 ] && set +x
if [ $retval -eq 0 ]; then
echo "INFO : Create RTF file - done"
else
echo "ERR: Create RTF file - an error occurs!"
fi
return $retval
}
create_ps() {
echo "INFO : Create PS file '$file_ps'"
[ $loglevel -ge 7 ] && set -x
$DB2PS --dsl ${file_ldpdsl} $file_input
local retval=$?
[ $loglevel -ge 7 ] && set +x
if [ $retval -eq 0 ]; then
echo "INFO : Create PS file - done"
else
echo "ERR: Create PS file - an error occurs!"
fi
return $retval
}
create_pdf() {
if [ "$LDP_PDFPS" = "yes" ]; then
# Use LDP conform mechanism
echo "INFO : Create PDF file (LDP conform) '$file_pdf' from HTML file '$file_html'"
if [ $file_html -ot $file_input ]; then
echo "ERR: Create PDF file - needed single page HTML file '$file_html' is older than original '$file_input'"
return 1
fi
[ $loglevel -ge 7 ] && set -x
$LDP_PRINT $file_html
local retval=$?
[ $loglevel -ge 7 ] && set +x
else
echo "INFO : Create PDF file (NOT LDP conform) '$file_pdf'"
[ $loglevel -ge 7 ] && set -x
$DB2PDF --dsl ${file_ldpdsl} $file_input
local retval=$?
[ $loglevel -ge 7 ] && set +x
fi
if [ $retval -eq 0 ]; then
echo "INFO : Create PDF file - done"
else
echo "ERR: Create PDF file - an error occurs!"
fi
return $retval
}
create_txt() {
echo "INFO : Create TXT file '$file_txt' from PS file '$file_ps'"
[ -f $file_txt ] && rm $file_txt
if [ -f $file_ps ]; then
echo "INFO : Create TXT file '$file_txt'"
[ $loglevel -ge 7 ] && set -x
$PS2ASCII $file_ps > $file_txt
local retval=$?
[ $loglevel -ge 7 ] && set +x
else
echo "ERR: Cannot create TXT because of missing PS file"
fi
if [ $retval -eq 0 ]; then
echo "INFO : Create TXT file - done"
else
echo "ERR: Create TXT file - an error occurs!"
fi
return $retval
}
### Main
validate_sgml
[ $? -ne 0 ] && exit 1
create_html_multipage
if [ $? -ne 0 ]; then
echo "ERROR : create_html_multipage was not successful"
exit 1
fi
create_html_singlepage
if [ $? -ne 0 ]; then
echo "ERROR : create_html_singlepage was not successful"
exit 1
fi
create_pdf
if [ $? -ne 0 ]; then
echo "ERROR : create_pdf was not successful"
exit 1
fi
#create_ps
#[ $? -ne 0 ] && exit 1
#create_txt
#[ $? -ne 0 ] && exit 1
#create_rtf
#[ $? -ne 0 ] && exit 1
## Add VGWort URL
#if [ -x ./adjust-html-vgwort.sh ]; then
# case $file_input in
# 'Linux+IPv6-HOWTO.sgml')
# echo "NOTICE: add vgwort URL"
# ./adjust-html-vgwort.sh en
# ;;
# 'Linux+IPv6-HOWTO.de.sgml')
# echo "NOTICE: add vgwort URL"
# ./adjust-html-vgwort.sh de
# ;;
# esac
#else
# echo "NOTICE : can't add vgwort URL (missing adjust-html-vgwort.sh)"
#fi
exit 0

@ -1,30 +0,0 @@
# $Id$
This is the working directory of
Peter Bieringer
pb (at) bieringer.de
Content:
Linux+IPv6-HOWTO.lyx (online next)
LyX file of the Linux+IPv6-HOWTO
lyxcodelinewrapper.pl
Perl program which wraps too long "code" lines in a LyX file
sgmllyxtabletagfix.pl
Perl program which fixes table tags
sgmllyxquotefix.pl
Perl program which fixes quote tags
copytohowtodir.sh
Shell program which copy SGML file to local howto directory
runsgmlfix.sh
Shell program which runs all the SGML code fix programs
generate.sh
Shell program which run different generation steps (needed for local review)
requires: sgml-common opensp openjade docbook-utils-pdf recode htmldoc
2009 Test

@ -1,351 +0,0 @@
<!DOCTYPE style-sheet PUBLIC
"-//James Clark//DTD DSSSL Style Sheet//EN" [
<!ENTITY % html "IGNORE">
<![%html;[
<!ENTITY % print "IGNORE">
<!ENTITY docbook.dsl PUBLIC
"-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN"
CDATA dsssl>
]]>
<!ENTITY % print "INCLUDE">
<![%print;[
<!ENTITY docbook.dsl PUBLIC
"-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"
CDATA dsssl>
]]>
]>
<style-sheet>
<style-specification id="print" use="docbook">
<style-specification-body>
;; customize the print stylesheet
(declare-characteristic preserve-sdata?
;; this is necessary because right now jadetex does not understand
;; symbolic entities, whereas things work well with numeric entities.
"UNREGISTERED::James Clark//Characteristic::preserve-sdata?"
#f)
(define %generate-article-toc%
;; Should a Table of Contents be produced for Articles?
#t)
(define (toc-depth nd)
4)
(define %generate-article-titlepage-on-separate-page%
;; Should the article title page be on a separate page?
#t)
(define %section-autolabel%
;; Are sections enumerated?
#t)
(define %footnote-ulinks%
;; Generate footnotes for ULinks?
#f)
(define %bop-footnotes%
;; Make "bottom-of-page" footnotes?
#f)
(define %body-start-indent%
;; Default indent of body text
0pi)
(define %para-indent-firstpara%
;; First line start-indent for the first paragraph
0pt)
(define %para-indent%
;; First line start-indent for paragraphs (other than the first)
0pt)
(define %block-start-indent%
;; Extra start-indent for block-elements
0pt)
(define formal-object-float
;; Do formal objects float?
#t)
(define %hyphenation%
;; Allow automatic hyphenation?
#t)
(define %admon-graphics%
;; Use graphics in admonitions?
#f)
(define %default-quadding%
;; Full justification.
'justify)
(define (book-titlepage-verso-elements)
;;added publisher, releaseinfo to the default list
(list (normalize "title")
(normalize "subtitle")
(normalize "corpauthor")
(normalize "authorgroup")
(normalize "author")
(normalize "publisher")
(normalize "releaseinfo")
(normalize "editor")
(normalize "edition")
(normalize "pubdate")
(normalize "copyright")
(normalize "isbn")
(normalize "abstract")
(normalize "legalnotice")
(normalize "revhistory")))
</style-specification-body>
</style-specification>
<!--
;; customize the html stylesheet; parts borrowed from
;; Cygnus at http://sourceware.cygnus.com/ (cygnus-both.dsl)
-->
<style-specification id="html" use="docbook">
<style-specification-body>
(declare-characteristic preserve-sdata?
;; this is necessary because right now jadetex does not understand
;; symbolic entities, whereas things work well with numeric entities.
"UNREGISTERED::James Clark//Characteristic::preserve-sdata?"
#f)
(declare-flow-object-class element
;; for redhat
"UNREGISTERED::James Clark//Flow Object Class::element")
(define %html-pubid%
;; put the public identifier in each HTML file
"-//W3C//DTD HTML 4.0 Transitional//EN")
(define %generate-legalnotice-link%
;; put the legal notice in a separate file
#t)
(define %admon-graphics-path%
;; use graphics in admonitions, set their
"../images/")
(define %admon-graphics%
#t)
(define %funcsynopsis-decoration%
;; make funcsynopsis look pretty
#t)
(define %html-ext%
;; when producing HTML files, use this extension
".html")
(define %generate-book-toc%
;; Should a Table of Contents be produced for books?
#t)
(define %generate-article-toc%
;; Should a Table of Contents be produced for articles?
#t)
(define %generate-part-toc%
;; Should a Table of Contents be produced for parts?
#t)
(define %generate-book-titlepage%
;; produce a title page for books
#t)
(define %generate-article-titlepage%
;; produce a title page for articles
#t)
(define (chunk-skip-first-element-list)
;; forces the Table of Contents on separate page
'())
(define (list-element-list)
;; fixes bug in Table of Contents generation
'())
(define %root-filename%
;; The filename of the root HTML document (e.g, "index").
"index")
(define %shade-verbatim%
;; verbatim sections will be shaded if t(rue)
#t)
(define %use-id-as-filename%
;; Use ID attributes as name for component HTML files?
#t)
(define %graphic-extensions%
;; graphic extensions allowed
'("gif" "png" "jpg" "jpeg" "tif" "tiff" "eps" "epsf" ))
(define %graphic-default-extension%
"gif")
(define %section-autolabel%
;; For enumerated sections (1.1, 1.1.1, 1.2, etc.)
#t)
(define (toc-depth nd)
;; more depth (2 levels) to toc; instead of flat hierarchy
2)
(element emphasis
;; make role=strong equate to bold for emphasis tag
(if (equal? (attribute-string "role") "strong")
(make element gi: "STRONG" (process-children))
(make element gi: "EM" (process-children))))
(define (book-titlepage-recto-elements)
;; elements on a book's titlepage
(list (normalize "title")
(normalize "subtitle")
(normalize "graphic")
(normalize "mediaobject")
(normalize "corpauthor")
(normalize "authorgroup")
(normalize "author")
(normalize "othercredit")
(normalize "contrib")
(normalize "edition")
(normalize "releaseinfo")
(normalize "publisher")
(normalize "editor")
(normalize "copyright")
(normalize "pubdate")
(normalize "revhistory")
(normalize "abstract")
(normalize "legalnotice")))
(define (article-titlepage-recto-elements)
;; elements on an article's titlepage
(list (normalize "title")
(normalize "subtitle")
(normalize "authorgroup")
(normalize "author")
(normalize "othercredit")
(normalize "releaseinfo")
(normalize "copyright")
(normalize "pubdate")
(normalize "revhistory")
(normalize "abstract")
(normalize "legalnotice")))
(define (process-contrib #!optional (sosofo (process-children)))
;; print out with othercredit information; for translators, etc.
(make sequence
(make element gi: "SPAN"
attributes: (list (list "CLASS" (gi)))
(process-children))))
(define (process-othercredit #!optional (sosofo (process-children)))
;; print out othercredit information; for translators, etc.
(let ((author-name (author-string))
(author-contrib (select-elements (children (current-node))
(normalize "contrib"))))
(make element gi: "P"
attributes: (list (list "CLASS" (gi)))
(make element gi: "B"
(literal author-name)
(literal " - "))
(process-node-list author-contrib))))
(mode article-titlepage-recto-mode
(element contrib (process-contrib))
(element othercredit (process-othercredit))
)
(mode book-titlepage-recto-mode
(element contrib (process-contrib))
(element othercredit (process-othercredit))
)
(define (article-title nd)
(let* ((artchild (children nd))
(artheader (select-elements artchild (normalize "artheader")))
(artinfo (select-elements artchild (normalize "articleinfo")))
(ahdr (if (node-list-empty? artheader)
artinfo
artheader))
(ahtitles (select-elements (children ahdr)
(normalize "title")))
(artitles (select-elements artchild (normalize "title")))
(titles (if (node-list-empty? artitles)
ahtitles
artitles)))
(if (node-list-empty? titles)
""
(node-list-first titles))))
(mode subtitle-mode
;; do not print subtitle on subsequent pages
(element subtitle (empty-sosofo)))
;; Redefinition of $verbatim-display$
;; Origin: dbverb.dsl
;; Different foreground and background colors for verbatim elements
;; Author: Philippe Martin (feloy@free.fr) 2001-04-07
(define ($verbatim-display$ indent line-numbers?)
(let ((verbatim-element (gi))
(content (make element gi: "PRE"
attributes: (list
(list "CLASS" (gi)))
(if (or indent line-numbers?)
($verbatim-line-by-line$ indent line-numbers?)
(process-children)))))
(if %shade-verbatim%
(make element gi: "TABLE"
attributes: (shade-verbatim-attr-element verbatim-element)
(make element gi: "TR"
(make element gi: "TD"
(make element gi: "FONT"
attributes: (list
(list "COLOR" (car (shade-verbatim-element-colors
verbatim-element))))
content))))
content)))
;;
;; Customize this function
;; to change the foreground and background colors
;; of the different verbatim elements
;; Return (list "foreground color" "background color")
;;
(define (shade-verbatim-element-colors element)
(case element
(("SYNOPSIS") (list "#000000" "#6495ED"))
;; ...
;; Add your verbatim elements here
;; ...
(else (list "#000000" "#E0E0E0"))))
(define (shade-verbatim-attr-element element)
(list
(list "BORDER"
(cond
((equal? element (normalize "SCREEN")) "1")
(else "0")))
(list "BGCOLOR" (car (cdr (shade-verbatim-element-colors element))))
(list "WIDTH" ($table-width$))))
;; End of $verbatim-display$ redefinition
</style-specification-body>
</style-specification>
<external-specification id="docbook" document="docbook.dsl">
</style-sheet>

@ -1,173 +0,0 @@
#!/usr/bin/perl
#
# $Id$
#
# LyX codeline wrapper tool
#
# (P) & (C) 2002-2009 by Peter Bieringer <pb@bieringer.de>
#
# Published under the GNU GPL licence
#
# Takes LyX code from stdin and pipes a modified to stdout.
# Wraps length of code lines to a given limit.
# Marks second and next lines with a given character.
#
# Attention: no warranty that the new LyX code is very well!
# Use diff to check proper work
#
# Changes:
# 20020118: Initial try
# 20020119: Improve tool, do not touch code lines including LyX tags
# 20090214/PB: adjustments for LyX format 345
#
# Known bugs:
# * Sure some
#
# Known limitations:
# * Code lines containing LyX tags are currently not supported and skipped
my $lyx_format_supported = "474";
sub print_long_line ($);
my $TAG_CODE = 0;
my $line_carry = "";
my $lines_original = "";
my $line_limit = 79;
#my $linebreakchar = chr(172);
my $linebreakchar = "¬"; # UTF-8 support
#my $debug = 1;
my $debug = 0;
while (<STDIN>) {
my $line = $_;
chomp $line;
#print "$line";
#print "\n";
#
if ($line =~ /^\\lyxformat ([0-9]+)$/) {
if ($1 ne $lyx_format_supported) {
die "Lyx format not supported: $1";
};
} elsif ($line =~ /^\\begin_layout Code$/ && $TAG_CODE != 1) {
print STDERR "INF: Code tag starts\n";
$TAG_CODE = 1;
$line_carry = "";
$lines_original = "";
next;
} elsif ($line =~ /^\\end_layout$/ && $TAG_CODE == 1) {
print STDERR "INF: Code tag ends\n";
if ($lines_original =~ /\\/) {
# Ooops, lines contain a LyX tag, currently not supported, so let it be
#print STDERR "WARN: Lines contain LyX code tag, let it like it is\n: '$lines_original'";
print STDERR "WARN: Lines contain LyX code tag, let it like it is\n";
if ($debug & 0x01) { print "G"; };
print "\\begin_layout Code" . "\n" . $lines_original . "\\end_layout" . "\n";
} elsif ($lines_original =~ /$linebreakchar/) {
# Code line already wrapped
print STDERR "INF: Code line already wrapped, let it like it is\n";
if ($debug & 0x01) { print "F"; };
print "\\begin_layout Code" . "\n" . $lines_original . "\\end_layout" . "\n";
} else {
print_long_line $line_carry;
};
$TAG_CODE = 0;
$line_carry = "";
$lines_original = "";
next;
} elsif ($line =~ /^\\layout/ && $TAG_CODE == 1) {
die "unsupported";
print STDERR "INF: Code tag ends\n";
if ($lines_original =~ /\\/) {
# Ooops, lines contain a LyX tag, currently not supported, so let it be
#print STDERR "WARN: Lines contain LyX code tag, let it like it is\n: '$lines_original'";
print STDERR "WARN: Lines contain LyX code tag, let it like it is\n";
if ($debug & 0x01) { print "A"; };
print "\\begin_layout Code" . "\n" . $lines_original;
} elsif ($lines_original =~ /$linebreakchar/) {
# Code line already wrapped
print STDERR "INF: Code line already wrapped, let it like it is\n";
if ($debug & 0x01) { print "B"; };
print "\\begin_layout Code" . "\n" . $lines_original;
} else {
print_long_line $line_carry;
};
$line_carry = "";
$lines_original = "";
$TAG_CODE = 0;
print $line . "\n";
next;
};
if ($TAG_CODE != 1) {
print $line . "\n";
} else {
$lines_original .= $line . "\n";
if ($line eq "") {
# empty lines are skipped here
next;
};
print STDERR "INF: Found code line: '" . $line . "'\n";
$line_carry .= $line;
};
};
sub print_long_line ($){
my $line = shift;
print STDERR "INF: Print code line: '" . $line . "'\n";
my $l = 0;
my $c = "";
if (length($line) == 0) {
if ($debug & 0x01) { print "C"; };
my $s = "\\begin_layout Code" . "\n" . "\n" . "\\end_layout" . "\n";
print $s;
return;
};
while ($l < length($line)) {
my $t = 0;
print STDERR "INF: Step: $l\n";
if ($l == 0) {
$c = "";
} else {
$c =$linebreakchar;
}
if (length($line) - $l <= $line_limit) {
if ($debug & 0x01) { print "D"; };
my $s = "\\begin_layout Code" . "\n" . $c . substr($line, $l) . "\n" . "\\end_layout" . "\n";
print STDERR "INF: Step end\n";
print $s;
print STDERR $s;
last;
};
for ($t = $line_limit; $t > 0; $t--) {
if (substr($line, $l + $t, 1) eq " ") {
print STDERR "INF: Found <space> at pos: $t\n";
last;
};
};
if ($t == 0) { $t = $line_limit };
print STDERR "INF: Start printing l=$l t=$t\n";
if ($debug & 0x01) { print "E"; };
my $s = "\\begin_layout Code" . "\n" . $c . substr($line, $l, $t) . "\n" . "\\end_layout" . "\n\n";
print $s;
print STDERR $s;
$l = $l + $t;
};
};
print STDERR "\n\nWARNING: check code using utility 'diff' for proper LyX output!\n";

@ -1,335 +0,0 @@
#!/bin/bash
#
# (P) & (C) 2011 - 2011 by Dr. Peter Bieringer <pb@bieringer.de>
#
# Wrapper script for HOWTO generator script
#
# Requires: "generate.sh"
#
# Changelog
#
#
# 20110511/PB: use absolute paths, extend error checking
URL_BASE="http://cvs.tldp.org/go.to/LDP/LDP/users/Peter-Bieringer/"
FILE_EN="Linux+IPv6-HOWTO.sgml"
FILE_DE="Linux+IPv6-HOWTO.de.sgml"
FILE_FR="Linux+IPv6-HOWTO.fr.sgml"
FILE_PT_BR="Linux+IPv6-HOWTO.pt_BR.sgml"
options_wget="--quiet"
DIR_BASE="$HOME/howtos"
DIR_DOWNLOAD="$HOME/howtos/download"
DIR_DEST_BASE="/var/www/html/howtos"
## logging
log() {
local level="$1"
shift
printf "%-6s: %s\n" "$level" "$*"
}
## download file
download() {
local url_base="$1"
local file="$2"
if [ -z "$url_base" ]; then
log "ERROR" "'url_base' empty"
return 1
fi
if [ -z "$file" ]; then
log "ERROR" "'file' empty"
return 1
fi
if [ -z "$DIR_DOWNLOAD" ]; then
log "ERROR" "no download directory given"
return 1
fi
if [ ! -d "$DIR_DOWNLOAD" ]; then
log "ERROR" "download directory doesn't exist: $DIR_DOWNLOAD"
return 1
fi
if [ "$force_download" != "1" ]; then
log "NOTICE" "skip download $url_base/$file (use option -d)"
return 0
fi
log "INFO" "start download $url_base/$file to directory $DIR_DOWNLOAD"
wget $options_wget -N -P "$DIR_DOWNLOAD" "$url_base/$file"
local result=$?
if [ $result -eq 0 ]; then
log "INFO" "download successful: $url_base/$file (stored to $DIR_DOWNLOAD)"
else
log "ERROR" "download not successful: $url_base/$file"
fi