← recipes

Commit 1e6c06d

0
plików
+0
dodanych
-0
usuniętych
@@ -1,6 +1,6 @@
1 1 pkgname: ncurses
2 2 pkgver: '6.6'
3 -pkgrel: 1
3 +pkgrel: 2
4 4 pkgdesc: Libraries for terminal-independent handling of character screens.
5 5 url: 'http://www.gnu.org/software/ncurses/ncurses.html'
6 6 arch: x86_64
@@ -12,14 +12,69 @@ source:
12 12 - 'https://invisible-mirror.net/archives/${pkgname}/${pkgname}-${pkgver}.tar.gz'
13 13 sha256sums:
14 14 - SKIP
15 -build: "cd ncurses-${pkgver}\n\n./configure --prefix=/usr \\\n --mandir=/usr/share/man \\\n --without-normal \
16 - \ \\\n --with-shared \\\n --with-cxx-shared \\\n --without-debug \\\n --enable-pc-files\
17 - \ \\\n --with-install-prefix=${PKGDIR}\\\n --with-pkg-config-libdir=/usr/lib/pkgconfig \n\nmake\n\nmake install\n\
18 - \nsed -e 's/^#if.*XOPEN.*$/#if 1/' \\\n -i ${PKGDIR}/usr/include/curses.h\n\nfor lib in ncurses form panel menu ; do\n\
19 - \ ln -sfv lib${lib}w.so ${PKGDIR}/usr/lib/lib${lib}.so\n ln -sfv ${lib}w.pc ${PKGDIR}/usr/lib/pkgconfig/${lib}.pc\n\
20 - done\n\nln -sfv libncursesw.so ${PKGDIR}/usr/lib/libcurses.so\n\nmkdir -vp ${PKGDIR}/usr/share/doc/${pkgname}\ncp -R doc/*\
21 - \ ${PKGDIR}/usr/share/doc/${pkgname}\n\nmake distclean\n\n./configure --prefix=/usr --with-shared --without-normal \\\n\
22 - --mandir=/usr/share/man --infodir=/usr/share/info \\\n--without-debug --without-cxx-binding \\\n--with-abi-version=5 \\\n\
23 - --with-install-prefix=${PKGDIR}\n\nmake sources libs\nmkdir -p ${PKGDIR}/usr/lib\ncp -av lib/lib*.so.5* ${PKGDIR}/usr/lib\n"
15 +# ─────────────────────────────────────────────────────────────────────────────
16 +# UWAGA DO FLAG (spójność z ISO)
17 +#
18 +# Ten pakiet MUSI być zbudowany tak samo jak ncurses w ISO (build-pagan.sh,
19 +# wpis "ncurses:6.6:…"): --enable-widec --with-versioned-syms
20 +#
21 +# * --with-versioned-syms jest KRYTYCZNE. Bez niego libncursesw.so.6 nie ma
22 +# węzłów wersji, a libreadline.so.8 żąda NCURSES6_TINFO_5.0.19991023 – każda
23 +# powłoka (bash ładuje readline) wypisuje wtedy przy KAŻDYM podprocesie:
24 +# /bin/sh: /usr/lib/libncursesw.so.6: no version information available
25 +# (required by /usr/lib/libreadline.so.8)
26 +# Wcześniejsza wersja receptury nie miała ANI --enable-widec, ANI
27 +# --with-versioned-syms, więc pakiet `ncurses` z repo był niespójny z obrazem
28 +# (obraz: 285 węzłów NCURSES6_*, pakiet z repo: 0) – po `pag install ncurses`
29 +# na zainstalowanym systemie/ w rootfsie buildera zaczynało się to sypać.
30 +# * Kontrola na końcu builda wykrywa regresję od razu tutaj, a nie u użytkownika.
31 +# ─────────────────────────────────────────────────────────────────────────────
32 +build: |
33 + cd ncurses-${pkgver}
34 +
35 + ./configure --prefix=/usr \
36 + --mandir=/usr/share/man \
37 + --without-normal \
38 + --with-shared \
39 + --with-cxx-shared \
40 + --without-debug \
41 + --enable-pc-files \
42 + --enable-widec \
43 + --with-versioned-syms \
44 + --with-install-prefix=${PKGDIR} \
45 + --with-pkg-config-libdir=/usr/lib/pkgconfig
46 +
47 + make
48 + make install
49 +
50 + # Odblokowanie rozszerzeń XOPEN w curses.h (jak w LFS).
51 + sed -e 's/^#if.*XOPEN.*$/#if 1/' -i ${PKGDIR}/usr/include/curses.h
52 +
53 + for lib in ncurses form panel menu ; do
54 + ln -sfv lib${lib}w.so ${PKGDIR}/usr/lib/lib${lib}.so
55 + ln -sfv ${lib}w.pc ${PKGDIR}/usr/lib/pkgconfig/${lib}.pc
56 + done
57 + ln -sfv libncursesw.so ${PKGDIR}/usr/lib/libcurses.so
58 +
59 + mkdir -vp ${PKGDIR}/usr/share/doc/${pkgname}
60 + cp -R doc/* ${PKGDIR}/usr/share/doc/${pkgname}
61 +
62 + # Druga konfiguracja: biblioteki ABI 5 dla starych binariów (bez węzłów
63 + # wersji – nic w dystrybucji ich nie wymaga).
64 + make distclean
65 +
66 + ./configure --prefix=/usr --with-shared --without-normal \
67 + --mandir=/usr/share/man --infodir=/usr/share/info \
68 + --without-debug --without-cxx-binding \
69 + --with-abi-version=5 \
70 + --with-install-prefix=${PKGDIR}
71 +
72 + make sources libs
73 + mkdir -p ${PKGDIR}/usr/lib
74 + cp -av lib/lib*.so.5* ${PKGDIR}/usr/lib
75 +
76 + # Kontrola węzłów wersji (bez binutils – grep po .dynstr wystarcza).
77 + grep -aq 'NCURSES6_TINFO' ${PKGDIR}/usr/lib/libncursesw.so.6 \
78 + || { echo "❌ libncursesw.so.6 bez węzłów wersji – --with-versioned-syms nie zadziałało"; exit 1; }
24 79 package: |
25 80 true