From 8e7a707bdf580f5f8bfc68d188269d925cb3ca50 Mon Sep 17 00:00:00 2001 From: Philippe Vaucher Date: Tue, 5 May 2020 10:41:07 +0200 Subject: [PATCH] Switch to gitlab --- .gitlab-ci.yml | 188 +++++++++++ .travis.yml | 59 ---- 23.4/ubuntu/12.04/bootstrap/Dockerfile | 50 +-- 23.4/ubuntu/12.04/bootstrap/dev/Dockerfile | 46 +++ 24.1/ubuntu/12.04/Dockerfile | 53 +-- 24.1/ubuntu/12.04/dev/Dockerfile | 49 +++ 24.2/ubuntu/12.04/Dockerfile | 53 +-- 24.2/ubuntu/12.04/dev/Dockerfile | 49 +++ 24.3/ubuntu/12.04/Dockerfile | 53 +-- 24.3/ubuntu/12.04/dev/Dockerfile | 49 +++ 24.4/ubuntu/12.04/Dockerfile | 53 +-- 24.4/ubuntu/12.04/dev/Dockerfile | 49 +++ 24.5/ubuntu/18.04/Dockerfile | 66 +--- 24.5/ubuntu/18.04/dev/Dockerfile | 62 ++++ 25.1/ubuntu/18.04/Dockerfile | 66 +--- 25.1/ubuntu/18.04/dev/Dockerfile | 62 ++++ 25.2/alpine/3.9/Dockerfile | 65 +--- 25.2/alpine/3.9/dev/Dockerfile | 60 ++++ 25.2/alpine/3.9/patches/gamedir.patch | 11 - 25.2/alpine/3.9/patches/musl.patch | 87 ----- 25.2/alpine/3.9/patches/noaslr-dump.patch | 20 -- 25.2/ubuntu/18.04/Dockerfile | 66 +--- 25.2/ubuntu/18.04/dev/Dockerfile | 62 ++++ 25.3/alpine/3.9/Dockerfile | 65 +--- 25.3/alpine/3.9/dev/Dockerfile | 60 ++++ 25.3/alpine/3.9/patches/gamedir.patch | 11 - 25.3/alpine/3.9/patches/musl.patch | 87 ----- 25.3/alpine/3.9/patches/noaslr-dump.patch | 20 -- 25.3/ubuntu/18.04/Dockerfile | 66 +--- 25.3/ubuntu/18.04/dev/Dockerfile | 62 ++++ 26.1/alpine/3.9/Dockerfile | 65 +--- 26.1/alpine/3.9/dev/Dockerfile | 56 ++++ 26.1/ubuntu/18.04/Dockerfile | 66 +--- 26.1/ubuntu/18.04/dev/Dockerfile | 62 ++++ 26.2/alpine/3.9/Dockerfile | 65 +--- 26.2/alpine/3.9/dev/Dockerfile | 56 ++++ 26.2/ubuntu/18.04/Dockerfile | 66 +--- 26.2/ubuntu/18.04/dev/Dockerfile | 62 ++++ 26.3/alpine/3.9/Dockerfile | 65 +--- 26.3/alpine/3.9/dev/Dockerfile | 56 ++++ 26.3/ubuntu/18.04/Dockerfile | 66 +--- 26.3/ubuntu/18.04/dev/Dockerfile | 62 ++++ 27.0/alpine/3.9/Dockerfile | 65 +--- 27.0/alpine/3.9/dev/Dockerfile | 56 ++++ 27.0/ubuntu/18.04/Dockerfile | 66 +--- 27.0/ubuntu/18.04/dev/Dockerfile | 62 ++++ README.md | 42 +-- bin/generate | 152 +++++++++ bin/images | 301 ------------------ bin/setup-env | 7 - images.yml | 117 ++++--- master/alpine/3.9/Dockerfile | 65 +--- master/alpine/3.9/dev/Dockerfile | 56 ++++ master/ubuntu/18.04/Dockerfile | 66 +--- master/ubuntu/18.04/dev/Dockerfile | 62 ++++ templates/.gitlab-ci.yml | 30 ++ templates/.travis.yml | 39 --- templates/alpine/3.9/Dockerfile | 65 +--- templates/alpine/3.9/dev/Dockerfile | 57 ++++ templates/alpine/3.9/patches/25/gamedir.patch | 11 - templates/alpine/3.9/patches/25/musl.patch | 87 ----- .../alpine/3.9/patches/25/noaslr-dump.patch | 20 -- templates/ubuntu/12.04/Dockerfile | 53 +-- templates/ubuntu/12.04/bootstrap/Dockerfile | 50 +-- .../ubuntu/12.04/bootstrap/dev/Dockerfile | 47 +++ templates/ubuntu/12.04/dev/Dockerfile | 50 +++ templates/ubuntu/18.04/Dockerfile | 66 +--- templates/ubuntu/18.04/dev/Dockerfile | 63 ++++ 68 files changed, 1895 insertions(+), 2356 deletions(-) create mode 100644 .gitlab-ci.yml delete mode 100644 .travis.yml create mode 100644 23.4/ubuntu/12.04/bootstrap/dev/Dockerfile create mode 100644 24.1/ubuntu/12.04/dev/Dockerfile create mode 100644 24.2/ubuntu/12.04/dev/Dockerfile create mode 100644 24.3/ubuntu/12.04/dev/Dockerfile create mode 100644 24.4/ubuntu/12.04/dev/Dockerfile create mode 100644 24.5/ubuntu/18.04/dev/Dockerfile create mode 100644 25.1/ubuntu/18.04/dev/Dockerfile create mode 100644 25.2/alpine/3.9/dev/Dockerfile delete mode 100644 25.2/alpine/3.9/patches/gamedir.patch delete mode 100644 25.2/alpine/3.9/patches/musl.patch delete mode 100644 25.2/alpine/3.9/patches/noaslr-dump.patch create mode 100644 25.2/ubuntu/18.04/dev/Dockerfile create mode 100644 25.3/alpine/3.9/dev/Dockerfile delete mode 100644 25.3/alpine/3.9/patches/gamedir.patch delete mode 100644 25.3/alpine/3.9/patches/musl.patch delete mode 100644 25.3/alpine/3.9/patches/noaslr-dump.patch create mode 100644 25.3/ubuntu/18.04/dev/Dockerfile create mode 100644 26.1/alpine/3.9/dev/Dockerfile create mode 100644 26.1/ubuntu/18.04/dev/Dockerfile create mode 100644 26.2/alpine/3.9/dev/Dockerfile create mode 100644 26.2/ubuntu/18.04/dev/Dockerfile create mode 100644 26.3/alpine/3.9/dev/Dockerfile create mode 100644 26.3/ubuntu/18.04/dev/Dockerfile create mode 100644 27.0/alpine/3.9/dev/Dockerfile create mode 100644 27.0/ubuntu/18.04/dev/Dockerfile create mode 100755 bin/generate delete mode 100755 bin/images delete mode 100755 bin/setup-env create mode 100644 master/alpine/3.9/dev/Dockerfile create mode 100644 master/ubuntu/18.04/dev/Dockerfile create mode 100644 templates/.gitlab-ci.yml delete mode 100644 templates/.travis.yml create mode 100644 templates/alpine/3.9/dev/Dockerfile delete mode 100644 templates/alpine/3.9/patches/25/gamedir.patch delete mode 100644 templates/alpine/3.9/patches/25/musl.patch delete mode 100644 templates/alpine/3.9/patches/25/noaslr-dump.patch create mode 100644 templates/ubuntu/12.04/bootstrap/dev/Dockerfile create mode 100644 templates/ubuntu/12.04/dev/Dockerfile create mode 100644 templates/ubuntu/18.04/dev/Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..23e4e672 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,188 @@ +--- +image: docker:stable +variables: + DOCKER_USER: silex + DOCKER_CLI_EXPERIMENTAL: enabled + DOCKER_PLATFORMS: linux/amd64,linux/386,linux/arm/v7,linux/arm64/v8 +before_script: +- sudo sysctl kernel.randomize_va_space=0 +- ssh root@$DOCKER_ARM_HOST sysctl kernel.randomize_va_space=0 +- docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" +- | + if ! docker buildx inspect emacs-$CI_JOB_NAME; then + docker buildx create --name emacs-$CI_JOB_NAME + docker buildx create --append --name emacs-$CI_JOB_NAME ssh://root@$DOCKER_ARM_HOST + fi +- docker buildx inspect --bootstrap emacs-$CI_JOB_NAME +- docker buildx use emacs-$CI_JOB_NAME +stages: +- dev +- std +img-master: + stage: std + script: cd master/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push --no-cache -t silex/emacs:master . + needs: + - img-master-dev +img-master-dev: + stage: dev + script: cd master/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push --no-cache -t silex/emacs:master-dev . +img-master-alpine: + stage: std + script: cd master/alpine/3.9 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push --no-cache -t silex/emacs:master-alpine . + needs: + - img-master-alpine-dev +img-master-alpine-dev: + stage: dev + script: cd master/alpine/3.9/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push --no-cache -t silex/emacs:master-alpine-dev . +img-27.0: + stage: std + script: cd 27.0/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:27.0 -t silex/emacs:27 . + needs: + - img-27.0-dev +img-27.0-dev: + stage: dev + script: cd 27.0/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:27.0-dev -t silex/emacs:27-dev . +img-27.0-alpine: + stage: std + script: cd 27.0/alpine/3.9 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:27.0-alpine -t silex/emacs:27-alpine . + needs: + - img-27.0-alpine-dev +img-27.0-alpine-dev: + stage: dev + script: cd 27.0/alpine/3.9/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:27.0-alpine-dev -t silex/emacs:27-alpine-dev . +img-26.3: + stage: std + script: cd 26.3/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.3 -t silex/emacs:26 -t silex/emacs:latest . + needs: + - img-26.3-dev +img-26.3-dev: + stage: dev + script: cd 26.3/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.3-dev -t silex/emacs:26-dev -t silex/emacs:dev . +img-26.3-alpine: + stage: std + script: cd 26.3/alpine/3.9 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.3-alpine -t silex/emacs:26-alpine -t silex/emacs:alpine . + needs: + - img-26.3-alpine-dev +img-26.3-alpine-dev: + stage: dev + script: cd 26.3/alpine/3.9/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.3-alpine-dev -t silex/emacs:26-alpine-dev -t silex/emacs:alpine-dev . +img-26.2: + stage: std + script: cd 26.2/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.2 . + needs: + - img-26.2-dev +img-26.2-dev: + stage: dev + script: cd 26.2/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.2-dev . +img-26.2-alpine: + stage: std + script: cd 26.2/alpine/3.9 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.2-alpine . + needs: + - img-26.2-alpine-dev +img-26.2-alpine-dev: + stage: dev + script: cd 26.2/alpine/3.9/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.2-alpine-dev . +img-26.1: + stage: std + script: cd 26.1/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.1 . + needs: + - img-26.1-dev +img-26.1-dev: + stage: dev + script: cd 26.1/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.1-dev . +img-26.1-alpine: + stage: std + script: cd 26.1/alpine/3.9 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.1-alpine . + needs: + - img-26.1-alpine-dev +img-26.1-alpine-dev: + stage: dev + script: cd 26.1/alpine/3.9/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:26.1-alpine-dev . +img-25.3: + stage: std + script: cd 25.3/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.3 -t silex/emacs:25 . + needs: + - img-25.3-dev +img-25.3-dev: + stage: dev + script: cd 25.3/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.3-dev -t silex/emacs:25-dev . +img-25.3-alpine: + stage: std + script: cd 25.3/alpine/3.9 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.3-alpine -t silex/emacs:25-alpine . + needs: + - img-25.3-alpine-dev +img-25.3-alpine-dev: + stage: dev + script: cd 25.3/alpine/3.9/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.3-alpine-dev -t silex/emacs:25-alpine-dev . +img-25.2: + stage: std + script: cd 25.2/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.2 . + needs: + - img-25.2-dev +img-25.2-dev: + stage: dev + script: cd 25.2/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.2-dev . +img-25.2-alpine: + stage: std + script: cd 25.2/alpine/3.9 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.2-alpine . + needs: + - img-25.2-alpine-dev +img-25.2-alpine-dev: + stage: dev + script: cd 25.2/alpine/3.9/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.2-alpine-dev . +img-25.1: + stage: std + script: cd 25.1/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.1 . + needs: + - img-25.1-dev +img-25.1-dev: + stage: dev + script: cd 25.1/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:25.1-dev . +img-24.5: + stage: std + script: cd 24.5/ubuntu/18.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.5 -t silex/emacs:24 . + needs: + - img-24.5-dev +img-24.5-dev: + stage: dev + script: cd 24.5/ubuntu/18.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.5-dev -t silex/emacs:24-dev . +img-24.4: + stage: std + script: cd 24.4/ubuntu/12.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.4 . + needs: + - img-24.4-dev +img-24.4-dev: + stage: dev + script: cd 24.4/ubuntu/12.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.4-dev . +img-24.3: + stage: std + script: cd 24.3/ubuntu/12.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.3 . + needs: + - img-24.3-dev +img-24.3-dev: + stage: dev + script: cd 24.3/ubuntu/12.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.3-dev . +img-24.2: + stage: std + script: cd 24.2/ubuntu/12.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.2 . + needs: + - img-24.2-dev +img-24.2-dev: + stage: dev + script: cd 24.2/ubuntu/12.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.2-dev . +img-24.1: + stage: std + script: cd 24.1/ubuntu/12.04 && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.1 . + needs: + - img-24.1-dev +img-24.1-dev: + stage: dev + script: cd 24.1/ubuntu/12.04/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:24.1-dev . +img-23.4: + stage: std + script: cd 23.4/ubuntu/12.04/bootstrap && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:23.4 -t silex/emacs:23 . + needs: + - img-23.4-dev +img-23.4-dev: + stage: dev + script: cd 23.4/ubuntu/12.04/bootstrap/dev && docker buildx build --platform $DOCKER_PLATFORMS --pull --push -t silex/emacs:23.4-dev -t silex/emacs:23-dev . diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1c12a624..00000000 --- a/.travis.yml +++ /dev/null @@ -1,59 +0,0 @@ -sudo: required -services: docker -language: generic - -cache: - timeout: 900 - directories: - - $HOME/cache - -branches: - only: - - master - -env: - - DOCKER_IMAGES="master-dev master" - - DOCKER_IMAGES="master-alpine-dev master-alpine" - - DOCKER_IMAGES="27.0-dev 27.0" - - DOCKER_IMAGES="27.0-alpine-dev 27.0-alpine" - - DOCKER_IMAGES="26.3-dev 26.3" - - DOCKER_IMAGES="26.3-alpine-dev 26.3-alpine" - - DOCKER_IMAGES="26.2-dev 26.2" - - DOCKER_IMAGES="26.2-alpine-dev 26.2-alpine" - - DOCKER_IMAGES="26.1-dev 26.1" - - DOCKER_IMAGES="26.1-alpine-dev 26.1-alpine" - - DOCKER_IMAGES="25.3-dev 25.3" - - DOCKER_IMAGES="25.3-alpine-dev 25.3-alpine" - - DOCKER_IMAGES="25.2-dev 25.2" - - DOCKER_IMAGES="25.2-alpine-dev 25.2-alpine" - - DOCKER_IMAGES="25.1-dev 25.1" - - DOCKER_IMAGES="24.5-dev 24.5" - - DOCKER_IMAGES="24.4-dev 24.4" - - DOCKER_IMAGES="24.3-dev 24.3" - - DOCKER_IMAGES="24.2-dev 24.2" - - DOCKER_IMAGES="24.1-dev 24.1" - - DOCKER_IMAGES="23.4-dev 23.4" - -install: - - sudo sysctl kernel.randomize_va_space=0 - - source bin/setup-env - - travis_retry images prepare $DOCKER_IMAGES - - travis_retry images build $DOCKER_IMAGES - - images test $DOCKER_IMAGES - - | - # DOCKER_USERNAME is empty for forked repositories - # TRAVIS_PULL_REQUEST is "true" for pull requests - # TRAVIS_BRANCH is the current branch or the PR target branch - # TRAVIS_PULL_REQUEST_BRANCH is the PR source branch - github_branch="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}" - if [[ ! -z "$DOCKER_USERNAME" ]] && [[ "$TRAVIS_PULL_REQUEST" != "true" ]] && \ - [[ "$github_branch" == "master" ]] || [[ "$github_branch" == "staging-"* ]]; then - images push $DOCKER_IMAGES - else - echo ">>> not pushing" - fi - -notifications: - email: - on_success: never - on_failure: never diff --git a/23.4/ubuntu/12.04/bootstrap/Dockerfile b/23.4/ubuntu/12.04/bootstrap/Dockerfile index 67a1f8a7..3f223747 100644 --- a/23.4/ubuntu/12.04/bootstrap/Dockerfile +++ b/23.4/ubuntu/12.04/bootstrap/Dockerfile @@ -1,52 +1,4 @@ -FROM ubuntu:12.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - build-essential \ - curl \ - git \ - gnupg \ - imagemagick \ - ispell \ - libcanberra-gtk-module \ - libdbus-1-dev \ - libgif-dev \ - libgnutls-dev \ - libgpm-dev \ - libgtk2.0-dev \ - libjpeg-dev \ - libmagick++-dev \ - libncurses-dev \ - libpng-dev \ - libtiff-dev \ - libx11-dev \ - libxpm-dev \ - openssh-client \ - python \ - texinfo \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-23.4" -ENV EMACS_VERSION="23.4" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./configure --with-crt-dir=/usr/lib/x86_64-linux-gnu --with-x-toolkit=no && \ - make bootstrap && \ - make && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:23.4-dev FROM ubuntu:12.04 RUN apt-get update && \ diff --git a/23.4/ubuntu/12.04/bootstrap/dev/Dockerfile b/23.4/ubuntu/12.04/bootstrap/dev/Dockerfile new file mode 100644 index 00000000..610f5334 --- /dev/null +++ b/23.4/ubuntu/12.04/bootstrap/dev/Dockerfile @@ -0,0 +1,46 @@ +FROM ubuntu:12.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + build-essential \ + curl \ + git \ + gnupg \ + imagemagick \ + ispell \ + libcanberra-gtk-module \ + libdbus-1-dev \ + libgif-dev \ + libgnutls-dev \ + libgpm-dev \ + libgtk2.0-dev \ + libjpeg-dev \ + libmagick++-dev \ + libncurses-dev \ + libpng-dev \ + libtiff-dev \ + libx11-dev \ + libxpm-dev \ + openssh-client \ + python \ + texinfo \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-23.4" +ENV EMACS_VERSION="23.4" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./configure --with-crt-dir=/usr/lib/x86_64-linux-gnu --with-x-toolkit=no && \ + make bootstrap && \ + make && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +CMD ["emacs"] diff --git a/24.1/ubuntu/12.04/Dockerfile b/24.1/ubuntu/12.04/Dockerfile index a4005151..cb4db909 100644 --- a/24.1/ubuntu/12.04/Dockerfile +++ b/24.1/ubuntu/12.04/Dockerfile @@ -1,55 +1,4 @@ -FROM ubuntu:12.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - build-essential \ - curl \ - git \ - gnupg \ - imagemagick \ - ispell \ - libcanberra-gtk-module \ - libdbus-1-dev \ - libgif-dev \ - libgnutls-dev \ - libgpm-dev \ - libgtk2.0-dev \ - libjpeg-dev \ - libmagick++-dev \ - libncurses-dev \ - libpng-dev \ - libtiff-dev \ - libx11-dev \ - libxpm-dev \ - openssh-client \ - python \ - texinfo \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-24.1" -ENV EMACS_VERSION="24.1" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure && \ - make && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:24.1-dev FROM ubuntu:12.04 RUN apt-get update && \ diff --git a/24.1/ubuntu/12.04/dev/Dockerfile b/24.1/ubuntu/12.04/dev/Dockerfile new file mode 100644 index 00000000..b81bb748 --- /dev/null +++ b/24.1/ubuntu/12.04/dev/Dockerfile @@ -0,0 +1,49 @@ +FROM ubuntu:12.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + build-essential \ + curl \ + git \ + gnupg \ + imagemagick \ + ispell \ + libcanberra-gtk-module \ + libdbus-1-dev \ + libgif-dev \ + libgnutls-dev \ + libgpm-dev \ + libgtk2.0-dev \ + libjpeg-dev \ + libmagick++-dev \ + libncurses-dev \ + libpng-dev \ + libtiff-dev \ + libx11-dev \ + libxpm-dev \ + openssh-client \ + python \ + texinfo \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-24.1" +ENV EMACS_VERSION="24.1" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure && \ + make && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/24.2/ubuntu/12.04/Dockerfile b/24.2/ubuntu/12.04/Dockerfile index ceb70eab..5b62cb5f 100644 --- a/24.2/ubuntu/12.04/Dockerfile +++ b/24.2/ubuntu/12.04/Dockerfile @@ -1,55 +1,4 @@ -FROM ubuntu:12.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - build-essential \ - curl \ - git \ - gnupg \ - imagemagick \ - ispell \ - libcanberra-gtk-module \ - libdbus-1-dev \ - libgif-dev \ - libgnutls-dev \ - libgpm-dev \ - libgtk2.0-dev \ - libjpeg-dev \ - libmagick++-dev \ - libncurses-dev \ - libpng-dev \ - libtiff-dev \ - libx11-dev \ - libxpm-dev \ - openssh-client \ - python \ - texinfo \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-24.2" -ENV EMACS_VERSION="24.2" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure && \ - make && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:24.2-dev FROM ubuntu:12.04 RUN apt-get update && \ diff --git a/24.2/ubuntu/12.04/dev/Dockerfile b/24.2/ubuntu/12.04/dev/Dockerfile new file mode 100644 index 00000000..8dccc8c2 --- /dev/null +++ b/24.2/ubuntu/12.04/dev/Dockerfile @@ -0,0 +1,49 @@ +FROM ubuntu:12.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + build-essential \ + curl \ + git \ + gnupg \ + imagemagick \ + ispell \ + libcanberra-gtk-module \ + libdbus-1-dev \ + libgif-dev \ + libgnutls-dev \ + libgpm-dev \ + libgtk2.0-dev \ + libjpeg-dev \ + libmagick++-dev \ + libncurses-dev \ + libpng-dev \ + libtiff-dev \ + libx11-dev \ + libxpm-dev \ + openssh-client \ + python \ + texinfo \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-24.2" +ENV EMACS_VERSION="24.2" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure && \ + make && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/24.3/ubuntu/12.04/Dockerfile b/24.3/ubuntu/12.04/Dockerfile index 8881c800..036eceec 100644 --- a/24.3/ubuntu/12.04/Dockerfile +++ b/24.3/ubuntu/12.04/Dockerfile @@ -1,55 +1,4 @@ -FROM ubuntu:12.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - build-essential \ - curl \ - git \ - gnupg \ - imagemagick \ - ispell \ - libcanberra-gtk-module \ - libdbus-1-dev \ - libgif-dev \ - libgnutls-dev \ - libgpm-dev \ - libgtk2.0-dev \ - libjpeg-dev \ - libmagick++-dev \ - libncurses-dev \ - libpng-dev \ - libtiff-dev \ - libx11-dev \ - libxpm-dev \ - openssh-client \ - python \ - texinfo \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-24.3" -ENV EMACS_VERSION="24.3" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure && \ - make && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:24.3-dev FROM ubuntu:12.04 RUN apt-get update && \ diff --git a/24.3/ubuntu/12.04/dev/Dockerfile b/24.3/ubuntu/12.04/dev/Dockerfile new file mode 100644 index 00000000..540e596c --- /dev/null +++ b/24.3/ubuntu/12.04/dev/Dockerfile @@ -0,0 +1,49 @@ +FROM ubuntu:12.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + build-essential \ + curl \ + git \ + gnupg \ + imagemagick \ + ispell \ + libcanberra-gtk-module \ + libdbus-1-dev \ + libgif-dev \ + libgnutls-dev \ + libgpm-dev \ + libgtk2.0-dev \ + libjpeg-dev \ + libmagick++-dev \ + libncurses-dev \ + libpng-dev \ + libtiff-dev \ + libx11-dev \ + libxpm-dev \ + openssh-client \ + python \ + texinfo \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-24.3" +ENV EMACS_VERSION="24.3" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure && \ + make && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/24.4/ubuntu/12.04/Dockerfile b/24.4/ubuntu/12.04/Dockerfile index 362a08b0..8cc43a22 100644 --- a/24.4/ubuntu/12.04/Dockerfile +++ b/24.4/ubuntu/12.04/Dockerfile @@ -1,55 +1,4 @@ -FROM ubuntu:12.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - build-essential \ - curl \ - git \ - gnupg \ - imagemagick \ - ispell \ - libcanberra-gtk-module \ - libdbus-1-dev \ - libgif-dev \ - libgnutls-dev \ - libgpm-dev \ - libgtk2.0-dev \ - libjpeg-dev \ - libmagick++-dev \ - libncurses-dev \ - libpng-dev \ - libtiff-dev \ - libx11-dev \ - libxpm-dev \ - openssh-client \ - python \ - texinfo \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-24.4" -ENV EMACS_VERSION="24.4" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure && \ - make && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:24.4-dev FROM ubuntu:12.04 RUN apt-get update && \ diff --git a/24.4/ubuntu/12.04/dev/Dockerfile b/24.4/ubuntu/12.04/dev/Dockerfile new file mode 100644 index 00000000..26bf7985 --- /dev/null +++ b/24.4/ubuntu/12.04/dev/Dockerfile @@ -0,0 +1,49 @@ +FROM ubuntu:12.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + build-essential \ + curl \ + git \ + gnupg \ + imagemagick \ + ispell \ + libcanberra-gtk-module \ + libdbus-1-dev \ + libgif-dev \ + libgnutls-dev \ + libgpm-dev \ + libgtk2.0-dev \ + libjpeg-dev \ + libmagick++-dev \ + libncurses-dev \ + libpng-dev \ + libtiff-dev \ + libx11-dev \ + libxpm-dev \ + openssh-client \ + python \ + texinfo \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-24.4" +ENV EMACS_VERSION="24.4" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure && \ + make && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/24.5/ubuntu/18.04/Dockerfile b/24.5/ubuntu/18.04/Dockerfile index 114d8cff..2ba68d53 100644 --- a/24.5/ubuntu/18.04/Dockerfile +++ b/24.5/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-24.5" -ENV EMACS_VERSION="24.5" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure CFLAGS=-no-pie && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:24.5-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/24.5/ubuntu/18.04/dev/Dockerfile b/24.5/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..4df325e3 --- /dev/null +++ b/24.5/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-24.5" +ENV EMACS_VERSION="24.5" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure CFLAGS=-no-pie && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/25.1/ubuntu/18.04/Dockerfile b/25.1/ubuntu/18.04/Dockerfile index c5683bf7..68425439 100644 --- a/25.1/ubuntu/18.04/Dockerfile +++ b/25.1/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-25.1" -ENV EMACS_VERSION="25.1" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure CFLAGS=-no-pie --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:25.1-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/25.1/ubuntu/18.04/dev/Dockerfile b/25.1/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..47c32aba --- /dev/null +++ b/25.1/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-25.1" +ENV EMACS_VERSION="25.1" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure CFLAGS=-no-pie --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/25.2/alpine/3.9/Dockerfile b/25.2/alpine/3.9/Dockerfile index 7a679edf..4070e65d 100644 --- a/25.2/alpine/3.9/Dockerfile +++ b/25.2/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="emacs-25.2" -ENV EMACS_VERSION="25.2" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:25.2-alpine-dev FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="emacs-25.2" ENV EMACS_VERSION="25.2" diff --git a/25.2/alpine/3.9/dev/Dockerfile b/25.2/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..ddeb6175 --- /dev/null +++ b/25.2/alpine/3.9/dev/Dockerfile @@ -0,0 +1,60 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="emacs-25.2" +ENV EMACS_VERSION="25.2" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + curl -sSLOJ "https://git.alpinelinux.org/aports/plain/community/emacs/gamedir.patch?h=3.7-stable" && \ + curl -sSLOJ "https://git.alpinelinux.org/aports/plain/community/emacs/musl.patch?h=3.7-stable" && \ + curl -sSLOJ "https://git.alpinelinux.org/aports/plain/community/emacs/noaslr-dump.patch?h=3.7-stable" && \ + git apply *.patch && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/25.2/alpine/3.9/patches/gamedir.patch b/25.2/alpine/3.9/patches/gamedir.patch deleted file mode 100644 index c1bcbadd..00000000 --- a/25.2/alpine/3.9/patches/gamedir.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urw emacs-25.1/lib-src/Makefile.in emacs-25.1-gamedir/lib-src/Makefile.in ---- emacs-25.1/lib-src/Makefile.in 2016-06-29 09:49:18.000000000 +0000 -+++ emacs-25.1-gamedir/lib-src/Makefile.in 2016-10-24 15:37:46.718699816 +0000 -@@ -414,7 +414,6 @@ - - update-game-score${EXEEXT}: ${srcdir}/update-game-score.c $(NTLIB) $(config_h) - $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} \ -- -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \ - $< $(NTLIB) $(LOADLIBES) -o $@ - - emacsclient.res: ../nt/emacsclient.rc $(NTINC)/../icons/emacs.ico diff --git a/25.2/alpine/3.9/patches/musl.patch b/25.2/alpine/3.9/patches/musl.patch deleted file mode 100644 index 7841d04e..00000000 --- a/25.2/alpine/3.9/patches/musl.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- emacs-25.1/configure.ac 2016-07-25 07:08:36.000000000 +0000 -+++ emacs-25.1-musl/configure.ac 2016-10-24 15:38:00.518625055 +0000 -@@ -2133,7 +2133,7 @@ - - system_malloc=$emacs_cv_sanitize_address - --hybrid_malloc= -+hybrid_malloc=yes - - case "$opsys" in - ## darwin ld insists on the use of malloc routines in the System framework. ---- emacs-25.1/src/Makefile.in 2016-06-29 09:49:20.000000000 +0000 -+++ emacs-25.1-musl/src/Makefile.in 2016-10-24 15:38:00.518625055 +0000 -@@ -398,6 +398,7 @@ - doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ - $(XWIDGETS_OBJ) \ - profiler.o decompress.o \ -+ sheap.o \ - $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ - $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) - obj = $(base_obj) $(NS_OBJC_OBJ) ---- emacs-25.1/src/gmalloc.c 2016-06-29 09:49:22.000000000 +0000 -+++ emacs-25.1-musl/src/gmalloc.c 2016-10-24 15:38:00.518625055 +0000 -@@ -70,7 +70,7 @@ - #define aligned_alloc galigned_alloc - #define free gfree - --#ifdef CYGWIN -+//#ifdef CYGWIN - extern void *bss_sbrk (ptrdiff_t size); - extern int bss_sbrk_did_unexec; - extern char bss_sbrk_buffer[]; -@@ -78,7 +78,7 @@ - #define DUMPED bss_sbrk_did_unexec - #define ALLOCATED_BEFORE_DUMPING(P) \ - ((P) < bss_sbrk_buffer_end && (P) >= (void *) bss_sbrk_buffer) --#endif -+//#endif - - #ifdef __cplusplus - extern "C" -@@ -1523,16 +1523,19 @@ - __default_morecore (ptrdiff_t increment) - { - void *result; --#if defined (CYGWIN) -+//#if defined (CYGWIN) - if (!DUMPED) - { - return bss_sbrk (increment); - } --#endif -+//#endif -+#if 0 - result = (void *) __sbrk (increment); - if (result == (void *) -1) - return NULL; - return result; -+#endif -+ return NULL; - } - /* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. - ---- emacs-25.1/src/print.c 2016-06-29 09:49:22.000000000 +0000 -+++ emacs-25.1-musl/src/print.c 2016-10-24 15:38:00.518625055 +0000 -@@ -775,7 +775,7 @@ - print_output_debug_flag = x; - } - --#if defined (GNU_LINUX) -+#if defined (GNU_LINUX) && defined (__GLIBC__) - - /* This functionality is not vitally important in general, so we rely on - non-portable ability to use stderr as lvalue. */ ---- emacs-25.1/src/unexelf.c 2016-06-29 09:49:23.000000000 +0000 -+++ emacs-25.1-musl/src/unexelf.c 2016-10-24 15:38:00.518625055 +0000 -@@ -227,6 +227,9 @@ - off_t new_file_size; - void *new_break; - -+ extern int bss_sbrk_did_unexec; -+ bss_sbrk_did_unexec = 1; -+ - /* Pointers to the base of the image of the two files. */ - caddr_t old_base, new_base; - - diff --git a/25.2/alpine/3.9/patches/noaslr-dump.patch b/25.2/alpine/3.9/patches/noaslr-dump.patch deleted file mode 100644 index b7dfcb5e..00000000 --- a/25.2/alpine/3.9/patches/noaslr-dump.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -urw emacs-25.1/src/Makefile.in emacs-25.1-noaslr-dump/src/Makefile.in ---- emacs-25.1/src/Makefile.in 2016-06-29 09:49:20.000000000 +0000 -+++ emacs-25.1-noaslr-dump/src/Makefile.in 2016-10-24 15:38:10.365238378 +0000 -@@ -532,6 +532,7 @@ - ifeq ($(CANNOT_DUMP),yes) - ln -f temacs$(EXEEXT) $@ - else -+ paxmark -r temacs$(EXEEXT) - LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump - ifneq ($(PAXCTL_dumped),) - $(PAXCTL_dumped) $@ -@@ -737,6 +738,7 @@ - ifeq ($(CANNOT_DUMP),yes) - ln -f temacs$(EXEEXT) $@ - else -+ paxmark -r temacs$(EXEEXT) - $(RUN_TEMACS) --batch --load loadup bootstrap - ifneq ($(PAXCTL_dumped),) - $(PAXCTL_dumped) emacs$(EXEEXT) -Only in emacs-25.1-noaslr-dump/src: Makefile.in.orig diff --git a/25.2/ubuntu/18.04/Dockerfile b/25.2/ubuntu/18.04/Dockerfile index 2b23516e..10acd305 100644 --- a/25.2/ubuntu/18.04/Dockerfile +++ b/25.2/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-25.2" -ENV EMACS_VERSION="25.2" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:25.2-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/25.2/ubuntu/18.04/dev/Dockerfile b/25.2/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..89287f85 --- /dev/null +++ b/25.2/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-25.2" +ENV EMACS_VERSION="25.2" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/25.3/alpine/3.9/Dockerfile b/25.3/alpine/3.9/Dockerfile index f696df67..4d9b6bf8 100644 --- a/25.3/alpine/3.9/Dockerfile +++ b/25.3/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="emacs-25.3" -ENV EMACS_VERSION="25.3" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:25.3-alpine-dev FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="emacs-25.3" ENV EMACS_VERSION="25.3" diff --git a/25.3/alpine/3.9/dev/Dockerfile b/25.3/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..2db95662 --- /dev/null +++ b/25.3/alpine/3.9/dev/Dockerfile @@ -0,0 +1,60 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="emacs-25.3" +ENV EMACS_VERSION="25.3" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + curl -sSLOJ "https://git.alpinelinux.org/aports/plain/community/emacs/gamedir.patch?h=3.7-stable" && \ + curl -sSLOJ "https://git.alpinelinux.org/aports/plain/community/emacs/musl.patch?h=3.7-stable" && \ + curl -sSLOJ "https://git.alpinelinux.org/aports/plain/community/emacs/noaslr-dump.patch?h=3.7-stable" && \ + git apply *.patch && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/25.3/alpine/3.9/patches/gamedir.patch b/25.3/alpine/3.9/patches/gamedir.patch deleted file mode 100644 index c1bcbadd..00000000 --- a/25.3/alpine/3.9/patches/gamedir.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urw emacs-25.1/lib-src/Makefile.in emacs-25.1-gamedir/lib-src/Makefile.in ---- emacs-25.1/lib-src/Makefile.in 2016-06-29 09:49:18.000000000 +0000 -+++ emacs-25.1-gamedir/lib-src/Makefile.in 2016-10-24 15:37:46.718699816 +0000 -@@ -414,7 +414,6 @@ - - update-game-score${EXEEXT}: ${srcdir}/update-game-score.c $(NTLIB) $(config_h) - $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} \ -- -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \ - $< $(NTLIB) $(LOADLIBES) -o $@ - - emacsclient.res: ../nt/emacsclient.rc $(NTINC)/../icons/emacs.ico diff --git a/25.3/alpine/3.9/patches/musl.patch b/25.3/alpine/3.9/patches/musl.patch deleted file mode 100644 index 7841d04e..00000000 --- a/25.3/alpine/3.9/patches/musl.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- emacs-25.1/configure.ac 2016-07-25 07:08:36.000000000 +0000 -+++ emacs-25.1-musl/configure.ac 2016-10-24 15:38:00.518625055 +0000 -@@ -2133,7 +2133,7 @@ - - system_malloc=$emacs_cv_sanitize_address - --hybrid_malloc= -+hybrid_malloc=yes - - case "$opsys" in - ## darwin ld insists on the use of malloc routines in the System framework. ---- emacs-25.1/src/Makefile.in 2016-06-29 09:49:20.000000000 +0000 -+++ emacs-25.1-musl/src/Makefile.in 2016-10-24 15:38:00.518625055 +0000 -@@ -398,6 +398,7 @@ - doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ - $(XWIDGETS_OBJ) \ - profiler.o decompress.o \ -+ sheap.o \ - $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ - $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) - obj = $(base_obj) $(NS_OBJC_OBJ) ---- emacs-25.1/src/gmalloc.c 2016-06-29 09:49:22.000000000 +0000 -+++ emacs-25.1-musl/src/gmalloc.c 2016-10-24 15:38:00.518625055 +0000 -@@ -70,7 +70,7 @@ - #define aligned_alloc galigned_alloc - #define free gfree - --#ifdef CYGWIN -+//#ifdef CYGWIN - extern void *bss_sbrk (ptrdiff_t size); - extern int bss_sbrk_did_unexec; - extern char bss_sbrk_buffer[]; -@@ -78,7 +78,7 @@ - #define DUMPED bss_sbrk_did_unexec - #define ALLOCATED_BEFORE_DUMPING(P) \ - ((P) < bss_sbrk_buffer_end && (P) >= (void *) bss_sbrk_buffer) --#endif -+//#endif - - #ifdef __cplusplus - extern "C" -@@ -1523,16 +1523,19 @@ - __default_morecore (ptrdiff_t increment) - { - void *result; --#if defined (CYGWIN) -+//#if defined (CYGWIN) - if (!DUMPED) - { - return bss_sbrk (increment); - } --#endif -+//#endif -+#if 0 - result = (void *) __sbrk (increment); - if (result == (void *) -1) - return NULL; - return result; -+#endif -+ return NULL; - } - /* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. - ---- emacs-25.1/src/print.c 2016-06-29 09:49:22.000000000 +0000 -+++ emacs-25.1-musl/src/print.c 2016-10-24 15:38:00.518625055 +0000 -@@ -775,7 +775,7 @@ - print_output_debug_flag = x; - } - --#if defined (GNU_LINUX) -+#if defined (GNU_LINUX) && defined (__GLIBC__) - - /* This functionality is not vitally important in general, so we rely on - non-portable ability to use stderr as lvalue. */ ---- emacs-25.1/src/unexelf.c 2016-06-29 09:49:23.000000000 +0000 -+++ emacs-25.1-musl/src/unexelf.c 2016-10-24 15:38:00.518625055 +0000 -@@ -227,6 +227,9 @@ - off_t new_file_size; - void *new_break; - -+ extern int bss_sbrk_did_unexec; -+ bss_sbrk_did_unexec = 1; -+ - /* Pointers to the base of the image of the two files. */ - caddr_t old_base, new_base; - - diff --git a/25.3/alpine/3.9/patches/noaslr-dump.patch b/25.3/alpine/3.9/patches/noaslr-dump.patch deleted file mode 100644 index b7dfcb5e..00000000 --- a/25.3/alpine/3.9/patches/noaslr-dump.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -urw emacs-25.1/src/Makefile.in emacs-25.1-noaslr-dump/src/Makefile.in ---- emacs-25.1/src/Makefile.in 2016-06-29 09:49:20.000000000 +0000 -+++ emacs-25.1-noaslr-dump/src/Makefile.in 2016-10-24 15:38:10.365238378 +0000 -@@ -532,6 +532,7 @@ - ifeq ($(CANNOT_DUMP),yes) - ln -f temacs$(EXEEXT) $@ - else -+ paxmark -r temacs$(EXEEXT) - LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump - ifneq ($(PAXCTL_dumped),) - $(PAXCTL_dumped) $@ -@@ -737,6 +738,7 @@ - ifeq ($(CANNOT_DUMP),yes) - ln -f temacs$(EXEEXT) $@ - else -+ paxmark -r temacs$(EXEEXT) - $(RUN_TEMACS) --batch --load loadup bootstrap - ifneq ($(PAXCTL_dumped),) - $(PAXCTL_dumped) emacs$(EXEEXT) -Only in emacs-25.1-noaslr-dump/src: Makefile.in.orig diff --git a/25.3/ubuntu/18.04/Dockerfile b/25.3/ubuntu/18.04/Dockerfile index 2faf71a5..bd036468 100644 --- a/25.3/ubuntu/18.04/Dockerfile +++ b/25.3/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-25.3" -ENV EMACS_VERSION="25.3" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:25.3-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/25.3/ubuntu/18.04/dev/Dockerfile b/25.3/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..4a2448c1 --- /dev/null +++ b/25.3/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-25.3" +ENV EMACS_VERSION="25.3" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/26.1/alpine/3.9/Dockerfile b/26.1/alpine/3.9/Dockerfile index cdb78783..df96b527 100644 --- a/26.1/alpine/3.9/Dockerfile +++ b/26.1/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="emacs-26.1" -ENV EMACS_VERSION="26.1" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:26.1-alpine-dev FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="emacs-26.1" ENV EMACS_VERSION="26.1" diff --git a/26.1/alpine/3.9/dev/Dockerfile b/26.1/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..b90b38a6 --- /dev/null +++ b/26.1/alpine/3.9/dev/Dockerfile @@ -0,0 +1,56 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="emacs-26.1" +ENV EMACS_VERSION="26.1" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/26.1/ubuntu/18.04/Dockerfile b/26.1/ubuntu/18.04/Dockerfile index c49e4b94..b8662fd5 100644 --- a/26.1/ubuntu/18.04/Dockerfile +++ b/26.1/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-26.1" -ENV EMACS_VERSION="26.1" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:26.1-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/26.1/ubuntu/18.04/dev/Dockerfile b/26.1/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..097db3a3 --- /dev/null +++ b/26.1/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-26.1" +ENV EMACS_VERSION="26.1" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/26.2/alpine/3.9/Dockerfile b/26.2/alpine/3.9/Dockerfile index 9e0b0ba1..0de02c17 100644 --- a/26.2/alpine/3.9/Dockerfile +++ b/26.2/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="emacs-26.2" -ENV EMACS_VERSION="26.2" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:26.2-alpine-dev FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="emacs-26.2" ENV EMACS_VERSION="26.2" diff --git a/26.2/alpine/3.9/dev/Dockerfile b/26.2/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..1c801944 --- /dev/null +++ b/26.2/alpine/3.9/dev/Dockerfile @@ -0,0 +1,56 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="emacs-26.2" +ENV EMACS_VERSION="26.2" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/26.2/ubuntu/18.04/Dockerfile b/26.2/ubuntu/18.04/Dockerfile index 4b0b4280..0da0c884 100644 --- a/26.2/ubuntu/18.04/Dockerfile +++ b/26.2/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-26.2" -ENV EMACS_VERSION="26.2" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:26.2-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/26.2/ubuntu/18.04/dev/Dockerfile b/26.2/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..d9055d82 --- /dev/null +++ b/26.2/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-26.2" +ENV EMACS_VERSION="26.2" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/26.3/alpine/3.9/Dockerfile b/26.3/alpine/3.9/Dockerfile index 79e9b6c7..8abf26dd 100644 --- a/26.3/alpine/3.9/Dockerfile +++ b/26.3/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="emacs-26.3" -ENV EMACS_VERSION="26.3" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:26.3-alpine-dev FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="emacs-26.3" ENV EMACS_VERSION="26.3" diff --git a/26.3/alpine/3.9/dev/Dockerfile b/26.3/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..2fef029e --- /dev/null +++ b/26.3/alpine/3.9/dev/Dockerfile @@ -0,0 +1,56 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="emacs-26.3" +ENV EMACS_VERSION="26.3" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/26.3/ubuntu/18.04/Dockerfile b/26.3/ubuntu/18.04/Dockerfile index fdb62cb3..8853ee47 100644 --- a/26.3/ubuntu/18.04/Dockerfile +++ b/26.3/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-26.3" -ENV EMACS_VERSION="26.3" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:26.3-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/26.3/ubuntu/18.04/dev/Dockerfile b/26.3/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..13a20ef0 --- /dev/null +++ b/26.3/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-26.3" +ENV EMACS_VERSION="26.3" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/27.0/alpine/3.9/Dockerfile b/27.0/alpine/3.9/Dockerfile index c5188824..2d091718 100644 --- a/27.0/alpine/3.9/Dockerfile +++ b/27.0/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="emacs-27.0.91" -ENV EMACS_VERSION="27.0" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:27.0-alpine-dev FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="emacs-27.0.91" ENV EMACS_VERSION="27.0" diff --git a/27.0/alpine/3.9/dev/Dockerfile b/27.0/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..67487b42 --- /dev/null +++ b/27.0/alpine/3.9/dev/Dockerfile @@ -0,0 +1,56 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="emacs-27.0.91" +ENV EMACS_VERSION="27.0" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/27.0/ubuntu/18.04/Dockerfile b/27.0/ubuntu/18.04/Dockerfile index 4f56ee8e..5b5ea61d 100644 --- a/27.0/ubuntu/18.04/Dockerfile +++ b/27.0/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="emacs-27.0.91" -ENV EMACS_VERSION="27.0" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:27.0-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/27.0/ubuntu/18.04/dev/Dockerfile b/27.0/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..e4390d06 --- /dev/null +++ b/27.0/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="emacs-27.0.91" +ENV EMACS_VERSION="27.0" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/README.md b/README.md index 7a1b77b8..e63ea5cf 100644 --- a/README.md +++ b/README.md @@ -13,47 +13,47 @@ This project provides different docker images: # Tags - [`master`](https://github.com/Silex/docker-emacs/blob/master/master/ubuntu/18.04/Dockerfile) -- [`master-dev`](https://github.com/Silex/docker-emacs/blob/master/master/ubuntu/18.04/Dockerfile) +- [`master-dev`](https://github.com/Silex/docker-emacs/blob/master/master/ubuntu/18.04/dev/Dockerfile) - [`master-alpine`](https://github.com/Silex/docker-emacs/blob/master/master/alpine/3.9/Dockerfile) -- [`master-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/master/alpine/3.9/Dockerfile) +- [`master-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/master/alpine/3.9/dev/Dockerfile) - [`27.0`, `27`](https://github.com/Silex/docker-emacs/blob/master/27.0/ubuntu/18.04/Dockerfile) -- [`27.0-dev`, `27-dev`](https://github.com/Silex/docker-emacs/blob/master/27.0/ubuntu/18.04/Dockerfile) +- [`27.0-dev`, `27-dev`](https://github.com/Silex/docker-emacs/blob/master/27.0/ubuntu/18.04/dev/Dockerfile) - [`27.0-alpine`, `27-alpine`](https://github.com/Silex/docker-emacs/blob/master/27.0/alpine/3.9/Dockerfile) -- [`27.0-alpine-dev`, `27-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/27.0/alpine/3.9/Dockerfile) +- [`27.0-alpine-dev`, `27-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/27.0/alpine/3.9/dev/Dockerfile) - [`26.3`, `26`, `latest`](https://github.com/Silex/docker-emacs/blob/master/26.3/ubuntu/18.04/Dockerfile) -- [`26.3-dev`, `26-dev`, `dev`](https://github.com/Silex/docker-emacs/blob/master/26.3/ubuntu/18.04/Dockerfile) +- [`26.3-dev`, `26-dev`, `dev`](https://github.com/Silex/docker-emacs/blob/master/26.3/ubuntu/18.04/dev/Dockerfile) - [`26.3-alpine`, `26-alpine`, `alpine`](https://github.com/Silex/docker-emacs/blob/master/26.3/alpine/3.9/Dockerfile) -- [`26.3-alpine-dev`, `26-alpine-dev`, `alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/26.3/alpine/3.9/Dockerfile) +- [`26.3-alpine-dev`, `26-alpine-dev`, `alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/26.3/alpine/3.9/dev/Dockerfile) - [`26.2`](https://github.com/Silex/docker-emacs/blob/master/26.2/ubuntu/18.04/Dockerfile) -- [`26.2-dev`](https://github.com/Silex/docker-emacs/blob/master/26.2/ubuntu/18.04/Dockerfile) +- [`26.2-dev`](https://github.com/Silex/docker-emacs/blob/master/26.2/ubuntu/18.04/dev/Dockerfile) - [`26.2-alpine`](https://github.com/Silex/docker-emacs/blob/master/26.2/alpine/3.9/Dockerfile) -- [`26.2-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/26.2/alpine/3.9/Dockerfile) +- [`26.2-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/26.2/alpine/3.9/dev/Dockerfile) - [`26.1`](https://github.com/Silex/docker-emacs/blob/master/26.1/ubuntu/18.04/Dockerfile) -- [`26.1-dev`](https://github.com/Silex/docker-emacs/blob/master/26.1/ubuntu/18.04/Dockerfile) +- [`26.1-dev`](https://github.com/Silex/docker-emacs/blob/master/26.1/ubuntu/18.04/dev/Dockerfile) - [`26.1-alpine`](https://github.com/Silex/docker-emacs/blob/master/26.1/alpine/3.9/Dockerfile) -- [`26.1-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/26.1/alpine/3.9/Dockerfile) +- [`26.1-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/26.1/alpine/3.9/dev/Dockerfile) - [`25.3`, `25`](https://github.com/Silex/docker-emacs/blob/master/25.3/ubuntu/18.04/Dockerfile) -- [`25.3-dev`, `25-dev`](https://github.com/Silex/docker-emacs/blob/master/25.3/ubuntu/18.04/Dockerfile) +- [`25.3-dev`, `25-dev`](https://github.com/Silex/docker-emacs/blob/master/25.3/ubuntu/18.04/dev/Dockerfile) - [`25.3-alpine`, `25-alpine`](https://github.com/Silex/docker-emacs/blob/master/25.3/alpine/3.9/Dockerfile) -- [`25.3-alpine-dev`, `25-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/25.3/alpine/3.9/Dockerfile) +- [`25.3-alpine-dev`, `25-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/25.3/alpine/3.9/dev/Dockerfile) - [`25.2`](https://github.com/Silex/docker-emacs/blob/master/25.2/ubuntu/18.04/Dockerfile) -- [`25.2-dev`](https://github.com/Silex/docker-emacs/blob/master/25.2/ubuntu/18.04/Dockerfile) +- [`25.2-dev`](https://github.com/Silex/docker-emacs/blob/master/25.2/ubuntu/18.04/dev/Dockerfile) - [`25.2-alpine`](https://github.com/Silex/docker-emacs/blob/master/25.2/alpine/3.9/Dockerfile) -- [`25.2-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/25.2/alpine/3.9/Dockerfile) +- [`25.2-alpine-dev`](https://github.com/Silex/docker-emacs/blob/master/25.2/alpine/3.9/dev/Dockerfile) - [`25.1`](https://github.com/Silex/docker-emacs/blob/master/25.1/ubuntu/18.04/Dockerfile) -- [`25.1-dev`](https://github.com/Silex/docker-emacs/blob/master/25.1/ubuntu/18.04/Dockerfile) +- [`25.1-dev`](https://github.com/Silex/docker-emacs/blob/master/25.1/ubuntu/18.04/dev/Dockerfile) - [`24.5`, `24`](https://github.com/Silex/docker-emacs/blob/master/24.5/ubuntu/18.04/Dockerfile) -- [`24.5-dev`, `24-dev`](https://github.com/Silex/docker-emacs/blob/master/24.5/ubuntu/18.04/Dockerfile) +- [`24.5-dev`, `24-dev`](https://github.com/Silex/docker-emacs/blob/master/24.5/ubuntu/18.04/dev/Dockerfile) - [`24.4`](https://github.com/Silex/docker-emacs/blob/master/24.4/ubuntu/12.04/Dockerfile) -- [`24.4-dev`](https://github.com/Silex/docker-emacs/blob/master/24.4/ubuntu/12.04/Dockerfile) +- [`24.4-dev`](https://github.com/Silex/docker-emacs/blob/master/24.4/ubuntu/12.04/dev/Dockerfile) - [`24.3`](https://github.com/Silex/docker-emacs/blob/master/24.3/ubuntu/12.04/Dockerfile) -- [`24.3-dev`](https://github.com/Silex/docker-emacs/blob/master/24.3/ubuntu/12.04/Dockerfile) +- [`24.3-dev`](https://github.com/Silex/docker-emacs/blob/master/24.3/ubuntu/12.04/dev/Dockerfile) - [`24.2`](https://github.com/Silex/docker-emacs/blob/master/24.2/ubuntu/12.04/Dockerfile) -- [`24.2-dev`](https://github.com/Silex/docker-emacs/blob/master/24.2/ubuntu/12.04/Dockerfile) +- [`24.2-dev`](https://github.com/Silex/docker-emacs/blob/master/24.2/ubuntu/12.04/dev/Dockerfile) - [`24.1`](https://github.com/Silex/docker-emacs/blob/master/24.1/ubuntu/12.04/Dockerfile) -- [`24.1-dev`](https://github.com/Silex/docker-emacs/blob/master/24.1/ubuntu/12.04/Dockerfile) +- [`24.1-dev`](https://github.com/Silex/docker-emacs/blob/master/24.1/ubuntu/12.04/dev/Dockerfile) - [`23.4`, `23`](https://github.com/Silex/docker-emacs/blob/master/23.4/ubuntu/12.04/bootstrap/Dockerfile) -- [`23.4-dev`, `23-dev`](https://github.com/Silex/docker-emacs/blob/master/23.4/ubuntu/12.04/bootstrap/Dockerfile) +- [`23.4-dev`, `23-dev`](https://github.com/Silex/docker-emacs/blob/master/23.4/ubuntu/12.04/bootstrap/dev/Dockerfile) # Usage diff --git a/bin/generate b/bin/generate new file mode 100755 index 00000000..33291dd1 --- /dev/null +++ b/bin/generate @@ -0,0 +1,152 @@ +#!/usr/bin/env ruby + +require 'pty' +require 'yaml' +require 'find' +require 'ostruct' +require 'optparse' +require 'fileutils' + +class Object + def deep_clone + Marshal.load(Marshal.dump(self)) + end +end + +class String + def quotify + format('"%s"', self) + end + + def backquotify + format('`%s`', self) + end +end + +class Image < OpenStruct + def self.load(file) + YAML.load_file(file).map do |h| + Image.new({ cache: true }.merge(h)) + end + end + + def tag + tags.first + end + + def aliases + tags[1..-1] + end + + def version + # Ensure version is a string + super.to_s + end + + def directory + File.join(version, template) + end + + def dockerfile + File.join(directory, 'Dockerfile') + end + + def tags + # Ensure tags are strings + super.map(&:to_s) + end + + def gitlab_stage + depends ? 'std' : 'dev' + end +end + +def generate(options) + images = Image.load(options[:source]) + generate_dockerfiles(images) + generate_readme(images) + generate_gitlab(images) +end + +def make_patches_string(urls) + return '' unless urls + commands = urls.map{ |s| format('curl -sSLOJ "%s"', s) } + commands << 'git apply *.patch' + commands.map!{ |s| format(" %s && \\\n", s) } + commands.join +end + +def generate_dockerfiles(images) + puts '>>> generating dockerfiles' + images.each do |image| + FileUtils.rm_rf(image.directory) + FileUtils.mkdir_p(image.directory) + content = File.read(File.join('templates', image.template, 'Dockerfile')) + content.gsub!('{{DEPENDS}}', image.depends.to_s) + content.gsub!('{{BRANCH}}', image.branch.to_s) + content.gsub!('{{VERSION}}', image.version.to_s) + content.gsub!(/ *{{PATCHES}}\n/, make_patches_string(image.patches)) + content.gsub!('{{CONFIGURE}}', image.configure ? format(' %s', image.configure) : '') + File.write(image.dockerfile, content) + end +end + +def generate_readme(images) + puts '>>> generating README.md' + tags = images.map do |image| + format('- [%s](https://github.com/Silex/docker-emacs/blob/master/%s)', + image.tags.map(&:backquotify).join(', '), + image.dockerfile) + end.flatten + content = File.read('templates/README.md') + content.gsub!('{{TAGS}}', tags.join("\n")) + File.write('README.md', content) +end + +def generate_gitlab(images) + puts '>>> generating .gitlab-ci.yml' + h = YAML.load_file('templates/.gitlab-ci.yml') + template = h.delete('template') + images.each do |image| + params = template.deep_clone + params['stage'] = image.gitlab_stage + params['script'].gsub!('{{DIRECTORY}}', image.directory) + params['script'].gsub!('{{CACHE}}', image.cache ? '' : '--no-cache ') + params['script'].gsub!('{{TAGS}}', image.tags.map{ |s| format('-t silex/emacs:%s', s) }.join(' ')) + if image.depends + params['needs'] = [format('img-%s', image.depends)] + else + params.delete('needs') + end + name = format('img-%s', image.tag) + h[name] = params + end + File.write('.gitlab-ci.yml', h.to_yaml(line_width: -1)) +end + +begin + options = { source: 'images.yml' } + parser = OptionParser.new do |opts| + opts.banner = 'Usage: generate' + opts.separator '' + opts.separator 'Generate the Dockerfiles, README and gitlab files.' + opts.separator '' + opts.separator 'Options:' + opts.on('--source FILE', format('Sets the images source (default %s)', options[:source])) do |source| + options[:source] = source + end + end + parser.parse! + + Dir.chdir(File.join(File.dirname(__FILE__), '..')) do + generate(options) + end +rescue OptionParser::ParseError => e + $stderr.puts e.message + $stderr.puts + $stderr.puts parser.help + exit(1) +rescue => e + $stderr.puts(e.message) + exit(1) +end diff --git a/bin/images b/bin/images deleted file mode 100755 index 3a454cac..00000000 --- a/bin/images +++ /dev/null @@ -1,301 +0,0 @@ -#!/usr/bin/env ruby - -require 'pty' -require 'yaml' -require 'find' -require 'ostruct' -require 'optparse' -require 'fileutils' - -class String - def quotify - format('"%s"', self) - end - - def backquotify - format('`%s`', self) - end -end - -class Image < OpenStruct - def self.load(file) - YAML.load_file(file).map do |h| - Image.new(h) - end - end - - def tag - tags.first - end - - def aliases - tags[1..-1] - end - - def version - # Ensure version is a string - super.to_s - end - - def directory - File.join(version, template) - end - - def dockerfile - File.join(directory, 'Dockerfile') - end - - def tags - # Ensure tags are strings - super.map(&:to_s) - end -end - -def run!(*args) - command = format(*args) - puts '>>> running: %s' % command - raise format('>>> error %d', $?.exitstatus) unless system(command) -end - -def find_executable(command) - return command if system(format('which %s >/dev/null 2>&1', command)) - return Find.find(File.dirname(__FILE__)).find{ |path| File.basename(path) == command } -end - -def with_images(source, tags) - images = Image.load(source) - unless tags.empty? - filtered = tags.map { |s| images.find{ |i| i.tags.include?(s) } } - unknown = tags.select.with_index { |s, i| filtered[i].nil? } - raise OptionParser::InvalidArgument.new(format('the following tag(s) do not exist: %s', unknown.join(', '))) unless unknown.empty? - images = filtered.compact - end - return images unless block_given? - images.each{ |i| yield i } -end - -def prepare(options, tags) - raise OptionParser::MissingArgument.new('git-repository not set.') if options[:git_repository].nil? - raise OptionParser::MissingArgument.new('travis-cache not set.') if options[:travis_cache].nil? - - with_images(options[:source], tags) do |image| - puts format('>>> syncing branch %s with repository %s', image.branch, options[:git_repository]) - directory = File.join(options[:travis_cache], image.branch) - run!('%s "%s" "%s" "%s"', find_executable('git-sync'), options[:git_repository], image.branch, directory) - - # Copy updated sources to docker build context, and then remove - # the .git directory so it doesn't affect cache calculations - puts format('>>> copying source to %s', image.directory) - source_directory = File.join(image.directory, 'source') - FileUtils.rm_rf(source_directory) - FileUtils.cp_r(directory, source_directory, preserve: true) - FileUtils.rm_rf(File.join(source_directory, '.git')) - - FileUtils.cp_r(File.join(image.directory, 'patches'), source_directory) if image.patches - end -end - -def build(options, tags) - raise OptionParser::MissingArgument.new('docker-repository not set.') if options[:docker_repository].nil? - - with_images(options[:source], tags) do |image| - # Pull previous image in order to use it as cache in the build - docker_image = format('%s:%s', options[:docker_repository], image.tag) - puts format('>>> pulling %s', docker_image) - run!('docker pull "%s"', docker_image) rescue nil - - # Build the new image - Dir.chdir(image.directory) do - puts format('>>> building %s from source %s (target: %s)', docker_image, image.branch, image.target) - caches = `docker images -q`.split.map{ |s| format('--cache-from %s', s) }.join(' ') - run!('docker build --pull --tag "%s" --target="%s" %s .', docker_image, image.target.to_s, caches) - end - - # Assign the rest of the tags - tags = image.aliases.map{ |tag| format('%s:%s', options[:docker_repository], tag) } - tags.each do |img| - puts format('>>> tagging %s', img) - run!('docker tag "%s" "%s"', docker_image, img) - end - end -end - -def push(options, tags) - raise OptionParser::MissingArgument.new('docker-repository not set.') if options[:docker_repository].nil? - raise OptionParser::MissingArgument.new('docker-username not set.') if options[:docker_username].nil? - raise OptionParser::MissingArgument.new('docker-password not set.') if options[:docker_password].nil? - - with_images(options[:source], tags) do |image| - run!('docker login --username="%s" --password="%s"', options[:docker_username], options[:docker_password]) - image.tags.each do |tag| - img = format('%s:%s', options[:docker_repository], tag) - puts format('>>> pushing %s', img) - run!('docker push "%s"', img) - end - end -end - -def test(options, tags) - raise OptionParser::MissingArgument.new('docker-repository not set.') if options[:docker_repository].nil? - - with_images(options[:source], tags) do |image| - run!('docker run --rm "%s:%s" emacs --version', options[:docker_repository], image.tag) - end -end - -def generate(options, tags) - images = with_images(options[:source], tags) - generate_dockerfiles(images) - generate_readme(images) - generate_travis(images) -end - -def generate_dockerfiles(images) - puts '>>> generating dockerfiles' - images.each do |image| - directory = image.directory - FileUtils.rm_rf(image.directory) - FileUtils.mkdir_p(image.directory) - content = File.read(File.join('templates', image.template, 'Dockerfile')) - content.gsub!('{{BRANCH}}', image.branch.to_s) - content.gsub!('{{VERSION}}', image.version.to_s) - content.gsub!('{{CONFIGURE}}', image.configure ? format(' %s', image.configure) : '') - File.write(image.dockerfile, content) - - if image.patches - patches_directory = File.join(image.directory, 'patches') - FileUtils.mkdir_p(patches_directory) - patches_files = Dir[File.join('templates', image.patches, '*')] - FileUtils.cp(patches_files, patches_directory) - end - end -end - -def generate_readme(images) - puts '>>> generating README.md' - tags = images.map do |image| - format('- [%s](https://github.com/Silex/docker-emacs/blob/master/%s)', - image.tags.map(&:backquotify).join(', '), - image.dockerfile) - end.flatten - content = File.read('templates/README.md') - content.gsub!('{{TAGS}}', tags.join("\n")) - File.write('README.md', content) -end - -def generate_travis(images) - puts '>>> generating .travis.yml' - envs = images.group_by{ |i| [i.branch, i.template] }.map(&:last).map do |arr| - arr.sort_by!{ |i| i.target.nil? ? 1 : 0 } - format(' - DOCKER_IMAGES="%s"', arr.map(&:tag).join(' ')) - end - content = File.read('templates/.travis.yml') - content.gsub!('{{ENV}}', envs.join("\n")) - File.write('.travis.yml', content) -end - -options = -{ - source: File.join(File.dirname(__FILE__), '..', 'images.yml'), - travis_cache: ENV['TRAVIS_CACHE'], - git_repository: ENV['GIT_REPOSITORY'], - docker_repository: ENV['DOCKER_REPOSITORY'], - docker_username: ENV['DOCKER_USERNAME'], - docker_password: ENV['DOCKER_PASSWORD'] -} - -global = OptionParser.new do |opts| - opts.banner = 'Usage: images COMMAND' - opts.separator '' - opts.separator <<~COMMANDS - Commands: - prepare: prepare the images to be built (git sync). - build: build the images. - push: push the images. - test: test the images. - generate: generate the Dockerfiles, README and travis files. - COMMANDS - opts.separator '' - opts.separator 'Options:' - opts.on('--source FILE', 'Sets the images source (default images.yml)') do |source| - options[:source] = source - end -end - -commands = { - 'prepare' => OptionParser.new do |opts| - opts.banner = 'Usage: images prepare [OPTIONS] IMAGE1 [IMAGE2...]' - opts.separator '' - opts.separator 'Prepare the images (sync with git, copy to images directory, remove .git directory).' - opts.separator '' - opts.separator 'Options:' - opts.on('--git-repository=REPOSITORY', 'Sets the git repository (default $GIT_REPOSITORY).') do |repository| - options[:git_repository] = repository - end - opts.on('--travis-cache=CACHE', 'Sets the travis cache (default $TRAVIS_CACHE).') do |cache| - options[:travis_cache] = cache - end - end, - 'build' => OptionParser.new do |opts| - opts.banner = 'Usage: images build IMAGE [IMAGE...]' - opts.separator '' - opts.separator 'Build the images.' - opts.separator '' - opts.separator 'Options:' - opts.on('--docker-repository=REPOSITORY', 'Sets the docker repository (default $DOCKER_REPOSITORY).') do |repository| - options[:docker_repository] = repository - end - end, - 'push' => OptionParser.new do |opts| - opts.banner = 'Usage: images push IMAGE [IMAGE...]' - opts.separator '' - opts.separator 'Push the images.' - opts.separator '' - opts.separator 'Options:' - opts.on('--docker-repository=REPO', 'Sets the docker repository (default $DOCKER_REPOSITORY).') do |repository| - options[:docker_repository] = repository - end - opts.on('--docker-username=USERNAME', 'Sets the docker username (default $DOCKER_USERNAME).') do |username| - options[:docker_username] = username - end - opts.on('--docker-password=PASSWORD', 'Sets the docker password (default $DOCKER_PASSWORD).') do |password| - options[:docker_password] = password - end - end, - 'test' => OptionParser.new do |opts| - opts.banner = 'Usage: images test IMAGE [IMAGE...]' - opts.separator '' - opts.separator 'Test the images.' - opts.separator '' - opts.separator 'Options:' - opts.on('--docker-repository=REPOSITORY', 'Sets the docker repository (default $DOCKER_REPOSITORY).') do |repository| - options[:docker_repository] = repository - end - end, - 'generate' => OptionParser.new do |opts| - opts.banner = 'Usage: images generate IMAGE [IMAGE...]' - opts.separator '' - opts.separator 'Generate the Dockerfiles, README and travis files.' - end -} - -Dir.chdir(File.join(File.dirname(__FILE__), '..')) do - begin - scope = global - global.order! - command = ARGV.shift - raise OptionParser::MissingArgument.new('"images" requires a command.') if command.nil? - raise OptionParser::InvalidArgument.new(format('"%s" is not a valid command.', command)) unless commands.has_key?(command) - scope = commands[command] - scope.order! - send(command, options, ARGV) - rescue OptionParser::ParseError => e - $stderr.puts e.message - $stderr.puts - $stderr.puts scope.help - exit(1) - rescue => e - $stderr.puts(e.message) - exit(1) - end -end diff --git a/bin/setup-env b/bin/setup-env deleted file mode 100755 index b47ee690..00000000 --- a/bin/setup-env +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -export TRAVIS_CACHE="$HOME/cache" -export GIT_REPOSITORY="git://git.sv.gnu.org/emacs.git" -export GITHUB_USER="${GITHUB_USER:-$(echo ${TRAVIS_REPO_SLUG%%/*} | tr '[:upper:]' '[:lower:]')}" -export DOCKER_REPOSITORY="${DOCKER_USERNAME:-${GITHUB_USER}}/emacs" -export PATH="$(pwd)/bin:$PATH" diff --git a/images.yml b/images.yml index e756ddea..fce900e6 100644 --- a/images.yml +++ b/images.yml @@ -3,239 +3,230 @@ version: master branch: master template: ubuntu/18.04 - configure: --with-modules + depends: master-dev + cache: false - tags: [master-dev] version: master branch: master - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: --with-modules - target: dev + cache: false - tags: [master-alpine] version: master branch: master template: alpine/3.9 - configure: --with-modules + depends: master-alpine-dev + cache: false - tags: [master-alpine-dev] version: master branch: master - template: alpine/3.9 + template: alpine/3.9/dev configure: --with-modules - target: dev + cache: false - tags: [27.0, 27] version: 27.0 branch: emacs-27.0.91 template: ubuntu/18.04 - configure: --with-modules + depends: 27.0-dev - tags: [27.0-dev, 27-dev] version: 27.0 branch: emacs-27.0.91 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: --with-modules - target: dev - tags: [27.0-alpine, 27-alpine] version: 27.0 branch: emacs-27.0.91 template: alpine/3.9 - configure: --with-modules + depends: 27.0-alpine-dev - tags: [27.0-alpine-dev, 27-alpine-dev] version: 27.0 branch: emacs-27.0.91 - template: alpine/3.9 + template: alpine/3.9/dev configure: --with-modules - target: dev - tags: [26.3, 26, latest] version: 26.3 branch: emacs-26.3 template: ubuntu/18.04 - configure: --with-modules + depends: 26.3-dev - tags: [26.3-dev, 26-dev, dev] version: 26.3 branch: emacs-26.3 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: --with-modules - target: dev - tags: [26.3-alpine, 26-alpine, alpine] version: 26.3 branch: emacs-26.3 template: alpine/3.9 - configure: --with-modules + depends: 26.3-alpine-dev - tags: [26.3-alpine-dev, 26-alpine-dev, alpine-dev] version: 26.3 branch: emacs-26.3 - template: alpine/3.9 + template: alpine/3.9/dev configure: --with-modules - target: dev - tags: [26.2] version: 26.2 branch: emacs-26.2 template: ubuntu/18.04 - configure: --with-modules + depends: 26.2-dev - tags: [26.2-dev] version: 26.2 branch: emacs-26.2 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: --with-modules - target: dev - tags: [26.2-alpine] version: 26.2 branch: emacs-26.2 template: alpine/3.9 - configure: --with-modules + depends: 26.2-alpine-dev - tags: [26.2-alpine-dev] version: 26.2 branch: emacs-26.2 - template: alpine/3.9 + template: alpine/3.9/dev configure: --with-modules - target: dev - tags: [26.1] version: 26.1 branch: emacs-26.1 template: ubuntu/18.04 - configure: --with-modules + depends: 26.1-dev - tags: [26.1-dev] version: 26.1 branch: emacs-26.1 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: --with-modules - target: dev - tags: [26.1-alpine] version: 26.1 branch: emacs-26.1 template: alpine/3.9 - configure: --with-modules + depends: 26.1-alpine-dev - tags: [26.1-alpine-dev] version: 26.1 branch: emacs-26.1 - template: alpine/3.9 + template: alpine/3.9/dev configure: --with-modules - target: dev - tags: [25.3, 25] version: 25.3 branch: emacs-25.3 template: ubuntu/18.04 - configure: --with-modules + depends: 25.3-dev - tags: [25.3-dev, 25-dev] version: 25.3 branch: emacs-25.3 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: --with-modules - target: dev - tags: [25.3-alpine, 25-alpine] version: 25.3 branch: emacs-25.3 template: alpine/3.9 - configure: --with-modules - patches: alpine/3.9/patches/25 + depends: 25.3-alpine-dev - tags: [25.3-alpine-dev, 25-alpine-dev] version: 25.3 branch: emacs-25.3 - template: alpine/3.9 + template: alpine/3.9/dev configure: --with-modules - patches: alpine/3.9/patches/25 - target: dev + patches: + - https://git.alpinelinux.org/aports/plain/community/emacs/gamedir.patch?h=3.7-stable + - https://git.alpinelinux.org/aports/plain/community/emacs/musl.patch?h=3.7-stable + - https://git.alpinelinux.org/aports/plain/community/emacs/noaslr-dump.patch?h=3.7-stable - tags: [25.2] version: 25.2 branch: emacs-25.2 template: ubuntu/18.04 - configure: --with-modules + depends: 25.2-dev - tags: [25.2-dev] version: 25.2 branch: emacs-25.2 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: --with-modules - target: dev - tags: [25.2-alpine] version: 25.2 branch: emacs-25.2 template: alpine/3.9 - configure: --with-modules - patches: alpine/3.9/patches/25 + depends: 25.2-alpine-dev - tags: [25.2-alpine-dev] version: 25.2 branch: emacs-25.2 - template: alpine/3.9 + template: alpine/3.9/dev configure: --with-modules - patches: alpine/3.9/patches/25 - target: dev + patches: + - https://git.alpinelinux.org/aports/plain/community/emacs/gamedir.patch?h=3.7-stable + - https://git.alpinelinux.org/aports/plain/community/emacs/musl.patch?h=3.7-stable + - https://git.alpinelinux.org/aports/plain/community/emacs/noaslr-dump.patch?h=3.7-stable - tags: [25.1] version: 25.1 branch: emacs-25.1 template: ubuntu/18.04 - configure: CFLAGS=-no-pie --with-modules + depends: 25.1-dev - tags: [25.1-dev] version: 25.1 branch: emacs-25.1 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: CFLAGS=-no-pie --with-modules - target: dev - tags: [24.5, 24] version: 24.5 branch: emacs-24.5 template: ubuntu/18.04 - configure: CFLAGS=-no-pie + depends: 24.5-dev - tags: [24.5-dev, 24-dev] version: 24.5 branch: emacs-24.5 - template: ubuntu/18.04 + template: ubuntu/18.04/dev configure: CFLAGS=-no-pie - target: dev - tags: [24.4] version: 24.4 branch: emacs-24.4 template: ubuntu/12.04 + depends: 24.4-dev - tags: [24.4-dev] version: 24.4 branch: emacs-24.4 - template: ubuntu/12.04 - target: dev + template: ubuntu/12.04/dev - tags: [24.3] version: 24.3 branch: emacs-24.3 template: ubuntu/12.04 + depends: 24.3-dev - tags: [24.3-dev] version: 24.3 branch: emacs-24.3 - template: ubuntu/12.04 - target: dev + template: ubuntu/12.04/dev - tags: [24.2] version: 24.2 branch: emacs-24.2 template: ubuntu/12.04 + depends: 24.2-dev - tags: [24.2-dev] version: 24.2 branch: emacs-24.2 - template: ubuntu/12.04 - target: dev + template: ubuntu/12.04/dev - tags: [24.1] version: 24.1 branch: emacs-24.1 template: ubuntu/12.04 + depends: 24.1-dev - tags: [24.1-dev] version: 24.1 branch: emacs-24.1 - template: ubuntu/12.04 - target: dev + template: ubuntu/12.04/dev - tags: [23.4, 23] version: 23.4 branch: emacs-23.4 template: ubuntu/12.04/bootstrap - configure: --with-crt-dir=/usr/lib/x86_64-linux-gnu --with-x-toolkit=no + depends: 23.4-dev - tags: [23.4-dev, 23-dev] version: 23.4 branch: emacs-23.4 - template: ubuntu/12.04/bootstrap - target: dev + template: ubuntu/12.04/bootstrap/dev configure: --with-crt-dir=/usr/lib/x86_64-linux-gnu --with-x-toolkit=no diff --git a/master/alpine/3.9/Dockerfile b/master/alpine/3.9/Dockerfile index 689ef8e9..2aa96b39 100644 --- a/master/alpine/3.9/Dockerfile +++ b/master/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="master" -ENV EMACS_VERSION="master" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:master-alpine-dev FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="master" ENV EMACS_VERSION="master" diff --git a/master/alpine/3.9/dev/Dockerfile b/master/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..8186987e --- /dev/null +++ b/master/alpine/3.9/dev/Dockerfile @@ -0,0 +1,56 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="master" +ENV EMACS_VERSION="master" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/master/ubuntu/18.04/Dockerfile b/master/ubuntu/18.04/Dockerfile index 9f1754c6..486fdb91 100644 --- a/master/ubuntu/18.04/Dockerfile +++ b/master/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="master" -ENV EMACS_VERSION="master" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure --with-modules && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:master-dev FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/master/ubuntu/18.04/dev/Dockerfile b/master/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..9f3317af --- /dev/null +++ b/master/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="master" +ENV EMACS_VERSION="master" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + ./autogen.sh && \ + ./configure --with-modules && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/templates/.gitlab-ci.yml b/templates/.gitlab-ci.yml new file mode 100644 index 00000000..0a7c2aaa --- /dev/null +++ b/templates/.gitlab-ci.yml @@ -0,0 +1,30 @@ +# requires /etc/sudoers with "gitlab-runner ALL=(ALL) NOPASSWD: /sbin/sysctl" +# requires ssh root@DOCKER_ARM_HOST working from the gitlab-runner account + +image: docker:stable + +variables: + DOCKER_USER: silex + DOCKER_CLI_EXPERIMENTAL: enabled + DOCKER_PLATFORMS: linux/amd64,linux/386,linux/arm/v7,linux/arm64/v8 + +before_script: + - sudo sysctl kernel.randomize_va_space=0 + - ssh root@$DOCKER_ARM_HOST sysctl kernel.randomize_va_space=0 + - docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" + - | + if ! docker buildx inspect emacs-$CI_JOB_NAME; then + docker buildx create --name emacs-$CI_JOB_NAME + docker buildx create --append --name emacs-$CI_JOB_NAME ssh://root@$DOCKER_ARM_HOST + fi + - docker buildx inspect --bootstrap emacs-$CI_JOB_NAME + - docker buildx use emacs-$CI_JOB_NAME + +stages: + - dev + - std + +template: + stage: {{STAGE}} + script: cd {{DIRECTORY}} && docker buildx build --platform $DOCKER_PLATFORMS --pull --push {{CACHE}}{{TAGS}} . + needs: {{NEEDS}} diff --git a/templates/.travis.yml b/templates/.travis.yml deleted file mode 100644 index 899363c8..00000000 --- a/templates/.travis.yml +++ /dev/null @@ -1,39 +0,0 @@ -sudo: required -services: docker -language: generic - -cache: - timeout: 900 - directories: - - $HOME/cache - -branches: - only: - - master - -env: -{{ENV}} - -install: - - sudo sysctl kernel.randomize_va_space=0 - - source bin/setup-env - - travis_retry images prepare $DOCKER_IMAGES - - travis_retry images build $DOCKER_IMAGES - - images test $DOCKER_IMAGES - - | - # DOCKER_USERNAME is empty for forked repositories - # TRAVIS_PULL_REQUEST is "true" for pull requests - # TRAVIS_BRANCH is the current branch or the PR target branch - # TRAVIS_PULL_REQUEST_BRANCH is the PR source branch - github_branch="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}" - if [[ ! -z "$DOCKER_USERNAME" ]] && [[ "$TRAVIS_PULL_REQUEST" != "true" ]] && \ - [[ "$github_branch" == "master" ]] || [[ "$github_branch" == "staging-"* ]]; then - images push $DOCKER_IMAGES - else - echo ">>> not pushing" - fi - -notifications: - email: - on_success: never - on_failure: never diff --git a/templates/alpine/3.9/Dockerfile b/templates/alpine/3.9/Dockerfile index 416bbda3..b58dd5df 100644 --- a/templates/alpine/3.9/Dockerfile +++ b/templates/alpine/3.9/Dockerfile @@ -1,64 +1,4 @@ -FROM alpine:3.9 as dev - -RUN apk add --no-cache \ - alsa-lib-dev \ - aspell \ - aspell-en \ - autoconf \ - automake \ - build-base \ - curl \ - dpkg \ - dpkg-dev \ - fontconfig-dev \ - gawk \ - gconf-dev \ - giflib-dev \ - git \ - glib-dev \ - gnupg \ - gnutls-dev \ - gtk+3.0-dev \ - lcms2-dev \ - libcanberra-gtk3 \ - libjpeg-turbo-dev \ - libpng-dev \ - librsvg-dev \ - libxaw-dev \ - libxml2-dev \ - jansson-dev \ - ncurses-dev \ - openssh-client \ - pango-dev \ - paxmark \ - python \ - texinfo \ - tiff-dev \ - && /bin/true - -ENV EMACS_BRANCH="{{BRANCH}}" -ENV EMACS_VERSION="{{VERSION}}" - -COPY source /opt/emacs/ - -RUN cd /opt/emacs && \ - if [ -d patches ]; then git apply patches/*; fi && \ - ./autogen.sh && \ - ./configure{{CONFIGURE}} && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:{{DEPENDS}} FROM alpine:3.9 RUN apk add --no-cache \ @@ -77,8 +17,7 @@ RUN apk add --no-cache \ libxpm \ jansson \ openssh-client \ - tiff \ - && /bin/true + tiff ENV EMACS_BRANCH="{{BRANCH}}" ENV EMACS_VERSION="{{VERSION}}" diff --git a/templates/alpine/3.9/dev/Dockerfile b/templates/alpine/3.9/dev/Dockerfile new file mode 100644 index 00000000..9c6fcac5 --- /dev/null +++ b/templates/alpine/3.9/dev/Dockerfile @@ -0,0 +1,57 @@ +FROM alpine:3.9 + +RUN apk add --no-cache \ + alsa-lib-dev \ + aspell \ + aspell-en \ + autoconf \ + automake \ + build-base \ + curl \ + dpkg \ + dpkg-dev \ + fontconfig-dev \ + gawk \ + gconf-dev \ + giflib-dev \ + git \ + glib-dev \ + gnupg \ + gnutls-dev \ + gtk+3.0-dev \ + lcms2-dev \ + libcanberra-gtk3 \ + libjpeg-turbo-dev \ + libpng-dev \ + librsvg-dev \ + libxaw-dev \ + libxml2-dev \ + jansson-dev \ + ncurses-dev \ + openssh-client \ + pango-dev \ + paxmark \ + python \ + texinfo \ + tiff-dev + +ENV EMACS_BRANCH="{{BRANCH}}" +ENV EMACS_VERSION="{{VERSION}}" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + {{PATCHES}} + ./autogen.sh && \ + ./configure{{CONFIGURE}} && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/templates/alpine/3.9/patches/25/gamedir.patch b/templates/alpine/3.9/patches/25/gamedir.patch deleted file mode 100644 index c1bcbadd..00000000 --- a/templates/alpine/3.9/patches/25/gamedir.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urw emacs-25.1/lib-src/Makefile.in emacs-25.1-gamedir/lib-src/Makefile.in ---- emacs-25.1/lib-src/Makefile.in 2016-06-29 09:49:18.000000000 +0000 -+++ emacs-25.1-gamedir/lib-src/Makefile.in 2016-10-24 15:37:46.718699816 +0000 -@@ -414,7 +414,6 @@ - - update-game-score${EXEEXT}: ${srcdir}/update-game-score.c $(NTLIB) $(config_h) - $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} \ -- -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \ - $< $(NTLIB) $(LOADLIBES) -o $@ - - emacsclient.res: ../nt/emacsclient.rc $(NTINC)/../icons/emacs.ico diff --git a/templates/alpine/3.9/patches/25/musl.patch b/templates/alpine/3.9/patches/25/musl.patch deleted file mode 100644 index 7841d04e..00000000 --- a/templates/alpine/3.9/patches/25/musl.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- emacs-25.1/configure.ac 2016-07-25 07:08:36.000000000 +0000 -+++ emacs-25.1-musl/configure.ac 2016-10-24 15:38:00.518625055 +0000 -@@ -2133,7 +2133,7 @@ - - system_malloc=$emacs_cv_sanitize_address - --hybrid_malloc= -+hybrid_malloc=yes - - case "$opsys" in - ## darwin ld insists on the use of malloc routines in the System framework. ---- emacs-25.1/src/Makefile.in 2016-06-29 09:49:20.000000000 +0000 -+++ emacs-25.1-musl/src/Makefile.in 2016-10-24 15:38:00.518625055 +0000 -@@ -398,6 +398,7 @@ - doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ - $(XWIDGETS_OBJ) \ - profiler.o decompress.o \ -+ sheap.o \ - $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ - $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) - obj = $(base_obj) $(NS_OBJC_OBJ) ---- emacs-25.1/src/gmalloc.c 2016-06-29 09:49:22.000000000 +0000 -+++ emacs-25.1-musl/src/gmalloc.c 2016-10-24 15:38:00.518625055 +0000 -@@ -70,7 +70,7 @@ - #define aligned_alloc galigned_alloc - #define free gfree - --#ifdef CYGWIN -+//#ifdef CYGWIN - extern void *bss_sbrk (ptrdiff_t size); - extern int bss_sbrk_did_unexec; - extern char bss_sbrk_buffer[]; -@@ -78,7 +78,7 @@ - #define DUMPED bss_sbrk_did_unexec - #define ALLOCATED_BEFORE_DUMPING(P) \ - ((P) < bss_sbrk_buffer_end && (P) >= (void *) bss_sbrk_buffer) --#endif -+//#endif - - #ifdef __cplusplus - extern "C" -@@ -1523,16 +1523,19 @@ - __default_morecore (ptrdiff_t increment) - { - void *result; --#if defined (CYGWIN) -+//#if defined (CYGWIN) - if (!DUMPED) - { - return bss_sbrk (increment); - } --#endif -+//#endif -+#if 0 - result = (void *) __sbrk (increment); - if (result == (void *) -1) - return NULL; - return result; -+#endif -+ return NULL; - } - /* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. - ---- emacs-25.1/src/print.c 2016-06-29 09:49:22.000000000 +0000 -+++ emacs-25.1-musl/src/print.c 2016-10-24 15:38:00.518625055 +0000 -@@ -775,7 +775,7 @@ - print_output_debug_flag = x; - } - --#if defined (GNU_LINUX) -+#if defined (GNU_LINUX) && defined (__GLIBC__) - - /* This functionality is not vitally important in general, so we rely on - non-portable ability to use stderr as lvalue. */ ---- emacs-25.1/src/unexelf.c 2016-06-29 09:49:23.000000000 +0000 -+++ emacs-25.1-musl/src/unexelf.c 2016-10-24 15:38:00.518625055 +0000 -@@ -227,6 +227,9 @@ - off_t new_file_size; - void *new_break; - -+ extern int bss_sbrk_did_unexec; -+ bss_sbrk_did_unexec = 1; -+ - /* Pointers to the base of the image of the two files. */ - caddr_t old_base, new_base; - - diff --git a/templates/alpine/3.9/patches/25/noaslr-dump.patch b/templates/alpine/3.9/patches/25/noaslr-dump.patch deleted file mode 100644 index b7dfcb5e..00000000 --- a/templates/alpine/3.9/patches/25/noaslr-dump.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -urw emacs-25.1/src/Makefile.in emacs-25.1-noaslr-dump/src/Makefile.in ---- emacs-25.1/src/Makefile.in 2016-06-29 09:49:20.000000000 +0000 -+++ emacs-25.1-noaslr-dump/src/Makefile.in 2016-10-24 15:38:10.365238378 +0000 -@@ -532,6 +532,7 @@ - ifeq ($(CANNOT_DUMP),yes) - ln -f temacs$(EXEEXT) $@ - else -+ paxmark -r temacs$(EXEEXT) - LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump - ifneq ($(PAXCTL_dumped),) - $(PAXCTL_dumped) $@ -@@ -737,6 +738,7 @@ - ifeq ($(CANNOT_DUMP),yes) - ln -f temacs$(EXEEXT) $@ - else -+ paxmark -r temacs$(EXEEXT) - $(RUN_TEMACS) --batch --load loadup bootstrap - ifneq ($(PAXCTL_dumped),) - $(PAXCTL_dumped) emacs$(EXEEXT) -Only in emacs-25.1-noaslr-dump/src: Makefile.in.orig diff --git a/templates/ubuntu/12.04/Dockerfile b/templates/ubuntu/12.04/Dockerfile index e048d64d..f55f5dcc 100644 --- a/templates/ubuntu/12.04/Dockerfile +++ b/templates/ubuntu/12.04/Dockerfile @@ -1,55 +1,4 @@ -FROM ubuntu:12.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - build-essential \ - curl \ - git \ - gnupg \ - imagemagick \ - ispell \ - libcanberra-gtk-module \ - libdbus-1-dev \ - libgif-dev \ - libgnutls-dev \ - libgpm-dev \ - libgtk2.0-dev \ - libjpeg-dev \ - libmagick++-dev \ - libncurses-dev \ - libpng-dev \ - libtiff-dev \ - libx11-dev \ - libxpm-dev \ - openssh-client \ - python \ - texinfo \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="{{BRANCH}}" -ENV EMACS_VERSION="{{VERSION}}" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure{{CONFIGURE}} && \ - make && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:{{DEPENDS}} FROM ubuntu:12.04 RUN apt-get update && \ diff --git a/templates/ubuntu/12.04/bootstrap/Dockerfile b/templates/ubuntu/12.04/bootstrap/Dockerfile index eb275e4f..f55f5dcc 100644 --- a/templates/ubuntu/12.04/bootstrap/Dockerfile +++ b/templates/ubuntu/12.04/bootstrap/Dockerfile @@ -1,52 +1,4 @@ -FROM ubuntu:12.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - build-essential \ - curl \ - git \ - gnupg \ - imagemagick \ - ispell \ - libcanberra-gtk-module \ - libdbus-1-dev \ - libgif-dev \ - libgnutls-dev \ - libgpm-dev \ - libgtk2.0-dev \ - libjpeg-dev \ - libmagick++-dev \ - libncurses-dev \ - libpng-dev \ - libtiff-dev \ - libx11-dev \ - libxpm-dev \ - openssh-client \ - python \ - texinfo \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="{{BRANCH}}" -ENV EMACS_VERSION="{{VERSION}}" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./configure{{CONFIGURE}} && \ - make bootstrap && \ - make && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:{{DEPENDS}} FROM ubuntu:12.04 RUN apt-get update && \ diff --git a/templates/ubuntu/12.04/bootstrap/dev/Dockerfile b/templates/ubuntu/12.04/bootstrap/dev/Dockerfile new file mode 100644 index 00000000..c7c920f2 --- /dev/null +++ b/templates/ubuntu/12.04/bootstrap/dev/Dockerfile @@ -0,0 +1,47 @@ +FROM ubuntu:12.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + build-essential \ + curl \ + git \ + gnupg \ + imagemagick \ + ispell \ + libcanberra-gtk-module \ + libdbus-1-dev \ + libgif-dev \ + libgnutls-dev \ + libgpm-dev \ + libgtk2.0-dev \ + libjpeg-dev \ + libmagick++-dev \ + libncurses-dev \ + libpng-dev \ + libtiff-dev \ + libx11-dev \ + libxpm-dev \ + openssh-client \ + python \ + texinfo \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="{{BRANCH}}" +ENV EMACS_VERSION="{{VERSION}}" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + {{PATCHES}} + ./configure{{CONFIGURE}} && \ + make bootstrap && \ + make && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +CMD ["emacs"] diff --git a/templates/ubuntu/12.04/dev/Dockerfile b/templates/ubuntu/12.04/dev/Dockerfile new file mode 100644 index 00000000..2fe97370 --- /dev/null +++ b/templates/ubuntu/12.04/dev/Dockerfile @@ -0,0 +1,50 @@ +FROM ubuntu:12.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + build-essential \ + curl \ + git \ + gnupg \ + imagemagick \ + ispell \ + libcanberra-gtk-module \ + libdbus-1-dev \ + libgif-dev \ + libgnutls-dev \ + libgpm-dev \ + libgtk2.0-dev \ + libjpeg-dev \ + libmagick++-dev \ + libncurses-dev \ + libpng-dev \ + libtiff-dev \ + libx11-dev \ + libxpm-dev \ + openssh-client \ + python \ + texinfo \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="{{BRANCH}}" +ENV EMACS_VERSION="{{VERSION}}" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + {{PATCHES}} + ./autogen.sh && \ + ./configure{{CONFIGURE}} && \ + make && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"] diff --git a/templates/ubuntu/18.04/Dockerfile b/templates/ubuntu/18.04/Dockerfile index aca7411a..58e02bfb 100644 --- a/templates/ubuntu/18.04/Dockerfile +++ b/templates/ubuntu/18.04/Dockerfile @@ -1,68 +1,4 @@ -FROM ubuntu:18.04 as dev - -RUN apt-get update && \ - apt-get install -y \ - autoconf \ - automake \ - autotools-dev \ - build-essential \ - curl \ - dpkg-dev \ - git \ - gnupg \ - imagemagick \ - ispell \ - libacl1-dev \ - libasound2-dev \ - libcanberra-gtk3-module \ - liblcms2-dev \ - libdbus-1-dev \ - libgif-dev \ - libgnutls28-dev \ - libgpm-dev \ - libgtk-3-dev \ - libjansson-dev \ - libjpeg-dev \ - liblockfile-dev \ - libm17n-dev \ - libmagick++-6.q16-dev \ - libncurses5-dev \ - libotf-dev \ - libpng-dev \ - librsvg2-dev \ - libselinux1-dev \ - libtiff-dev \ - libxaw7-dev \ - libxml2-dev \ - openssh-client \ - python \ - texinfo \ - xaw3dg-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -ENV EMACS_BRANCH="{{BRANCH}}" -ENV EMACS_VERSION="{{VERSION}}" - -COPY source /opt/emacs - -RUN cd /opt/emacs && \ - ./autogen.sh && \ - ./configure{{CONFIGURE}} && \ - make -j 8 && \ - make install - -RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ - chmod 700 /root/.emacs.d/elpa/gnupg && \ - gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 - -RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python -ENV PATH="/root/.cask/bin:$PATH" - -CMD ["emacs"] - -# ------------------------------------------------------------ - +FROM silex/emacs:{{DEPENDS}} FROM ubuntu:18.04 RUN apt-get update && \ diff --git a/templates/ubuntu/18.04/dev/Dockerfile b/templates/ubuntu/18.04/dev/Dockerfile new file mode 100644 index 00000000..e97194e7 --- /dev/null +++ b/templates/ubuntu/18.04/dev/Dockerfile @@ -0,0 +1,63 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + build-essential \ + curl \ + dpkg-dev \ + git \ + gnupg \ + imagemagick \ + ispell \ + libacl1-dev \ + libasound2-dev \ + libcanberra-gtk3-module \ + liblcms2-dev \ + libdbus-1-dev \ + libgif-dev \ + libgnutls28-dev \ + libgpm-dev \ + libgtk-3-dev \ + libjansson-dev \ + libjpeg-dev \ + liblockfile-dev \ + libm17n-dev \ + libmagick++-6.q16-dev \ + libncurses5-dev \ + libotf-dev \ + libpng-dev \ + librsvg2-dev \ + libselinux1-dev \ + libtiff-dev \ + libxaw7-dev \ + libxml2-dev \ + openssh-client \ + python \ + texinfo \ + xaw3dg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV EMACS_BRANCH="{{BRANCH}}" +ENV EMACS_VERSION="{{VERSION}}" +ENV EMACS_REPOSITORY="git://git.sv.gnu.org/emacs.git" + +RUN git clone --depth 1 --branch $EMACS_BRANCH $EMACS_REPOSITORY /opt/emacs && \ + cd /opt/emacs && \ + {{PATCHES}} + ./autogen.sh && \ + ./configure{{CONFIGURE}} && \ + make -j $(nproc) && \ + make install + +RUN mkdir -p /root/.emacs.d/elpa/gnupg && \ + chmod 700 /root/.emacs.d/elpa/gnupg && \ + gpg --homedir /root/.emacs.d/elpa/gnupg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 066DAFCB81E42C40 + +RUN curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python +ENV PATH="/root/.cask/bin:$PATH" + +CMD ["emacs"]