image_optim_pack 0.7.0.20210206 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +10 -0
  3. data/.github/workflows/check.yml +44 -0
  4. data/.rubocop.yml +4 -0
  5. data/CHANGELOG.markdown +20 -0
  6. data/Dockerfile +167 -0
  7. data/Gemfile +0 -4
  8. data/Makefile +54 -11
  9. data/README.markdown +26 -5
  10. data/Vagrantfile +26 -14
  11. data/acknowledgements/liblcms2.txt +21 -0
  12. data/acknowledgements/oxipng.txt +20 -0
  13. data/boxes/Rakefile +1 -3
  14. data/checksums.mk +6 -4
  15. data/image_optim_pack.gemspec +2 -1
  16. data/script/extract +19 -0
  17. data/script/livecheck +6 -0
  18. data/script/platform_downloads +3 -3
  19. data/script/run +2 -2
  20. data/vendor/darwin-x86_64/advpng +0 -0
  21. data/vendor/darwin-x86_64/gifsicle +0 -0
  22. data/vendor/darwin-x86_64/jhead +0 -0
  23. data/vendor/darwin-x86_64/jpeg-recompress +0 -0
  24. data/vendor/darwin-x86_64/jpegoptim +0 -0
  25. data/vendor/darwin-x86_64/jpegtran +0 -0
  26. data/vendor/darwin-x86_64/libjpeg.dylib +0 -0
  27. data/vendor/darwin-x86_64/liblcms2.dylib +0 -0
  28. data/vendor/darwin-x86_64/libpng.dylib +0 -0
  29. data/vendor/darwin-x86_64/libz.dylib +0 -0
  30. data/vendor/darwin-x86_64/optipng +0 -0
  31. data/vendor/darwin-x86_64/oxipng +0 -0
  32. data/vendor/darwin-x86_64/pngcrush +0 -0
  33. data/vendor/darwin-x86_64/pngquant +0 -0
  34. data/vendor/linux-i686/advpng +0 -0
  35. data/vendor/linux-i686/gifsicle +0 -0
  36. data/vendor/linux-i686/jhead +0 -0
  37. data/vendor/linux-i686/jpeg-recompress +0 -0
  38. data/vendor/linux-i686/jpegoptim +0 -0
  39. data/vendor/linux-i686/jpegtran +0 -0
  40. data/vendor/linux-i686/libjpeg.so +0 -0
  41. data/vendor/linux-i686/liblcms2.so +0 -0
  42. data/vendor/linux-i686/libpng.so +0 -0
  43. data/vendor/linux-i686/libz.so +0 -0
  44. data/vendor/linux-i686/optipng +0 -0
  45. data/vendor/linux-i686/oxipng +0 -0
  46. data/vendor/linux-i686/pngcrush +0 -0
  47. data/vendor/linux-i686/pngquant +0 -0
  48. data/vendor/linux-x86_64/advpng +0 -0
  49. data/vendor/linux-x86_64/gifsicle +0 -0
  50. data/vendor/linux-x86_64/jhead +0 -0
  51. data/vendor/linux-x86_64/jpeg-recompress +0 -0
  52. data/vendor/linux-x86_64/jpegoptim +0 -0
  53. data/vendor/linux-x86_64/jpegtran +0 -0
  54. data/vendor/linux-x86_64/liblcms2.so +0 -0
  55. data/vendor/linux-x86_64/optipng +0 -0
  56. data/vendor/linux-x86_64/oxipng +0 -0
  57. data/vendor/linux-x86_64/pngcrush +0 -0
  58. data/vendor/linux-x86_64/pngquant +0 -0
  59. metadata +30 -7
  60. data/.travis.yml +0 -41
  61. data/boxes/definitions/centos-i386/definition.rb +0 -32
  62. data/boxes/definitions/centos-i386/ks.cfg +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90fbafe2234e45d84bccd31f3d873b8742f1c0c1adb867da94bd3247e47e4f85
4
- data.tar.gz: 26f1314704dd97bfd80ff633a19d5a6a4ab741d8caa858ec64b2c15efc42cf53
3
+ metadata.gz: '039490ae3cb500baf634f59621bca465fac8527fb17f7f9e01ebfae7209b5f63'
4
+ data.tar.gz: d8adb4038981fb27acd1455144c9952251b761c237313c2d5b4939993f192692
5
5
  SHA512:
6
- metadata.gz: b33b332f92b220fdac3a04e4c25e8791b55671655a7ad9e1d8e8631e414861f0da02f28d8c517719ab4a56e7f6cbcfadd61c5e1beab6a3c0bcaa415fb6521df3
7
- data.tar.gz: 88c23cc7333cc6438d9d6644042e9940e1870b2293bd3ae1a748e74061009dd6e1ec7520192faa54a94ba3aba5ab5b102a968fdc50252d4ce5ea548a611259b8
6
+ metadata.gz: a913d8e6ee3bf82c9204c9add4af56ec7d1471623bd5002fed2369167798c64791b9efc64ab46278a5aae28f9cd09a8fb401b561ef3410f541c9301e01ba8c79
7
+ data.tar.gz: 32029b2143cd58348f707523381e175b8f628d8df323297e5add1ce6354a11a9f015abfc67b80a4d39c418c3263f87a247c9f71deaf6bfa1fc808da49a13bd5d
data/.dockerignore ADDED
@@ -0,0 +1,10 @@
1
+ /boxes/
2
+ /.git/
3
+
4
+ /build/
5
+ /.vagrant/
6
+
7
+ Gemfile.lock
8
+ /*.gem
9
+ /.bundle
10
+ /tmp/
@@ -0,0 +1,44 @@
1
+ name: check
2
+ on:
3
+ push:
4
+ pull_request:
5
+ schedule:
6
+ - cron: 45 4 * * 0
7
+ jobs:
8
+ check:
9
+ runs-on: "${{ matrix.os }}"
10
+ strategy:
11
+ matrix:
12
+ os:
13
+ - ubuntu-latest
14
+ - macos-latest
15
+ ruby:
16
+ - '2.0'
17
+ - '2.1'
18
+ - '2.2'
19
+ - '2.3'
20
+ - '2.4'
21
+ - '2.5'
22
+ - '2.6'
23
+ - '2.7'
24
+ - '3.0'
25
+ - jruby-9.2
26
+ fail-fast: false
27
+ steps:
28
+ - uses: actions/checkout@v2
29
+ - uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: "${{ matrix.ruby }}"
32
+ bundler-cache: true
33
+ - run: make test
34
+ - run: bundle exec image_optim --info
35
+ - run: bundle exec rspec
36
+ rubocop:
37
+ runs-on: ubuntu-latest
38
+ steps:
39
+ - uses: actions/checkout@v2
40
+ - uses: ruby/setup-ruby@v1
41
+ with:
42
+ ruby-version: '3.0'
43
+ bundler-cache: true
44
+ - run: bundle exec rubocop
data/.rubocop.yml CHANGED
@@ -3,6 +3,7 @@ AllCops:
3
3
  - '*.gemspec'
4
4
  - 'build/**/*'
5
5
  - 'download/**/*'
6
+ - 'vendor/bundle/**/*'
6
7
  - Vagrantfile
7
8
  NewCops: enable
8
9
 
@@ -56,6 +57,9 @@ Style/EmptyCaseCondition:
56
57
  Style/FormatStringToken:
57
58
  Enabled: false
58
59
 
60
+ Style/HashConversion:
61
+ Enabled: false
62
+
59
63
  Style/HashEachMethods:
60
64
  Enabled: true
61
65
 
data/CHANGELOG.markdown CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  ## unreleased
4
4
 
5
+ ## v0.8.0 (2021-10-20)
6
+
7
+ * Add [lcms2](https://littlecms.com) colour management library for pngquant [@toy](https://github.com/toy)
8
+ * Add [oxipng](https://github.com/shssoichiro/oxipng) (v5.0.0), switch to ubuntu/xenial32 for 32 bit [@toy](https://github.com/toy)
9
+
10
+ ## v0.7.0.20211002 (2021-10-02)
11
+
12
+ * pngquant 2.16.0 [@toy](https://github.com/toy)
13
+ * gifsicle 1.93 [@toy](https://github.com/toy)
14
+ * pngquant 2.15.1 [@toy](https://github.com/toy)
15
+
16
+ ## v0.7.0.20210511 (2021-05-11)
17
+
18
+ * pngquant 2.15.0 [@toy](https://github.com/toy)
19
+
20
+ ## v0.7.0.20210430 (2021-04-30)
21
+
22
+ * pngquant 2.14.1 [@toy](https://github.com/toy)
23
+ * libmozjpeg 4.0.3 [@toy](https://github.com/toy)
24
+
5
25
  ## v0.7.0.20210206 (2021-02-06)
6
26
 
7
27
  * libmozjpeg 4.0.2 [@toy](https://github.com/toy)
data/Dockerfile ADDED
@@ -0,0 +1,167 @@
1
+ FROM alpine:3.12 as base
2
+ ENV LD_LIBRARY_PATH=/usr/local/lib
3
+ WORKDIR /tmp
4
+
5
+ FROM base as build
6
+ RUN apk add --no-cache build-base cmake nasm bash findutils
7
+ COPY script/extract ./
8
+ ENV CPATH=/usr/local/include
9
+
10
+ FROM build as libz
11
+ ARG LIBZ_VER
12
+ ARG LIBZ_SHA256
13
+ COPY download/libz-$LIBZ_VER.tar.gz download/
14
+ RUN ./extract libz && \
15
+ cd build/libz && \
16
+ ./configure && \
17
+ make install
18
+
19
+ FROM libz as libpng
20
+ ARG LIBPNG_VER
21
+ ARG LIBPNG_SHA256
22
+ COPY download/libpng-$LIBPNG_VER.tar.gz download/
23
+ RUN ./extract libpng && \
24
+ cd build/libpng && \
25
+ ./configure --with-zlib-prefix=/usr/local && \
26
+ make install
27
+
28
+ FROM libpng as liblcms
29
+ ARG LIBLCMS_VER
30
+ ARG LIBLCMS_SHA256
31
+ COPY download/liblcms-$LIBLCMS_VER.tar.gz download/
32
+ RUN ./extract liblcms && \
33
+ cd build/liblcms && \
34
+ ./configure && \
35
+ make install
36
+
37
+ FROM build as libjpeg
38
+ ARG LIBJPEG_VER
39
+ ARG LIBJPEG_SHA256
40
+ COPY download/libjpeg-$LIBJPEG_VER.tar.gz download/
41
+ RUN ./extract libjpeg && \
42
+ cd build/libjpeg && \
43
+ ./configure && \
44
+ make install
45
+
46
+ FROM build as libmozjpeg
47
+ ARG LIBMOZJPEG_VER
48
+ ARG LIBMOZJPEG_SHA256
49
+ COPY download/libmozjpeg-$LIBMOZJPEG_VER.tar.gz download/
50
+ RUN ./extract libmozjpeg && \
51
+ cd build/libmozjpeg && \
52
+ cmake -DPNG_SUPPORTED=0 . && \
53
+ make install
54
+
55
+ FROM libpng as advancecomp
56
+ ARG ADVANCECOMP_VER
57
+ ARG ADVANCECOMP_SHA256
58
+ COPY download/advancecomp-$ADVANCECOMP_VER.tar.gz download/
59
+ RUN ./extract advancecomp && \
60
+ cd build/advancecomp && \
61
+ ./configure && \
62
+ make install
63
+
64
+ FROM build as gifsicle
65
+ ARG GIFSICLE_VER
66
+ ARG GIFSICLE_SHA256
67
+ COPY download/gifsicle-$GIFSICLE_VER.tar.gz download/
68
+ RUN ./extract gifsicle && \
69
+ cd build/gifsicle && \
70
+ ./configure && \
71
+ make install
72
+
73
+ FROM build as jhead
74
+ ARG JHEAD_VER
75
+ ARG JHEAD_SHA256
76
+ COPY download/jhead-$JHEAD_VER.tar.gz download/
77
+ RUN ./extract jhead && \
78
+ cd build/jhead && \
79
+ make && \
80
+ install -c jhead /usr/local/bin
81
+
82
+ FROM libmozjpeg as jpegarchive
83
+ ARG JPEGARCHIVE_VER
84
+ ARG JPEGARCHIVE_SHA256
85
+ COPY download/jpegarchive-$JPEGARCHIVE_VER.tar.gz download/
86
+ RUN ./extract jpegarchive && \
87
+ cd build/jpegarchive && \
88
+ make install
89
+
90
+ FROM libjpeg as jpegoptim
91
+ ARG JPEGOPTIM_VER
92
+ ARG JPEGOPTIM_SHA256
93
+ COPY download/jpegoptim-$JPEGOPTIM_VER.tar.gz download/
94
+ RUN ./extract jpegoptim && \
95
+ cd build/jpegoptim && \
96
+ ./configure && \
97
+ make install
98
+
99
+ FROM libpng as optipng
100
+ ARG OPTIPNG_VER
101
+ ARG OPTIPNG_SHA256
102
+ COPY download/optipng-$OPTIPNG_VER.tar.gz download/
103
+ RUN ./extract optipng && \
104
+ cd build/optipng && \
105
+ ./configure && \
106
+ make install
107
+
108
+ FROM rust:1.55-alpine3.13 as oxipng
109
+ RUN apk add --no-cache build-base
110
+ COPY script/extract ./
111
+ ARG OXIPNG_VER
112
+ ARG OXIPNG_SHA256
113
+ COPY download/oxipng-$OXIPNG_VER.tar.gz download/
114
+ RUN ./extract oxipng && \
115
+ cd build/oxipng && \
116
+ cargo build --release && \
117
+ install -c target/release/oxipng /usr/local/bin
118
+
119
+ FROM libpng as pngcrush
120
+ ARG PNGCRUSH_VER
121
+ ARG PNGCRUSH_SHA256
122
+ COPY download/pngcrush-$PNGCRUSH_VER.tar.gz download/
123
+ RUN ./extract pngcrush && \
124
+ cd build/pngcrush && \
125
+ make && \
126
+ install -c pngcrush /usr/local/bin
127
+
128
+ FROM liblcms as pngquant
129
+ ARG PNGQUANT_VER
130
+ ARG PNGQUANT_SHA256
131
+ COPY download/pngquant-$PNGQUANT_VER.tar.gz download/
132
+ RUN ./extract pngquant && \
133
+ cd build/pngquant && \
134
+ make install
135
+
136
+ # FROM build as [name]
137
+ # ARG [NAME]_VER
138
+ # ARG [NAME]_SHA256
139
+ # COPY download/[name]-$[NAME]_VER.tar.gz download/
140
+ # RUN ./extract [name] && \
141
+ # cd build/[name] && \
142
+ # ./configure && \
143
+ # make install
144
+
145
+ FROM base as image_optim
146
+ RUN apk add --no-cache libstdc++ ruby npm perl dumb-init
147
+
148
+ COPY --from=advancecomp /usr/local/bin/advpng /usr/local/bin/
149
+ COPY --from=gifsicle /usr/local/bin/gifsicle /usr/local/bin/
150
+ COPY --from=jhead /usr/local/bin/jhead /usr/local/bin/
151
+ COPY --from=jpegarchive /usr/local/bin/jpeg-recompress /usr/local/bin/
152
+ COPY --from=jpegoptim /usr/local/bin/jpegoptim /usr/local/bin/
153
+ COPY --from=libjpeg /usr/local/bin/jpegtran /usr/local/bin/
154
+ COPY --from=optipng /usr/local/bin/optipng /usr/local/bin/
155
+ COPY --from=oxipng /usr/local/bin/oxipng /usr/local/bin/
156
+ COPY --from=pngcrush /usr/local/bin/pngcrush /usr/local/bin/
157
+ COPY --from=pngquant /usr/local/bin/pngquant /usr/local/bin/
158
+
159
+ COPY --from=libjpeg /usr/local/lib/libjpeg.so.9 /usr/local/lib/
160
+ COPY --from=libpng /usr/local/lib/libpng16.so.16 /usr/local/lib/
161
+ COPY --from=libz /usr/local/lib/libz.so.1 /usr/local/lib/
162
+ COPY --from=liblcms /usr/local/lib/liblcms2.so.2 /usr/local/lib/
163
+
164
+ RUN npm -g install svgo
165
+ RUN gem install --no-document image_optim
166
+ ENTRYPOINT ["dumb-init", "image_optim", "--skip-missing-workers"]
167
+ CMD ["--help"]
data/Gemfile CHANGED
@@ -4,10 +4,6 @@ source 'https://rubygems.org'
4
4
 
5
5
  gemspec :name => 'image_optim_pack'
6
6
 
7
- if RUBY_VERSION >= '2.0'
8
- gem 'travis_check_rubies', '~> 0.2'
9
- end
10
-
11
7
  if RUBY_VERSION >= '2.1.9'
12
8
  gem 'gems', '~> 1.0'
13
9
  gem 'terminal-table'
data/Makefile CHANGED
@@ -3,17 +3,19 @@ all :
3
3
  # ====== VERSIONS ======
4
4
 
5
5
  ADVANCECOMP_VER := 2.1
6
- GIFSICLE_VER := 1.92
6
+ GIFSICLE_VER := 1.93
7
7
  JHEAD_VER := 3.04
8
8
  JPEGARCHIVE_VER := 2.2.0
9
9
  JPEGOPTIM_VER := 1.4.6
10
10
  LIBJPEG_VER := 9d
11
- LIBMOZJPEG_VER := 4.0.2
11
+ LIBLCMS_VER := 2.12
12
+ LIBMOZJPEG_VER := 4.0.3
12
13
  LIBPNG_VER := 1.6.37
13
14
  LIBZ_VER := 1.2.11
14
15
  OPTIPNG_VER := 0.7.7
16
+ OXIPNG_VER := 5.0.0
15
17
  PNGCRUSH_VER := 1.8.13
16
- PNGQUANT_VER := 2.13.1
18
+ PNGQUANT_VER := 2.16.0
17
19
 
18
20
  # ====== CHECKSUMS ======
19
21
 
@@ -37,7 +39,6 @@ BUILD_ROOT_DIR := $(CURDIR)/build
37
39
  BUILD_DIR := $(BUILD_ROOT_DIR)/$(OS)-$(ARCH)
38
40
  OUTPUT_ROOT_DIR := $(CURDIR)/vendor
39
41
  OUTPUT_DIR := $(OUTPUT_ROOT_DIR)/$(OS)-$(ARCH)
40
- $(shell mkdir -p $(DL_DIR) $(BUILD_DIR) $(OUTPUT_DIR))
41
42
 
42
43
  ANSI_RED=\033[31m
43
44
  ANSI_GREEN=\033[32m
@@ -48,8 +49,7 @@ ANSI_RESET=\033[0m
48
49
 
49
50
  downcase = $(shell echo $1 | tr A-Z a-z)
50
51
 
51
- ln_s := ln -sf
52
- tar := $(shell if command -v gtar >/dev/null 2>&1; then echo gtar; else echo tar; fi)
52
+ tar := $(shell if command -v bsdtar >/dev/null 2>&1; then echo bsdtar; else echo tar; fi)
53
53
  sha256sum := $(shell if command -v sha256sum >/dev/null 2>&1; then echo sha256sum; elif command -v shasum >/dev/null 2>&1; then echo shasum -a 256; else echo sha256; fi)
54
54
 
55
55
  # ====== ARCHIVES ======
@@ -63,8 +63,9 @@ $1_DIR := $(BUILD_DIR)/$(call downcase,$1)
63
63
  $1_TGZ := $(DL_DIR)/$(call downcase,$1)-$($1_VER).tar.gz
64
64
  $1_EXTRACTED := $$($1_DIR)/__$$(notdir $$($1_TGZ))__
65
65
  $$($1_EXTRACTED) : $$($1_TGZ)
66
+ mkdir -p $(BUILD_DIR)
66
67
  rm -rf $$(@D)
67
- echo "$$($1_SHA256) $$($1_TGZ)" | $(sha256sum) -c
68
+ echo "$$($1_SHA256) $$<" | $(sha256sum) -c
68
69
  mkdir $$(@D)
69
70
  $(tar) -C $$(@D) --strip-components=1 -xzf $$<
70
71
  touch $$(@D)/__$$(notdir $$<)__
@@ -76,6 +77,7 @@ define archive-dl
76
77
  $(call archive,$1)
77
78
  # download archive from url
78
79
  $$($1_TGZ) :
80
+ mkdir -p $(DL_DIR)
79
81
  while ! mkdir $$@.lock 2> /dev/null; do sleep 1; done
80
82
  wget -q -O $$@.tmp $(subst [VER],$($1_VER),$(strip $2))
81
83
  mv $$@.tmp $$@
@@ -88,10 +90,12 @@ $(eval $(call archive-dl,JHEAD, https://www.sentex.ca/~mwandel/jhead/jhead
88
90
  $(eval $(call archive-dl,JPEGARCHIVE, https://github.com/danielgtaylor/jpeg-archive/archive/v[VER].tar.gz))
89
91
  $(eval $(call archive-dl,JPEGOPTIM, https://www.kokkonen.net/tjko/src/jpegoptim-[VER].tar.gz))
90
92
  $(eval $(call archive-dl,LIBJPEG, https://www.ijg.org/files/jpegsrc.v[VER].tar.gz))
93
+ $(eval $(call archive-dl,LIBLCMS, https://prdownloads.sourceforge.net/lcms/lcms2-[VER].tar.gz?download))
91
94
  $(eval $(call archive-dl,LIBMOZJPEG, https://github.com/mozilla/mozjpeg/archive/v[VER].tar.gz))
92
95
  $(eval $(call archive-dl,LIBPNG, https://prdownloads.sourceforge.net/libpng/libpng-[VER].tar.gz?download))
93
96
  $(eval $(call archive-dl,LIBZ, https://prdownloads.sourceforge.net/libpng/zlib-[VER].tar.gz?download))
94
97
  $(eval $(call archive-dl,OPTIPNG, https://prdownloads.sourceforge.net/optipng/optipng-[VER].tar.gz?download))
98
+ $(eval $(call archive-dl,OXIPNG, https://github.com/shssoichiro/oxipng/archive/refs/tags/v[VER].tar.gz))
95
99
  $(eval $(call archive-dl,PNGCRUSH, https://prdownloads.sourceforge.net/pmt/pngcrush-[VER]-nolib.tar.gz?download))
96
100
  $(eval $(call archive-dl,PNGQUANT, https://pngquant.org/pngquant-[VER]-src.tar.gz))
97
101
 
@@ -141,6 +145,7 @@ PRODUCTS += $1
141
145
  $1_DESTINATION := $$(OUTPUT_DIR)/$$($1_BASENAME)
142
146
  # copy product to output dir
143
147
  $$($1_DESTINATION) : $$($1_TARGET)
148
+ mkdir -p $(OUTPUT_DIR)
144
149
  temppath=`mktemp "$(BUILD_DIR)"/tmp.XXXXXXXXXX` && \
145
150
  strip $$< -Sx -o "$$$$temppath" && \
146
151
  chmod 755 "$$$$temppath" && \
@@ -156,10 +161,12 @@ $(eval $(call target,JPEG-RECOMPRESS,JPEGARCHIVE))
156
161
  $(eval $(call target,JPEGOPTIM))
157
162
  $(eval $(call target,JPEGTRAN,LIBJPEG,.libs/jpegtran))
158
163
  $(eval $(call target,LIBJPEG,,libjpeg$(DLEXT)))
164
+ $(eval $(call target,LIBLCMS,,liblcms2$(DLEXT)))
159
165
  $(eval $(call target-build,LIBMOZJPEG,,libjpeg.a))
160
166
  $(eval $(call target,LIBPNG,,libpng$(DLEXT)))
161
167
  $(eval $(call target,LIBZ,,libz$(DLEXT)))
162
168
  $(eval $(call target,OPTIPNG,,src/optipng/optipng))
169
+ $(eval $(call target,OXIPNG,,target/release/oxipng))
163
170
  $(eval $(call target,PNGCRUSH))
164
171
  $(eval $(call target,PNGQUANT))
165
172
 
@@ -235,9 +242,11 @@ test :
235
242
  $(call check_bin,jpegoptim,--version,$(JPEGOPTIM_VER))
236
243
  $(call check_bin,jpegtran,-v - 2>&1,$(LIBJPEG_VER))
237
244
  $(call check_lib,libjpeg$(DLEXT))
245
+ $(call check_lib,liblcms2$(DLEXT))
238
246
  $(call check_lib,libpng$(DLEXT))
239
247
  $(call check_lib,libz$(DLEXT))
240
248
  $(call check_bin,optipng,--version,$(OPTIPNG_VER))
249
+ $(call check_bin,oxipng,--version,$(OXIPNG_VER))
241
250
  $(call check_bin,pngcrush,-version 2>&1,$(PNGCRUSH_VER))
242
251
  $(call check_bin,pngquant,--help,$(PNGQUANT_VER))
243
252
  .PHONY : test
@@ -250,6 +259,24 @@ update-versions :
250
259
  make checksum-update
251
260
  .PHONY : update-versions
252
261
 
262
+ # ====== DOCKER ======
263
+
264
+ DOCKER_IMAGE := ghcr.io/toy/image_optim
265
+ DOCKER_TAG := $(shell date +%Y%m%d)
266
+
267
+ docker-build : download
268
+ @docker build \
269
+ $(foreach archive,$(ARCHIVES),--build-arg $(archive)_VER=$($(archive)_VER) --build-arg $(archive)_SHA256=$($(archive)_SHA256)) \
270
+ -t $(DOCKER_IMAGE):$(DOCKER_TAG) \
271
+ -t $(DOCKER_IMAGE):latest \
272
+ .
273
+ .PHONY : docker-build
274
+
275
+ docker-push : docker-build
276
+ @docker push $(DOCKER_IMAGE):$(DOCKER_TAG)
277
+ @docker push $(DOCKER_IMAGE):latest
278
+ .PHONY : docker-push
279
+
253
280
  # ====== CLEAN ======
254
281
 
255
282
  clean :
@@ -384,7 +411,19 @@ ifdef IS_DARWIN
384
411
  else
385
412
  cd $(DIR) && $(MAKE) libjpeg.la
386
413
  endif
387
- cd $(@D) && $(ln_s) .libs/libjpeg$(DLEXT) .
414
+ cd $(DIR) && ln -sf .libs/libjpeg$(DLEXT) .
415
+
416
+ ## liblcms
417
+ $(LIBLCMS_TARGET) :
418
+ cd $(DIR) && ./configure
419
+ cd $(DIR) && $(libtool_target_soname)
420
+ ifdef IS_DARWIN
421
+ cd $(DIR)/src && make liblcms2.la LDFLAGS="-Wl,-install_name,@loader_path/$(@F)"
422
+ else
423
+ cd $(DIR)/src && make liblcms2.la LDFLAGS="$(XORIGIN)"
424
+ endif
425
+ cd $(DIR) && ln -sf include/lcms2.h .
426
+ cd $(DIR) && ln -sf src/.libs/liblcms2$(DLEXT) .
388
427
 
389
428
  ## libmozjpeg
390
429
  $(LIBMOZJPEG_TARGET) :
@@ -403,7 +442,7 @@ ifdef IS_DARWIN
403
442
  else
404
443
  cd $(DIR) && $(MAKE) libpng16.la LDFLAGS="$(XORIGIN)"
405
444
  endif
406
- cd $(DIR) && $(ln_s) .libs/libpng16$(DLEXT) libpng$(DLEXT)
445
+ cd $(DIR) && ln -sf .libs/libpng16$(DLEXT) libpng$(DLEXT)
407
446
  $(call chrpath_origin,$@)
408
447
 
409
448
  ## libz
@@ -424,6 +463,10 @@ $(OPTIPNG_TARGET) :
424
463
  cd $(DIR) && $(MAKE) all LDFLAGS="$(XORIGIN) $(LDFLAGS)"
425
464
  $(call chrpath_origin,$@)
426
465
 
466
+ ## oxipng
467
+ $(OXIPNG_TARGET) :
468
+ cd $(DIR) && cargo build --release
469
+
427
470
  ## pngcrush
428
471
  $(eval $(call depend,PNGCRUSH,LIBPNG LIBZ))
429
472
  $(PNGCRUSH_TARGET) :
@@ -438,8 +481,8 @@ $(PNGCRUSH_TARGET) :
438
481
  $(call chrpath_origin,$@)
439
482
 
440
483
  ## pngquant
441
- $(eval $(call depend,PNGQUANT,LIBPNG LIBZ))
484
+ $(eval $(call depend,PNGQUANT,LIBLCMS LIBPNG LIBZ))
442
485
  $(PNGQUANT_TARGET) :
443
- cd $(DIR) && ./configure --without-cocoa --without-lcms2 --extra-ldflags="$(XORIGIN) $(STATIC_LIBGCC)"
486
+ cd $(DIR) && ./configure --without-cocoa --extra-ldflags="$(XORIGIN) $(STATIC_LIBGCC)"
444
487
  cd $(DIR) && $(MAKE) pngquant
445
488
  $(call chrpath_origin,$@)
data/README.markdown CHANGED
@@ -1,8 +1,8 @@
1
- [![Gem Version](https://img.shields.io/gem/v/image_optim_pack.svg?style=flat)](https://rubygems.org/gems/image_optim_pack)
2
- [![Build Status](https://img.shields.io/travis/toy/image_optim_pack/master.svg?style=flat)](https://travis-ci.org/toy/image_optim_pack)
3
- [![Code Climate](https://img.shields.io/codeclimate/maintainability/toy/image_optim_pack.svg?style=flat)](https://codeclimate.com/github/toy/image_optim_pack)
4
- [![Depfu](https://badges.depfu.com/badges/bf227ee8e4f77217ae440955acfadde0/overview.svg)](https://depfu.com/github/toy/image_optim_pack)
5
- [![Inch CI](https://inch-ci.org/github/toy/image_optim_pack.svg?branch=master&style=flat)](https://inch-ci.org/github/toy/image_optim_pack)
1
+ [![Gem Version](https://img.shields.io/gem/v/image_optim_pack?logo=rubygems)](https://rubygems.org/gems/image_optim_pack)
2
+ [![Build Status](https://img.shields.io/github/workflow/status/toy/image_optim_pack/check/master?logo=github)](https://github.com/toy/image_optim_pack/actions/workflows/check.yml)
3
+ [![Code Climate](https://img.shields.io/codeclimate/maintainability/toy/image_optim_pack?logo=codeclimate)](https://codeclimate.com/github/toy/image_optim_pack)
4
+ [![Depfu](https://img.shields.io/depfu/toy/image_optim_pack)](https://depfu.com/github/toy/image_optim_pack)
5
+ [![Inch CI](https://inch-ci.org/github/toy/image_optim_pack.svg?branch=master)](https://inch-ci.org/github/toy/image_optim_pack)
6
6
 
7
7
  # image\_optim\_pack
8
8
 
@@ -28,12 +28,14 @@ A test application with latest `image_optim` and `image_optim_pack` is available
28
28
  * [libjpeg-turbo](https://www.libjpeg-turbo.org/) by libjpeg-turbo Project ([license](acknowledgements/libjpeg-turbo.txt))
29
29
  * based on libjpeg, see above
30
30
  * includes [x86 SIMD extension for IJG JPEG library](https://cetus.sakura.ne.jp/softlab/jpeg-x86simd/jpegsimd.html) by Miyasaka Masaru ([license](acknowledgements/libjpeg-x86-simd.txt))
31
+ * [liblcms2](https://littlecms.com) by Marti Maria ([license](acknowledgements/liblcms2.txt))
31
32
  * [libpng](http://libpng.org/pub/png/) by Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson and others ([license](acknowledgements/libpng.txt))
32
33
  * [mozjpeg](https://github.com/mozilla/mozjpeg) by Mozilla Research ([license](acknowledgements/mozjpeg.txt))
33
34
  * base on libjpeg and libjpeg-turbo, see above
34
35
  * [optipng](http://optipng.sourceforge.net/) by Cosmin Truta ([license](acknowledgements/optipng.txt), [authors](acknowledgements/optipng-authors.txt))
35
36
  * contains code based in part on the work of Miyasaka Masaru for BMP support ([license](acknowledgements/bmp2png.txt))
36
37
  * and David Koblas for GIF support ([license](acknowledgements/gifread.txt))
38
+ * [oxipng](https://github.com/shssoichiro/oxipng) by Joshua Holmer ([license](acknowledgements/oxipng.txt))
37
39
  * [pngcrush](https://pmt.sourceforge.io/pngcrush/) by Glenn Randers-Pehrson, portions by Greg Roelofs ([license](acknowledgements/pngcrush.txt))
38
40
  * contains [cexcept](http://www.nicemice.net/cexcept/) interface by Adam M. Costello and Cosmin Truta ([license](acknowledgements/cexcept.txt))
39
41
  * [pngquant](https://pngquant.org/) by Kornel Lesiński based on code by Greg Roelofs and Jef Poskanzer after an idea by Stefan Schneider ([license](acknowledgements/pngquant.txt))
@@ -90,6 +92,25 @@ make clean-all # Remove build root and output root directories
90
92
  make clobber # `clean-all` and remove download directory
91
93
  ```
92
94
 
95
+ ## Docker
96
+
97
+ This project includes a `Dockerfile` in the root, which builds a minimal image with most binaries included.
98
+
99
+ #### Running
100
+
101
+ ```bash
102
+ docker run --rm ghcr.io/toy/image_optim --version # image_optim version
103
+ docker run --rm ghcr.io/toy/image_optim --info # image_optim info including bin versions
104
+ docker run --rm -v "$PWD":/here -w /here ghcr.io/toy/image_optim image-in-this-folder.jpg
105
+ ```
106
+
107
+ #### Building
108
+
109
+ ```bash
110
+ make docker-build # will be tagged with latest and current date in format %Y%m%d
111
+ make docker-push # will push tags created by docker-build
112
+ ```
113
+
93
114
  ## Copyright
94
115
 
95
116
  Copyright (c) 2014-2021 Ivan Kuchin. See [LICENSE.txt](LICENSE.txt) for details.
data/Vagrantfile CHANGED
@@ -9,6 +9,7 @@ Vagrant.configure('2') do |config|
9
9
  config.vm.provider 'virtualbox' do |vb|
10
10
  vb.check_guest_additions = false
11
11
  vb.customize ['modifyvm', :id, '--groups', '/image_optim']
12
+ vb.customize ['modifyvm', :id, '--uartmode1', 'disconnected'] # override for ubuntu/xenial32
12
13
  end
13
14
 
14
15
  # handle manually using rsync
@@ -16,30 +17,41 @@ Vagrant.configure('2') do |config|
16
17
 
17
18
  {
18
19
  'linux-x86_64' => 'boxes/centos-amd64.box',
19
- 'linux-i686' => 'boxes/centos-i386.box',
20
+ 'linux-i686' => 'ubuntu/xenial32',
20
21
  }.each do |name, location|
21
22
  config.vm.define name do |machine|
22
23
  machine.vm.hostname = name.gsub('_', '-')
23
24
  machine.vm.box = location
24
25
 
25
- machine.vm.provision :shell, inline: case name
26
- when /^linux/
27
- <<-SH
26
+ machine.vm.provision :shell, inline: <<-SH
27
+ if command -v apt-get; then
28
28
  set -ex
29
- if command -v apt-get; then
30
- apt-get update
31
- apt-get -y install rsync ntpdate make wget gcc g++ chrpath perl pkg-config autoconf automake libtool nasm cmake
32
- else
33
- yum -y install rsync ntpdate make wget gcc gcc-c++ chrpath perl pkg-config autoconf automake libtool nasm cmake
34
- fi
35
- SH
36
- end
37
29
 
38
- machine.vm.provision :shell, inline: <<-SH
39
- set -ex
30
+ apt-get update
31
+ apt-get -y install rsync ntpdate make wget gcc g++ chrpath perl pkg-config autoconf automake libtool nasm cmake cargo
32
+ else
33
+ set -ex
34
+
35
+ yum -y install epel-release
36
+ yum -y install rsync ntpdate make wget gcc gcc-c++ chrpath perl pkg-config autoconf automake libtool nasm cmake cargo
37
+ fi
38
+
40
39
  mkdir -p /vagrant
41
40
  chown vagrant:vagrant /vagrant
42
41
  SH
42
+
43
+ machine.vm.provision :shell, run: 'always', inline: <<-SH
44
+ if command -v apt-get; then
45
+ set -ex
46
+
47
+ apt-get update
48
+ apt-get -y dist-upgrade
49
+ else
50
+ set -ex
51
+
52
+ yum -y update
53
+ fi
54
+ SH
43
55
  end
44
56
  end
45
57
  end
@@ -0,0 +1,21 @@
1
+ Little CMS
2
+ Copyright (c) 1998-2020 Marti Maria Saguer
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining
5
+ a copy of this software and associated documentation files (the
6
+ "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish,
8
+ distribute, sublicense, and/or sell copies of the Software, and to
9
+ permit persons to whom the Software is furnished to do so, subject
10
+ to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+ Copyright (c) 2016 Joshua Holmer
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ this software and associated documentation files (the "Software"), to deal in
6
+ the Software without restriction, including without limitation the rights to
7
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
8
+ of the Software, and to permit persons to whom the Software is furnished to do
9
+ so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
data/boxes/Rakefile CHANGED
@@ -37,9 +37,7 @@ class Box # :nodoc:
37
37
  private
38
38
 
39
39
  def definition
40
- @definition ||= begin
41
- eval definition_path.read.sub('Veewee::Session.declare', '{}.merge')
42
- end
40
+ @definition ||= eval definition_path.read.sub('Veewee::Session.declare', '{}.merge')
43
41
  end
44
42
 
45
43
  def assert_box_created
data/checksums.mk CHANGED
@@ -1,12 +1,14 @@
1
1
  ADVANCECOMP_SHA256 := 3ac0875e86a8517011976f04107186d5c60d434954078bc502ee731480933eb8
2
- GIFSICLE_SHA256 := 5ab556c01d65fddf980749e3ccf50b7fd40de738b6df679999294cc5fabfce65
2
+ GIFSICLE_SHA256 := 92f67079732bf4c1da087e6ae0905205846e5ac777ba5caa66d12a73aa943447
3
3
  JHEAD_SHA256 := ef89bbcf4f6c25ed88088cf242a47a6aedfff4f08cc7dc205bf3e2c0f10a03c9
4
4
  JPEGARCHIVE_SHA256 := 3da16a5abbddd925dee0379aa51d9fe0cba33da0b5703be27c13a2dda3d7ed75
5
5
  JPEGOPTIM_SHA256 := 88b1eb64c2a33a2f013f068df8b0331f42c019267401ae3fa28e3277403a5ab7
6
- LIBJPEG_SHA256 := 99cb50e48a4556bc571dadd27931955ff458aae32f68c4d9c39d624693f69c32
7
- LIBMOZJPEG_SHA256 := ad94b259279e4ea6fa7463062ebb279840d8cec43f730eef8c40b6abfef38940
6
+ LIBJPEG_SHA256 := 6c434a3be59f8f62425b2e3c077e785c9ce30ee5874ea1c270e843f273ba71ee
7
+ LIBLCMS_SHA256 := 18663985e864100455ac3e507625c438c3710354d85e5cbb7cd4043e11fe10f5
8
+ LIBMOZJPEG_SHA256 := 4f22731db2afa14531a5bf2633d8af79ca5cb697a550f678bf43f24e5e409ef0
8
9
  LIBPNG_SHA256 := daeb2620d829575513e35fecc83f0d3791a620b9b93d800b763542ece9390fb4
9
10
  LIBZ_SHA256 := c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
10
11
  OPTIPNG_SHA256 := 4f32f233cef870b3f95d3ad6428bfe4224ef34908f1b42b0badf858216654452
12
+ OXIPNG_SHA256 := 2a3197c9a0afdd91967f9981da7ce684b40eced4191c26c167b3c214a7cfd9ec
11
13
  PNGCRUSH_SHA256 := fed0aaf5c098aa8c7f78c75365cd18d7341417326ecbdba547876b7b4f3df4be
12
- PNGQUANT_SHA256 := 4b911a11aa0c35d364b608c917d13002126185c8c314ba4aa706b62fd6a95a7a
14
+ PNGQUANT_SHA256 := 06c6fdded675753fbdbeacc2b63507fb30f42fae813e48a1684b240bb5b63522
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'image_optim_pack'
5
- s.version = '0.7.0.20210206'
5
+ s.version = '0.8.0'
6
6
  s.summary = %q{Precompiled binaries for image_optim: advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegtran, optipng, pngcrush, pngquant}
7
7
  s.homepage = "https://github.com/toy/#{s.name}"
8
8
  s.authors = ['Ivan Kuchin']
@@ -56,5 +56,6 @@ Gem::Specification.new do |s|
56
56
  s.add_development_dependency 'rspec', '~> 3.0'
57
57
  if RUBY_VERSION >= '2.4'
58
58
  s.add_development_dependency 'rubocop', '~> 1.0'
59
+ s.add_development_dependency 'rubocop-rspec', '~> 2.0'
59
60
  end
60
61
  end
data/script/extract ADDED
@@ -0,0 +1,19 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ if [ "$#" -ne 1 ]; then
6
+ echo "Require name of package as argument" >&2
7
+ exit 1
8
+ fi
9
+
10
+ name="$1"
11
+ upcase=$(echo "$name" | tr a-z A-Z)
12
+ version=$(printenv "${upcase}_VER")
13
+ checksum=$(printenv "${upcase}_SHA256")
14
+ archive="download/${name}-${version}.tar.gz"
15
+ build_dir="build/$name"
16
+
17
+ echo "$checksum $archive" | sha256sum -c
18
+ mkdir -p "$build_dir"
19
+ tar -C "$build_dir" --strip-components=1 -xzf "$archive"
data/script/livecheck CHANGED
@@ -187,6 +187,9 @@ jpegarchive:
187
187
  libjpeg:
188
188
  url: https://www.ijg.org/files/
189
189
  regexp: jpegsrc.v(.*?).tar.gz
190
+ liblcms:
191
+ url: https://sourceforge.net/projects/lcms/rss?path=/lcms
192
+ regexp: /lcms/(\d+(?:\.\d+)*)/
190
193
  libmozjpeg:
191
194
  url: https://github.com/mozilla/mozjpeg/releases.atom
192
195
  regexp: <id>tag:github.com,2008:Repository/\d+/\D+?(\d+(?:\.\d+)*)</id>
@@ -199,6 +202,9 @@ libz:
199
202
  optipng:
200
203
  url: https://sourceforge.net/projects/optipng/rss
201
204
  regexp: /OptiPNG/optipng-(\d+(?:\.\d+)*)/
205
+ oxipng:
206
+ url: https://github.com/shssoichiro/oxipng/releases.atom
207
+ regexp: <id>tag:github.com,2008:Repository/\d+/v(\d+(?:\.\d+)*)</id>
202
208
  pngcrush:
203
209
  url: https://sourceforge.net/projects/pmt/rss?path=/pngcrush
204
210
  regexp: /pngcrush/(\d+(?:\.\d+)*)/
@@ -24,7 +24,7 @@ end
24
24
 
25
25
  table = Terminal::Table.new
26
26
 
27
- table.headings = %W[version days base\ dls] + platforms.map do |platform|
27
+ table.headings = ['version', 'days', 'base dls'] + platforms.map do |platform|
28
28
  platform.split('-').reverse.join("\n")
29
29
  end
30
30
 
@@ -38,11 +38,11 @@ versions.group_by(&:number).each do |version_n, platform_versions|
38
38
  base_downloads = platform_versions.map(&:downloads_count).min
39
39
 
40
40
  platform_values = downloads_by_platform.values_at(*platforms).map do |count|
41
- next unless count
41
+ next '' unless count
42
42
 
43
43
  count == base_downloads ? '=' : format('%+d', count - base_downloads)
44
44
  end
45
- table << [
45
+ table.add_row [
46
46
  version_n,
47
47
  (version_time[version_n] / (24 * 60 * 60)).round,
48
48
  base_downloads,
data/script/run CHANGED
@@ -38,7 +38,7 @@ for arch in x86_64; do
38
38
 
39
39
  mkdir -p "vendor/$platform"
40
40
 
41
- sudo -u _image_optim bash -c "
41
+ sudo -u _image_optim --set-home bash -c "
42
42
  set -e
43
43
 
44
44
  mkdir -p '$build_dir'
@@ -53,7 +53,7 @@ for arch in x86_64; do
53
53
  rsync -aR --del "$build_dir/./vendor/$platform" .
54
54
  done
55
55
 
56
- for vm in $(perl -pe "s/.*?'(.+?-.+?)'\s+=>\s+'.+?\/.+?'.*|.*/\$1/" Vagrantfile); do
56
+ for vm in $(perl -pe "s/.*?'(.+?-.+?)'\s+=>\s+'.+?\/.+?'.*|.*/\$1/" Vagrantfile | uniq); do
57
57
  passes-filter "$vm" || continue
58
58
  header "$vm"
59
59
 
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
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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_optim_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.20210206
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kuchin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-06 00:00:00.000000000 Z
11
+ date: 2021-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: image_optim
@@ -72,16 +72,32 @@ dependencies:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '1.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop-rspec
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '2.0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '2.0'
75
89
  description:
76
90
  email:
77
91
  executables: []
78
92
  extensions: []
79
93
  extra_rdoc_files: []
80
94
  files:
95
+ - ".dockerignore"
96
+ - ".github/workflows/check.yml"
81
97
  - ".gitignore"
82
98
  - ".rubocop.yml"
83
- - ".travis.yml"
84
99
  - CHANGELOG.markdown
100
+ - Dockerfile
85
101
  - Gemfile
86
102
  - LICENSE.txt
87
103
  - Makefile
@@ -100,10 +116,12 @@ files:
100
116
  - acknowledgements/libjpeg-turbo.txt
101
117
  - acknowledgements/libjpeg-x86-simd.txt
102
118
  - acknowledgements/libjpeg.txt
119
+ - acknowledgements/liblcms2.txt
103
120
  - acknowledgements/libpng.txt
104
121
  - acknowledgements/mozjpeg.txt
105
122
  - acknowledgements/optipng-authors.txt
106
123
  - acknowledgements/optipng.txt
124
+ - acknowledgements/oxipng.txt
107
125
  - acknowledgements/pngcrush.txt
108
126
  - acknowledgements/pngquant.txt
109
127
  - acknowledgements/smallfry.txt
@@ -116,8 +134,6 @@ files:
116
134
  - boxes/Rakefile
117
135
  - boxes/definitions/centos-amd64/definition.rb
118
136
  - boxes/definitions/centos-amd64/ks.cfg
119
- - boxes/definitions/centos-i386/definition.rb
120
- - boxes/definitions/centos-i386/ks.cfg
121
137
  - boxes/definitions/centos-postinstall.sh
122
138
  - checksums.mk
123
139
  - image_optim_pack-darwin-x86_64.gemspec
@@ -126,6 +142,7 @@ files:
126
142
  - image_optim_pack.gemspec
127
143
  - lib/image_optim/pack.rb
128
144
  - lib/image_optim_pack.rb
145
+ - script/extract
129
146
  - script/livecheck
130
147
  - script/platform_downloads
131
148
  - script/run
@@ -139,9 +156,11 @@ files:
139
156
  - vendor/darwin-x86_64/jpegoptim
140
157
  - vendor/darwin-x86_64/jpegtran
141
158
  - vendor/darwin-x86_64/libjpeg.dylib
159
+ - vendor/darwin-x86_64/liblcms2.dylib
142
160
  - vendor/darwin-x86_64/libpng.dylib
143
161
  - vendor/darwin-x86_64/libz.dylib
144
162
  - vendor/darwin-x86_64/optipng
163
+ - vendor/darwin-x86_64/oxipng
145
164
  - vendor/darwin-x86_64/pngcrush
146
165
  - vendor/darwin-x86_64/pngquant
147
166
  - vendor/linux-i686/advpng
@@ -151,9 +170,11 @@ files:
151
170
  - vendor/linux-i686/jpegoptim
152
171
  - vendor/linux-i686/jpegtran
153
172
  - vendor/linux-i686/libjpeg.so
173
+ - vendor/linux-i686/liblcms2.so
154
174
  - vendor/linux-i686/libpng.so
155
175
  - vendor/linux-i686/libz.so
156
176
  - vendor/linux-i686/optipng
177
+ - vendor/linux-i686/oxipng
157
178
  - vendor/linux-i686/pngcrush
158
179
  - vendor/linux-i686/pngquant
159
180
  - vendor/linux-x86_64/advpng
@@ -163,9 +184,11 @@ files:
163
184
  - vendor/linux-x86_64/jpegoptim
164
185
  - vendor/linux-x86_64/jpegtran
165
186
  - vendor/linux-x86_64/libjpeg.so
187
+ - vendor/linux-x86_64/liblcms2.so
166
188
  - vendor/linux-x86_64/libpng.so
167
189
  - vendor/linux-x86_64/libz.so
168
190
  - vendor/linux-x86_64/optipng
191
+ - vendor/linux-x86_64/oxipng
169
192
  - vendor/linux-x86_64/pngcrush
170
193
  - vendor/linux-x86_64/pngquant
171
194
  homepage: https://github.com/toy/image_optim_pack
@@ -174,7 +197,7 @@ licenses:
174
197
  metadata:
175
198
  bug_tracker_uri: https://github.com/toy/image_optim_pack/issues
176
199
  changelog_uri: https://github.com/toy/image_optim_pack/blob/master/CHANGELOG.markdown
177
- documentation_uri: https://www.rubydoc.info/gems/image_optim_pack/0.7.0.20210206
200
+ documentation_uri: https://www.rubydoc.info/gems/image_optim_pack/0.8.0
178
201
  source_code_uri: https://github.com/toy/image_optim_pack
179
202
  post_install_message:
180
203
  rdoc_options: []
@@ -191,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
214
  - !ruby/object:Gem::Version
192
215
  version: '0'
193
216
  requirements: []
194
- rubygems_version: 3.1.5
217
+ rubygems_version: 3.2.29
195
218
  signing_key:
196
219
  specification_version: 4
197
220
  summary: 'Precompiled binaries for image_optim: advpng, gifsicle, jhead, jpeg-recompress,
data/.travis.yml DELETED
@@ -1,41 +0,0 @@
1
- dist: xenial
2
- language: ruby
3
- rvm:
4
- - '1.9.3-p551'
5
- - '2.0.0-p648'
6
- - '2.1.10'
7
- - '2.2.10'
8
- - '2.3.8'
9
- - '2.4.10'
10
- - '2.5.8'
11
- - '2.6.6'
12
- - '2.7.2'
13
- - '3.0.0'
14
- - 'jruby-9.2.14.0'
15
- script:
16
- - make test
17
- - bundle exec image_optim --info
18
- - bundle exec rspec
19
- before_install:
20
- - 'echo "gem: --no-ri --no-rdoc --no-document" > ~/.gemrc'
21
- - gem install rubygems-update || gem install rubygems-update --version '< 3'
22
- - update_rubygems
23
- - gem install bundler || gem install bundler --version '< 2'
24
- - if [ $TRAVIS_OS_NAME == osx ]; then brew update && brew install imagemagick; fi; which convert
25
- - make ldd-version
26
- matrix:
27
- include:
28
- - os: osx
29
- rvm: default
30
- osx_image: xcode11.3
31
- - os: osx
32
- rvm: default
33
- osx_image: xcode12.2
34
- - env: RUBOCOP=1
35
- rvm: '2.6.6'
36
- script: bundle exec rubocop
37
- - env: CHECK_RUBIES=1
38
- rvm: '2.6.6'
39
- script: bundle exec travis_check_rubies
40
- allow_failures:
41
- - rvm: 'jruby-9.2.14.0'
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Veewee::Session.declare({
4
- :cpu_count => '1',
5
- :memory_size => '512',
6
- :disk_size => '8192',
7
- :disk_format => 'VDI',
8
- :hostiocache => 'off',
9
- :os_type_id => 'RedHat',
10
- :iso_file => 'CentOS-7-i386-Minimal-2009.iso',
11
- :iso_src => 'http://linux.darkpenguin.net/distros/CentOS-AltArch/7.9.2009/isos/i386/CentOS-7-i386-Minimal-2009.iso',
12
- :iso_sha256 => 'bcbde5d345c5013fa618c38380765547be01a354883b3055f32d7067dd7b5bca',
13
- :iso_download_timeout => '1000',
14
- :boot_wait => '10',
15
- :boot_cmd_sequence => [
16
- '<Tab> text ks=http://%IP%:%PORT%/ks.cfg<Enter>',
17
- ],
18
- :kickstart_port => '7122',
19
- :kickstart_timeout => '300',
20
- :kickstart_file => 'ks.cfg',
21
- :ssh_login_timeout => '10000',
22
- :ssh_user => 'veewee',
23
- :ssh_password => 'veewee',
24
- :ssh_key => '',
25
- :ssh_host_port => '7222',
26
- :ssh_guest_port => '22',
27
- :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
28
- :shutdown_cmd => '/sbin/halt -h -p',
29
- :postinstall_files => %w[../centos-postinstall.sh],
30
- :postinstall_timeout => '10000',
31
- :skip_iso_transfer => true,
32
- })
@@ -1,37 +0,0 @@
1
- install
2
- cdrom
3
- lang en_US.UTF-8
4
- keyboard us
5
- network --bootproto=dhcp
6
- rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
7
- firewall --enabled --service=ssh
8
- authconfig --enableshadow --passalgo=sha512
9
- selinux --disabled
10
- timezone UTC
11
- bootloader --location=mbr
12
-
13
- text
14
- skipx
15
- zerombr
16
-
17
- clearpart --all --initlabel
18
- autopart
19
-
20
- auth --useshadow --enablemd5
21
- firstboot --disabled
22
- reboot
23
-
24
- %packages --nobase
25
- @core
26
- openssh-clients
27
- %end
28
-
29
- %post
30
- /usr/bin/yum -y install sudo
31
- /usr/sbin/groupadd veewee
32
- /usr/sbin/useradd veewee -g veewee -G wheel
33
- echo "veewee"|passwd --stdin veewee
34
- echo "veewee ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/veewee
35
- chmod 0440 /etc/sudoers.d/veewee
36
- %end
37
-