Source
FROM scratch AS build
ARG VERSION
COPY --from=stagex/core-busybox . /
COPY --from=stagex/core-binutils . /
COPY --from=stagex/core-musl . /
COPY --from=stagex/core-linux-headers . /
COPY --from=stagex/core-make . /
COPY --from=stagex/core-gcc . /
ADD fetch/ncurses-${VERSION}.tar.gz .
WORKDIR /ncurses-${VERSION}
ENV ARFLAGS=-crv
RUN --network=none <<-EOF
set -eux
./configure \
--prefix=/usr \
--disable-root-access \
--disable-root-environ \
--disable-setuid-environ \
--without-ada \
--without-debug \
--without-tests \
--with-versioned-syms \
--with-pkg-config-libdir=/usr/lib/pkgconfig \
--with-cxx-binding \
--with-cxx-shared \
--with-shared \
--with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo:/lib/terminfo:/usr/lib/terminfo" \
--enable-pc-files \
--enable-shared \
--enable-widec
make -j "$(nproc)"
make DESTDIR="/rootfs" install
cd /rootfs
# force link against *w.so
for lib in ncurses ncurses++ form panel menu; do
ln -s ${lib}w.pc usr/lib/pkgconfig/$lib.pc
ln -s lib${lib}w.a usr/lib/lib$lib.a
echo "INPUT(-l${lib}w)" > usr/lib/lib$lib.so
done
# link curses -> ncurses
ln -s libncurses.a usr/lib/libcurses.a
ln -s libncurses.so usr/lib/libcurses.so
echo 'INPUT(-lncursesw)' > usr/lib/libcursesw.so
EOF
FROM stagex/core-filesystem AS package
COPY --from=build /rootfs/ /