image_optim_pack 0.13.0 → 0.13.1.20260418

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +6 -4
  3. data/.github/workflows/build.yml +16 -4
  4. data/.github/workflows/cache-downloads.yml +53 -0
  5. data/.github/workflows/docker-build.yml +5 -0
  6. data/.github/workflows/livecheck.yml +6 -3
  7. data/CHANGELOG.markdown +10 -0
  8. data/Dockerfile +63 -63
  9. data/Dockerfile.debian +72 -66
  10. data/Makefile +10 -7
  11. data/README.markdown +2 -1
  12. data/checksums.mk +1 -1
  13. data/image_optim_pack-linux-aarch64.gemspec +3 -0
  14. data/image_optim_pack-linux-x86_64.gemspec +3 -0
  15. data/image_optim_pack.gemspec +29 -21
  16. data/script/livecheck +41 -19
  17. data/script/platform_downloads +8 -2
  18. data/vendor/darwin-arm64/libpng.dylib +0 -0
  19. data/vendor/darwin-arm64/optipng +0 -0
  20. data/vendor/darwin-arm64/oxipng +0 -0
  21. data/vendor/darwin-arm64/pngcrush +0 -0
  22. data/vendor/darwin-arm64/pngquant +0 -0
  23. data/vendor/darwin-x86_64/libpng.dylib +0 -0
  24. data/vendor/darwin-x86_64/optipng +0 -0
  25. data/vendor/darwin-x86_64/pngcrush +0 -0
  26. data/vendor/darwin-x86_64/pngquant +0 -0
  27. data/vendor/linux-aarch64-gnu/libpng.so +0 -0
  28. data/vendor/linux-aarch64-gnu/optipng +0 -0
  29. data/vendor/linux-aarch64-gnu/pngcrush +0 -0
  30. data/vendor/linux-aarch64-gnu/pngquant +0 -0
  31. data/vendor/linux-aarch64-musl/libpng.so +0 -0
  32. data/vendor/linux-aarch64-musl/optipng +0 -0
  33. data/vendor/linux-aarch64-musl/pngcrush +0 -0
  34. data/vendor/linux-aarch64-musl/pngquant +0 -0
  35. data/vendor/linux-x86_64-gnu/libpng.so +0 -0
  36. data/vendor/linux-x86_64-gnu/optipng +0 -0
  37. data/vendor/linux-x86_64-gnu/pngcrush +0 -0
  38. data/vendor/linux-x86_64-gnu/pngquant +0 -0
  39. data/vendor/linux-x86_64-musl/libpng.so +0 -0
  40. data/vendor/linux-x86_64-musl/optipng +0 -0
  41. data/vendor/linux-x86_64-musl/pngcrush +0 -0
  42. data/vendor/linux-x86_64-musl/pngquant +0 -0
  43. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a61d4808d7c57038edadd1f8fcb7985f4f8739f47c625595f48a016483bdc67e
4
- data.tar.gz: 21e28d8500925517caa71ca5ee3de37701a7e745c5a6d6506f57bc654eba8399
3
+ metadata.gz: e16756c0ef6b7711b0e39587a69fa25580afe84ee1bdf42025c31d6c975a58ac
4
+ data.tar.gz: c430c7c7c44c0fa80ee84b76ec6250575f960aef42793792d087eec3f685b55d
5
5
  SHA512:
6
- metadata.gz: 5adea1b45237b93c23642a29fed4d7dd6cde1343278d62587f78d0f7c045ed7547056fa66b1fed90bc31cbe406250a3d7fa8c5ab2bbc8797afd0d5f4557bc7ef
7
- data.tar.gz: 170a3237331e8801290737ed7b6238bf717a75b0d96cdc934fa3ffa0da8db2923646346a669a6016480f4fa8541cc42ce4c0b155a32b074847e90cfd3f3bde91
6
+ metadata.gz: 0c8d9df9bfaadb6aaf0a5009f7a724a62349d28b991816c682a93ad18937365cafb894d1fe885f244d87cb8019b7513255466552d6194936d3ce06b86ea51aeb
7
+ data.tar.gz: 0b79ddb594329a18fdb1f8e575cece74c85f01339308c81a38d816663d8cf045845ba18b26b144b4482bff544d4c94d93d43e656463c89d375f21505d2ecc993
@@ -1,6 +1,8 @@
1
1
  version: 2
2
2
  updates:
3
- - package-ecosystem: github-actions
4
- directory: /
5
- schedule:
6
- interval: weekly
3
+ - package-ecosystem: github-actions
4
+ directory: /
5
+ schedule:
6
+ interval: daily
7
+ cooldown:
8
+ default-days: 7
@@ -11,11 +11,15 @@ jobs:
11
11
  runs-on: ${{ case(matrix.arch == 'x86_64', 'ubuntu-latest', 'ubuntu-22.04-arm') }}
12
12
  steps:
13
13
  - uses: actions/checkout@v6
14
+ - uses: actions/cache/restore@v5
15
+ with:
16
+ path: download
17
+ key: download-${{ hashFiles('checksums.mk') }}
18
+ fail-on-cache-miss: true
14
19
  - run: uname -m && test "$(uname -m)" = "${{ matrix.arch }}"
15
20
  - run: make test
16
21
  - run: rm -r vendor
17
22
  - run: sudo apt-get install -y chrpath
18
- - run: make download download-dependencies
19
23
  - run: make all -j
20
24
  - uses: actions/upload-artifact@v7
21
25
  with:
@@ -30,13 +34,17 @@ jobs:
30
34
  runs-on: ${{ case(matrix.arch == 'x86_64', 'ubuntu-latest', 'ubuntu-22.04-arm') }}
31
35
  steps:
32
36
  - uses: actions/checkout@v6
37
+ - uses: actions/cache/restore@v5
38
+ with:
39
+ path: download
40
+ key: download-${{ hashFiles('checksums.mk') }}
41
+ fail-on-cache-miss: true
33
42
  - run: docker run -di --rm --name build -v ${{ github.workspace }}:/work -w /work rust:alpine
34
43
  - run: docker exec build sh -c 'uname -m && test "$(uname -m)" = "${{ matrix.arch }}"'
35
44
  - run: docker exec build apk add --no-cache make file perl
36
45
  - run: docker exec build make test
37
46
  - 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
47
+ - run: docker exec build apk add --no-cache gcc g++ chrpath pkgconf autoconf automake libtool nasm cmake patch
40
48
  - run: docker exec build make all -j
41
49
  - run: docker stop build
42
50
  if: always()
@@ -54,10 +62,14 @@ jobs:
54
62
  runs-on: ${{ case(matrix.arch == 'x86_64', 'macos-15-intel', 'macos-14') }}
55
63
  steps:
56
64
  - uses: actions/checkout@v6
65
+ - uses: actions/cache/restore@v5
66
+ with:
67
+ path: download
68
+ key: download-${{ hashFiles('checksums.mk') }}
69
+ fail-on-cache-miss: true
57
70
  - run: uname -m && test "$(uname -m)" = "${{ matrix.arch }}"
58
71
  - run: make test ARCH="${{ matrix.build }}"
59
72
  - run: rm -r vendor
60
- - run: make download download-dependencies
61
73
  - run: rustup target add "${{ case(matrix.build == 'arm64', 'aarch64', matrix.build) }}-apple-darwin"
62
74
  if: ${{ matrix.build != matrix.arch }}
63
75
  - run: make all -j ARCH="${{ matrix.build }}"
