[arch-commits] Commit in ntp/trunk (PKGBUILD ntp-4.2.4-html2man.patch)

Eric Bélanger eric at archlinux.org
Sun Dec 13 12:00:20 UTC 2009


    Date: Sunday, December 13, 2009 @ 07:00:20
  Author: eric
Revision: 61216

upgpkg: ntp 4.2.6-1
    Upstream update, Automated generation of extra man pages

Added:
  ntp/trunk/ntp-4.2.4-html2man.patch
Modified:
  ntp/trunk/PKGBUILD

--------------------------+
 PKGBUILD                 |   66 +++++++++-------
 ntp-4.2.4-html2man.patch |  183 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 220 insertions(+), 29 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-12-13 07:55:37 UTC (rev 61215)
+++ PKGBUILD	2009-12-13 12:00:20 UTC (rev 61216)
@@ -1,70 +1,78 @@
 # $Id$
 # Maintainer: dorphell <dorphell at archlinux.org>
 pkgname=ntp
-pkgver=4.2.4p7
-pkgrel=3
+pkgver=4.2.6
+pkgrel=1
 pkgdesc="NTP (Network Time Protocol) tries to keep servers in sync"
 arch=(i686 x86_64)
 license=('custom')
 url="http://www.ntp.org/"
 depends=('openssl>=0.9.8h' 'readline>=6.0.00' 'libcap')
+makedepends=('perl-html-parser')
 backup=('etc/ntp.conf' 'etc/conf.d/ntp-client.conf')
 options=('!emptydirs')
 source=(http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${pkgver}.tar.gz
         ftp://ftp.archlinux.org/other/ntp/ntp-4.2.4p6-manpages.tar.bz2
         ntp-4.2.4_p7-nano.patch
 	fix-ipv6.patch
+	ntp-4.2.4-html2man.patch
         ntp.conf
         ntp-client.conf
         ntpd
         ntpdate)
