From 7d09affd5b34164594755b056caf6e2d2b095145 Mon Sep 17 00:00:00 2001 From: Franciszek Stachura Date: Wed, 12 Feb 2025 21:39:42 +0100 Subject: [PATCH] Dockerfile: Build and use ctags v6.1.0 (upgrade from v5.9) Changelogs: https://github.com/universal-ctags/ctags/releases There are some function definitions that are not found by ctags v5.9. We must upgrade to the latest release but it isn't packaged by Debian. We only copy the ctags executable. Debian's package files are: https://packages.debian.org/sid/amd64/universal-ctags/filelist We drop: - The optscript and readtags executables, - The changelog and copyright files and, - All manpages. --- docker/Dockerfile | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1c450dc..17fbc34 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,17 +3,22 @@ FROM debian:bookworm AS build RUN \ apt-get update && \ apt-get --no-install-recommends -y install \ - python3 \ - python3-pip \ - python3-dev \ + git build-essential pkg-config autoconf automake \ + python3 python3-pip python3-dev python3-docutils \ libdb-dev \ - build-essential + libseccomp-dev libjansson-dev libyaml-dev libxml2-dev -WORKDIR /build/ +WORKDIR /build-berkeleydb/ # NOTE wheel version MUST be sycnhronized with requirements.txt RUN pip wheel berkeleydb==18.1.10 +WORKDIR /build-ctags/ + +RUN git clone --branch v6.1.0 --depth 1 https://github.com/universal-ctags/ctags.git +WORKDIR ctags +RUN ./autogen.sh && ./configure && make -j $(nproc) + FROM debian:bookworm RUN \ @@ -22,7 +27,6 @@ RUN \ python3 \ python3-pip \ python3-venv \ - universal-ctags \ libdb5.3 \ perl \ git \ @@ -36,13 +40,15 @@ COPY ./requirements.txt /usr/local/elixir/ WORKDIR /usr/local/elixir/ -COPY --from=build /build/berkeleydb-*.whl /tmp/build/ +COPY --from=build /build-berkeleydb/berkeleydb-*.whl /tmp/build/ RUN python3 -m venv venv && \ . ./venv/bin/activate && \ pip install /tmp/build/berkeleydb-*.whl && \ pip install -r requirements.txt +COPY --from=build /build-ctags/ctags/ctags /usr/bin/ctags + RUN mkdir -p /srv/elixir-data/ COPY ./docker/000-default.conf /etc/apache2/sites-available/000-default.conf