@@ -0,0 +1,53 @@
1
+ name: cache-downloads
2
+ on:
3
+ schedule:
4
+ - cron: 7 10 */3 * *
5
+ workflow_dispatch:
6
+ inputs:
7
+ retry:
8
+ description: 'Retry attempt'
9
+ required: true
10
+ type: number
11
+ jobs:
12
+ cache-downloads:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v6
16
+ - uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: '4'
19
+ bundler-cache: true
20
+ - id: cache-restore
21
+ uses: actions/cache/restore@v5
22
+ with:
23
+ path: download
24
+ key: download-${{ hashFiles('checksums.mk') }}
25
+ restore-keys: download-
26
+ - run: make download-tidy-up
27
+ - run: make download
28
+ - run: make download-dependencies
29
+ - uses: actions/cache/save@v5
30
+ with:
31
+ path: download
32
+ key: download-${{ hashFiles('checksums.mk') }}
33
+ if: steps.cache-restore.outputs.cache-hit != 'true'
34
+ - run: make purge-dependencies
35
+ - env:
36
+ RETRY: ${{ inputs.retry }}
37
+ RETRIES: 3
38
+ GITHUB_TOKEN: ${{ secrets.RETRY_TOKEN }}
39
+ run: |
40
+ make update-versions || {
41
+ exit_code=$?
42
+ if (( ${RETRY:-0} < $RETRIES )); then
43
+ sleep $(( ($RETRY + 0) * 30 ))
44
+ gh workflow run "$GITHUB_WORKFLOW" --repo "$GITHUB_REPOSITORY" --ref "$GITHUB_REF_NAME" -f retry=$(( $RETRY + 1 ))
45
+ else
46
+ exit $exit_code
47
+ fi
48
+ }
49
+ - uses: actions/cache@v5
50
+ with:
51
+ path: download
52
+ key: download-${{ hashFiles('checksums.mk') }}
53
+ lookup-only: true
@@ -14,6 +14,11 @@ jobs:
14
14
  fail-fast: false
15
15
  steps:
16
16
  - uses: actions/checkout@v6
17
+ - uses: actions/cache/restore@v5
18
+ with:
19
+ path: download
20
+ key: download-${{ hashFiles('checksums.mk') }}
21
+ fail-on-cache-miss: true
17
22
  - uses: docker/login-action@v4
18
23
  with:
19
24
  registry: ghcr.io
@@ -21,15 +21,18 @@ jobs:
21
21
  bundler-cache: true
22
22
  - env:
23
23
  RETRY: ${{ inputs.retry }}
24
- RETRIES: 10
24
+ RETRIES: 3
25
25
  GITHUB_TOKEN: ${{ secrets.RETRY_TOKEN }}
26
26
  run: |
27
- bundle exec script/livecheck || {
27
+ script/livecheck || {
28
28
  exit_code=$?
29
29
  if (( $exit_code == 2 )) && (( ${RETRY:-0} < $RETRIES )); then
30
30
  sleep 300
31
- gh workflow run livecheck --repo $GITHUB_REPOSITORY --ref $GITHUB_REF_NAME -f retry=$(( $RETRY + 1 ))
31
+ gh workflow run "$GITHUB_WORKFLOW" --repo "$GITHUB_REPOSITORY" --ref "$GITHUB_REF_NAME" -f retry=$(( $RETRY + 1 ))
32
32
  else
33
+ if (( $exit_code == 1 )); then
34
+ gh workflow run cache-downloads --repo "$GITHUB_REPOSITORY" --ref "$GITHUB_REF_NAME" -f retry=0
35
+ fi
33
36
  exit $exit_code
34
37
  fi
35
38
  }
data/CHANGELOG.markdown CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## unreleased
4
4
 
5
+ ## v0.13.1.20260418 (2026-04-18)
6
+
7
+ * libpng 1.6.58 [@toy](https://github.com/toy)
8
+
9
+ ## v0.13.1 (2026-04-12)
10
+
11
+ * Add linux-x86_64 and linux-aarch64 platforms including two vendor dirs each [@toy](https://github.com/toy)
12
+ * libpng 1.6.57 [@toy](https://github.com/toy)
13
+ * Don't require presence of `git` in gemspec [@toy](https://github.com/toy)
14
+
5
15
  ## v0.13.0 (2026-04-04)
6
16
 
7
17
  * Add linux-x86_64-musl and linux-aarch64-musl builds [@toy](https://github.com/toy)
data/Dockerfile CHANGED
@@ -15,145 +15,145 @@ 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
158
  FROM base AS image_optim
159
159
  RUN apk add --no-cache libstdc++ ruby npm perl dumb-init
data/Dockerfile.debian CHANGED
@@ -3,160 +3,166 @@ ENV LD_LIBRARY_PATH=/usr/local/lib
3
3
  WORKDIR /tmp
4
4
 
5
5
  FROM base AS build
6
- RUN apt-get update && apt-get install -y build-essential cmake nasm bash findutils
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
12
  FROM rust:1 AS cargo
11
- RUN apt-get update && apt-get install -y build-essential
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
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
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
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
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
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
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
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
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
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
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
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
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
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
130
+ RUN ./extract pngcrush \
131
+ && cd build/pngcrush \
132
+ && patch < ../../patches/pngcrush.patch \
133
+ && make \
134
+ && install -c pngcrush /usr/local/bin
131
135
 
132
136
  FROM build AS pngout
133
137
  ARG PNGOUT_LINUX_VER
134
138
  ARG PNGOUT_LINUX_SHA256
135
139
  COPY download/pngout_linux-$PNGOUT_LINUX_VER.tar.gz download/
136
- RUN ./extract pngout_linux && \
137
- cd build/pngout_linux && \
138
- cp amd64/pngout /usr/local/bin/pngout
140
+ RUN ./extract pngout_linux \
141
+ && cd build/pngout_linux \
142
+ && cp amd64/pngout /usr/local/bin/pngout
139
143
 
140
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
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
+ # RUN ./extract [name] \
158
+ # && cd build/[name] \
159
+ # && ./configure \
160
+ # && make install
157
161
 
158
162
  FROM base AS image_optim
159
- RUN apt-get update && apt-get install -y ruby npm perl-base dumb-init
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
data/Makefile CHANGED
@@ -15,7 +15,7 @@ JPEGOPTIM_VER := 1.5.6
15
15
  LIBJPEG_VER := 9f
16
16
  LIBLCMS2_VER := 2.17
17
17
  LIBMOZJPEG_VER := 4.1.5
18
- LIBPNG_VER := 1.6.56
18
+ LIBPNG_VER := 1.6.58
19
19
  LIBZ_VER := 1.3.2
20
20
  OPTIPNG_VER := 7.9.1
21
21
  OXIPNG_VER := 10.1.0
@@ -101,7 +101,6 @@ endef
101
101
  # $1 - name of archive
102
102
  # $2 - url of archive with [VER] for replace with version
103
103
  # $3 - extension to use
104
- # $4 - extra arguments to wget
105
104
  define archive-dl
106
105
  $(call archive,$1,$3)
107
106
  # download archive from url
@@ -109,7 +108,7 @@ $$($1_ARC) :
109
108
  mkdir -p $(DL_DIR)
110
109
  test -w $(DL_DIR)
111
110
  tmpfile=`mktemp "$$@.XXXXXXXXXX"` && \
112
- wget -O "$$$$tmpfile" --no-use-server-timestamps $4 "$(subst [VER],$($1_VER),$(strip $2))" && \
111
+ wget -O "$$$$tmpfile" --no-use-server-timestamps "$(subst [VER],$($1_VER),$(strip $2))" && \
113
112
  chmod 644 "$$$$tmpfile" && \
114
113
  mv "$$$$tmpfile" "$$@"
115
114
  endef
@@ -127,9 +126,9 @@ $(eval $(call archive-dl,LIBZ, https://github.com/madler/zlib/archive/v[V
127
126
  $(eval $(call archive-dl,OPTIPNG, https://prdownloads.sourceforge.net/optipng/optipng-[VER].tar.gz?download))
128
127
  $(eval $(call archive-dl,OXIPNG, https://github.com/oxipng/oxipng/archive/v[VER].tar.gz))
129
128
  $(eval $(call archive-dl,PNGCRUSH, https://prdownloads.sourceforge.net/pmt/pngcrush-[VER]-nolib.tar.gz?download))
130
- $(eval $(call archive-dl,PNGOUT_LINUX,https://www.jonof.id.au/files/kenutils/pngout-[VER]-linux.tar.gz,,--retry-on-http-error=415))
131
- $(eval $(call archive-dl,PNGOUT_LINUX_STATIC,https://www.jonof.id.au/files/kenutils/pngout-[VER]-linux-static.tar.gz,,--retry-on-http-error=415))
132
- $(eval $(call archive-dl,PNGOUT_DARWIN,https://www.jonof.id.au/files/kenutils/pngout-[VER]-mac.zip,zip,--retry-on-http-error=415))
129
+ $(eval $(call archive-dl,PNGOUT_LINUX,https://www.jonof.id.au/files/kenutils/pngout-[VER]-linux.tar.gz))
130
+ $(eval $(call archive-dl,PNGOUT_LINUX_STATIC,https://www.jonof.id.au/files/kenutils/pngout-[VER]-linux-static.tar.gz))
131
+ $(eval $(call archive-dl,PNGOUT_DARWIN,https://www.jonof.id.au/files/kenutils/pngout-[VER]-mac.zip,zip))
133
132
  $(eval $(call archive-dl,PNGQUANT, https://crates.io/api/v1/crates/pngquant/[VER]/download))
134
133
 
135
134
  download : $(foreach archive,$(ARCHIVES),$($(archive)_ARC))
@@ -140,8 +139,12 @@ download-dependencies : $(OXIPNG_EXTRACTED) $(PNGQUANT_EXTRACTED)
140
139
  cd $(PNGQUANT_DIR) && cargo fetch --locked
141
140
  .PHONY : download-dependencies
142
141
 
142
+ purge-dependencies :
143
+ rm -rf $(CARGO_HOME)
144
+ .PHONY : purge-dependencies
145
+
143
146
  download-tidy-up :
144
- rm -f $(filter-out $(foreach archive,$(ARCHIVES),$($(archive)_ARC)),$(wildcard $(DL_DIR)/*.*))
147
+ rm -fv $(filter-out $(foreach archive,$(ARCHIVES),$($(archive)_ARC)),$(wildcard $(DL_DIR)/*.*))
145
148
  .PHONY : download-tidy-up
146
149
 
147
150
  checksum : download
data/README.markdown CHANGED
@@ -1,9 +1,10 @@
1
1
  [![Gem Version](https://img.shields.io/gem/v/image_optim_pack?logo=rubygems)](https://rubygems.org/gems/image_optim_pack)
2
2
  [![Check](https://img.shields.io/github/actions/workflow/status/toy/image_optim_pack/check.yml?label=check&logo=github)](https://github.com/toy/image_optim_pack/actions/workflows/check.yml)
3
3
  [![Rubocop](https://img.shields.io/github/actions/workflow/status/toy/image_optim_pack/rubocop.yml?label=rubocop&logo=rubocop)](https://github.com/toy/image_optim_pack/actions/workflows/rubocop.yml)
4
+ [![Build](https://img.shields.io/github/actions/workflow/status/toy/image_optim_pack/build.yml?label=build&logo=github)](https://github.com/toy/image_optim_pack/actions/workflows/build.yml)
4
5
  [![Docker build](https://img.shields.io/github/actions/workflow/status/toy/image_optim_pack/docker-build.yml?label=docker+build&logo=docker)](https://github.com/toy/image_optim_pack/actions/workflows/docker-build.yml)
5
6
  [![Livecheck](https://img.shields.io/github/actions/workflow/status/toy/image_optim_pack/livecheck.yml?label=livecheck&logo=github)](https://github.com/toy/image_optim_pack/actions/workflows/livecheck.yml)
6
- [![Build](https://img.shields.io/github/actions/workflow/status/toy/image_optim_pack/build.yml?label=build&logo=github)](https://github.com/toy/image_optim_pack/actions/workflows/build.yml)
7
+ [![Cache downloads](https://img.shields.io/github/actions/workflow/status/toy/image_optim_pack/cache-downloads.yml?label=cache-downloads&logo=github)](https://github.com/toy/image_optim_pack/actions/workflows/cache-downloads.yml)
7
8
  [![Depfu](https://img.shields.io/depfu/toy/image_optim_pack)](https://depfu.com/github/toy/image_optim_pack)
8
9
  [![Inch CI](https://inch-ci.org/github/toy/image_optim_pack.svg?branch=master)](https://inch-ci.org/github/toy/image_optim_pack)
9
10
 
data/checksums.mk CHANGED
@@ -6,7 +6,7 @@ JPEGOPTIM_SHA256 := 661a808dfffa933d78c6beb47a2937d572b9f03e94cbaaab3d4c0d72f410
6
6
  LIBJPEG_SHA256 := 04705c110cb2469caa79fb71fba3d7bf834914706e9641a4589485c1f832565b
7
7
  LIBLCMS2_SHA256 := d11af569e42a1baa1650d20ad61d12e41af4fead4aa7964a01f93b08b53ab074
8
8
  LIBMOZJPEG_SHA256 := 9fcbb7171f6ac383f5b391175d6fb3acde5e64c4c4727274eade84ed0998fcc1
9
- LIBPNG_SHA256 := 8f91e941a07fb1069ebb3855278f82a849e6af14ca05821e14ec3d5348697ea5
9
+ LIBPNG_SHA256 := 8c9b05b675ca7301a458df2c2e46f26e1d41ff36b8863f8c33530bc58c2e6225
10
10
  LIBZ_SHA256 := b99a0b86c0ba9360ec7e78c4f1e43b1cbdf1e6936c8fa0f6835c0cd694a495a1
11
11
  OPTIPNG_SHA256 := c2579be58c2c66dae9d63154edcb3d427fef64cb00ec0aff079c9d156ec46f29
12
12
  OXIPNG_SHA256 := 6c5e1d021a844ba730193943ab63ad99e7d9f1089c36f3db59014517ea99cf99
@@ -0,0 +1,3 @@
1
+ # encoding: UTF-8
2
+
3
+ eval "gemspec_path = #{__FILE__.inspect}; #{File.read('image_optim_pack.gemspec')}"
@@ -0,0 +1,3 @@
1
+ # encoding: UTF-8
2
+
3
+ eval "gemspec_path = #{__FILE__.inspect}; #{File.read('image_optim_pack.gemspec')}"
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'image_optim_pack'
5
- s.version = '0.13.0'
5
+ s.version = '0.13.1.20260418'
6
6
  s.summary = %q{Precompiled binaries for image_optim: advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegtran, optipng, oxipng, pngcrush, pngout, pngquant}
7
7
  s.homepage = "https://github.com/toy/#{s.name}"
8
8
  s.authors = ['Ivan Kuchin']
@@ -17,38 +17,46 @@ Gem::Specification.new do |s|
17
17
  'source_code_uri' => "https://github.com/toy/#{s.name}",
18
18
  }
19
19
 
20
- s.files = `git ls-files`.split("\n")
21
- if defined?(gemspec_path)
22
- gem_os, gem_arch, gem_version = File.basename(gemspec_path, File.extname(gemspec_path)).split('-').drop(1)
20
+ s.files = Dir[*%w[
21
+ .dockerignore
22
+ .gitignore
23
+ .rubocop.yml
24
+ checksums.mk
25
+ Gemfile
26
+ LICENSE.txt
27
+ Makefile
28
+ *.markdown
29
+ Dockerfile*
30
+ *.gemspec
31
+ {.github,acknowledgements,lib,patches,script,spec,vendor}/**/*
32
+ ]].reject(&File.method(:directory?))
23
33
 
24
- s.platform = Gem::Platform.new([gem_arch, gem_os, gem_version])
34
+ if defined?(gemspec_path)
35
+ platform_parts = File.basename(gemspec_path, File.extname(gemspec_path)).split('-').drop(1)
36
+ s.platform = Gem::Platform.new(platform_parts.values_at(1, 0, 2))
25
37
 
26
- arch_aliases = {
27
- 'x86_64' => %w[x86_64 amd64],
28
- }[gem_arch] || [gem_arch]
38
+ all_vendor_dirs = s.files.filter_map do |path|
39
+ parts = path.split('/')
40
+ parts[1] if parts[0] == 'vendor'
41
+ end.uniq
29
42
 
30
- possible_vendor_dirs = arch_aliases.map do |arch_alias|
31
- [gem_os, arch_alias, gem_version].compact.join('-')
43
+ vendor_dirs = all_vendor_dirs.select do |vendor_dir|
44
+ s.platform =~ Gem::Platform.new(vendor_dir.split('-').values_at(1, 0, 2))
32
45
  end
33
46
 
34
- existing_vendor_dirs = possible_vendor_dirs.select do |vendor_dir|
35
- File.directory?(File.join('vendor', vendor_dir))
36
- end
47
+ expected_vendor_dirs = s.platform.os == 'linux' && !s.platform.version ? 2 : 1
37
48
 
38
- vendor_dir = if existing_vendor_dirs.length == 1
39
- existing_vendor_dirs.first
40
- else
41
- message = existing_vendor_dirs.empty? ? 'no vendor dir' : 'multiple vendor dirs'
42
- fail "#{message} found for os #{gem_os} and arch #{gem_arch} out of: #{possible_vendor_dirs.join(', ')}"
49
+ unless vendor_dirs.length == expected_vendor_dirs
50
+ fail "expected #{expected_vendor_dirs}, got #{vendor_dirs.length} (#{vendor_dirs.join(', ')}) for #{s.platform}"
43
51
  end
44
52
 
45
53
  s.files.reject! do |path|
46
54
  parts = path.split('/')
47
- parts[0] == 'vendor' && parts[1] != vendor_dir
55
+ parts[0] == 'vendor' && !vendor_dirs.include?(parts[1])
48
56
  end
49
57
  end
50
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
51
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
58
+
59
+ s.test_files = Dir['spec/**/*.*']
52
60
  s.require_paths = %w[lib]
53
61
 
54
62
  s.add_dependency 'image_optim', '~> 0.19'
data/script/livecheck CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ require 'bundler/setup'
5
+
4
6
  require 'uri'
5
7
  require 'net/http'
6
8
  require 'openssl'
@@ -94,12 +96,13 @@ Thread.report_on_exception = false
94
96
  # Fetch and compare latest tool/library versions
95
97
  class Livecheck
96
98
  # Commands
97
- class Cli
99
+ class CLI
98
100
  VERSION_REGEXP = /^([A-Z_]+)_VER *:= *([^$\n]*)$/.freeze
99
101
 
100
102
  def initialize(args)
101
103
  @update = args.delete('--update')
102
- abort '--update is the only supported option' unless args.empty?
104
+ @verbose = args.delete('--verbose')
105
+ abort '--update and --verbose are the only supported options' unless args.empty?
103
106
  end
104
107
 
105
108
  def run
@@ -153,7 +156,7 @@ class Livecheck
153
156
 
154
157
  def livechecks
155
158
  @livechecks ||= makefile.read.scan(VERSION_REGEXP).map do |name, version|
156
- Livecheck.new(name.downcase, version)
159
+ Livecheck.new(name.downcase, version, @verbose)
157
160
  end
158
161
  end
159
162
 
@@ -202,6 +205,12 @@ class Livecheck
202
205
  end
203
206
  end
204
207
 
208
+ def hash
209
+ @string.hash
210
+ end
211
+
212
+ alias_method :eql?, :==
213
+
205
214
  def <=>(other)
206
215
  if parsed && other.parsed
207
216
  parsed <=> other.parsed
@@ -211,16 +220,32 @@ class Livecheck
211
220
  end
212
221
  end
213
222
 
223
+ # Don't fetch twice
224
+ module Fetcher
225
+ @cache = {}
226
+
227
+ def self.get(url, verbose)
228
+ @cache[url] ||= Thread.new do
229
+ $stderr << "GET #{url}\n" if verbose
230
+ uri = URI(url)
231
+ http = Net::HTTP.new(uri.host, uri.port)
232
+ http.use_ssl = (uri.scheme == 'https')
233
+ http.request_get(uri.request_uri).body
234
+ end
235
+ end
236
+ end
237
+
214
238
  attr_reader :name, :current_version
215
239
 
216
- def initialize(name, current_version)
240
+ def initialize(name, current_version, verbose)
217
241
  @name = name
242
+ @verbose = verbose
218
243
  @current_version = Version.new(current_version)
219
- @fetcher = Thread.new{ fetch_versions.last }
244
+ @fetcher = Fetcher.get(config[:url], verbose)
220
245
  end
221
246
 
222
247
  def latest_version
223
- @fetcher.value
248
+ versions.last
224
249
  end
225
250
 
226
251
  def changed?
@@ -241,23 +266,20 @@ private
241
266
  CONFIG[name.to_sym] || fail(ArgumentError, "Livecheck for #{name} not defined")
242
267
  end
243
268
 
244
- def get(url)
245
- uri = URI(url)
246
- http = Net::HTTP.new(uri.host, uri.port)
247
- http.use_ssl = (uri.scheme == 'https')
248
- http.request_get(uri.request_uri).body
249
- end
269
+ def versions
270
+ @versions ||= begin
271
+ body = @fetcher.value
250
272
 
251
- def fetch_versions
252
- body = get(config[:url])
273
+ version_regex = config[:regexp]
253
274
 
254
- version_regex = config[:regexp]
275
+ versions = body.scan(version_regex).map{ |match| Version.new(*match) }.uniq.sort
276
+ fail "No versions found for #{name} in body:\n#{body}" if versions.empty?
255
277
 
256
- versions = body.scan(version_regex).map{ |match| Version.new(*match) }.sort
257
- fail "No versions found for #{name} in body:\n#{body}" if versions.empty?
278
+ $stderr << "#{name}: #{versions.join(', ')}\n" if @verbose
258
279
 
259
- versions
280
+ versions
281
+ end
260
282
  end
261
283
  end
262
284
 
263
- Livecheck::Cli.new(ARGV).run
285
+ Livecheck::CLI.new(ARGV).run
@@ -1,17 +1,23 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ require 'bundler/setup'
5
+
4
6
  require 'gems'
5
7
  require 'ostruct'
6
8
  require 'terminal-table'
7
9
 
10
+ def platform_parts(platform)
11
+ platform.split('-', 3).values_at(1, 0, 2).compact
12
+ end
13
+
8
14
  versions = Gems.versions('image_optim_pack').map do |attributes|
9
15
  attributes['number'] = Gem::Version.new(attributes['number'])
10
16
  OpenStruct.new(attributes) # rubocop:disable Style/OpenStructUse
11
17
  end
12
18
 
13
19
  platforms = versions.map(&:platform).uniq.sort_by do |platform|
14
- platform.sub('amd64', 'x86_64').split('-').reverse
20
+ platform_parts(platform)
15
21
  end
16
22
 
17
23
  version_time = begin
@@ -28,7 +34,7 @@ end
28
34
  table = Terminal::Table.new
29
35
 
30
36
  table.headings = ['version', 'days', 'base dls'] + platforms.map do |platform|
31
- platform.split('-').reverse.join("\n")
37
+ platform_parts(platform).join("\n")
32
38
  end + ['total']
33
39
 
34
40
  versions.group_by(&:number).each do |version_n, platform_versions|
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_optim_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.13.1.20260418
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kuchin
@@ -98,6 +98,7 @@ files:
98
98
  - ".dockerignore"
99
99
  - ".github/dependabot.yml"
100
100
  - ".github/workflows/build.yml"
101
+ - ".github/workflows/cache-downloads.yml"
101
102
  - ".github/workflows/check.yml"
102
103
  - ".github/workflows/docker-build.yml"
103
104
  - ".github/workflows/livecheck.yml"
@@ -142,8 +143,10 @@ files:
142
143
  - image_optim_pack-darwin-x86_64.gemspec
143
144
  - image_optim_pack-linux-aarch64-gnu.gemspec
144
145
  - image_optim_pack-linux-aarch64-musl.gemspec
146
+ - image_optim_pack-linux-aarch64.gemspec
145
147
  - image_optim_pack-linux-x86_64-gnu.gemspec
146
148
  - image_optim_pack-linux-x86_64-musl.gemspec
149
+ - image_optim_pack-linux-x86_64.gemspec
147
150
  - image_optim_pack.gemspec
148
151
  - lib/image_optim/pack.rb
149
152
  - lib/image_optim_pack.rb
@@ -251,7 +254,7 @@ licenses:
251
254
  metadata:
252
255
  bug_tracker_uri: https://github.com/toy/image_optim_pack/issues
253
256
  changelog_uri: https://github.com/toy/image_optim_pack/blob/master/CHANGELOG.markdown
254
- documentation_uri: https://www.rubydoc.info/gems/image_optim_pack/0.13.0
257
+ documentation_uri: https://www.rubydoc.info/gems/image_optim_pack/0.13.1.20260418
255
258
  source_code_uri: https://github.com/toy/image_optim_pack
256
259
  rdoc_options: []
257
260
  require_paths: