Opened 6 years ago
Closed 6 years ago
#21706 closed enhancement (fixed)
Fix autotools/texinfo/ncurses problem, change autotools package from experimental to optional
Reported by:  Matthias Köppe  Owned by:  

Priority:  major  Milestone:  sage7.4 
Component:  packages: optional  Keywords:  
Cc:  Jeroen Demeyer, Erik Bray, Dima Pasechnik  Merged in:  
Authors:  Matthias Koeppe  Reviewers:  Dima Pasechnik 
Report Upstream:  N/A  Work issues:  
Branch:  b45c642 (Commits, GitHub, GitLab)  Commit:  b45c642549d2f00eb13e15c729eadfdedce381ee 
Dependencies:  Stopgaps: 
Description (last modified by )
The autotools package was changed from optional to experimental in #18563, which made this change for various packages.
The reason for changing autotools (missing xz dependency of libtool) has since been fixed in #21047.
The branch also fixes a build problem of autotools (texinfo) involving ncurses.
Attachments (1)
Change History (17)
comment:1 Changed 6 years ago by
Branch:  → u/mkoeppe/change_autotools_from_experimental_to_optional 

comment:2 Changed 6 years ago by
Commit:  → d7a8cd5024add284c948f60dd1c43f4564a2a995 

Milestone:  sage7.5 → sage7.4 
Status:  new → needs_review 
comment:3 Changed 6 years ago by
Authors:  → Matthias Koeppe 

comment:4 Changed 6 years ago by
Status:  needs_review → needs_work 

autotools does not build for me, it seems to be a linking problem to ncurses:
... gcc g O2 L/home/dima/Sage/sage/local/lib Wl,rpath,/home/dima/Sage/sage/local/lib o infokey infokey.o key.o ../lib/libtxi.a ../gnulib/lib/libgnu.a terminal.o: In function `terminal_get_screen_size': /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:481: undefined reference to `tgetnum' /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:493: undefined reference to `tgetnum' terminal.o: In function `terminal_goto_xy': /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:235: undefined reference to `tgoto' terminal.o: In function `terminal_delete_lines': /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:365: undefined reference to `tgoto' /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:365: undefined reference to `tputs' /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:369: undefined reference to `tputs' terminal.o: In function `terminal_insert_lines': /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:389: undefined reference to `tgoto' /home/dima/Sage/sage/local/var/tmp/sage/build/autotools20141105/src/texinfo4.13/info/terminal.c:389: undefined reference to `tputs' ...
comment:6 Changed 6 years ago by
the interesting part of the attached log is
checking build system type... (cached) x86_64unknownlinuxgnu checking for tgetent in lncurses... no checking for tgetent in lcurses... no checking for tgetent in ltermlib... no checking for tgetent in ltermcap... no checking for tgetent in lterminfo... no configure: WARNING: probably need a terminal library, one of: ncurses curses termlib termcap terminfo checking for library with termcap variables...
while ncurses
package is installed; my guess is that perhaps the appropriate L
is missing in LDFLAGS.
Anyhow, I don't see exactly what's happening in spkginstall
, and why is does not run ./confgure
, which would be an appropriate place to pass proper L
.
comment:7 Changed 6 years ago by
It does run configure of all the packages involved, in Makefile.build
.
Here (on Mac OS X) I see:
[autotools20141105] checking for tgetent in lncurses... no [autotools20141105] checking for tgetent in lcurses... no [autotools20141105] checking for tgetent in ltermlib... no [autotools20141105] checking for tgetent in ltermcap... yes [autotools20141105] checking for library with termcap variables...
So on this system, tgetent is not provided by the ncurses library (from Sage's ncurses spkg) either, but rather from libtermcap.
comment:8 Changed 6 years ago by
Our ncurses
package is built using configure option withtermlib
, which causes tgetent
and friends to be put into the separate library libtinfo
, not libncurses
.
The ancient texinfo 4.13 that is used by our autotools
package (with comment "texinfo 5.x breaks building old versions of autotools...") does not know about libtinfo
.
comment:9 Changed 6 years ago by
Commit:  d7a8cd5024add284c948f60dd1c43f4564a2a995 → b45c642549d2f00eb13e15c729eadfdedce381ee 

Branch pushed to git repo; I updated commit sha1. New commits:
b45c642  Patch the texinfo configure script to check libtinfo

comment:11 Changed 6 years ago by
Reviewers:  → Dima Pasechnik 

Status:  needs_review → positive_review 
OK, this works. Although I think we should update this package to newer autotools (not on this ticket though).
comment:12 Changed 6 years ago by
comment:13 Changed 6 years ago by
Description:  modified (diff) 

comment:14 Changed 6 years ago by
Summary:  Change autotools from experimental to optional → Fix autotools/texinfo/ncurses problem, change autotools package from experimental to optional 

comment:15 Changed 6 years ago by
Description:  modified (diff) 

comment:16 Changed 6 years ago by
Branch:  u/mkoeppe/change_autotools_from_experimental_to_optional → b45c642549d2f00eb13e15c729eadfdedce381ee 

Resolution:  → fixed 
Status:  positive_review → closed 
New commits:
Change autotools from experimental to optional