mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-26 15:10:50 -08:00
dc4e6b1329; Update copyright years in more files64b3777631; Run set-copyright from admin.el8e1c56ae46; Add 2024 to copyright years # Conflicts: # doc/misc/modus-themes.org # doc/misc/texinfo.tex # etc/NEWS # etc/refcards/ru-refcard.tex # etc/themes/modus-operandi-theme.el # etc/themes/modus-themes.el # etc/themes/modus-vivendi-theme.el # lib/alloca.in.h # lib/binary-io.h # lib/c-ctype.h # lib/c-strcasecmp.c # lib/c-strncasecmp.c # lib/careadlinkat.c # lib/cloexec.c # lib/close-stream.c # lib/diffseq.h # lib/dup2.c # lib/filemode.h # lib/fpending.c # lib/fpending.h # lib/fsusage.c # lib/getgroups.c # lib/getloadavg.c # lib/gettext.h # lib/gettime.c # lib/gettimeofday.c # lib/group-member.c # lib/malloc.c # lib/md5-stream.c # lib/md5.c # lib/md5.h # lib/memmem.c # lib/memrchr.c # lib/nanosleep.c # lib/save-cwd.h # lib/sha1.c # lib/sig2str.c # lib/stdlib.in.h # lib/strtoimax.c # lib/strtol.c # lib/strtoll.c # lib/time_r.c # lib/xalloc-oversized.h # lisp/auth-source-pass.el # lisp/emacs-lisp/lisp-mnt.el # lisp/emacs-lisp/timer.el # lisp/info-look.el # lisp/jit-lock.el # lisp/loadhist.el # lisp/mail/rmail.el # lisp/net/ntlm.el # lisp/net/webjump.el # lisp/progmodes/asm-mode.el # lisp/progmodes/project.el # lisp/progmodes/sh-script.el # lisp/textmodes/flyspell.el # lisp/textmodes/reftex-toc.el # lisp/textmodes/reftex.el # lisp/textmodes/tex-mode.el # lisp/url/url-gw.el # m4/alloca.m4 # m4/clock_time.m4 # m4/d-type.m4 # m4/dirent_h.m4 # m4/dup2.m4 # m4/euidaccess.m4 # m4/fchmodat.m4 # m4/filemode.m4 # m4/fsusage.m4 # m4/getgroups.m4 # m4/getloadavg.m4 # m4/getrandom.m4 # m4/gettime.m4 # m4/gettimeofday.m4 # m4/gnulib-common.m4 # m4/group-member.m4 # m4/inttypes.m4 # m4/malloc.m4 # m4/manywarnings.m4 # m4/mempcpy.m4 # m4/memrchr.m4 # m4/mkostemp.m4 # m4/mktime.m4 # m4/nproc.m4 # m4/nstrftime.m4 # m4/pathmax.m4 # m4/pipe2.m4 # m4/pselect.m4 # m4/pthread_sigmask.m4 # m4/readlink.m4 # m4/realloc.m4 # m4/sig2str.m4 # m4/ssize_t.m4 # m4/stat-time.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/stdio_h.m4 # m4/stdlib_h.m4 # m4/stpcpy.m4 # m4/strnlen.m4 # m4/strtoimax.m4 # m4/strtoll.m4 # m4/time_h.m4 # m4/timegm.m4 # m4/timer_time.m4 # m4/timespec.m4 # m4/unistd_h.m4 # m4/warnings.m4 # nt/configure.bat # nt/preprep.c # test/lisp/register-tests.el
181 lines
6.3 KiB
Text
181 lines
6.3 KiB
Text
# Copyright (C) 2021-2024 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Emacs.
|
|
#
|
|
# GNU Emacs is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# GNU Emacs is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
# GNU Emacs support for the GitLab-specific build of Docker images.
|
|
|
|
# The presence of this file does not imply any FSF/GNU endorsement of
|
|
# Docker or any other particular tool. Also, it is intended for
|
|
# evaluation purposes, thus possibly temporary.
|
|
|
|
# Maintainer: Ted Zlatanov <tzz@lifelogs.com>
|
|
# URL: https://emba.gnu.org/emacs/emacs
|
|
|
|
FROM debian:bullseye as emacs-base
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
|
|
libdbus-1-dev libacl1-dev acl git texinfo gdb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM emacs-base as emacs-inotify
|
|
|
|
# We install clangd for Eglot tests.
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
inotify-tools clangd \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure
|
|
# 'make -j4 bootstrap' does not work reliably.
|
|
RUN make bootstrap
|
|
|
|
FROM emacs-base as emacs-filenotify-gio
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
libglib2.0-dev libglib2.0-bin libglib2.0-0 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure --with-file-notification=gfile
|
|
RUN make bootstrap
|
|
|
|
# Debian bullseye doesn't provide proper packages. So we use Debian
|
|
# sid for this.
|
|
FROM debian:sid as emacs-eglot
|
|
|
|
# This corresponds to emacs-base.
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
|
|
libdbus-1-dev libacl1-dev acl git texinfo gdb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install clangd.
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
clangd \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure
|
|
RUN make bootstrap
|
|
|
|
# Debian bullseye doesn't provide proper packages. So we use Debian
|
|
# sid for this.
|
|
FROM debian:sid as emacs-tree-sitter
|
|
|
|
# This corresponds to emacs-base.
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
|
|
libdbus-1-dev libacl1-dev acl git texinfo gdb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install tree-sitter library.
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
libtree-sitter0 libtree-sitter-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure --with-tree-sitter
|
|
RUN make bootstrap
|
|
|
|
# Install language grammars.
|
|
RUN mkdir -p /root/.emacs.d/tree-sitter
|
|
RUN git config --global http.sslverify "false"
|
|
# See https://github.com/emacs-tree-sitter/tree-sitter-langs/tree/master/repos
|
|
RUN src/emacs -Q --batch \
|
|
--eval '(setq \
|
|
treesit-extra-load-path (list "/root/.emacs.d/tree-sitter") \
|
|
treesit-language-source-alist \
|
|
(quote ((bash "https://github.com/tree-sitter/tree-sitter-bash") \
|
|
(c "https://github.com/tree-sitter/tree-sitter-c") \
|
|
(cpp "https://github.com/tree-sitter/tree-sitter-cpp") \
|
|
(css "https://github.com/tree-sitter/tree-sitter-css") \
|
|
(elixir "https://github.com/elixir-lang/tree-sitter-elixir") \
|
|
(go "https://github.com/tree-sitter/tree-sitter-go") \
|
|
(gomod "https://github.com/camdencheek/tree-sitter-go-mod") \
|
|
(heex "https://github.com/phoenixframework/tree-sitter-heex") \
|
|
(html "https://github.com/tree-sitter/tree-sitter-html") \
|
|
(java "https://github.com/tree-sitter/tree-sitter-java") \
|
|
(javascript "https://github.com/tree-sitter/tree-sitter-javascript") \
|
|
(json "https://github.com/tree-sitter/tree-sitter-json") \
|
|
(lua "https://github.com/MunifTanjim/tree-sitter-lua") \
|
|
(python "https://github.com/tree-sitter/tree-sitter-python") \
|
|
(ruby "https://github.com/tree-sitter/tree-sitter-ruby") \
|
|
(tsx "https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src") \
|
|
(typescript "https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src"))))' \
|
|
--eval '(dolist (lang (mapcar (quote car) treesit-language-source-alist)) \
|
|
(treesit-install-language-grammar lang "/root/.emacs.d/tree-sitter"))'
|
|
|
|
FROM emacs-base as emacs-gnustep
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
gnustep-devel zlib1g-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure --with-ns
|
|
RUN make bootstrap
|
|
|
|
FROM emacs-base as emacs-native-comp
|
|
|
|
# The libgccjit version must correspond to the gcc version.
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
|
|
libgccjit-10-dev zlib1g-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM emacs-native-comp as emacs-native-comp-speed0
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure --with-native-compilation
|
|
RUN make bootstrap -j2 \
|
|
NATIVE_FULL_AOT=1 BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 0)"'
|
|
|
|
FROM emacs-native-comp as emacs-native-comp-speed1
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure --with-native-compilation
|
|
RUN make bootstrap -j2 BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 1)"'
|
|
|
|
FROM emacs-native-comp as emacs-native-comp-speed2
|
|
|
|
COPY . /checkout
|
|
WORKDIR /checkout
|
|
RUN ./autogen.sh autoconf
|
|
RUN ./configure --with-native-compilation
|
|
RUN make bootstrap -j2
|