Opened 9 years ago

Closed 9 years ago

#1044 closed task (fixed)

Ncurses 6.0

Reported by: William Harrington Owned by: clfs-commits@…
Priority: major Milestone: CLFS Standard 3.1.0
Component: BOOK Version: CLFS Standard GIT
Keywords: Cc: berzerkula@…, jonathan@…, chris@…

Description (last modified by William Harrington)

Upgrade from 5.9.

Announcement: http://www.gnu.org/software/ncurses/

Download: https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.0.tar.gz

I haven't checked to see if we still need the bash patch for temp system.

For temp system, be sure to not use --enable-widec. Don't need those in temp system anyway, otherwise we need to add the links to non-wide ncurses for temp vim.

Include --without-ada and --enable-overwrite for temp system. If host has ADA, it won't be available when using ncurses in chroot.

Change History (12)

comment:1 by William Harrington, 9 years ago

Description: modified (diff)

comment:2 by Martin Ward, 9 years ago

Which abi do we build for, I have done one build with abi=5, having notices a few reports of readline having possible problems with abi=6, however there is a new version of bash and readline imminent

in reply to:  2 comment:3 by William Harrington, 9 years ago

Replying to blackadder:

Which abi do we build for, I have done one build with abi=5, having notices a few reports of readline having possible problems with abi=6, however there is a new version of bash and readline imminent

Most likely stick with 6. Most of the new features I used in the past when building Ncurses 5.9 which gave me the new ABI and I built all sorts software with it.

I haven't seen anyone complain much in LFS/BLFS about it and I build with updated patchlevels for readline and bash.

in reply to:  2 ; comment:4 by William Harrington, 9 years ago

Replying to blackadder:

Which abi do we build for, I have done one build with abi=5, having notices a few reports of readline having possible problems with abi=6, however there is a new version of bash and readline imminent.

Here is something users may encounter:

http://lists.linuxfromscratch.org/pipermail/blfs-dev/2015-September/031046.html

Any word about readline and bash releases?

So far I've been building with default abi of 6.

in reply to:  4 comment:5 by Martin Ward, 9 years ago

Replying to kb0iic:

Replying to blackadder:

Which abi do we build for, I have done one build with abi=5, having notices a few reports of readline having possible problems with abi=6, however there is a new version of bash and readline imminent.

Here is something users may encounter:

http://lists.linuxfromscratch.org/pipermail/blfs-dev/2015-September/031046.html

Any word about readline and bash releases?

So far I've been building with default abi of 6.

No further releases since bash 4.4 and readline-7.0 alpha's in mid july. Just about to start a KDE 5 build, no problems with abi=5 so far on various packages including texlive

comment:6 by William Harrington, 9 years ago

There's also one other option, which will add more commands to the final system ncurses pages:

Build ncurses with the new ABI and then build and install with "abi=5" as a set of compatible libraries such as Fedora Rawhide provides.

Would this be of great interest? I can see that as a good option for some users. https://lists.fedoraproject.org/pipermail/devel/2015-August/213110.html

Keeping things simple is good. We could always include a note with an explanation for the user to choose either ABI and to adjust the abi= variable we add to configure.

comment:7 by William Harrington, 9 years ago

We can remove from configure:

--with-manpage-format (will install uncompressed)
--with-default-terminfo-dir (will install into /usr/share/terminfo)

Final system (pure64 bit example):

./configure --prefix=/usr --libdir=/lib \
    --with-shared --without-debug \
    --enable-widec --enable-pc-files

Output:

** Configuration summary for NCURSES 6.0 20150808:

       extended funcs: yes
       xterm terminfo: xterm-new

        bin directory: /usr/bin
        lib directory: /lib
    include directory: /usr/include
        man directory: /usr/share/man
   terminfo directory: /usr/share/terminfo
 pkg-config directory: /usr/lib/pkgconfig

During install (notice 5 changed to 6):

ln -sfv ncursesw6-config /usr/bin/ncurses6-config

Install docs:

mkdir -v /usr/share/doc/ncurses-6.0
cp -Rv doc/* /usr/share/doc/ncurses-6.0

For ABI=5 (if users want it, LFS is used as a reference):

make distclean
./configure --prefix=/usr --with-shared \
            --without-normal--without-debug \
            --without-cxx-binding --with-abi-version=5

make sources libs
cp -av lib/lib*.so.5* /usr/lib

Files installed:

'lib/libform.so.5' -> '/usr/lib/libform.so.5'
'lib/libform.so.5.9' -> '/usr/lib/libform.so.5.9'
'lib/libmenu.so.5' -> '/usr/lib/libmenu.so.5'
'lib/libmenu.so.5.9' -> '/usr/lib/libmenu.so.5.9'
'lib/libncurses.so.5' -> '/usr/lib/libncurses.so.5'
'lib/libncurses.so.5.9' -> '/usr/lib/libncurses.so.5.9'
'lib/libpanel.so.5' -> '/usr/lib/libpanel.so.5'
'lib/libpanel.so.5.9' -> '/usr/lib/libpanel.so.5.9'
Last edited 9 years ago by William Harrington (previous) (diff)

comment:8 by William Harrington, 9 years ago

I'm using a debian host were mawk and gawk are installed, but like LFS had an issue, the configure of ncurses 6.0 will use mawk no matter what. All that needs to be done is:

AWK=gawk

We already have a host requirement that gawk be installed.

comment:9 by William Harrington, 9 years ago

Multilib 32bit

CC="gcc ${BUILD32}" CXX="g++ ${BUILD32}" ./configure --prefix=/usr --libdir=/lib \
    --with-shared --without-debug --enable-widec  --enable-pc-files
make
make install
mv -v /usr/bin/ncursesw6-config{,-32}

all is fine and the last link command

ln -sfv ncursesw6-config-32 /usr/bin/ncurses6-config-32

For ABI5 compatibility

make distclean
CC="gcc ${BUILD32}" CXX="g++ ${BUILD32}" ./configure --prefix=/usr --libdir=/lib \
    --with-shared --without-normal --without-debug --without-cxx-binding \
    --enable-widec --with-abi-version=5
make sources libs
cp -av lib/lib*.so.5* /usr/lib

Multilib 64bit

CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" ./configure --prefix=/usr \
    --libdir=/lib64 --with-shared --without-debug --enable-widec --enable-pc-files \
    --with-pkg-config-libdir=$PKG_CONFIG_PATH64
make
make install
mv -v /usr/bin/ncursesw6-config{,-64}
ln -svf multiarch_wrapper /usr/bin/ncursesw6-config

all fine until the links

ln -sfv ncursesw6-config-64 /usr/bin/ncurses6-config-64
ln -sfv ncursesw6-config /usr/bin/ncurses6-config

For ABI5 compatiblity

CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" ./configure --prefix=/usr --libdir=/lib64 \
    --with-shared --without-normal --without-debug --without-cxx-binding \
    --enable-widec --with-abi-version=5
cp -av lib/lib*.so.5* /usr/lib64

I'm not sure if multiple man pages need to be installed for ncurses abi5 and abi6. Anyone know?

Version 0, edited 9 years ago by William Harrington (next)

comment:10 by chris@…, 9 years ago

The bash patch is still technically needed, though it was only ever needed if the host has a specific version of bash - unpatched 3.2. I suppose it should stay until we decide to update host's minimum bash version to higher than 3.2.

comment:11 by Martin Ward, 9 years ago

Built a complete desktop system(XFCE, KDE) with an ABI=6 and no ABI=5 compatibility libs with no problems

comment:12 by William Harrington, 9 years ago

Resolution: fixed
Status: newclosed

ABI v5 is not included. If users have an issue, we'll create a hint and put a note in the book. The issue will only arise with precompiled binaries or source which hardcodes the library.

Fixed at commit 6f218295b9f3cb919d646d00d5a6b2202d28e19a

Note: See TracTickets for help on using tickets.