image_optim_pack 0.12.2.20260327 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +3 -1
  3. data/.github/workflows/build.yml +44 -24
  4. data/.github/workflows/check.yml +1 -2
  5. data/.rubocop.yml +3 -0
  6. data/CHANGELOG.markdown +12 -0
  7. data/Dockerfile +83 -83
  8. data/Dockerfile.debian +98 -92
  9. data/Makefile +41 -27
  10. data/checksums.mk +1 -1
  11. data/image_optim_pack-linux-aarch64-gnu.gemspec +3 -0
  12. data/image_optim_pack-linux-aarch64-musl.gemspec +3 -0
  13. data/image_optim_pack-linux-aarch64.gemspec +3 -0
  14. data/image_optim_pack-linux-x86_64-gnu.gemspec +3 -0
  15. data/image_optim_pack-linux-x86_64-musl.gemspec +3 -0
  16. data/image_optim_pack.gemspec +29 -21
  17. data/lib/image_optim/pack.rb +22 -5
  18. data/script/platform_downloads +6 -2
  19. data/script/run +36 -9
  20. data/spec/image_optim/pack_spec.rb +8 -2
  21. data/vendor/darwin-arm64/libpng.dylib +0 -0
  22. data/vendor/darwin-arm64/optipng +0 -0
  23. data/vendor/darwin-arm64/oxipng +0 -0
  24. data/vendor/darwin-arm64/pngcrush +0 -0
  25. data/vendor/darwin-arm64/pngquant +0 -0
  26. data/vendor/darwin-x86_64/libpng.dylib +0 -0
  27. data/vendor/darwin-x86_64/optipng +0 -0
  28. data/vendor/darwin-x86_64/pngcrush +0 -0
  29. data/vendor/darwin-x86_64/pngquant +0 -0
  30. data/vendor/linux-aarch64-gnu/advpng +0 -0
  31. data/vendor/linux-aarch64-gnu/gifsicle +0 -0
  32. data/vendor/linux-aarch64-gnu/jhead +0 -0
  33. data/vendor/linux-aarch64-gnu/jpeg-recompress +0 -0
  34. data/vendor/linux-aarch64-gnu/jpegoptim +0 -0
  35. data/vendor/linux-aarch64-gnu/jpegtran +0 -0
  36. data/vendor/linux-aarch64-gnu/libjpeg.so +0 -0
  37. data/vendor/linux-aarch64-gnu/liblcms2.so +0 -0
  38. data/vendor/linux-aarch64-gnu/libpng.so +0 -0
  39. data/vendor/linux-aarch64-gnu/libz.so +0 -0
  40. data/vendor/linux-aarch64-gnu/optipng +0 -0
  41. data/vendor/linux-aarch64-gnu/oxipng +0 -0
  42. data/vendor/linux-aarch64-gnu/pngcrush +0 -0
  43. data/vendor/linux-aarch64-gnu/pngout +0 -0
  44. data/vendor/linux-aarch64-gnu/pngquant +0 -0
  45. data/vendor/linux-aarch64-musl/advpng +0 -0
  46. data/vendor/linux-aarch64-musl/gifsicle +0 -0
  47. data/vendor/linux-aarch64-musl/jhead +0 -0
  48. data/vendor/linux-aarch64-musl/jpeg-recompress +0 -0
  49. data/vendor/linux-aarch64-musl/jpegoptim +0 -0
  50. data/vendor/linux-aarch64-musl/jpegtran +0 -0
  51. data/vendor/linux-aarch64-musl/libjpeg.so +0 -0
  52. data/vendor/linux-aarch64-musl/liblcms2.so +0 -0
  53. data/vendor/linux-aarch64-musl/libpng.so +0 -0
  54. data/vendor/linux-aarch64-musl/libz.so +0 -0
  55. data/vendor/linux-aarch64-musl/optipng +0 -0
  56. data/vendor/linux-aarch64-musl/oxipng +0 -0
  57. data/vendor/linux-aarch64-musl/pngcrush +0 -0
  58. data/vendor/linux-aarch64-musl/pngout +0 -0
  59. data/vendor/linux-aarch64-musl/pngquant +0 -0
  60. data/vendor/{linux-x86_64 → linux-x86_64-gnu}/libpng.so +0 -0
  61. data/vendor/{linux-x86_64 → linux-x86_64-gnu}/optipng +0 -0
  62. data/vendor/{linux-x86_64 → linux-x86_64-gnu}/pngcrush +0 -0
  63. data/vendor/{linux-x86_64 → linux-x86_64-gnu}/pngquant +0 -0
  64. data/vendor/linux-x86_64-musl/advpng +0 -0
  65. data/vendor/linux-x86_64-musl/gifsicle +0 -0
  66. data/vendor/linux-x86_64-musl/jhead +0 -0
  67. data/vendor/linux-x86_64-musl/jpeg-recompress +0 -0
  68. data/vendor/linux-x86_64-musl/jpegoptim +0 -0
  69. data/vendor/linux-x86_64-musl/jpegtran +0 -0
  70. data/vendor/linux-x86_64-musl/libjpeg.so +0 -0
  71. data/vendor/linux-x86_64-musl/liblcms2.so +0 -0
  72. data/vendor/linux-x86_64-musl/libpng.so +0 -0
  73. data/vendor/linux-x86_64-musl/libz.so +0 -0
  74. data/vendor/linux-x86_64-musl/optipng +0 -0
  75. data/vendor/linux-x86_64-musl/oxipng +0 -0
  76. data/vendor/linux-x86_64-musl/pngcrush +0 -0
  77. data/vendor/linux-x86_64-musl/pngout +0 -0
  78. data/vendor/linux-x86_64-musl/pngquant +0 -0
  79. metadata +67 -17
  80. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/advpng +0 -0
  81. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/gifsicle +0 -0
  82. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jhead +0 -0
  83. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jpeg-recompress +0 -0
  84. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jpegoptim +0 -0
  85. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jpegtran +0 -0
  86. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/libjpeg.so +0 -0
  87. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/liblcms2.so +0 -0
  88. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/libz.so +0 -0
  89. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/oxipng +0 -0
  90. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/pngout +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6530f4763c3cc74aa66367abef6f0a2258a018f6b16fef628cda069d37ae6e9
4
- data.tar.gz: 5abc4a356dd549a7ade77d7fda1f60680d4be032634ce59f0a88872b0ca542cb
3
+ metadata.gz: 7a81ae61f728c591eba70ec2aee4b6f979e297c13a76f3023a06149ff854d173
4
+ data.tar.gz: 8a11d77aa571c600b1392bf236cc3e43761bfae0718bd2b69d14d353bb73dc76
5
5
  SHA512:
6
- metadata.gz: 232fedaec2336e2536b906656ad1e42eb24a3237f53b323070133a33a1bdb5b5c0847bec6d59d3d08f5b988d6800520eef629c1cf17f90e76a222427ded05de6
7
- data.tar.gz: 5c31298e32a795f02997c9de0c1f6cbd8b5e228f369908655fbb500619632b7b4885df4719bf3bc3cf5666b5428a80f2cab1b2d9912bc0157ca57a54bc9c4949
6
+ metadata.gz: ebc8894904563dc3d35f0eca936a99e8c953ea7b60e48e28e6dde07dc0eb6632e48347dbae9dd8e9a2307799127f779adc0afb5d59f3b7cac00b9c205ab444e7
7
+ data.tar.gz: c146caf1f824f1645783f6877e558b88bbf61dfa228491a3b6690e30e5a46dff4b3b4ded5797908b3698985232801e526fbc6371d45d37c3e1e2df8b9333aaea
@@ -3,4 +3,6 @@ updates:
3
3
  - package-ecosystem: github-actions
4
4
  directory: /
5
5
  schedule:
6
- interval: weekly
6
+ interval: daily
7
+ cooldown:
8
+ default-days: 7
@@ -3,45 +3,65 @@ on:
3
3
  push:
4
4
  pull_request:
5
5
  jobs:
6
- build-on-linux:
7
- runs-on: ubuntu-latest
6
+ linux-gnu-build:
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ arch: [x86_64, aarch64]
11
+ runs-on: ${{ case(matrix.arch == 'x86_64', 'ubuntu-latest', 'ubuntu-22.04-arm') }}
8
12
  steps:
9
13
  - uses: actions/checkout@v6
10
- - run: uname -m
14
+ - run: uname -m && test "$(uname -m)" = "${{ matrix.arch }}"
15
+ - run: make test
16
+ - run: rm -r vendor
11
17
  - run: sudo apt-get install -y chrpath
12
- - run: rustup target list --installed
13
18
  - run: make download download-dependencies
14
- - run: rm -r vendor
15
- - run: make all
19
+ - run: make all -j
16
20
  - uses: actions/upload-artifact@v7
17
21
  with:
18
- name: on-linux
22
+ name: ${{ github.job }}-${{ matrix.arch }}
19
23
  path: vendor/
20
- build-on-darwin-x86_64:
21
- runs-on: macos-15-intel
24
+
25
+ linux-musl-build:
26
+ strategy:
27
+ fail-fast: false
28
+ matrix:
29
+ arch: [x86_64, aarch64]
30
+ runs-on: ${{ case(matrix.arch == 'x86_64', 'ubuntu-latest', 'ubuntu-22.04-arm') }}
22
31
  steps:
23
32
  - uses: actions/checkout@v6
24
- - run: uname -m
25
- - run: rustup target add aarch64-apple-darwin
26
- - run: make download download-dependencies
27
- - run: rm -r vendor
28
- - run: make all ARCH=x86_64
29
- - run: make all ARCH=arm64
33
+ - run: docker run -di --rm --name build -v ${{ github.workspace }}:/work -w /work rust:alpine
34
+ - run: docker exec build sh -c 'uname -m && test "$(uname -m)" = "${{ matrix.arch }}"'
35
+ - run: docker exec build apk add --no-cache make file perl
36
+ - run: docker exec build make test
37
+ - run: docker exec build rm -r vendor
38
+ - run: docker exec build apk add --no-cache gcc g++ chrpath pkgconf autoconf automake libtool nasm cmake patch wget
39
+ - run: docker exec build make download download-dependencies
40
+ - run: docker exec build make all -j
41
+ - run: docker stop build
42
+ if: always()
30
43
  - uses: actions/upload-artifact@v7
31
44
  with:
32
- name: on-darwin-x86_64
45
+ name: ${{ github.job }}-${{ matrix.arch }}
33
46
  path: vendor/
34
- build-on-darwin-arm64:
35
- runs-on: macos-14
47
+
48
+ darwin-build:
49
+ strategy:
50
+ fail-fast: false
51
+ matrix:
52
+ arch: [x86_64, arm64]
53
+ build: [x86_64, arm64]
54
+ runs-on: ${{ case(matrix.arch == 'x86_64', 'macos-15-intel', 'macos-14') }}
36
55
  steps:
37
56
  - uses: actions/checkout@v6
38
- - run: uname -m
39
- - run: rustup target add x86_64-apple-darwin
40
- - run: make download download-dependencies
57
+ - run: uname -m && test "$(uname -m)" = "${{ matrix.arch }}"
58
+ - run: make test ARCH="${{ matrix.build }}"
41
59
  - run: rm -r vendor
42
- - run: make all ARCH=arm64
43
- - run: make all test ARCH=x86_64
60
+ - run: make download download-dependencies
61
+ - run: rustup target add "${{ case(matrix.build == 'arm64', 'aarch64', matrix.build) }}-apple-darwin"
62
+ if: ${{ matrix.build != matrix.arch }}
63
+ - run: make all -j ARCH="${{ matrix.build }}"
44
64
  - uses: actions/upload-artifact@v7
45
65
  with:
46
- name: on-darwin-arm64
66
+ name: ${{ github.job }}-${{ matrix.arch }}-build-${{ matrix.build }}
47
67
  path: vendor/
@@ -11,12 +11,11 @@ jobs:
11
11
  matrix:
12
12
  os:
13
13
  - ubuntu-latest
14
+ - ubuntu-22.04-arm
14
15
  - macos-15-intel
15
16
  - macos-14
16
17
  ruby:
17
18
  - '2.7'
18
- - '3.0'
19
- - '3.1'
20
19
  - '3.2'
21
20
  - '3.3'
22
21
  - '3.4'
data/.rubocop.yml CHANGED
@@ -16,6 +16,9 @@ Layout/AccessModifierIndentation:
16
16
  Layout/DotPosition:
17
17
  EnforcedStyle: trailing
18
18
 
19
+ Layout/EndAlignment:
20
+ EnforcedStyleAlignWith: start_of_line
21
+
19
22
  Layout/FirstHashElementIndentation:
20
23
  EnforcedStyle: consistent
21
24
 
data/CHANGELOG.markdown CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  ## unreleased
4
4
 
