Update CI to use Emacs 29

The PPA hasn't updated, so we're resorting to snap.

I also shouldn't need the BMC LaTeX package any more, so let's get rid
of that too.

While I'm at it, I think this docker file could do with a bit of spring
cleaning too.
This commit is contained in:
TEC 2024-02-21 01:22:31 +08:00
parent e1650af36a
commit 891c98ac36
Signed by: tec
SSH Key Fingerprint: SHA256:eobz41Mnm0/iYWBvWThftS0ElEs1ftBr6jamutnXc/A
1 changed files with 25 additions and 30 deletions

View File

@ -4,18 +4,12 @@ MAINTAINER TEC <tec@tecosaur.com>
ENV LANG=C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive
RUN echo "\033[1;34mAdd Emacs PPA.\033[0m" &&\
apt-get update &&\
apt-get install -y apt-utils software-properties-common &&\
add-apt-repository -y ppa:kelleyk/emacs &&\
RUN echo "\033[1;34mUpdate apt repo.\033[0m" &&\
apt-get update
RUN echo "\033[1;34mUpdate.\033[0m" &&\
RUN echo "\033[1;34mTeX install.\033[0m" &&\
apt-get update &&\
## Modified version of https://github.com/thomasWeise/docker-texlive-full
# prevent doc and man pages from being installed
# the idea is based on https://askubuntu.com/questions/129566
echo "\033[1;34mPreventing doc and man pages from being installed.\033[0m" &&\
# Modified version of <https://github.com/thomasWeise/docker-texlive-full>
printf 'path-exclude /usr/share/doc/*\npath-include /usr/share/doc/*/copyright\npath-exclude /usr/share/man/*\npath-exclude /usr/share/groff/*\npath-exclude /usr/share/info/*\npath-exclude /usr/share/lintian/*\npath-exclude /usr/share/linda/*\npath-exclude=/usr/share/locale/*' > /etc/dpkg/dpkg.cfg.d/01_nodoc &&\
# remove doc files and man pages already installed
rm -rf /usr/share/groff/* /usr/share/info/* &&\
@ -29,16 +23,7 @@ RUN echo "\033[1;34mUpdate.\033[0m" &&\
(find /usr/share/doc -type d -empty -delete || true) &&\
mkdir -p /usr/share/doc &&\
mkdir -p /usr/share/info &&\
echo "\033[1;34mInstalling utilities.\033[0m" &&\
apt-get install -y sudo git gcc sqlite sqlite3 wget ncurses-term ripgrep xclip &&\
echo "\033[1;34mInstalling Emacs\033[0m" &&\
# Emacs 28 (no-X)
apt-get install -y emacs28-nox &&\
echo "\033[1;34mInstalling cairosvg and curl (for emojis).\033[0m" &&\
apt-get install -y curl cairosvg &&\
echo "\033[1;34mInstalling TeX Live packages.\033[0m" &&\
# install TeX Live and ghostscript as well as other tools (inkscape for svg)
git clone https://github.com/tecosaur/BMC.git /usr/share/texmf/tex/latex/bmc &&\
apt-get install -y texlive-base texlive-latex-recommended texlive-fonts-extra latexmk inkscape &&\
# delete Tex Live sources and other potentially useless stuff
echo "\033[1;34mDelete TeX Live sources and other useless stuff.\033[0m" &&\
@ -49,29 +34,39 @@ RUN echo "\033[1;34mUpdate.\033[0m" &&\
(rm -rf /usr/share/texlive/release-texlive.txt || true) &&\
(rm -rf /usr/share/texlive/doc.html || true) &&\
(rm -rf /usr/share/texlive/index.html || true) &&\
# clean up all temporary files
echo "\033[1;34mClean up all temporary files.\033[0m" &&\
apt-get clean -y &&\
rm -rf /var/lib/apt/lists/* &&\
rm -f /etc/ssh/ssh_host_* &&\
# delete man pages and documentation
echo "\033[1;34mDelete man pages and documentation.\033[0m" &&\
rm -rf /usr/share/man &&\
mkdir -p /usr/share/man &&\
find /usr/share/doc -depth -type f ! -name copyright -delete &&\
find /usr/share/doc -type f -name "*.pdf" -delete &&\
find /usr/share/doc -type f -name "*.gz" -delete &&\
find /usr/share/doc -type f -name "*.tex" -delete &&\
find /usr/share/doc -type f -name "*.tex" -delete
RUN echo "\033[1;34mInstalling Emacs 29.\033[0m" &&\
apt-get install -y apt-utils software-properties-common &&\
add-apt-repository -y ppa:ubuntuhandbook1/emacs &&\
apt-get update &&\
apt-get install -y emacs emacs-common
RUN echo "\033[1;34mInstalling utilities.\033[0m" &&\
apt-get install -y sudo git gcc sqlite sqlite3 wget ncurses-term ripgrep xclip curl cairosvg
RUN echo "\033[1;36mRemoving extranious files.\033[0m" &&\
apt-get clean -y &&\
rm -rf /var/lib/apt/lists/* &&\
rm -f /etc/ssh/ssh_host_* &&\
rm -rf /usr/share/groff/* /usr/share/info/* &&\
rm -rf /usr/share/lintian/* /usr/share/linda/* /var/cache/man/* &&\
rm -rf /usr/share/man &&\
mkdir -p /usr/share/man &&\
(find /usr/share/doc -type d -empty -delete || true) &&\
mkdir -p /usr/share/doc &&\
mkdir -p /usr/share/info &&\
rm -rf /var/cache/apt/archives &&\
mkdir -p /var/cache/apt/archives &&\
rm -rf /tmp/* /var/tmp/* &&\
(find /usr/share/ -type f -empty -delete || true) &&\
(find /usr/share/ -type d -empty -delete || true) &&\
mkdir -p /usr/share/texmf/source &&\
mkdir -p /usr/share/texlive/texmf-dist/source &&\
echo "\033[1;32mAll done.\033[0m"
mkdir -p /usr/share/texlive/texmf-dist/source
RUN echo "\033[1;36mDon't check github's SSH key\033[0m" &&\
printf "Host github.com\n StrictHostKeyChecking no\n" >> /etc/ssh/ssh_config