🔒 Repository is read-only – file editing is disabled.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
pkgname: ncurses
pkgver: '6.6'
pkgrel: 2
pkgdesc: Libraries for terminal-independent handling of character screens.
url: 'http://www.gnu.org/software/ncurses/ncurses.html'
arch: x86_64
license:
- MIT
depends: []
makedepends: []
source:
- 'https://invisible-mirror.net/archives/${pkgname}/${pkgname}-${pkgver}.tar.gz'
sha256sums:
- SKIP
# ─────────────────────────────────────────────────────────────────────────────
# UWAGA DO FLAG (spójność z ISO)
#
# Ten pakiet MUSI być zbudowany tak samo jak ncurses w ISO (build-pagan.sh,
# wpis "ncurses:6.6:…"): --enable-widec --with-versioned-syms
#
# * --with-versioned-syms jest KRYTYCZNE. Bez niego libncursesw.so.6 nie ma
# węzłów wersji, a libreadline.so.8 żąda NCURSES6_TINFO_5.0.19991023 – każda
# powłoka (bash ładuje readline) wypisuje wtedy przy KAŻDYM podprocesie:
# /bin/sh: /usr/lib/libncursesw.so.6: no version information available
# (required by /usr/lib/libreadline.so.8)
# Wcześniejsza wersja receptury nie miała ANI --enable-widec, ANI
# --with-versioned-syms, więc pakiet `ncurses` z repo był niespójny z obrazem
# (obraz: 285 węzłów NCURSES6_*, pakiet z repo: 0) – po `pag install ncurses`
# na zainstalowanym systemie/ w rootfsie buildera zaczynało się to sypać.
# * Kontrola na końcu builda wykrywa regresję od razu tutaj, a nie u użytkownika.
# ─────────────────────────────────────────────────────────────────────────────
build: |
cd ncurses-${pkgver}
./configure --prefix=/usr \
--mandir=/usr/share/man \
--without-normal \
--with-shared \
--with-cxx-shared \
--without-debug \
--enable-pc-files \
--enable-widec \
--with-versioned-syms \
--with-install-prefix=${PKGDIR} \
--with-pkg-config-libdir=/usr/lib/pkgconfig
make
make install
# Odblokowanie rozszerzeń XOPEN w curses.h (jak w LFS).
sed -e 's/^#if.*XOPEN.*$/#if 1/' -i ${PKGDIR}/usr/include/curses.h
for lib in ncurses form panel menu ; do
ln -sfv lib${lib}w.so ${PKGDIR}/usr/lib/lib${lib}.so
ln -sfv ${lib}w.pc ${PKGDIR}/usr/lib/pkgconfig/${lib}.pc
done
ln -sfv libncursesw.so ${PKGDIR}/usr/lib/libcurses.so
mkdir -vp ${PKGDIR}/usr/share/doc/${pkgname}
cp -R doc/* ${PKGDIR}/usr/share/doc/${pkgname}
# Druga konfiguracja: biblioteki ABI 5 dla starych binariów (bez węzłów
# wersji – nic w dystrybucji ich nie wymaga).
make distclean
./configure --prefix=/usr --with-shared --without-normal \
--mandir=/usr/share/man --infodir=/usr/share/info \
--without-debug --without-cxx-binding \
--with-abi-version=5 \
--with-install-prefix=${PKGDIR}
make sources libs
mkdir -p ${PKGDIR}/usr/lib
cp -av lib/lib*.so.5* ${PKGDIR}/usr/lib
# Kontrola węzłów wersji (bez binutils – grep po .dynstr wystarcza).
grep -aq 'NCURSES6_TINFO' ${PKGDIR}/usr/lib/libncursesw.so.6 \
|| { echo "❌ libncursesw.so.6 bez węzłów wersji – --with-versioned-syms nie zadziałało"; exit 1; }
package: |
true