+md5sums=('4d64a99592b818aa9419fc9dcb149746' '3396ea6276147617e5cf79cefffee018'\
+         '36c5711228cb0cf48966daa993e06f55' '9dabdbc6b8cd020f2205515df7972c21'\
+         '1b04e888717bb31479a6087632981723' '5bd3924f5720b97837969ec4ec4d5e09'\
+         'c7f50632b69bd4f32cf052d0b1848463' '46118a8ec2c4f5bbfafd730af21b7c03'\
+         '140855352baeb89da0c6c1c475c18b57')
+sha1sums=('a1f21b23c8c80f35801d59e30ba30779f2025a72' '993b849a2e5fa719f53f85c4e83ee52eecbea56d'\
+         '4de6cd3fad1946146107f86d1f161eb835fbb2d3' '3632f8a00838f48e484bca24de06db443cc14fff'\
+         '7f8783e243e23c8853a9f9fb5b36f467aab8dc15' '3625ed2aa71d9e0dd04634f32e65d83b76cfe780'\
+         'c8e388f2577b4329da5e77f0455083db6dd97fa8' 'd9b09de9d718a864270e9330e20109e182dfbdd9'\
+         '6dfc3b6996f591123ee8938fd0fe7c27eb5c7552')
 
 build() {
-  cd $srcdir/$pkgname-$pkgver || return 1
+  cd "$srcdir/$pkgname-$pkgver" || return 1
   # fix glibc build issue
   patch -Np1 -i ../ntp-4.2.4_p7-nano.patch || return 1
   # fix ipv6 support
   patch -Np1 -i ../fix-ipv6.patch || return 1
+  # fix man page generation
+  patch -Np1 -i ../ntp-4.2.4-html2man.patch || return 1
   # configure
+  export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+  libtoolize --copy  --force || return 1
   ac_cv_header_dns_sd_h=0 ./configure --prefix=/usr --mandir=/usr/share/man --enable-linux-caps || return 1
 
   # build and install
   make || return 1
-  make DESTDIR=$pkgdir install || return 1
+  make DESTDIR="$pkgdir" install || return 1
 
   # install conf files
-  mkdir -p $pkgdir/usr/share/ntp || return 1
-  install -D -m644 conf/* $pkgdir/usr/share/ntp/ || return 1
+  mkdir -p "$pkgdir/usr/share/ntp" || return 1
+  install -D -m644 conf/* "$pkgdir/usr/share/ntp/" || return 1
 
   # install launch scripts 
-  mkdir -p $pkgdir/etc/rc.d || return 1
-  install -D -m755 $srcdir/{ntpd,ntpdate} $pkgdir/etc/rc.d/ || return 1
+  mkdir -p "$pkgdir/etc/rc.d" || return 1
+  install -D -m755 "$srcdir"/{ntpd,ntpdate} "$pkgdir/etc/rc.d/" || return 1
 
   # install man pages
-  install -d $pkgdir/usr/share/man/man{1,5}
-  install -m644 $srcdir/man/*.5 \
-  	$pkgdir/usr/share/man/man5/ || return 1
-  for i in $srcdir/man/*.8 ; do
-    install -m644 $i $pkgdir/usr/share/man/man1/$(basename $i .8).1 || return 1
-  done
-  mv $pkgdir/usr/share/man/man1/keygen.1 $pkgdir/usr/share/man/man1/ntp-keygen.1 || return 1
+  cd html
+  ../scripts/html2man || return 1
+  sed -i 's/^[\t\ ]*$//;/./,/^$/!d' man/man*/*.[58] || return 1
+  install -d "$pkgdir"/usr/share/man/man{5,8}
+  install -m644 man/man5/* "$pkgdir/usr/share/man/man5/" || return 1
+  install -m644 man/man8/* "$pkgdir/usr/share/man/man8/" || return 1
+  cd ..
 
   # install sample configs
-  install -D -m644 $srcdir/ntp.conf $pkgdir/etc/ntp.conf || return 1
-  install -D -m644 $srcdir/ntp-client.conf \
-  	$pkgdir/etc/conf.d/ntp-client.conf || return 1
+  install -D -m644 "$srcdir/ntp.conf" "$pkgdir/etc/ntp.conf" || return 1
+  install -D -m644 "$srcdir/ntp-client.conf" \
+  	"$pkgdir/etc/conf.d/ntp-client.conf" || return 1
 
   # create /var/lib/ntp
-  mkdir -p $pkgdir/var/lib/ntp || return 1
-  touch $pkgdir/var/lib/ntp/.placeholder || return 1
+  mkdir -p "$pkgdir/var/lib/ntp" || return 1
+  touch "$pkgdir/var/lib/ntp/.placeholder" || return 1
 
-  install -Dm644 $srcdir/$pkgname-$pkgver/COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT
+  install -Dm644 "$srcdir/$pkgname-$pkgver/COPYRIGHT" "$pkgdir/usr/share/licenses/$pkgname/COPYRIGHT"
 }
-md5sums=('8c19ff62ed4f7d64f8e2aa59cb11f364'
-         '3396ea6276147617e5cf79cefffee018'
-         '36c5711228cb0cf48966daa993e06f55'
-         '9dabdbc6b8cd020f2205515df7972c21'
-         '5bd3924f5720b97837969ec4ec4d5e09'
-         'c7f50632b69bd4f32cf052d0b1848463'
-         '46118a8ec2c4f5bbfafd730af21b7c03'
-         '140855352baeb89da0c6c1c475c18b57')

Added: ntp-4.2.4-html2man.patch
===================================================================
--- ntp-4.2.4-html2man.patch	                        (rev 0)
+++ ntp-4.2.4-html2man.patch	2009-12-13 12:00:20 UTC (rev 61216)
@@ -0,0 +1,183 @@
+--- ntp-4.2.4/scripts/html2man.in.html2man	2006-06-06 22:17:10.000000000 +0200
++++ ntp-4.2.4/scripts/html2man.in	2007-01-08 12:47:31.000000000 +0100
+@@ -23,10 +23,10 @@
+ 	     'ntpq' => ['ntpq', 8, 'ntpd(8), ntpdc(8)'],
+ 	     'ntpdate' => ['ntpdate', 8, 'ntpd(8)'],
+ 	     'ntpdc' => ['ntpdc', 8, 'ntpd(8)'],
+-	     'ntptime' => ['ntpdtime', 8, 'ntpd(8), ntpdate(8)'],
++	     'ntptime' => ['ntptime', 8, 'ntpd(8), ntpdate(8)'],
+ 	     'ntptrace' => ['ntptrace', 8, 'ntpd(8)'],
+ 	     'keygen' => ['ntp-keygen', 8, 'ntpd(8), ntp_auth(5)'],
+-	     'confopt' => ['ntp.conf', 5, 'ntpd(8)'],
++	     'confopt' => ['ntp.conf', 5, 'ntpd(8), ntp_auth(5), ntp_mon(5), ntp_acc(5), ntp_clock(5), ntp_misc(5)'],
+ 	     'authopt' => ['ntp_auth', 5, 'ntp.conf(5), ntpd(8)'],
+ 	     'monopt' => ['ntp_mon', 5, 'ntp.conf(5)'],
+ 	     'accopt' => ['ntp_acc', 5, 'ntp.conf(5)'],
+@@ -34,17 +34,8 @@
+ 	     'miscopt' => ['ntp_misc', 5, 'ntp.conf(5)']);
+ 
+ # Disclaimer to go in SEE ALSO section of the man page
+-$seealso_disclaimer = 'These man pages are automatically hacked from the main NTP ' .
+-    'documentation pages, which are maintained in HTML format.  These files are ' .
+-    'included in the NTP source distribution.  If you installed NTP from a binary ' .
+-    'package, or it came pre-installed on your system, chances are the documentation ' .
+-    'was also included in the usual place for your system.  The HTML files are more ' .
+-    'correct and complete than these man pages, which are provided for your reference ' .
+-    'only.';
+-
+-# Disclaimer to go right at the top
+-$top_disclaimer = 'This file was automatically generated from HTML source, and may be ' .
+-    'incorrect.  See the SEE ALSO section at the end of this file for more info';
++$seealso_disclaimer = "Primary source of documentation: /usr/share/doc/ntp-*\n\n" .
++    "This file was automatically generated from HTML source.\n";
+ 
+ mkdir $MANDIR, 0777;
+ mkdir "$MANDIR/man8", 0777;
+@@ -64,7 +55,8 @@
+     $fileinfo = $manfiles{$filename};
+ 
+     $p = HTML::TokeParser->new("$filename.html") || die "Can't open $filename.html: $!";
+-    open(MANOUT, ">$MANDIR/man$fileinfo->[1]/$fileinfo->[0].$fileinfo->[1]")
++    $fileout = "$MANDIR/man$fileinfo->[1]/$fileinfo->[0].$fileinfo->[1]";
++    open(MANOUT, ">$fileout")
+ 	|| die "Can't open: $!";
+ 
+     $p->get_tag("title");
+@@ -73,7 +65,6 @@
+ 
+     # Setup man header
+     print MANOUT ".TH " . $fileinfo->[0] . " " . $fileinfo->[1] .  "\n";
+-    print MANOUT ".UC 4\n";
+     print MANOUT ".SH NAME\n";
+     $pat = $fileinfo->[0];
+     if ($name =~ /$pat/) {
+@@ -81,10 +72,12 @@
+ 	# Add the manpage name, if not in the HTML title already
+ 	print MANOUT "$fileinfo->[0] - ";
+     }
+-    print MANOUT "$name\n\n";
+-
+-    print MANOUT "$top_disclaimer\n";
++    print MANOUT "$name\n.SH \\ \n\n";
+ 
++    @fontstack = ();
++    $deflevel = 0;
++    $pre = 0;
++    $ignore = 0;
+     # Now start scanning.  We basically print everything after translating some tags.
+     # $token->[0] has "T", "S", "E" for Text, Start, End
+     # $token->[1] has the tag name, or text (for "T" case)
+@@ -92,19 +85,37 @@
+     while (my $token = $p->get_token) {
+ 	if($token->[0] eq "T") {
+ 	    my $text = $token->[1];
+-	    if($tag) {
+-		$text =~ s/^[\n ]*//;
+-		$text =~ s/[\n ]*$/ /;
++	    if (!$pre) {
++		if($tag) {
++		    $text =~ s/^[\n\t ]*//;
++		}
++		$text =~ s/^[\n\t ][\n\t ]+$//;
++		$text =~ s/[\n\t ]+/ /g;
++		$text =~ s/&nbsp\;/ /g;
++		$text =~ s/&gt\;/>/g;
++		$text =~ s/&lt\;/</g;
++		$text =~ s/&quot\;/"/g;
++		$text =~ s/&amp\;/&/g;
++		$text =~ s/^\./\\[char46]/;
+ 	    }
+-	    $text =~ s/&nbsp\;/ /g;
+-	    $text =~ s/^\./\\./;
+ 	    print MANOUT "$text";
+ 	    $tag = 0;
+ 	}
+ 	if($token->[0] eq "S") {
+ 	    if($token->[1] eq "h4") {
+ 		my $text = uc($p->get_trimmed_text("/h4"));
+-		print MANOUT ".SH $text\n";
++		# ignore these two sections in ntpd.html
++		if ($filename eq "ntpd" &&
++		    ($text eq "FILES" || $text eq "CONFIGURATION OPTIONS")) {
++			$ignore = 1;
++			close(MANOUT);
++			open(MANOUT, ">/dev/null");
++		} elsif ($ignore) {
++		    $ignore = 0;
++		    close(MANOUT);
++		    open(MANOUT, ">>$fileout");
++		}
++		print MANOUT "\n\n.SH $text\n";
+ 	    }
+ 	    if($token->[1] eq "tt") {
+ 		push @fontstack, "tt";
+@@ -118,22 +129,30 @@
+ 		my $text = $p->get_trimmed_text("/address");
+ 		print MANOUT "\n.SH AUTHOR\n$text\n";
+ 	    }
+-	    if($token->[1] eq "dt") {
+-		$tmp = $deflevel-4;
+-		print MANOUT "\n.RS $tmp\n";
++	    if($token->[1] eq "dt" || $token->[1] eq "br" && $deflevel > 0) {
++		print MANOUT "\n.TP 8\n";
+ 		$tag = 1;
+ 	    }
+ 	    if($token->[1] eq "dd") {
+-		print MANOUT "\n.RS $deflevel\n";
++		print MANOUT "\n";
+ 		$tag = 1;
+ 	    }
+ 	    if($token->[1] eq "dl") {
+-		$deflevel+=4;
++		$deflevel+=1;
++		if ($deflevel > 0) {
++		    print MANOUT "\n.RS ", $deflevel > 1 ? 8 : 0;
++		}
++	    }
++	    if($token->[1] eq "p") {
++		print MANOUT "\n";
++	    }
++	    if($token->[1] eq "pre") {
++		print MANOUT "\n.nf";
++		$pre = 1;
+ 	    }
+ 	}
+ 	elsif($token->[0] eq "E") {
+-	    if($token->[1] eq "dd") {
+-		print MANOUT "\n.RE\n";
++	    if($token->[1] eq "h4") {
+ 		$tag = 1;
+ 	    }
+ 	    if($token->[1] eq "tt") {
+@@ -157,15 +176,27 @@
+ 		print MANOUT "$fontswitch";
+ 	    }
+ 	    if($token->[1] eq "dl") {
+-		$deflevel-=4;
++		if ($deflevel > 0) {
++		    print MANOUT "\n.RE";
++		}
++		print MANOUT "\n";
++		$deflevel-=1;
+ 	    }
+-	    if($token->[1] eq "dt") {
+-		print MANOUT "\n.RE";
++	    if($token->[1] eq "p") {
++		print MANOUT "\n";
+ 		$tag = 1;
+ 	    }
++	    if($token->[1] eq "pre") {
++		print MANOUT "\n.fi";
++		$pre = 0;
++	    }
+ 	}
+     }
+-    print MANOUT ".SH SEE ALSO\n\n";
++    if ($ignore) {
++	close(MANOUT);
++	open(MANOUT, ">>$fileout");
++    }
++    print MANOUT "\n.SH SEE ALSO\n\n";
+     print MANOUT "$fileinfo->[2]\n\n";
+     print MANOUT "$seealso_disclaimer\n";
+     close(MANOUT);




More information about the arch-commits mailing list