From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id CD0C41FA12 for ; Mon, 25 Jan 2021 04:53:46 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/3] build: check with lexgrog(1) if available Date: Sun, 24 Jan 2021 19:53:45 -0900 Message-Id: <20210125045346.16264-3-e@80x24.org> In-Reply-To: <20210125045346.16264-1-e@80x24.org> References: <20210125045346.16264-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This will make life easier for Debian package maintainers running lintian. cf. commit 1350f5ab09f72c75ac2cd6c88f6a2b9e198fef55 ("public-inbox-v[12]-format.pod: make lexgrog happy") --- .gitignore | 1 + Documentation/include.mk | 3 +++ Makefile.PL | 8 +++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7f4142ba..f7e4c595 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ *.gz .*.cols .*.check +.*.lexgrog /NEWS.html /NEWS.atom /NEWS diff --git a/Documentation/include.mk b/Documentation/include.mk index df6c17e0..79bf460d 100644 --- a/Documentation/include.mk +++ b/Documentation/include.mk @@ -6,6 +6,7 @@ RSYNC = rsync RSYNC_DEST = public-inbox.org:/srv/public-inbox/ AWK = awk MAN = man +LEXGROG = lexgrog # this is "xml" on FreeBSD and maybe some other distros: XMLSTARLET = xmlstarlet @@ -56,6 +57,8 @@ check_man = $(AWK) '{gsub(/\b./,"")}length>80{print;err=1}END{exit(err)}'\ check-man :: $(check_80) +check-lexgrog :: $(check_lexgrog) + all :: $(docs) txt2pre = $(PERL) -I lib ./Documentation/txt2pre >$@ diff --git a/Makefile.PL b/Makefile.PL index 613a72ae..c57491eb 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -65,8 +65,12 @@ for my $i (@sections) { $t->{".$m.cols : $m.$i"} = [ "\@echo CHECK80 $m.$i;". "COLUMNS=80 \$(MAN) ./$m.$i | \$(check_man)" ]; + $t->{".$m.lexgrog: $m.$i"} = [ + "\@echo LEXGROG $m.$i;" . + "\$(LEXGROG) ./$m.$i >\$\@+ && mv \$\@+ \$@" ]; } push @{$v->{check_80}}, map { ".$_.cols" } @$ary; + push @{$v->{check_lexgrog}}, map { ".$_.lexgrog" } @$ary; my $manuals = $v->{"man$i"} = [ map { "$_.$i" } @$ary ]; push @{$v->{manuals}}, @$manuals; push @{$v->{mantxt}}, map { "Documentation/$_.txt" } @$ary; @@ -121,6 +125,8 @@ my %man3 = map {; # semi-colon tells Perl this is a BLOCK (and not EXPR) "lib/PublicInbox/$_" => "blib/man3/PublicInbox::$mod.\$(MAN3EXT)" } qw(Git.pm Import.pm WWW.pod SaPlugin/ListMirror.pod); my $warn_no_pod = @no_pod ? "\n\t\@echo W: missing .pod: @no_pod\n" : ''; +chomp(my $lexgrog = `which lexgrog 2>/dev/null`); +my $check_lexgrog = $lexgrog ? 'check-lexgrog' : ''; WriteMakefile( NAME => 'PublicInbox', # n.b. camel-case is not our choice @@ -184,7 +190,7 @@ $VARS -include Documentation/include.mk $TGTS -check-man ::$warn_no_pod +check-man :: $check_lexgrog$warn_no_pod # syntax checks are currently GNU make only: %.syntax :: %