[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24069: [PATCHv4] Re: bug#24069: gcc man page is broken
From: |
Maxim Cournoyer |
Subject: |
bug#24069: [PATCHv4] Re: bug#24069: gcc man page is broken |
Date: |
Tue, 03 Oct 2017 19:44:31 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Maxim Cournoyer <address@hidden> writes:
> Patch v3 still doesn't fix the problem. There are now pod2man errors
> that prevent correctly generating the man pages:
[...]
> (pod2man --center="GNU" --release="gcc-5.4.0" --date=2016-06-03 --section=7
> gpl.pod > doc/gpl.7.T$$ && \
> mv -f doc/gpl.7.T$$ doc/gpl.7) || \
> (rm -f doc/gpl.7.T$$ && exit 1)
> pod2man: unable to format gpl.pod
> make: [Makefile:3061: doc/gpl.7] Error 1 (ignored)
> ../../gcc-5.4.0/gcc/cp/Make-lang.in:189: update target 'doc/g++.1' due to:
> doc/gcc.1
> cp doc/gcc.1 doc/g++.1
> rm gcc.pod
> make: Leaving directory '/tmp/guix-build-gcc-5.4.0.drv-0/build/gcc'
>
Apparently GCC < 6 required a patch to its texi2pod.pl script, which had
a syntax problem. The attached patch fixes this last problem. I could
successfully build GCC 5.4.0 by using a derived package for testing
(otherwise it would trigger a world rebuild which was never ending of my
lesser machine).
Here's the patch used to test it:
--8<---------------cut here---------------start------------->8---
gnu/packages/gcc.scm | 21 +++++++++++++++++++++
gnu/packages/patches/gcc-fix-texi2pod.patch | 19 +++++++++++++++++++
2 files changed, 40 insertions(+)
create mode 100644 gnu/packages/patches/gcc-fix-texi2pod.patch
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 7870d4513..320201b9c 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -395,6 +395,27 @@ Go. It also includes runtime support libraries for these
languages.")
;; `(("isl" ,isl)
;; ,@(package-inputs gcc-4.7)))))
+(define-public gcc-5-dev
+ (package (inherit gcc-5)
+ (name "gcc-dev")
+ (version "5.4.0-dev")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gcc/gcc-"
+ version "/gcc-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0"))
+ (patches (search-patches "gcc-arm-bug-71399.patch"
+ "gcc-strmov-store-file-names.patch"
+ "gcc-asan-powerpc-missing-include.patch"
+ "gcc-5.0-libvtv-runpath.patch"
+ "gcc-5-source-date-epoch-1.patch"
+ "gcc-5-source-date-epoch-2.patch"
+ "gcc-fix-texi2pod.patch"))))
+ (native-inputs `(("perl" ,perl) ;for manpages
+ ("texinfo" ,texinfo)))))
+
(define-public gcc-6
(package
(inherit gcc-5)
diff --git a/gnu/packages/patches/gcc-fix-texi2pod.patch
b/gnu/packages/patches/gcc-fix-texi2pod.patch
new file mode 100644
index 000000000..28bd56a38
--- /dev/null
+++ b/gnu/packages/patches/gcc-fix-texi2pod.patch
@@ -0,0 +1,19 @@
+This patch was taken from the official GCC git repository.
+X-Git-Url:
https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=contrib%2Ftexi2pod.pl;h=91bdbb5cea933d0381f2924ab94490fca31d5800;hp=eba1bcaa3cffa78b46030b219d04fe7d68367658;hb=67b56c905078d49d3e4028085e5cb1e1fb87a8aa;hpb=2f508a78310caab123e9794d3dcfe41f2769449b
+
+It fixes a defect in the contrib/texi2pod.pl script that prevented generating
+manual pages. It was corrected in the GCC 6.X series.
+
+diff --git a/contrib/texi2pod.pl b/contrib/texi2pod.pl
+index eba1bca..91bdbb5 100755
+--- a/contrib/texi2pod.pl
++++ b/contrib/texi2pod.pl
+@@ -316,7 +316,7 @@ while(<$inf>) {
+ @columns = ();
+ for $column (split (/address@hidden/, $1)) {
+ # @strong{...} is used a @headitem work-alike
+- $column =~ s/address@hidden(.*)}$/$1/;
++ $column =~ s/address@hidden(.*)\}$/$1/;
+ push @columns, $column;
+ }
+ $_ = "\n=item ".join (" : ", @columns)."\n";
--8<---------------cut here---------------end--------------->8---
I could then build gcc-dev and verify that the man pages gcc and cpp
were working correctly in an environment instantiated using:
--8<---------------cut here---------------start------------->8---
./pre-inst-env guix environment --pure --ad-hoc gcc-dev man-db
--8<---------------cut here---------------end--------------->8---
The complete patch is attached; it should be good for core-updates.
Thank you,
Maxim
0001-gnu-gcc-Fix-manual-pages.patch
Description: Text Data