Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix autotools/texinfo/ncurses problem, change autotools package from experimental to optional #21706

Closed
mkoeppe opened this issue Oct 14, 2016 · 19 comments

Comments

@mkoeppe
Copy link
Member

mkoeppe commented Oct 14, 2016

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.

CC: @jdemeyer @embray @dimpase

Component: packages: optional

Author: Matthias Koeppe

Branch/Commit: b45c642

Reviewer: Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/21706

@mkoeppe mkoeppe added this to the sage-7.5 milestone Oct 14, 2016
@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 15, 2016

@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 15, 2016

New commits:

d7a8cd5Change autotools from experimental to optional

@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 15, 2016

Commit: d7a8cd5

@mkoeppe mkoeppe modified the milestones: sage-7.5, sage-7.4 Oct 15, 2016
@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 15, 2016

Author: Matthias Koeppe

@dimpase
Copy link
Member

dimpase commented Oct 15, 2016

comment:4

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/autotools-20141105/src/texinfo-4.13/info/terminal.c:481: undefined reference to `tgetnum'
/home/dima/Sage/sage/local/var/tmp/sage/build/autotools-20141105/src/texinfo-4.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/autotools-20141105/src/texinfo-4.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/autotools-20141105/src/texinfo-4.13/info/terminal.c:365: undefined reference to `tgoto'
/home/dima/Sage/sage/local/var/tmp/sage/build/autotools-20141105/src/texinfo-4.13/info/terminal.c:365: undefined reference to `tputs'
/home/dima/Sage/sage/local/var/tmp/sage/build/autotools-20141105/src/texinfo-4.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/autotools-20141105/src/texinfo-4.13/info/terminal.c:389: undefined reference to `tgoto'
/home/dima/Sage/sage/local/var/tmp/sage/build/autotools-20141105/src/texinfo-4.13/info/terminal.c:389: undefined reference to `tputs'
...

@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 17, 2016

comment:5

I think we'd need a bit more info to debug this...

@dimpase
Copy link
Member

dimpase commented Oct 17, 2016

log with sage 7.4.rc2

@dimpase
Copy link
Member

dimpase commented Oct 17, 2016

comment:6

Attachment: autotools-20141105.log

the interesting part of the attached log is

checking build system type... (cached) x86_64-unknown-linux-gnu
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 spkg-install, and why is does not run ./confgure, which would be an appropriate place to pass proper -L.

@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 18, 2016

comment:7

It does run configure of all the packages involved, in Makefile.build.

Here (on Mac OS X) I see:

[autotools-20141105] checking for tgetent in -lncurses... no
[autotools-20141105] checking for tgetent in -lcurses... no
[autotools-20141105] checking for tgetent in -ltermlib... no
[autotools-20141105] checking for tgetent in -ltermcap... yes
[autotools-20141105] 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.

@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 18, 2016

comment:8

Our ncurses package is built using configure option --with-termlib, 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.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 18, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

b45c642Patch the texinfo configure script to check libtinfo

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 18, 2016

Changed commit from d7a8cd5 to b45c642

@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 18, 2016

comment:10

Please try with this patch.

@dimpase
Copy link
Member

dimpase commented Oct 18, 2016

Reviewer: Dima Pasechnik

@dimpase
Copy link
Member

dimpase commented Oct 18, 2016

comment:11

OK, this works. Although I think we should update this package to newer autotools (not on this ticket though).

@mkoeppe
Copy link
Member Author

mkoeppe commented Oct 18, 2016

comment:12

Thanks!

Could you also take a look at:

Updating autotools is #21196.

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe changed the title Change autotools from experimental to optional Fix autotools/texinfo/ncurses problem, change autotools package from experimental to optional Oct 18, 2016
@mkoeppe

This comment has been minimized.

@vbraun
Copy link
Member

vbraun commented Oct 29, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants