From 35ed79bdd6dbe9640d8441dcce8cdcced8fcd4e8 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Tue, 19 May 2026 11:14:28 +0700 Subject: [PATCH] fix: update bird build script and Dockerfile to include readline dependency Modified the bird build script to enable readline support and updated the Dockerfile to install both libreadline8 and libncurses6, ensuring compatibility with the birdc runtime requirements. --- deploy/docker/bird/bird-from-source.sh | 9 +++++---- deploy/docker/gobinary/Dockerfile | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/deploy/docker/bird/bird-from-source.sh b/deploy/docker/bird/bird-from-source.sh index 311873c..2def660 100644 --- a/deploy/docker/bird/bird-from-source.sh +++ b/deploy/docker/bird/bird-from-source.sh @@ -1,6 +1,7 @@ #!/bin/sh # Сборка BIRD из официального tarball (версия задаётся BIRD_VERSION, по умолчанию 2.14). # Запуск от root (Docker) или через sudo на хосте. Префикс установки: /usr/local. +# birdc требует ncurses + readline; в runtime-образе gobinary — libncurses6 + libreadline8. set -eu BIRD_VERSION="${BIRD_VERSION:-2.14}" export DEBIAN_FRONTEND=noninteractive @@ -12,19 +13,19 @@ apt-get install -y --no-install-recommends \ curl \ flex \ bison \ - libncurses-dev + libncurses-dev \ + libreadline-dev cd /tmp rm -rf "bird-${BIRD_VERSION}" curl -fsSL "https://bird.network.cz/download/bird-${BIRD_VERSION}.tar.gz" | tar xz cd "bird-${BIRD_VERSION}" -# birdc only for non-interactive "show protocols" / configure — без readline в runtime. -./configure --prefix=/usr/local --enable-client --disable-readline +./configure --prefix=/usr/local --enable-client make -j"$(nproc)" make install cd / rm -rf "/tmp/bird-${BIRD_VERSION}" -apt-get purge -y build-essential flex bison libncurses-dev +apt-get purge -y build-essential flex bison libncurses-dev libreadline-dev apt-get autoremove -y rm -rf /var/lib/apt/lists/* diff --git a/deploy/docker/gobinary/Dockerfile b/deploy/docker/gobinary/Dockerfile index 93b01f3..a747313 100644 --- a/deploy/docker/gobinary/Dockerfile +++ b/deploy/docker/gobinary/Dockerfile @@ -46,8 +46,8 @@ EXPOSE 8080 ENTRYPOINT ["/usr/local/bin/evobgp"] FROM runtime AS runtime-birdc -# birdc (--disable-readline) линкуется с ncurses (bookworm: libncurses6). +# birdc: динамическая линковка readline + ncurses (debian bookworm). RUN apt-get update \ - && apt-get install -y --no-install-recommends libncurses6 \ + && apt-get install -y --no-install-recommends libreadline8 libncurses6 \ && rm -rf /var/lib/apt/lists/* COPY --from=birdc /usr/local/sbin/bird /usr/local/sbin/birdc /usr/local/sbin/