* bug#24069: gcc man page is broken @ 2016-07-25 20:23 Danny Milosavljevic 2017-03-30 22:22 ` Branson, Joshua A 0 siblings, 1 reply; 11+ messages in thread From: Danny Milosavljevic @ 2016-07-25 20:23 UTC (permalink / raw) To: 24069 $ man gcc timestamp Manual page gcc(1) line 1/2 (END) (press h for help or q to quit) $ ls -l /home/dannym/.guix-profile/share/man/man1/gcc.1.gz lrwxrwxrwx 106 root guixbuild 79 1. Jan 1970 /home/dannym/.guix-profile/share/man/man1/gcc.1.gz -> /gnu/store/1xsd8qd6i0zkzwxa53rp5palcfxb7xqb-gccgo-4.9.3/share/man/man1/gcc.1.gz Err.... what? That's also the case for the normal gcc package (for example 4.9.3). But $ info gcc works fine. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#24069: gcc man page is broken 2016-07-25 20:23 bug#24069: gcc man page is broken Danny Milosavljevic @ 2017-03-30 22:22 ` Branson, Joshua A 2017-09-30 20:36 ` Maxim Cournoyer 0 siblings, 1 reply; 11+ messages in thread From: Branson, Joshua A @ 2017-03-30 22:22 UTC (permalink / raw) To: 24069@debbugs.gnu.org I can confirm that this bug still exists. The man page is broken as described, but info gcc works just fine. Thanks, Joshua ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#24069: gcc man page is broken 2017-03-30 22:22 ` Branson, Joshua A @ 2017-09-30 20:36 ` Maxim Cournoyer 2017-10-01 13:39 ` bug#24069: [PATCH] " Maxim Cournoyer 0 siblings, 1 reply; 11+ messages in thread From: Maxim Cournoyer @ 2017-09-30 20:36 UTC (permalink / raw) To: Branson, Joshua A; +Cc: 24069@debbugs.gnu.org "Branson, Joshua A" <jbranso@purdue.edu> writes: > I can confirm that this bug still exists. The man page is broken as described, but info gcc works just fine. > > Thanks, > > Joshua The problem is likely caused by lack of the lack of perl as well as pod2man, as suggested by gcc's build log: --8<---------------cut here---------------start------------->8--- echo timestamp > gcc.pod perl ../../gcc-7.2.0/gcc/../contrib/texi2pod.pl ../../gcc-7.2.0/gcc/doc/invoke.texi > gcc.pod /gnu/store/kpxi8h3669afr9r1bgvaf9ij3y4wdyyn-bash-minimal-4.4.12/bin/bash: perl: command not found make[2]: [Makefile:3257: gcc.pod] Error 127 (ignored) echo timestamp > doc/gcc.1 (pod2man --center="GNU" --release="gcc-7.2.0" --date=2017-08-14 --section=1 gcc.pod > doc/gcc.1.T$$ && \ mv -f doc/gcc.1.T$$ doc/gcc.1) || \ (rm -f doc/gcc.1.T$$ && exit 1) /gnu/store/kpxi8h3669afr9r1bgvaf9ij3y4wdyyn-bash-minimal-4.4.12/bin/bash: pod2man: command not found make[2]: [Makefile:3235: doc/gcc.1] Error 1 (ignored) --8<---------------cut here---------------end--------------->8--- I'm currently rebuilding with those two inputs added, will send a patch if it fixes the problem. Maxim ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#24069: [PATCH] Re: bug#24069: gcc man page is broken 2017-09-30 20:36 ` Maxim Cournoyer @ 2017-10-01 13:39 ` Maxim Cournoyer 2017-10-01 15:54 ` bug#24069: [PATCHv2] " Maxim Cournoyer 0 siblings, 1 reply; 11+ messages in thread From: Maxim Cournoyer @ 2017-10-01 13:39 UTC (permalink / raw) To: Branson, Joshua A; +Cc: 24069 [-- Attachment #1: Type: text/plain, Size: 1251 bytes --] Hello, Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > "Branson, Joshua A" <jbranso@purdue.edu> writes: > >> I can confirm that this bug still exists. The man page is broken as described, but info gcc works just fine. >> >> Thanks, >> >> Joshua > > The problem is likely caused by lack of the lack of perl as well as pod2man, as > suggested by gcc's build log: > > echo timestamp > gcc.pod > perl ../../gcc-7.2.0/gcc/../contrib/texi2pod.pl ../../gcc-7.2.0/gcc/doc/invoke.texi > gcc.pod > /gnu/store/kpxi8h3669afr9r1bgvaf9ij3y4wdyyn-bash-minimal-4.4.12/bin/bash: perl: command not found > make[2]: [Makefile:3257: gcc.pod] Error 127 (ignored) > echo timestamp > doc/gcc.1 > (pod2man --center="GNU" --release="gcc-7.2.0" --date=2017-08-14 --section=1 gcc.pod > doc/gcc.1.T$$ && \ > mv -f doc/gcc.1.T$$ doc/gcc.1) || \ > (rm -f doc/gcc.1.T$$ && exit 1) > /gnu/store/kpxi8h3669afr9r1bgvaf9ij3y4wdyyn-bash-minimal-4.4.12/bin/bash: pod2man: command not found > make[2]: [Makefile:3235: doc/gcc.1] Error 1 (ignored) > > I'm currently rebuilding with those two inputs added, will send a patch > if it fixes the problem. I believe the attached patch *should* fix it (simply adds perl as a native input; pod2man apparently comes with perl itself): [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-gcc-Fix-manual-pages.patch --] [-- Type: text/x-patch, Size: 1832 bytes --] From 17105632d2142c16632c5f05490a7da9a4439cc4 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@gmail.com> Date: Sun, 1 Oct 2017 09:27:31 -0400 Subject: [PATCH] gnu: gcc: Fix manual pages. Fixes bug #24069. * gnu/packages/gcc.scm (gcc-4.7)[native-inputs]: Add perl. (gcc-4.9)[native-inputs]: Likewise. --- gnu/packages/gcc.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7870d4513..f56c2a0b9 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -42,6 +42,7 @@ #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (srfi srfi-1) + #:use-module (ice-9 match) #:use-module (ice-9 regex)) (define %gcc-infrastructure @@ -155,7 +156,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC ;; GCC < 5 is one of the few packages that doesn't ship .info files. ;; Newer texinfos fail to build the manual, so we use an older one. - (native-inputs `(("texinfo" ,texinfo-5))) + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo-5))) (arguments `(#:out-of-source? #t @@ -370,7 +372,9 @@ Go. It also includes runtime support libraries for these languages.") "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-arm-bug-71399.patch" "gcc-libvtv-runpath.patch")))) - (native-inputs `(("texinfo" ,texinfo))))) + ;; Override inherited texinfo-5 with latest version. + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo))))) (define-public gcc-5 ;; Note: GCC >= 5 ships with .info files but 'make install' fails to install -- 2.14.1 [-- Attachment #3: Type: text/plain, Size: 864 bytes --] I haven't been able to test it though; when attempting to rebuild gcc, I get a stack overflow before the build process even starts (seems like a guix problem -- I'll try to git pull & rebuild): --8<---------------cut here---------------start------------->8--- ./pre-inst-env guix build -K gcc allocate_stack failed: Cannot allocate memory Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler. allocate_stack failed: Cannot allocate memory Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler. allocate_stack failed: Cannot allocate memory Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler. allocate_stack failed: Cannot allocate memory Warning: Unwind-only `stack-overflow' exception; skipping pre-unwind handler. --8<---------------cut here---------------end--------------->8--- Maxim ^ permalink raw reply related [flat|nested] 11+ messages in thread
* bug#24069: [PATCHv2] Re: bug#24069: gcc man page is broken 2017-10-01 13:39 ` bug#24069: [PATCH] " Maxim Cournoyer @ 2017-10-01 15:54 ` Maxim Cournoyer 2017-10-02 9:24 ` Efraim Flashner 0 siblings, 1 reply; 11+ messages in thread From: Maxim Cournoyer @ 2017-10-01 15:54 UTC (permalink / raw) To: 24069 [-- Attachment #1: Type: text/plain, Size: 91 bytes --] Version 2. Removes the unnecessary (ice-9 match) use clause I added while experimenting. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-gcc-Fix-manual-pages.patch --] [-- Type: text/x-patch, Size: 1618 bytes --] From a044901c0fc51571b8ed6809080029b8701b09e4 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@gmail.com> Date: Sun, 1 Oct 2017 09:27:31 -0400 Subject: [PATCH] gnu: gcc: Fix manual pages. Fixes bug #24069. * gnu/packages/gcc.scm (gcc-4.7)[native-inputs]: Add perl. (gcc-4.9)[native-inputs]: Likewise. --- gnu/packages/gcc.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7870d4513..7089b420f 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -155,7 +155,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC ;; GCC < 5 is one of the few packages that doesn't ship .info files. ;; Newer texinfos fail to build the manual, so we use an older one. - (native-inputs `(("texinfo" ,texinfo-5))) + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo-5))) (arguments `(#:out-of-source? #t @@ -370,7 +371,9 @@ Go. It also includes runtime support libraries for these languages.") "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-arm-bug-71399.patch" "gcc-libvtv-runpath.patch")))) - (native-inputs `(("texinfo" ,texinfo))))) + ;; Override inherited texinfo-5 with latest version. + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo))))) (define-public gcc-5 ;; Note: GCC >= 5 ships with .info files but 'make install' fails to install -- 2.14.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* bug#24069: [PATCHv2] Re: bug#24069: gcc man page is broken 2017-10-01 15:54 ` bug#24069: [PATCHv2] " Maxim Cournoyer @ 2017-10-02 9:24 ` Efraim Flashner 2017-10-02 14:53 ` Ludovic Courtès 0 siblings, 1 reply; 11+ messages in thread From: Efraim Flashner @ 2017-10-02 9:24 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 24069 [-- Attachment #1: Type: text/plain, Size: 2827 bytes --] On Sun, Oct 01, 2017 at 11:54:56AM -0400, Maxim Cournoyer wrote: > Version 2. > > Removes the unnecessary (ice-9 match) use clause I added while > experimenting. > > From a044901c0fc51571b8ed6809080029b8701b09e4 Mon Sep 17 00:00:00 2001 > From: Maxim Cournoyer <maxim.cournoyer@gmail.com> > Date: Sun, 1 Oct 2017 09:27:31 -0400 > Subject: [PATCH] gnu: gcc: Fix manual pages. > > Fixes bug #24069. > > * gnu/packages/gcc.scm (gcc-4.7)[native-inputs]: Add perl. > (gcc-4.9)[native-inputs]: Likewise. > --- > gnu/packages/gcc.scm | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm > index 7870d4513..7089b420f 100644 > --- a/gnu/packages/gcc.scm > +++ b/gnu/packages/gcc.scm > @@ -155,7 +155,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC > > ;; GCC < 5 is one of the few packages that doesn't ship .info files. > ;; Newer texinfos fail to build the manual, so we use an older one. > - (native-inputs `(("texinfo" ,texinfo-5))) > + (native-inputs `(("perl" ,perl) ;for manpages > + ("texinfo" ,texinfo-5))) > > (arguments > `(#:out-of-source? #t > @@ -370,7 +371,9 @@ Go. It also includes runtime support libraries for these languages.") > "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) > (patches (search-patches "gcc-arm-bug-71399.patch" > "gcc-libvtv-runpath.patch")))) > - (native-inputs `(("texinfo" ,texinfo))))) > + ;; Override inherited texinfo-5 with latest version. > + (native-inputs `(("perl" ,perl) ;for manpages > + ("texinfo" ,texinfo))))) > > (define-public gcc-5 > ;; Note: GCC >= 5 ships with .info files but 'make install' fails to install > -- > 2.14.1 > I believe this would cause gcc-5 to be rebuilt, which would cause a world rebuild, so for the moment we also need a native-inputs entry for gcc-5 making sure that nothing changes, ie: that we're only using texinfo there, preferably with a note that it should be changed in the future. Also, you should take a look at gnu/packages/commencement and make sure that we're not adding perl as a native-input for gcc-boot0 or for libstdc++, wherever that happens to live (I don't remember off hand). I assume it is OK for us to build the man pages for gcc-final (if it happens) since this is the gcc used for actually building packages, and I believe the one pulled in for gcc-toolchain. -- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#24069: [PATCHv2] Re: bug#24069: gcc man page is broken 2017-10-02 9:24 ` Efraim Flashner @ 2017-10-02 14:53 ` Ludovic Courtès 2017-10-02 20:15 ` Maxim Cournoyer 0 siblings, 1 reply; 11+ messages in thread From: Ludovic Courtès @ 2017-10-02 14:53 UTC (permalink / raw) To: Efraim Flashner; +Cc: 24069, Maxim Cournoyer Efraim Flashner <efraim@flashner.co.il> skribis: > I believe this would cause gcc-5 to be rebuilt, which would cause a > world rebuild, so for the moment we also need a native-inputs entry for > gcc-5 making sure that nothing changes, ie: that we're only using > texinfo there, preferably with a note that it should be changed in the > future. Also, you should take a look at gnu/packages/commencement and > make sure that we're not adding perl as a native-input for gcc-boot0 or > for libstdc++, wherever that happens to live (I don't remember off > hand). I think this should go to ‘core-updates’. > I assume it is OK for us to build the man pages for gcc-final (if it > happens) since this is the gcc used for actually building packages, and > I believe the one pulled in for gcc-toolchain. More precisely, building man pages for ‘gcc-boot0’ is pointless and possibly adds Perl on the graph for no good reason. So if we can arrange to just have man pages in ‘gcc-final’, we’re good. Efraim, could you check whether that works for ‘core-updates’? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#24069: [PATCHv2] Re: bug#24069: gcc man page is broken 2017-10-02 14:53 ` Ludovic Courtès @ 2017-10-02 20:15 ` Maxim Cournoyer 2017-10-03 2:28 ` bug#24069: [PATCHv3] " Maxim Cournoyer 0 siblings, 1 reply; 11+ messages in thread From: Maxim Cournoyer @ 2017-10-02 20:15 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 24069 [-- Attachment #1: Type: text/plain, Size: 1720 bytes --] Hello, ludo@gnu.org (Ludovic Courtès) writes: > Efraim Flashner <efraim@flashner.co.il> skribis: > >> I believe this would cause gcc-5 to be rebuilt, which would cause a >> world rebuild, so for the moment we also need a native-inputs entry for >> gcc-5 making sure that nothing changes, ie: that we're only using >> texinfo there, preferably with a note that it should be changed in the >> future. Also, you should take a look at gnu/packages/commencement and >> make sure that we're not adding perl as a native-input for gcc-boot0 or >> for libstdc++, wherever that happens to live (I don't remember off >> hand). > > I think this should go to ‘core-updates’. > >> I assume it is OK for us to build the man pages for gcc-final (if it >> happens) since this is the gcc used for actually building packages, and >> I believe the one pulled in for gcc-toolchain. > > More precisely, building man pages for ‘gcc-boot0’ is pointless and > possibly adds Perl on the graph for no good reason. So if we can > arrange to just have man pages in ‘gcc-final’, we’re good. > > Efraim, could you check whether that works for ‘core-updates’? > > Thanks, > Ludo’. I believe this is what is accomplished by the attached patch v3. Thanks to Efraim for the points raised. It turned out that the stack overflow I was getting attempting to test the previous version was caused by a circular dependency that was introduced by gcc-boot0 inheriting perl. This is now fixed. I spent the last couple hours rebuilding gcc but it failed due to lack of space on my side... Retrying now but it'll take a few hours before I can confirm that it works as intended. Thank you both! [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-gcc-Fix-manual-pages.patch --] [-- Type: text/x-patch, Size: 2971 bytes --] From fac707c34dcc04fcac7254a724cd4c45ae384400 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@gmail.com> Date: Sun, 1 Oct 2017 09:27:31 -0400 Subject: [PATCH] gnu: gcc: Fix manual pages. Fixes bug #24069. * gnu/packages/gcc.scm (gcc-4.7)[native-inputs]: Add perl. (gcc-4.9)[native-inputs]: Likewise. * gnu/packages/commencement.scm (gcc-boot0)[native-inputs]: Filter out perl. (gcc-final)[native-inputs]: Add perl-boot0. --- gnu/packages/commencement.scm | 9 ++++++--- gnu/packages/gcc.scm | 7 +++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index ec7677814..194feda0a 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -286,9 +286,11 @@ ("libc-native" ,@(assoc-ref %boot0-inputs "libc")) ,@(alist-delete "libc" %boot0-inputs))) - ;; No need for Texinfo at this stage. - (native-inputs (alist-delete "texinfo" - (package-native-inputs gcc)))))) + ;; No need for the documentation native-inputs at this stage. + (native-inputs + (alist-delete "texinfo" + (alist-delete "perl" + (package-native-inputs gcc))))))) (define perl-boot0 (let ((perl (package @@ -779,6 +781,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ;; scripts such as 'mkheaders' and 'fixinc.sh' (XXX: who cares about these ;; scripts?). (native-inputs `(("texinfo" ,texinfo-boot0) + ("perl" ,perl-boot0) ;for manpages ("static-bash" ,static-bash-for-glibc) ,@(package-native-inputs gcc-boot0))) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7870d4513..7089b420f 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -155,7 +155,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC ;; GCC < 5 is one of the few packages that doesn't ship .info files. ;; Newer texinfos fail to build the manual, so we use an older one. - (native-inputs `(("texinfo" ,texinfo-5))) + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo-5))) (arguments `(#:out-of-source? #t @@ -370,7 +371,9 @@ Go. It also includes runtime support libraries for these languages.") "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-arm-bug-71399.patch" "gcc-libvtv-runpath.patch")))) - (native-inputs `(("texinfo" ,texinfo))))) + ;; Override inherited texinfo-5 with latest version. + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo))))) (define-public gcc-5 ;; Note: GCC >= 5 ships with .info files but 'make install' fails to install -- 2.14.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* bug#24069: [PATCHv3] Re: bug#24069: gcc man page is broken 2017-10-02 20:15 ` Maxim Cournoyer @ 2017-10-03 2:28 ` Maxim Cournoyer 2017-10-03 23:44 ` bug#24069: [PATCHv4] " Maxim Cournoyer 0 siblings, 1 reply; 11+ messages in thread From: Maxim Cournoyer @ 2017-10-03 2:28 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 24069 Patch v3 still doesn't fix the problem. There are now pod2man errors that prevent correctly generating the man pages: --8<---------------cut here---------------start------------->8--- Makefile:3076: update target 'gcc.pod' due to: ../../gcc-5.4.0/gcc/doc/invoke.texi ../../gcc-5.4.0/gcc/doc/cppenv.texi ../../gcc-5.4.0/gcc/doc/cppopts.texi gcc-vers.texi echo timestamp > gcc.pod perl ../../gcc-5.4.0/gcc/../contrib/texi2pod.pl ../../gcc-5.4.0/gcc/doc/invoke.texi > gcc.pod Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/^\@strong{ <-- HERE (.*)}$/ at ../../gcc-5.4.0/gcc/../contrib/texi2pod.pl line 319. make: [Makefile:3077: gcc.pod] Error 255 (ignored) Makefile:3054: update target 'doc/gcc.1' due to: gcc.pod echo timestamp > doc/gcc.1 (pod2man --center="GNU" --release="gcc-5.4.0" --date=2016-06-03 --section=1 gcc.pod > doc/gcc.1.T$$ && \ mv -f doc/gcc.1.T$$ doc/gcc.1) || \ (rm -f doc/gcc.1.T$$ && exit 1) pod2man: unable to format gcc.pod make: [Makefile:3055: doc/gcc.1] Error 1 (ignored) Makefile:3085: update target 'gpl.pod' due to: ../../gcc-5.4.0/gcc/doc/include/gpl_v3.texi echo timestamp > gpl.pod perl ../../gcc-5.4.0/gcc/../contrib/texi2pod.pl ../../gcc-5.4.0/gcc/doc/include/gpl_v3.texi > gpl.pod Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/^\@strong{ <-- HERE (.*)}$/ at ../../gcc-5.4.0/gcc/../contrib/texi2pod.pl line 319. make: [Makefile:3086: gpl.pod] Error 255 (ignored) Makefile:3060: update target 'doc/gpl.7' due to: gpl.pod echo timestamp > doc/gpl.7 (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' --8<---------------cut here---------------end--------------->8--- I could trigger this output by cd'ing into the failed derivation and running: --8<---------------cut here---------------start------------->8--- cd /tmp/guix-build-gcc-5.4.0.drv-0 # running guix environment from stable guix pull, so need to add perl manually guix environment --no-grafts gcc@5.4.0 --ad-hoc perl make configure-gcc && make --trace -C gcc doc --8<---------------cut here---------------end--------------->8--- Continuing investigation... ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#24069: [PATCHv4] Re: bug#24069: gcc man page is broken 2017-10-03 2:28 ` bug#24069: [PATCHv3] " Maxim Cournoyer @ 2017-10-03 23:44 ` Maxim Cournoyer 2017-10-31 15:16 ` Ludovic Courtès 0 siblings, 1 reply; 11+ messages in thread From: Maxim Cournoyer @ 2017-10-03 23:44 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 24069 [-- Attachment #1: Type: text/plain, Size: 4329 bytes --] Maxim Cournoyer <maxim.cournoyer@gmail.com> 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 (/\s*\@tab\s*/, $1)) { + # @strong{...} is used a @headitem work-alike +- $column =~ s/^\@strong{(.*)}$/$1/; ++ $column =~ s/^\@strong\{(.*)\}$/$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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-gcc-Fix-manual-pages.patch --] [-- Type: text/x-patch, Size: 7045 bytes --] From 7229d7887289316031847893f8ad020ff07bdcdd Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@gmail.com> Date: Sun, 1 Oct 2017 09:27:31 -0400 Subject: [PATCH] gnu: gcc: Fix manual pages. Fixes bug #24069. perl is made a native input to all of the gcc-* packages except for gcc-boot0; perl-boot0 is made a native input to gcc-final. * gnu/packages/patches/gcc-fix-texi2pod.patch: Add patch file to fix texi2pod. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/gcc.scm (gcc-4.7, gcc-4.8, gcc-4.9, gcc-5): Use it. (gcc-4.7)[native-inputs]: Add perl. (gcc-4.9)[native-inputs]: Likewise. * gnu/packages/commencement.scm (gcc-boot0)[native-inputs]: Filter out perl. (gcc-final)[native-inputs]: Add perl-boot0. --- gnu/local.mk | 1 + gnu/packages/commencement.scm | 9 ++++++--- gnu/packages/gcc.scm | 19 +++++++++++++------ gnu/packages/patches/gcc-fix-texi2pod.patch | 19 +++++++++++++++++++ 4 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 gnu/packages/patches/gcc-fix-texi2pod.patch diff --git a/gnu/local.mk b/gnu/local.mk index edd6d8237..06b059341 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -626,6 +626,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-arm-link-spec-fix.patch \ %D%/packages/patches/gcc-asan-powerpc-missing-include.patch \ %D%/packages/patches/gcc-cross-environment-variables.patch \ + %D%/packages/patches/gcc-fix-texi2pod.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ %D%/packages/patches/gcc-strmov-store-file-names.patch \ %D%/packages/patches/gcc-4.6-gnu-inline.patch \ diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index ec7677814..194feda0a 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -286,9 +286,11 @@ ("libc-native" ,@(assoc-ref %boot0-inputs "libc")) ,@(alist-delete "libc" %boot0-inputs))) - ;; No need for Texinfo at this stage. - (native-inputs (alist-delete "texinfo" - (package-native-inputs gcc)))))) + ;; No need for the documentation native-inputs at this stage. + (native-inputs + (alist-delete "texinfo" + (alist-delete "perl" + (package-native-inputs gcc))))))) (define perl-boot0 (let ((perl (package @@ -779,6 +781,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ;; scripts such as 'mkheaders' and 'fixinc.sh' (XXX: who cares about these ;; scripts?). (native-inputs `(("texinfo" ,texinfo-boot0) + ("perl" ,perl-boot0) ;for manpages ("static-bash" ,static-bash-for-glibc) ,@(package-native-inputs gcc-boot0))) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7870d4513..1079a3e14 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -138,7 +138,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC version "/gcc-" version ".tar.bz2")) (sha256 (base32 - "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj")))) + "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj")) + (patches (search-patches "gcc-fix-texi2pod.patch")))) (build-system gnu-build-system) ;; Separate out the run-time support libraries because all the @@ -155,7 +156,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC ;; GCC < 5 is one of the few packages that doesn't ship .info files. ;; Newer texinfos fail to build the manual, so we use an older one. - (native-inputs `(("texinfo" ,texinfo-5))) + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo-5))) (arguments `(#:out-of-source? #t @@ -351,7 +353,8 @@ Go. It also includes runtime support libraries for these languages.") (sha256 (base32 "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2")) - (patches (search-patches "gcc-arm-link-spec-fix.patch")))) + (patches (search-patches "gcc-arm-link-spec-fix.patch" + "gcc-fix-texi2pod.patch")))) (supported-systems %supported-systems) (inputs `(("isl" ,isl-0.11) @@ -369,8 +372,11 @@ Go. It also includes runtime support libraries for these languages.") (base32 "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-arm-bug-71399.patch" - "gcc-libvtv-runpath.patch")))) - (native-inputs `(("texinfo" ,texinfo))))) + "gcc-libvtv-runpath.patch" + "gcc-fix-texi2pod.patch")))) + ;; Override inherited texinfo-5 with latest version. + (native-inputs `(("perl" ,perl) ;for manpages + ("texinfo" ,texinfo))))) (define-public gcc-5 ;; Note: GCC >= 5 ships with .info files but 'make install' fails to install @@ -389,7 +395,8 @@ Go. It also includes runtime support libraries for these languages.") "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-5-source-date-epoch-2.patch" + "gcc-fix-texi2pod.patch")))))) ;; TODO: gcc-5 doesn't need cloog. ;;(inputs ;; `(("isl" ,isl) 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 (/\s*\@tab\s*/, $1)) { + # @strong{...} is used a @headitem work-alike +- $column =~ s/^\@strong{(.*)}$/$1/; ++ $column =~ s/^\@strong\{(.*)\}$/$1/; + push @columns, $column; + } + $_ = "\n=item ".join (" : ", @columns)."\n"; -- 2.14.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* bug#24069: [PATCHv4] Re: bug#24069: gcc man page is broken 2017-10-03 23:44 ` bug#24069: [PATCHv4] " Maxim Cournoyer @ 2017-10-31 15:16 ` Ludovic Courtès 0 siblings, 0 replies; 11+ messages in thread From: Ludovic Courtès @ 2017-10-31 15:16 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 24069-done Hi! Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: >From 7229d7887289316031847893f8ad020ff07bdcdd Mon Sep 17 00:00:00 2001 > From: Maxim Cournoyer <maxim.cournoyer@gmail.com> > Date: Sun, 1 Oct 2017 09:27:31 -0400 > Subject: [PATCH] gnu: gcc: Fix manual pages. > > Fixes bug #24069. perl is made a native input to all of the gcc-* packages > except for gcc-boot0; perl-boot0 is made a native input to gcc-final. > > * gnu/packages/patches/gcc-fix-texi2pod.patch: Add patch file to fix texi2pod. > * gnu/local.mk (dist_patch_DATA): Register it. > * gnu/packages/gcc.scm (gcc-4.7, gcc-4.8, gcc-4.9, gcc-5): Use it. > (gcc-4.7)[native-inputs]: Add perl. > (gcc-4.9)[native-inputs]: Likewise. > * gnu/packages/commencement.scm (gcc-boot0)[native-inputs]: Filter out perl. > (gcc-final)[native-inputs]: Add perl-boot0. Efraim pushed the patch as 19d27131968355a1da962e52163df51e0e03aba1 so I think we’re all set. Thank you! The definition of ‘gcc-final’ in (gnu packages commencement) has an explicit #:allowed-references white list, so we can be sure it won’t retain a reference to Perl. Ludo’. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2017-10-31 15:17 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-07-25 20:23 bug#24069: gcc man page is broken Danny Milosavljevic 2017-03-30 22:22 ` Branson, Joshua A 2017-09-30 20:36 ` Maxim Cournoyer 2017-10-01 13:39 ` bug#24069: [PATCH] " Maxim Cournoyer 2017-10-01 15:54 ` bug#24069: [PATCHv2] " Maxim Cournoyer 2017-10-02 9:24 ` Efraim Flashner 2017-10-02 14:53 ` Ludovic Courtès 2017-10-02 20:15 ` Maxim Cournoyer 2017-10-03 2:28 ` bug#24069: [PATCHv3] " Maxim Cournoyer 2017-10-03 23:44 ` bug#24069: [PATCHv4] " Maxim Cournoyer 2017-10-31 15:16 ` Ludovic Courtès
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).