image_optim_pack 0.12.2.20260306-x86_64-linux → 0.13.1-x86_64-linux

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 (53) 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/.github/workflows/docker-build.yml +1 -1
  6. data/.rubocop.yml +3 -0
  7. data/CHANGELOG.markdown +16 -0
  8. data/Dockerfile +83 -83
  9. data/Dockerfile.debian +98 -92
  10. data/Makefile +41 -27
  11. data/checksums.mk +1 -1
  12. data/image_optim_pack-linux-aarch64-gnu.gemspec +3 -0
  13. data/image_optim_pack-linux-aarch64-musl.gemspec +3 -0
  14. data/image_optim_pack-linux-aarch64.gemspec +3 -0
  15. data/image_optim_pack-linux-x86_64-gnu.gemspec +3 -0
  16. data/image_optim_pack-linux-x86_64-musl.gemspec +3 -0
  17. data/image_optim_pack.gemspec +29 -21
  18. data/lib/image_optim/pack.rb +22 -5
  19. data/script/platform_downloads +6 -2
  20. data/script/run +38 -11
  21. data/spec/image_optim/pack_spec.rb +8 -2
  22. data/vendor/{linux-x86_64 → linux-x86_64-gnu}/libpng.so +0 -0
  23. data/vendor/{linux-x86_64 → linux-x86_64-gnu}/optipng +0 -0
  24. data/vendor/{linux-x86_64 → linux-x86_64-gnu}/pngcrush +0 -0
  25. data/vendor/linux-x86_64-gnu/pngquant +0 -0
  26. data/vendor/linux-x86_64-musl/advpng +0 -0
  27. data/vendor/linux-x86_64-musl/gifsicle +0 -0
  28. data/vendor/linux-x86_64-musl/jhead +0 -0
  29. data/vendor/linux-x86_64-musl/jpeg-recompress +0 -0
  30. data/vendor/linux-x86_64-musl/jpegoptim +0 -0
  31. data/vendor/linux-x86_64-musl/jpegtran +0 -0
  32. data/vendor/linux-x86_64-musl/libjpeg.so +0 -0
  33. data/vendor/linux-x86_64-musl/liblcms2.so +0 -0
  34. data/vendor/linux-x86_64-musl/libpng.so +0 -0
  35. data/vendor/linux-x86_64-musl/libz.so +0 -0
  36. data/vendor/linux-x86_64-musl/optipng +0 -0
  37. data/vendor/linux-x86_64-musl/oxipng +0 -0
  38. data/vendor/linux-x86_64-musl/pngcrush +0 -0
  39. data/vendor/linux-x86_64-musl/pngout +0 -0
  40. data/vendor/linux-x86_64-musl/pngquant +0 -0
  41. metadata +37 -17
  42. data/vendor/linux-x86_64/pngquant +0 -0
  43. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/advpng +0 -0
  44. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/gifsicle +0 -0
  45. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jhead +0 -0
  46. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jpeg-recompress +0 -0
  47. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jpegoptim +0 -0
  48. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/jpegtran +0 -0
  49. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/libjpeg.so +0 -0
  50. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/liblcms2.so +0 -0
  51. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/libz.so +0 -0
  52. /data/vendor/{linux-x86_64 → linux-x86_64-gnu}/oxipng +0 -0
  53. /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: 7697027fa1b6c1c1baa67c6c5869724cfb5a546d7eab673f97f625fa8d7c7b7f
4
- data.tar.gz: 623060b659d6434b9e8ec5aa17190c757e05b23faebad3c8c8a66d00f30fdc46
3
+ metadata.gz: 71edca8cf69e12178f62f90919d94a937f16cdb274e1409b372a13485516dace
4
+ data.tar.gz: 7d608bd2ea4bb60cb7e64cf8be14cbe824965ed94e762766af527fc270d99aff
5
5
  SHA512:
6
- metadata.gz: 59254eb971baa6aac9ed14b6d0732f723524819986ef6f06bf8344ec3e0e80cdfc39417a9d4a4bf782e31d1b5b7fe6a1d50e1f558d1b31e9f629c5312f664348
7
- data.tar.gz: 4e0876fa0560e9d9a57fe3300fdf6b88ed7d0f2c0dc027631689b630f9d8cfed74b5c10984b368dd864ebef663115816fde30c46d14e43075fd0f7893cbab314
6
+ metadata.gz: 93b155c67ac4dff0248cf1b6cb9cacb3beeee80081b4acb52326326485e011075b2405bcd2bef6e8d924e7a50fe40f20cffa92714d538e249dcc5b6c1919c719
7
+ data.tar.gz: 8628cbf16837ef600e7cd9536641cc04ef15639986c2d2691e56d3be9a41929c9674f79b608897771ccbacb7057fa05a3bca779c67ba36e05326cffebf42a1af
@@ -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'
@@ -14,7 +14,7 @@ jobs:
14
14
  fail-fast: false
15
15
  steps:
16
16
  - uses: actions/checkout@v6
17
- - uses: docker/login-action@v3
17
+ - uses: docker/login-action@v4
18
18
  with:
19
19
  registry: ghcr.io
20
20
  username: ${{ github.actor }}
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,22 @@
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
+
17
+ ## v0.12.2.20260327 (2026-03-27)
18
+
19
+ * libpng 1.6.56 [@toy](https://github.com/toy)
20
+
5
21
  ## v0.12.2.20260306 (2026-03-06)
6
22
 
7
23
  * jhead 3.08 [@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 /