image_optim_pack 0.10.1-x86_64-linux → 0.11.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 14ca6f2ad4f2d6b6adf214a327e4d3cdce35fe6b86b9d93450af737940442439
4
- data.tar.gz: 5aae6a32df2f4b69816a74d1ec1de1e007e8b77e2f0a30ba5da944cb4299edc3
3
+ metadata.gz: 6636517380c47aef26b61fae25a9ffe04997ad3c06f3820994e54fab03913f8d
4
+ data.tar.gz: abfa8e7149d00920966321155ea72d3a9175fddd25af972395c7ea71b6ca67c1
5
5
  SHA512:
6
- metadata.gz: c7c8c27f3cf230965a2f39756375dad27e59dc8b683db22aeb7ffc0ad135b2f61c3eacb2cd0fc647cc1a71a67c4720044205750580cba64ec362883f9919bdc9
7
- data.tar.gz: ff130a5d02469fd0d05f107e785563ad5e5852f569b9a9464e883e5a28b104c5a38096509a73ec666e7aa6d769b5d0a03d6b804976d99e02777d1c25be421e9a
6
+ metadata.gz: a643a07be49d1861eaa72bd5bf01a7a3de75fc8950a3932a6fee23f617431178aba89148537ea7e1092a4324168c6829179925d7c2068e15a4c9148c3f1c77f9
7
+ data.tar.gz: 70dc3d479cbe9aa27673ddef6749000f2012afec64c433b0054e51f6d1b116394b3c038f0f1d50c2df658a6113d1a0cbf8e97cd7e06ff6c0ab2b301a6a333db8
@@ -11,18 +11,17 @@ jobs:
11
11
  matrix:
12
12
  os:
13
13
  - ubuntu-latest
14
- - macos-latest
14
+ - macos-13
15
15
  ruby:
16
- - '2.6'
17
16
  - '2.7'
18
17
  - '3.0'
19
18
  - '3.1'
20
19
  - '3.2'
21
- - jruby-9.3
20
+ - '3.3'
22
21
  - jruby-9.4
23
22
  fail-fast: false
24
23
  steps:
25
- - uses: actions/checkout@v3
24
+ - uses: actions/checkout@v4
26
25
  - uses: ruby/setup-ruby@v1
27
26
  with:
28
27
  ruby-version: "${{ matrix.ruby }}"
@@ -14,7 +14,7 @@ jobs:
14
14
  - DOCKER_FILE=Dockerfile.debian DOCKER_TAG_SUFFIX=-debian
15
15
  fail-fast: false
16
16
  steps:
17
- - uses: actions/checkout@v3
17
+ - uses: actions/checkout@v4
18
18
  - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
19
19
  with:
20
20
  registry: ghcr.io
@@ -14,7 +14,7 @@ jobs:
14
14
  livecheck:
15
15
  runs-on: ubuntu-latest
16
16
  steps:
17
- - uses: actions/checkout@v3
17
+ - uses: actions/checkout@v4
18
18
  - uses: ruby/setup-ruby@v1
19
19
  with:
20
20
  ruby-version: '3'
@@ -8,7 +8,7 @@ jobs:
8
8
  rubocop:
9
9
  runs-on: ubuntu-latest
10
10
  steps:
11
- - uses: actions/checkout@v3
11
+ - uses: actions/checkout@v4
12
12
  - uses: ruby/setup-ruby@v1
13
13
  with:
14
14
  ruby-version: '3'
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /build/
2
2
  /download/
3
- /.vagrant/
4
3
 
5
4
  Gemfile.lock
6
5
  /*.gem
data/CHANGELOG.markdown CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## unreleased
4
4
 
5
+ ## v0.11.0 (2024-05-05)
6
+
7
+ * Use container instead of vagrant to build linux binaries [@toy](https://github.com/toy)
8
+ * oxipng 9.1.1 [@toy](https://github.com/toy)
9
+
10
+ ## v0.10.1.20240317 (2024-03-17)
11
+
12
+ * gifsicle 1.95 [@toy](https://github.com/toy)
13
+ * libpng 1.6.43, patching pngcrush to be compatible [@toy](https://github.com/toy)
14
+ * libjpeg 9f [@toy](https://github.com/toy)
15
+
5
16
  ## v0.10.1 (2023-12-05)
6
17
 
7
18
  * liblcms 2.16 [@toy](https://github.com/toy)
data/Dockerfile CHANGED
@@ -120,8 +120,10 @@ FROM libpng as pngcrush
120
120
  ARG PNGCRUSH_VER
121
121
  ARG PNGCRUSH_SHA256
122
122
  COPY download/pngcrush-$PNGCRUSH_VER.tar.gz download/
123
+ COPY patches/pngcrush.patch patches/
123
124
  RUN ./extract pngcrush && \
124
125
  cd build/pngcrush && \
126
+ patch < ../../patches/pngcrush.patch && \
125
127
  make && \
126
128
  install -c pngcrush /usr/local/bin
127
129
 
data/Dockerfile.debian CHANGED
@@ -120,8 +120,10 @@ FROM libpng as pngcrush
120
120
  ARG PNGCRUSH_VER
121
121
  ARG PNGCRUSH_SHA256
122
122
  COPY download/pngcrush-$PNGCRUSH_VER.tar.gz download/
123
+ COPY patches/pngcrush.patch patches/
123
124
  RUN ./extract pngcrush && \
124
125
  cd build/pngcrush && \
126
+ patch < ../../patches/pngcrush.patch && \
125
127
  make && \
126
128
  install -c pngcrush /usr/local/bin
127
129
 
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2023 Ivan Kuchin
1
+ Copyright (c) 2014-2024 Ivan Kuchin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Makefile CHANGED
@@ -3,17 +3,17 @@ all :
3
3
  # ====== VERSIONS ======
4
4
 
5
5
  ADVANCECOMP_VER := 2.6
6
- GIFSICLE_VER := 1.94
6
+ GIFSICLE_VER := 1.95
7
7
  JHEAD_VER := 3.04
8
8
  JPEGARCHIVE_VER := 2.2.0
9
9
  JPEGOPTIM_VER := 1.5.5
10
- LIBJPEG_VER := 9e
10
+ LIBJPEG_VER := 9f
11
11
  LIBLCMS_VER := 2.16
12
12
  LIBMOZJPEG_VER := 4.1.5
13
- LIBPNG_VER := 1.6.40
13
+ LIBPNG_VER := 1.6.43
14
14
  LIBZ_VER := 1.2.11
15
15
  OPTIPNG_VER := 0.7.8
16
- OXIPNG_VER := 9.0.0
16
+ OXIPNG_VER := 9.1.1
17
17
  PNGCRUSH_VER := 1.8.13
18
18
  PNGOUT_VER := 20200115
19
19
  PNGOUT_LINUX_VER := $(PNGOUT_VER)
@@ -43,6 +43,9 @@ BUILD_ROOT_DIR := $(CURDIR)/build
43
43
  BUILD_DIR := $(BUILD_ROOT_DIR)/$(OS)-$(ARCH)
44
44
  OUTPUT_ROOT_DIR := $(CURDIR)/vendor
45
45
  OUTPUT_DIR := $(OUTPUT_ROOT_DIR)/$(OS)-$(ARCH)
46
+ PATCHES_DIR := $(CURDIR)/patches
47
+
48
+ export CARGO_HOME := $(DL_DIR)/cargo
46
49
 
47
50
  ANSI_RED=\033[31m
48
51
  ANSI_GREEN=\033[32m
@@ -112,6 +115,10 @@ $(eval $(call archive-dl,PNGQUANT, https://pngquant.org/pngquant-[VER]-src.ta
112
115
  download : $(foreach archive,$(ARCHIVES),$($(archive)_ARC))
113
116
  .PHONY : download
114
117
 
118
+ download-dependencies : $(OXIPNG_EXTRACTED)
119
+ cd $(OXIPNG_DIR) && cargo fetch --locked
120
+ .PHONY : download-dependencies
121
+
115
122
  download-tidy-up :
116
123
  rm -f $(filter-out $(foreach archive,$(ARCHIVES),$($(archive)_ARC)),$(wildcard $(DL_DIR)/*.*))
117
124
  .PHONY : download-tidy-up
@@ -269,6 +276,7 @@ test :
269
276
  update-versions :
270
277
  script/livecheck --update
271
278
  make checksum-update
279
+ make download-dependencies
272
280
  .PHONY : update-versions
273
281
 
274
282
  # ====== DOCKER ======
@@ -410,7 +418,7 @@ $(JHEAD_TARGET) :
410
418
  ## jpeg-recompress
411
419
  $(eval $(call depend-build,JPEG-RECOMPRESS,LIBMOZJPEG))
412
420
  $(JPEG-RECOMPRESS_TARGET) :
413
- cd $(DIR) && $(MAKE) jpeg-recompress CC="$(CC) $(CFLAGS)" LIBJPEG=$(LIBMOZJPEG_TARGET) \
421
+ cd $(DIR) && $(MAKE) jpeg-recompress CC="$(CC) $(CFLAGS) -fcommon" LIBJPEG=$(LIBMOZJPEG_TARGET) \
414
422
  MAKE=$(MAKE) # fix for bsd in jpeg-archive-2.1.1
415
423
 
416
424
  ## jpegoptim
@@ -489,12 +497,13 @@ $(OPTIPNG_TARGET) :
489
497
 
490
498
  ## oxipng
491
499
  $(OXIPNG_TARGET) :
492
- cd $(DIR) && cargo build --release --locked
500
+ cd $(DIR) && cargo build --release --frozen --offline
493
501
 
494
502
  ## pngcrush
495
503
  $(eval $(call depend,PNGCRUSH,LIBPNG LIBZ))
496
504
  $(PNGCRUSH_TARGET) :
497
505
  cd $(DIR) && rm -f png.h pngconf.h
506
+ cd $(DIR) && patch < $(PATCHES_DIR)/pngcrush.patch
498
507
  cd $(DIR) && $(MAKE) pngcrush \
499
508
  CC="$(CC)" \
500
509
  LD="$(CC)" \
data/README.markdown CHANGED
@@ -70,9 +70,7 @@ gem 'image_optim_pack'
70
70
 
71
71
  ## Development
72
72
 
73
- Mac OS X binaries and libraries are built on host, others using [vagrant](https://www.vagrantup.com/).
74
-
75
- Boxes for vagrant are built using [veewee](https://github.com/jedi4ever/veewee), check [boxes/Rakefile](boxes/Rakefile) and [boxes/definitions](boxes/definitions).
73
+ Mac OS X binaries and libraries are built on host, others using containers.
76
74
 
77
75
  ```sh
78
76
  script/run # Build and test all for all oses and architectures
@@ -119,4 +117,4 @@ make docker-push # will push tags created by docker-build
119
117
 
120
118
  ## Copyright
121
119
 
122
- Copyright (c) 2014-2023 Ivan Kuchin. See [LICENSE.txt](LICENSE.txt) for details.
120
+ Copyright (c) 2014-2024 Ivan Kuchin. See [LICENSE.txt](LICENSE.txt) for details.
data/checksums.mk CHANGED
@@ -1,15 +1,15 @@
1
1
  ADVANCECOMP_SHA256 := b07d77735540409771cbe1b6df165b5151c11bb9c3d8f01290be0ec88ec3498f
2
- GIFSICLE_SHA256 := 4bc97005c0789620de75f89997d3c2f70758c72c61aa0a2ef04f7a671a2ff89b
2
+ GIFSICLE_SHA256 := b2711647009fd2a13130f3be160532ed46538e762bfc0f020dea50618a7dc950
3
3
  JHEAD_SHA256 := ef89bbcf4f6c25ed88088cf242a47a6aedfff4f08cc7dc205bf3e2c0f10a03c9
4
4
  JPEGARCHIVE_SHA256 := 3da16a5abbddd925dee0379aa51d9fe0cba33da0b5703be27c13a2dda3d7ed75
5
5
  JPEGOPTIM_SHA256 := 90a309d1c092de358bb411d702281ac3039b489d03adb0bc3c4ef04cf0067d38
6
- LIBJPEG_SHA256 := 4077d6a6a75aeb01884f708919d25934c93305e49f7e3f36db9129320e6f4f3d
6
+ LIBJPEG_SHA256 := 04705c110cb2469caa79fb71fba3d7bf834914706e9641a4589485c1f832565b
7
7
  LIBLCMS_SHA256 := d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51
8
8
  LIBMOZJPEG_SHA256 := 9fcbb7171f6ac383f5b391175d6fb3acde5e64c4c4727274eade84ed0998fcc1
9
- LIBPNG_SHA256 := 8f720b363aa08683c9bf2a563236f45313af2c55d542b5481ae17dd8d183bb42
9
+ LIBPNG_SHA256 := e804e465d4b109b5ad285a8fb71f0dd3f74f0068f91ce3cdfde618180c174925
10
10
  LIBZ_SHA256 := c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
11
11
  OPTIPNG_SHA256 := 25a3bd68481f21502ccaa0f4c13f84dcf6b20338e4c4e8c51f2cefbd8513398c
12
- OXIPNG_SHA256 := 534fa8f349f52b01c2ee4332cef25ce1311edca04209ac6d972e38b171550a1b
12
+ OXIPNG_SHA256 := f50db90c7ef95c0964dc980f6596b821f362e15d6d4bab247f1eb4aab7554db8
13
13
  PNGCRUSH_SHA256 := fed0aaf5c098aa8c7f78c75365cd18d7341417326ecbdba547876b7b4f3df4be
14
14
  PNGOUT_LINUX_SHA256 := ac38bba6f0de29033de866538c3afa64341319b695bbe388efbc5fd9e830e928
15
15
  PNGOUT_LINUX_STATIC_SHA256 := 7a78ea475d65a00981bf418e5dfa3b34e42d6460fb992340802873bb14b08597
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'image_optim_pack'
5
- s.version = '0.10.1'
5
+ s.version = '0.11.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']
@@ -0,0 +1,15 @@
1
+ diff --git a/pngcrush.c b/pngcrush.c
2
+ index d0c387e..ed27eff 100644
3
+ --- a/pngcrush.c
4
+ +++ b/pngcrush.c
5
+ @@ -5520,8 +5520,10 @@ int main(int argc, char *argv[])
6
+ * they were already checked in the pngcrush_measure_idat
7
+ * function
8
+ */
9
+ +# ifdef PNG_IGNORE_ADLER32
10
+ png_set_option(read_ptr, PNG_IGNORE_ADLER32,
11
+ PNG_OPTION_ON);
12
+ +# endif
13
+ png_set_crc_action(read_ptr, PNG_CRC_QUIET_USE,
14
+ PNG_CRC_QUIET_USE);
15
+ }
data/script/livecheck CHANGED
@@ -122,8 +122,13 @@ class Livecheck
122
122
  def update_changelog
123
123
  changelog = FSPath('CHANGELOG.markdown')
124
124
  lines = changelog.readlines
125
- lines.insert(4, "\n") if lines[4] =~ /^## /
126
- lines.insert(4, changelog_entry)
125
+ i = 4
126
+ if lines[i] =~ /^## /
127
+ lines.insert(i, "\n")
128
+ else
129
+ i += 1 while lines[i] =~ /^\* /
130
+ end
131
+ lines.insert(i, changelog_entry)
127
132
  write(changelog, lines.join(''))
128
133
  end
129
134
 
@@ -5,7 +5,10 @@ require 'gems'
5
5
  require 'ostruct'
6
6
  require 'terminal-table'
7
7
 
8
- versions = Gems.versions('image_optim_pack').map(&OpenStruct.method(:new)) # rubocop:disable Style/OpenStructUse
8
+ versions = Gems.versions('image_optim_pack').map do |attributes|
9
+ attributes['number'] = Gem::Version.new(attributes['number'])
10
+ OpenStruct.new(attributes) # rubocop:disable Style/OpenStructUse
11
+ end
9
12
 
10
13
  platforms = versions.map(&:platform).uniq.sort_by do |platform|
11
14
  platform.sub('amd64', 'x86_64').split('-').reverse
data/script/run CHANGED
@@ -1,9 +1,7 @@
1
- #!/usr/bin/env bash
1
+ #!/usr/bin/env bash -e
2
2
 
3
3
  # Build tools on Mac OS X host and in all vms
4
4
 
5
- set -e
6
-
7
5
  MAKE_TASK='all -j'
8
6
 
9
7
  filters=()
@@ -29,6 +27,8 @@ if [[ $(uname -s) != 'Darwin' ]]; then
29
27
  exit 1
30
28
  fi
31
29
 
30
+ make download-dependencies
31
+
32
32
  for arch in x86_64; do
33
33
  platform="darwin-$arch"
34
34
  passes-filter "$platform" || continue
@@ -38,53 +38,86 @@ for arch in x86_64; do
38
38
 
39
39
  mkdir -p "vendor/$platform"
40
40
 
41
- sudo -u _image_optim --set-home bash -c "
42
- set -e
41
+ rsync -aR --del Makefile checksums.mk download patches "$build_dir"
43
42
 
43
+ sudo -u _image_optim --set-home bash -exc "
44
44
  mkdir -p '$build_dir'
45
45
  cd '$build_dir'
46
46
 
47
- ln -nsf '$PWD/Makefile' '$PWD/checksums.mk' '$PWD/download' .
48
- rsync -aR --del '$PWD/./vendor/$platform' .
49
-
50
47
  make $MAKE_TASK ARCH=$arch
51
48
  "
52
49
 
53
50
  rsync -aR --del "$build_dir/./vendor/$platform" .
54
51
  done
55
52
 
56
- for vm in $(perl -pe "s/.*?'(.+?-.+?)'\s+=>\s+'.+?\/.+?'.*|.*/\$1/" Vagrantfile | uniq); do
57
- passes-filter "$vm" || continue
58
- header "$vm"
53
+ if command -v docker &> /dev/null; then
54
+ container_tool="docker"
55
+ elif command -v podman &> /dev/null; then
56
+ container_tool="podman"
57
+ else
58
+ echo "neither docker nor podman found"
59
+ exit 1
60
+ fi
59
61
 
60
- if [[ -z "$NO_UP" ]]; then
61
- vagrant status "$vm" | grep -q running || vagrant up "$vm"
62
- fi
62
+ container_build() {
63
+ vm=$1
64
+ image=$2
65
+
66
+ passes-filter "$vm" || return 0
67
+ header "$vm"
63
68
 
64
- # create ssh config
65
- ssh_config=".vagrant/ssh_config.$vm"
66
- vagrant ssh-config "$vm" > "$ssh_config"
69
+ container_name="image_optim_pack-build-$vm"
70
+ workdir=/pack
67
71
 
68
- # rsync needed files to the box
69
- mkdir -p "vendor/$vm"
70
- rsync -e "ssh -F $ssh_config" -aR --del Makefile checksums.mk download "vendor/$vm" "$vm:/vagrant"
72
+ if [[ -z "$NO_UP" ]]; then
73
+ status=$("$container_tool" inspect --format '{{.State.Status}}' "$container_name" 2>/dev/null || true)
74
+
75
+ if [[ "$status" == "" ]]; then
76
+ mount="./_path_:$workdir/_path_"
77
+
78
+ "$container_tool" \
79
+ container create \
80
+ --quiet \
81
+ --name="$container_name" \
82
+ --stop-signal SIGHUP \
83
+ -it \
84
+ -v "${mount//_path_/}:ro" \
85
+ -v "${mount//_path_/build/$vm}" \
86
+ -v "${mount//_path_/vendor/$vm}" \
87
+ --workdir "$workdir" \
88
+ "$image"
89
+
90
+ "$container_tool" container start "$container_name"
91
+
92
+ "$container_tool" exec -it "$container_name" bash -exc "
93
+ apt update
94
+ apt -y install make gcc g++ chrpath perl pkg-config autoconf automake libtool nasm cmake patch
95
+ "
96
+ fi
71
97
 
72
- # sync time and run make
73
- ssh -F "$ssh_config" "$vm" "
74
- set -e
98
+ if [[ "$status" = @(created|exited) ]]; then
99
+ "$container_tool" container start "$container_name"
100
+ fi
75
101
 
76
- sudo ntpdate pool.ntp.org
102
+ if [[ "$status" = @(created|exited|running) ]]; then
103
+ "$container_tool" exec -it "$container_name" bash -exc "
104
+ apt update
105
+ apt -y dist-upgrade
106
+ rustup update
107
+ "
108
+ fi
77
109
 
78
- cd /vagrant
79
- if make -v 2>&1 | grep -q GNU\ Make; then
80
- make $MAKE_TASK
81
- else
82
- gmake $MAKE_TASK
110
+ if ! [[ "$status" = @(|created|exited|running) ]]; then
111
+ echo "unexpected status $status"
112
+ exit 1
83
113
  fi
114
+ fi
115
+
116
+ "$container_tool" exec -it "$container_name" bash -exc "
117
+ make $MAKE_TASK
84
118
  "
85
119
 
86
- # rsync files in vendor from the box
87
- rsync -e "ssh -F $ssh_config" -aR --del "$vm:/vagrant/./vendor/$vm" .
120
+ [[ -n "$NO_HALT" ]] || "$container_tool" container stop "$container_name"
121
+ }
88
122
 
89
- [[ -n "$NO_HALT" ]] || vagrant halt "$vm"
90
- done
123
+ container_build linux-x86_64 rust:slim
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.10.1
4
+ version: 0.11.0
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Ivan Kuchin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-05 00:00:00.000000000 Z
11
+ date: 2024-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: image_optim
@@ -112,7 +112,6 @@ files:
112
112
  - LICENSE.txt
113
113
  - Makefile
114
114
  - README.markdown
115
- - Vagrantfile
116
115
  - acknowledgements/7z.txt
117
116
  - acknowledgements/advancecomp.txt
118
117
  - acknowledgements/bmp2png.txt
@@ -139,19 +138,13 @@ files:
139
138
  - acknowledgements/zlib.txt
140
139
  - acknowledgements/zopfli-contributors.txt
141
140
  - acknowledgements/zopfli.txt
142
- - boxes/.gitignore
143
- - boxes/.rubocop.yml
144
- - boxes/Gemfile
145
- - boxes/Rakefile
146
- - boxes/definitions/centos-amd64/definition.rb
147
- - boxes/definitions/centos-amd64/ks.cfg
148
- - boxes/definitions/centos-postinstall.sh
149
141
  - checksums.mk
150
142
  - image_optim_pack-darwin-x86_64.gemspec
151
143
  - image_optim_pack-linux-x86_64.gemspec
152
144
  - image_optim_pack.gemspec
153
145
  - lib/image_optim/pack.rb
154
146
  - lib/image_optim_pack.rb
147
+ - patches/pngcrush.patch
155
148
  - script/extract
156
149
  - script/livecheck
157
150
  - script/platform_downloads
@@ -180,7 +173,7 @@ licenses:
180
173
  metadata:
181
174
  bug_tracker_uri: https://github.com/toy/image_optim_pack/issues
182
175
  changelog_uri: https://github.com/toy/image_optim_pack/blob/master/CHANGELOG.markdown
183
- documentation_uri: https://www.rubydoc.info/gems/image_optim_pack/0.10.1
176
+ documentation_uri: https://www.rubydoc.info/gems/image_optim_pack/0.11.0
184
177
  source_code_uri: https://github.com/toy/image_optim_pack
185
178
  post_install_message:
186
179
  rdoc_options: []
@@ -197,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
197
190
  - !ruby/object:Gem::Version
198
191
  version: '0'
199
192
  requirements: []
200
- rubygems_version: 3.4.20
193
+ rubygems_version: 3.5.5
201
194
  signing_key:
202
195
  specification_version: 4
203
196
  summary: 'Precompiled binaries for image_optim: advpng, gifsicle, jhead, jpeg-recompress,
data/Vagrantfile DELETED
@@ -1,61 +0,0 @@
1
- Vagrant.configure('2') do |config|
2
- # don't mess with keys
3
- config.ssh.insert_key = false
4
-
5
- # doesn't make sense to check updates for local boxes
6
- config.vm.box_check_update = false
7
-
8
- # there are no guest additions
9
- config.vm.provider 'virtualbox' do |vb|
10
- vb.check_guest_additions = false
11
- vb.customize ['modifyvm', :id, '--groups', '/image_optim']
12
- vb.customize ['modifyvm', :id, '--uartmode1', 'disconnected'] # override for ubuntu/xenial32
13
- end
14
-
15
- # handle manually using rsync
16
- config.vm.synced_folder '.', '/vagrant', disabled: true
17
-
18
- {
19
- 'linux-x86_64' => 'boxes/centos-amd64.box',
20
- }.each do |name, location|
21
- config.vm.define name do |machine|
22
- machine.vm.hostname = name.gsub('_', '-')
23
- machine.vm.box = location
24
-
25
- machine.vm.provision :shell, inline: <<-SH
26
- if command -v apt-get; then
27
- set -ex
28
-
29
- apt-get update
30
- apt-get -y install rsync ntpdate make wget gcc g++ chrpath perl pkg-config autoconf automake libtool nasm cmake cargo
31
- apt-get -y remove unattended-upgrades
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
-
39
- mkdir -p /vagrant
40
- chown vagrant:vagrant /vagrant
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
-
50
- if [ $(lsb_release -r | egrep -o '[0-9]+' | head -1) -lt 18 ]; then
51
- do-release-upgrade -f DistUpgradeViewNonInteractive
52
- fi
53
- else
54
- set -ex
55
-
56
- yum -y update
57
- fi
58
- SH
59
- end
60
- end
61
- end
data/boxes/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- /*.box
2
- /.env
3
- /iso/
data/boxes/.rubocop.yml DELETED
@@ -1,10 +0,0 @@
1
- inherit_from: ../.rubocop.yml
2
-
3
- Layout/LineLength:
4
- Enabled: false
5
-
6
- Lint/RedundantSplatExpansion:
7
- Enabled: false
8
-
9
- Security/Eval:
10
- Exclude: [Rakefile]
data/boxes/Gemfile DELETED
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'rake'
6
-
7
- gem 'veewee', '= 0.4.5.1'
8
-
9
- gem 'net-scp'
10
- gem 'progressbar', '~> 0.21.0'
data/boxes/Rakefile DELETED
@@ -1,88 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'pathname'
4
-
5
- class Box # :nodoc:
6
- attr_reader :definition_path, :definition_dir, :name, :path, :groups
7
-
8
- def initialize(definition_path)
9
- @definition_path = Pathname(definition_path)
10
- @definition_dir = @definition_path.dirname
11
- @name = @definition_dir.basename.to_s
12
- @path = Pathname("#{@name}.box")
13
- parts = @name.split('-')
14
- @groups = (1...parts.length).map{ |n| parts.take(n).join('-') }
15
- end
16
-
17
- def dependencies
18
- postinstall_file_paths = Array(definition[:postinstall_files]).map do |path|
19
- definition_dir + path
20
- end
21
- [definition_path] + postinstall_file_paths
22
- end
23
-
24
- def build
25
- sh(*%W[veewee vbox build --auto --checksum --force --nogui #{name}])
26
- sh(*%w[sleep 30])
27
- sh(*%W[veewee vbox export --force #{name}])
28
- sh(*%W[veewee vbox destroy #{name}])
29
- end
30
-
31
- def add
32
- assert_box_created
33
-
34
- sh(*%W[vagrant box add --force --name boxes/#{path} #{path}])
35
- end
36
-
37
- private
38
-
39
- def definition
40
- @definition ||= eval definition_path.read.sub('Veewee::Session.declare', '{}.merge')
41
- end
42
-
43
- def assert_box_created
44
- abort "#{path} doesn't exist" unless path.size?
45
- end
46
-
47
- def sh(*args)
48
- abort unless system(*args)
49
- end
50
- end
51
-
52
- Dir['definitions/*/definition.rb'].each do |definition_path|
53
- box = Box.new(definition_path)
54
-
55
- desc "build #{box.name} box"
56
- file box.path => box.dependencies do
57
- box.build
58
- end
59
-
60
- namespace :add do
61
- desc "add #{box.name} box to vagrant"
62
- task box.name => box.path do
63
- box.add
64
- end
65
- end
66
-
67
- box.groups.each do |group|
68
- desc "build #{group} boxes"
69
- task "build:#{group}" => box.path
70
-
71
- desc "add #{group} boxes to vagrant"
72
- task "add:#{group}" => "add:#{box.name}"
73
- end
74
-
75
- desc 'build all boxes'
76
- task build: box.path
77
-
78
- desc 'add all boxes to vagrant'
79
- task add: "add:#{box.name}"
80
- end
81
-
82
- desc 'remove *.box and iso dir'
83
- task :clean do
84
- sh 'rm *.box || true'
85
- sh 'rm -r iso || true'
86
- end
87
-
88
- task default: :build
@@ -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: 'RedHat6_64',
10
- iso_file: 'CentOS-7-x86_64-Minimal-2009.iso',
11
- iso_src: 'http://linux.darkpenguin.net/distros/CentOS/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso',
12
- iso_sha256: '07b94e6b1a0b0260b94c83d6bb76b26bf7a310dc78d7a9c7432809fb9bc6194a',
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
-
@@ -1,29 +0,0 @@
1
- set -ex
2
-
3
- sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
4
-
5
- yum -y install wget
6
-
7
- # Make ssh faster by not waiting on DNS
8
- echo "UseDNS no" >> /etc/ssh/sshd_config
9
-
10
- # Vagrant specific
11
- date > /etc/vagrant_box_build_time
12
-
13
- # Add vagrant user
14
- /usr/sbin/groupadd vagrant
15
- /usr/sbin/useradd vagrant -g vagrant -G wheel
16
- echo "vagrant"|passwd --stdin vagrant
17
- echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant
18
- chmod 0440 /etc/sudoers.d/vagrant
19
-
20
- # Installing vagrant keys
21
- mkdir -pm 700 /home/vagrant/.ssh
22
- wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O /home/vagrant/.ssh/authorized_keys
23
- chmod 0600 /home/vagrant/.ssh/authorized_keys
24
- chown -R vagrant /home/vagrant/.ssh
25
-
26
- yum -y clean all
27
-
28
- # Zero out the free space to save space in the final image
29
- dd if=/dev/zero of=/filler bs=1M || rm /filler