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