Detalhes acerca deste pacote estão localizados na Seção 8.29.2, “Conteúdo do Ncurses.”
O pacote Ncurses contém bibliotecas para manuseio independente de terminal das telas de caracteres .
Primeiro, assegure que gawk é encontrado primeiro durante a configuração:
sed -i s/mawk// configure
Então, execute os seguintes comandos para construir o aplicativo “tic” no anfitrião de construção:
mkdir build pushd build ../configure make -C include make -C progs tic popd
Prepare o Ncurses para compilação:
./configure --prefix=/usr \ --host=$LFS_TGT \ --build=$(./config.guess) \ --mandir=/usr/share/man \ --with-manpage-format=normal \ --with-shared \ --without-normal \ --with-cxx-shared \ --without-debug \ --without-ada \ --disable-stripping \ --enable-widec
O significado das novas opções de configuração:
--with-manpage-format=normal
Isso evita que o "Ncurses" instale páginas de manual comprimidas, o que possivelmente aconteça se a própria distribuição anfitriã tiver páginas de manual comprimidas.
--with-shared
Isso faz com que o Ncurses construa e instale bibliotecas C compartilhadas.
--without-normal
Isso evita que o "Ncurses" construa e instale bibliotecas "C" estáticas.
--without-debug
Isso evita que o "Ncurses" construa e instale bibliotecas de depuração.
--with-cxx-shared
Isso faz com que o Ncurses construa e instale vínculos C++ compartilhados. Também evita a construção e instalação de vínculos C++ estáticos.
--without-ada
Isso assegura que o Ncurses não construa suporte para o compilador Ada, o qual possivelmente esteja presente no anfitrião, porém não estará disponível até que nós entremos no ambiente chroot.
--disable-stripping
Essa chave impede o sistema de construção de usar o aplicativo strip oriundo do anfitrião. Usar ferramentas do anfitrião em aplicativos compilados cruzadamente pode causar falha.
--enable-widec
Essa chave faz com que bibliotecas de caracteres largos (por
exemplo, libncursesw.so.6.4-20230520
) sejam
construídas em vez das normais (por exemplo, libncurses.so.6.4-20230520
). Essas
bibliotecas de caracteres largos são utilizáveis tanto em
locales de múltiplos bytes quanto em tradicionais de oito
(08) bits, enquanto bibliotecas normais funcionam
adequadamente só em locales de oito (08) bits. Bibliotecas de
caracteres largos e normais são compatíveis em fonte, mas não
são compatíveis em binário.
Compile o pacote:
make
Instale o pacote:
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install ln -sv libncursesw.so $LFS/usr/lib/libncurses.so sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i $LFS/usr/include/curses.h
O significado das opções do install:
TIC_PATH=$(pwd)/build/progs/tic
Nós precisamos passar o caminho do recém construído aplicativo tic que executa na máquina de construção, de forma que a base de dados de terminal possa ser criada sem erros.
A biblioteca "libncurses.so
" é
necessária para uns poucos pacotes que nós construiremos
breve. Nós criamos esse link simbólico para usar a
"libncursesw.so
" como uma
substituta.
O arquivo de cabeçalho "curses.h
" contém a definição de várias
estruturas de dados do "Ncurses". Com diferentes definições
de macro de pré processador, dois conjuntos de definição de
estrutura de dados podem ser usados: a definição de oito bits
é compatível com a "libncurses.so
" e a definição de caracteres
largos é compatível com a "libncursesw.so
". Como estamos usando a
"libncursesw.so
" como uma
substituta da "libncurses.so
",
edite o arquivo de cabeçalho de forma que ele sempre usará a
definição de estrutura de dados de caracteres largos
compatível com a "libncursesw.so
".
Detalhes acerca deste pacote estão localizados na Seção 8.29.2, “Conteúdo do Ncurses.”