5
+ ## v0.13.1 (2026-04-12)
6
+
7
+ * Add linux-x86_64 and linux-aarch64 platforms including two vendor dirs each [@toy](https://github.com/toy)
8
+ * libpng 1.6.57 [@toy](https://github.com/toy)
9
+ * Don't require presence of `git` in gemspec [@toy](https://github.com/toy)
10
+
11
+ ## v0.13.0 (2026-04-04)
12
+
13
+ * Add linux-x86_64-musl and linux-aarch64-musl builds [@toy](https://github.com/toy)
14
+ * Differentiate linux platform and vendor dirs using libc suffix [@toy](https://github.com/toy)
15
+ * Add linux-aarch64/arm64 platform built using debian bookworm [@toy](https://github.com/toy)
16
+
5
17
  ## v0.12.2.20260327 (2026-03-27)
6
18
 
7
19
  * libpng 1.6.56 [@toy](https://github.com/toy)
data/Dockerfile CHANGED
@@ -1,161 +1,161 @@
1
- FROM alpine as base
1
+ FROM alpine AS base
2
2
  ENV LD_LIBRARY_PATH=/usr/local/lib
3
3
  WORKDIR /tmp
4
4
 
5
- FROM base as build
5
+ FROM base AS build
6
6
  RUN apk add --no-cache build-base cmake nasm bash findutils
7
7
  COPY script/extract ./
8
8
  ENV CPATH=/usr/local/include
9
9
 
10
- FROM rust:1-alpine as cargo
10
+ FROM rust:1-alpine AS cargo
11
11
  RUN apk add --no-cache build-base
12
12
  COPY script/extract ./
13
13
 
14
- FROM cargo as libz
14
+ FROM cargo AS libz
15
15
  ARG LIBZ_VER
16
16
  ARG LIBZ_SHA256
17
17
  COPY download/libz-$LIBZ_VER.tar.gz download/
18
- RUN ./extract libz && \
19
- cd build/libz && \
20
- ./configure && \
21
- make install
18
+ RUN ./extract libz \
19
+ && cd build/libz \
20
+ && ./configure \
21
+ && make install
22
22
 
23
- FROM libz as libpng
23
+ FROM libz AS libpng
24
24
  ARG LIBPNG_VER
25
25
  ARG LIBPNG_SHA256
26
26
  COPY download/libpng-$LIBPNG_VER.tar.gz download/
27
- RUN ./extract libpng && \
28
- cd build/libpng && \
29
- ./configure --with-zlib-prefix=/usr/local && \
30
- make install
27
+ RUN ./extract libpng \
28
+ && cd build/libpng \
29
+ && ./configure --with-zlib-prefix=/usr/local \
30
+ && make install
31
31
 
32
- FROM libpng as liblcms2
32
+ FROM libpng AS liblcms2
33
33
  ARG LIBLCMS2_VER
34
34
  ARG LIBLCMS2_SHA256
35
35
  COPY download/liblcms2-$LIBLCMS2_VER.tar.gz download/
36
- RUN ./extract liblcms2 && \
37
- cd build/liblcms2 && \
38
- ./configure && \
39
- make install
36
+ RUN ./extract liblcms2 \
37
+ && cd build/liblcms2 \
38
+ && ./configure \
39
+ && make install
40
40
 
41
- FROM build as libjpeg
41
+ FROM build AS libjpeg
42
42
  ARG LIBJPEG_VER
43
43
  ARG LIBJPEG_SHA256
44
44
  COPY download/libjpeg-$LIBJPEG_VER.tar.gz download/
45
- RUN ./extract libjpeg && \
46
- cd build/libjpeg && \
47
- ./configure && \
48
- make install
45
+ RUN ./extract libjpeg \
46
+ && cd build/libjpeg \
47
+ && ./configure \
48
+ && make install
49
49
 
50
- FROM build as libmozjpeg
50
+ FROM build AS libmozjpeg
51
51
  ARG LIBMOZJPEG_VER
52
52
  ARG LIBMOZJPEG_SHA256
53
53
  COPY download/libmozjpeg-$LIBMOZJPEG_VER.tar.gz download/
54
- RUN ./extract libmozjpeg && \
55
- cd build/libmozjpeg && \
56
- cmake -DPNG_SUPPORTED=0 -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . && \
57
- make install
54
+ RUN ./extract libmozjpeg \
55
+ && cd build/libmozjpeg \
56
+ && cmake -DPNG_SUPPORTED=0 -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . \
57
+ && make install
58
58
 
59
- FROM libpng as advancecomp
59
+ FROM libpng AS advancecomp
60
60
  ARG ADVANCECOMP_VER
61
61
  ARG ADVANCECOMP_SHA256
62
62
  COPY download/advancecomp-$ADVANCECOMP_VER.tar.gz download/
63
- RUN ./extract advancecomp && \
64
- cd build/advancecomp && \
65
- ./configure && \
66
- make install
63
+ RUN ./extract advancecomp \
64
+ && cd build/advancecomp \
65
+ && ./configure \
66
+ && make install
67
67
 
68
- FROM build as gifsicle
68
+ FROM build AS gifsicle
69
69
  ARG GIFSICLE_VER
70
70
  ARG GIFSICLE_SHA256
71
71
  COPY download/gifsicle-$GIFSICLE_VER.tar.gz download/
72
- RUN ./extract gifsicle && \
73
- cd build/gifsicle && \
74
- ./configure && \
75
- make install
72
+ RUN ./extract gifsicle \
73
+ && cd build/gifsicle \
74
+ && ./configure \
75
+ && make install
76
76
 
77
- FROM build as jhead
77
+ FROM build AS jhead
78
78
  ARG JHEAD_VER
79
79
  ARG JHEAD_SHA256
80
80
  COPY download/jhead-$JHEAD_VER.tar.gz download/
81
- RUN ./extract jhead && \
82
- cd build/jhead && \
83
- make && \
84
- install -c jhead /usr/local/bin
81
+ RUN ./extract jhead \
82
+ && cd build/jhead \
83
+ && make \
84
+ && install -c jhead /usr/local/bin
85
85
 
86
- FROM libmozjpeg as jpegarchive
86
+ FROM libmozjpeg AS jpegarchive
87
87
  ARG JPEGARCHIVE_VER
88
88
  ARG JPEGARCHIVE_SHA256
89
89
  COPY download/jpegarchive-$JPEGARCHIVE_VER.tar.gz download/
90
- RUN ./extract jpegarchive && \
91
- cd build/jpegarchive && \
92
- CFLAGS=-fcommon make install
90
+ RUN ./extract jpegarchive \
91
+ && cd build/jpegarchive \
92
+ && CFLAGS=-fcommon make install
93
93
 
94
- FROM libjpeg as jpegoptim
94
+ FROM libjpeg AS jpegoptim
95
95
  ARG JPEGOPTIM_VER
96
96
  ARG JPEGOPTIM_SHA256
97
97
  COPY download/jpegoptim-$JPEGOPTIM_VER.tar.gz download/
98
- RUN ./extract jpegoptim && \
99
- cd build/jpegoptim && \
100
- ./configure && \
101
- make install
98
+ RUN ./extract jpegoptim \
99
+ && cd build/jpegoptim \
100
+ && ./configure \
101
+ && make install
102
102
 
103
- FROM libpng as optipng
103
+ FROM libpng AS optipng
104
104
  ARG OPTIPNG_VER
105
105
  ARG OPTIPNG_SHA256
106
106
  COPY download/optipng-$OPTIPNG_VER.tar.gz download/
107
- RUN ./extract optipng && \
108
- cd build/optipng && \
109
- ./configure && \
110
- make install
107
+ RUN ./extract optipng \
108
+ && cd build/optipng \
109
+ && ./configure \
110
+ && make install
111
111
 
112
- FROM cargo as oxipng
112
+ FROM cargo AS oxipng
113
113
  ARG OXIPNG_VER
114
114
  ARG OXIPNG_SHA256
115
115
  COPY download/oxipng-$OXIPNG_VER.tar.gz download/
116
- RUN ./extract oxipng && \
117
- cd build/oxipng && \
118
- cargo build --release && \
119
- install -c target/release/oxipng /usr/local/bin
116
+ RUN ./extract oxipng \
117
+ && cd build/oxipng \
118
+ && cargo build --release \
119
+ && install -c target/release/oxipng /usr/local/bin
120
120
 
121
- FROM libpng as pngcrush
121
+ FROM libpng AS pngcrush
122
122
  ARG PNGCRUSH_VER
123
123
  ARG PNGCRUSH_SHA256
124
124
  COPY download/pngcrush-$PNGCRUSH_VER.tar.gz download/
125
125
  COPY patches/pngcrush.patch patches/
126
- RUN ./extract pngcrush && \
127
- cd build/pngcrush && \
128
- patch < ../../patches/pngcrush.patch && \
129
- make && \
130
- install -c pngcrush /usr/local/bin
126
+ RUN ./extract pngcrush \
127
+ && cd build/pngcrush \
128
+ && patch < ../../patches/pngcrush.patch \
129
+ && make \
130
+ && install -c pngcrush /usr/local/bin
131
131
 
132
- FROM build as pngout
132
+ FROM build AS pngout
133
133
  ARG PNGOUT_LINUX_STATIC_VER
134
134
  ARG PNGOUT_LINUX_STATIC_SHA256
135
135
  COPY download/pngout_linux_static-$PNGOUT_LINUX_STATIC_VER.tar.gz download/
136
- RUN ./extract pngout_linux_static && \
137
- cd build/pngout_linux_static && \
138
- cp amd64/pngout-static /usr/local/bin/pngout
136
+ RUN ./extract pngout_linux_static \
137
+ && cd build/pngout_linux_static \
138
+ && cp amd64/pngout-static /usr/local/bin/pngout
139
139
 
140
- FROM liblcms2 as pngquant
140
+ FROM liblcms2 AS pngquant
141
141
  ARG PNGQUANT_VER
142
142
  ARG PNGQUANT_SHA256
143
143
  COPY download/pngquant-$PNGQUANT_VER.tar.gz download/
144
- RUN ./extract pngquant && \
145
- cd build/pngquant && \
146
- cargo build --release && \
147
- install -c target/release/pngquant /usr/local/bin
144
+ RUN ./extract pngquant \
145
+ && cd build/pngquant \
146
+ && cargo build --release \
147
+ && install -c target/release/pngquant /usr/local/bin
148
148
 
149
- # FROM build as [name]
149
+ # FROM build AS [name]
150
150
  # ARG [NAME]_VER
151
151
  # ARG [NAME]_SHA256
152
152
  # COPY download/[name]-$[NAME]_VER.tar.gz download/
153
- # RUN ./extract [name] && \
154
- # cd build/[name] && \
155
- # ./configure && \
156
- # make install
153
+ # RUN ./extract [name] \
154
+ # && cd build/[name] \
155
+ # && ./configure \
156
+ # && make install
157
157
 
158
- FROM base as image_optim
158
+ FROM base AS image_optim
159
159
  RUN apk add --no-cache libstdc++ ruby npm perl dumb-init
160
160
 
161
161
  COPY README.markdown /
data/Dockerfile.debian CHANGED
@@ -1,162 +1,168 @@
1
- FROM debian as base
1
+ FROM debian AS base
2
2
  ENV LD_LIBRARY_PATH=/usr/local/lib
3
3
  WORKDIR /tmp
4
4
 
5
- FROM base as build
6
- RUN apt-get update && apt-get install -y build-essential cmake nasm bash findutils
5
+ FROM base AS build
6
+ RUN apt-get update \
7
+ && apt-get install -y --no-install-recommends build-essential cmake nasm bash findutils \
8
+ && rm -rf /var/lib/apt/lists/*
7
9
  COPY script/extract ./
8
10
  ENV CPATH=/usr/local/include
9
11
 
10
- FROM rust:1 as cargo
11
- RUN apt-get update && apt-get install -y build-essential
12
+ FROM rust:1 AS cargo
13
+ RUN apt-get update \
14
+ && apt-get install -y --no-install-recommends build-essential \
15
+ && rm -rf /var/lib/apt/lists/*
12
16
  COPY script/extract ./
13
17
 
14
- FROM cargo as libz
18
+ FROM cargo AS libz
15
19
  ARG LIBZ_VER
16
20
  ARG LIBZ_SHA256
17
21
  COPY download/libz-$LIBZ_VER.tar.gz download/
18
- RUN ./extract libz && \
19
- cd build/libz && \
20
- ./configure && \
21
- make install
22
+ RUN ./extract libz \
23
+ && cd build/libz \
24
+ && ./configure \
25
+ && make install
22
26
 
23
- FROM libz as libpng
27
+ FROM libz AS libpng
24
28
  ARG LIBPNG_VER
25
29
  ARG LIBPNG_SHA256
26
30
  COPY download/libpng-$LIBPNG_VER.tar.gz download/
27
- RUN ./extract libpng && \
28
- cd build/libpng && \
29
- ./configure --with-zlib-prefix=/usr/local && \
30
- make install
31
+ RUN ./extract libpng \
32
+ && cd build/libpng \
33
+ && ./configure --with-zlib-prefix=/usr/local \
34
+ && make install
31
35
 
32
- FROM libpng as liblcms2
36
+ FROM libpng AS liblcms2
33
37
  ARG LIBLCMS2_VER
34
38
  ARG LIBLCMS2_SHA256
35
39
  COPY download/liblcms2-$LIBLCMS2_VER.tar.gz download/
36
- RUN ./extract liblcms2 && \
37
- cd build/liblcms2 && \
38
- ./configure && \
39
- make install
40
+ RUN ./extract liblcms2 \
41
+ && cd build/liblcms2 \
42
+ && ./configure \
43
+ && make install
40
44
 
41
- FROM build as libjpeg
45
+ FROM build AS libjpeg
42
46
  ARG LIBJPEG_VER
43
47
  ARG LIBJPEG_SHA256
44
48
  COPY download/libjpeg-$LIBJPEG_VER.tar.gz download/
45
- RUN ./extract libjpeg && \
46
- cd build/libjpeg && \
47
- ./configure && \
48
- make install
49
+ RUN ./extract libjpeg \
50
+ && cd build/libjpeg \
51
+ && ./configure \
52
+ && make install
49
53
 
50
- FROM build as libmozjpeg
54
+ FROM build AS libmozjpeg
51
55
  ARG LIBMOZJPEG_VER
52
56
  ARG LIBMOZJPEG_SHA256
53
57
  COPY download/libmozjpeg-$LIBMOZJPEG_VER.tar.gz download/
54
- RUN ./extract libmozjpeg && \
55
- cd build/libmozjpeg && \
56
- cmake -DPNG_SUPPORTED=0 -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . && \
57
- make install
58
+ RUN ./extract libmozjpeg \
59
+ && cd build/libmozjpeg \
60
+ && cmake -DPNG_SUPPORTED=0 -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . \
61
+ && make install
58
62
 
59
- FROM libpng as advancecomp
63
+ FROM libpng AS advancecomp
60
64
  ARG ADVANCECOMP_VER
61
65
  ARG ADVANCECOMP_SHA256
62
66
  COPY download/advancecomp-$ADVANCECOMP_VER.tar.gz download/
63
- RUN ./extract advancecomp && \
64
- cd build/advancecomp && \
65
- ./configure && \
66
- make install
67
+ RUN ./extract advancecomp \
68
+ && cd build/advancecomp \
69
+ && ./configure \
70
+ && make install
67
71
 
68
- FROM build as gifsicle
72
+ FROM build AS gifsicle
69
73
  ARG GIFSICLE_VER
70
74
  ARG GIFSICLE_SHA256
71
75
  COPY download/gifsicle-$GIFSICLE_VER.tar.gz download/
72
- RUN ./extract gifsicle && \
73
- cd build/gifsicle && \
74
- ./configure && \
75
- make install
76
+ RUN ./extract gifsicle \
77
+ && cd build/gifsicle \
78
+ && ./configure \
79
+ && make install
76
80
 
77
- FROM build as jhead
81
+ FROM build AS jhead
78
82
  ARG JHEAD_VER
79
83
  ARG JHEAD_SHA256
80
84
  COPY download/jhead-$JHEAD_VER.tar.gz download/
81
- RUN ./extract jhead && \
82
- cd build/jhead && \
83
- make && \
84
- install -c jhead /usr/local/bin
85
+ RUN ./extract jhead \
86
+ && cd build/jhead \
87
+ && make \
88
+ && install -c jhead /usr/local/bin
85
89
 
86
- FROM libmozjpeg as jpegarchive
90
+ FROM libmozjpeg AS jpegarchive
87
91
  ARG JPEGARCHIVE_VER
88
92
  ARG JPEGARCHIVE_SHA256
89
93
  COPY download/jpegarchive-$JPEGARCHIVE_VER.tar.gz download/
90
- RUN ./extract jpegarchive && \
91
- cd build/jpegarchive && \
92
- CFLAGS=-fcommon make install
94
+ RUN ./extract jpegarchive \
95
+ && cd build/jpegarchive \
96
+ && CFLAGS=-fcommon make install
93
97
 
94
- FROM libjpeg as jpegoptim
98
+ FROM libjpeg AS jpegoptim
95
99
  ARG JPEGOPTIM_VER
96
100
  ARG JPEGOPTIM_SHA256
97
101
  COPY download/jpegoptim-$JPEGOPTIM_VER.tar.gz download/
98
- RUN ./extract jpegoptim && \
99
- cd build/jpegoptim && \
100
- ./configure && \
101
- make install
102
+ RUN ./extract jpegoptim \
103
+ && cd build/jpegoptim \
104
+ && ./configure \
105
+ && make install
102
106
 
103
- FROM libpng as optipng
107
+ FROM libpng AS optipng
104
108
  ARG OPTIPNG_VER
105
109
  ARG OPTIPNG_SHA256
106
110
  COPY download/optipng-$OPTIPNG_VER.tar.gz download/
107
- RUN ./extract optipng && \
108
- cd build/optipng && \
109
- ./configure && \
110
- make install
111
+ RUN ./extract optipng \
112
+ && cd build/optipng \
113
+ && ./configure \
114
+ && make install
111
115
 
112
- FROM cargo as oxipng
116
+ FROM cargo AS oxipng
113
117
  ARG OXIPNG_VER
114
118
  ARG OXIPNG_SHA256
115
119
  COPY download/oxipng-$OXIPNG_VER.tar.gz download/
116
- RUN ./extract oxipng && \
117
- cd build/oxipng && \
118
- cargo build --release && \
119
- install -c target/release/oxipng /usr/local/bin
120
+ RUN ./extract oxipng \
121
+ && cd build/oxipng \
122
+ && cargo build --release \
123
+ && install -c target/release/oxipng /usr/local/bin
120
124
 
121
- FROM libpng as pngcrush
125
+ FROM libpng AS pngcrush
122
126
  ARG PNGCRUSH_VER
123
127
  ARG PNGCRUSH_SHA256
124
128
  COPY download/pngcrush-$PNGCRUSH_VER.tar.gz download/
125
129
  COPY patches/pngcrush.patch patches/
126
- RUN ./extract pngcrush && \
127
- cd build/pngcrush && \
128
- patch < ../../patches/pngcrush.patch && \
129
- make && \
130
- install -c pngcrush /usr/local/bin
131
-
132
- FROM build as pngout
133
- ARG PNGOUT_LINUX_STATIC_VER
134
- ARG PNGOUT_LINUX_STATIC_SHA256
135
- COPY download/pngout_linux_static-$PNGOUT_LINUX_STATIC_VER.tar.gz download/
136
- RUN ./extract pngout_linux_static && \
137
- cd build/pngout_linux_static && \
138
- cp amd64/pngout-static /usr/local/bin/pngout
139
-
140
- FROM liblcms2 as pngquant
130
+ RUN ./extract pngcrush \
131
+ && cd build/pngcrush \
132
+ && patch < ../../patches/pngcrush.patch \
133
+ && make \
134
+ && install -c pngcrush /usr/local/bin
135
+
136
+ FROM build AS pngout
137
+ ARG PNGOUT_LINUX_VER
138
+ ARG PNGOUT_LINUX_SHA256
139
+ COPY download/pngout_linux-$PNGOUT_LINUX_VER.tar.gz download/
140
+ RUN ./extract pngout_linux \
141
+ && cd build/pngout_linux \
142
+ && cp amd64/pngout /usr/local/bin/pngout
143
+
144
+ FROM liblcms2 AS pngquant
141
145
  ARG PNGQUANT_VER
142
146
  ARG PNGQUANT_SHA256
143
147
  COPY download/pngquant-$PNGQUANT_VER.tar.gz download/
144
- RUN ./extract pngquant && \
145
- cd build/pngquant && \
146
- cargo build --release && \
147
- install -c target/release/pngquant /usr/local/bin
148
+ RUN ./extract pngquant \
149
+ && cd build/pngquant \
150
+ && cargo build --release \
151
+ && install -c target/release/pngquant /usr/local/bin
148
152
 
149
- # FROM build as [name]
153
+ # FROM build AS [name]
150
154
  # ARG [NAME]_VER
151
155
  # ARG [NAME]_SHA256
152
156
  # COPY download/[name]-$[NAME]_VER.tar.gz download/
153
- # RUN ./extract [name] && \
154
- # cd build/[name] && \
155
- # ./configure && \
156
- # make install
157
-
158
- FROM base as image_optim
159
- RUN apt-get update && apt-get install -y ruby npm perl-base dumb-init
157
+ # RUN ./extract [name] \
158
+ # && cd build/[name] \
159
+ # && ./configure \
160
+ # && make install
161
+
162
+ FROM base AS image_optim
163
+ RUN apt-get update \
164
+ && apt-get install -y --no-install-recommends ruby npm perl-base dumb-init \
165
+ && rm -rf /var/lib/apt/lists/*
160
166
 
161
167
  COPY README.markdown /
162
168
  COPY acknowledgements /acknowledgements