image_compressor_pack 0.1.1 → 0.1.3

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 (32) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.travis.yml +6 -3
  4. data/README.md +11 -0
  5. data/Rakefile +23 -1
  6. data/certs/ignisf.pem.asc +51 -0
  7. data/ext/image_compressor_pack/extconf.rb +9 -0
  8. data/lib/image_compressor_pack/dynamically_linked_recipes.yml +6 -0
  9. data/lib/image_compressor_pack/statically_linked_recipes.yml +6 -2
  10. data/lib/image_compressor_pack/version.rb +1 -1
  11. data/ports/patches/jpeg-archive/0001-Add-a-rudimentary-configure-script.patch +1 -1
  12. data/ports/patches/jpeg-archive/0002-Use-our-mozjpeg.patch +1 -1
  13. data/ports/patches/jpeg-archive/0003-Use-cc-instead-of-gcc-by-default.patch +36 -0
  14. data/ports/patches/mozjpeg/0001-Build-static-binaries.patch +1 -1
  15. data/ports/patches/mozjpeg/0002-Fix-x86-64-ABI-conformance-issue-in-SIMD-code-descri.patch +332 -0
  16. data/ports/patches/pngcrush/0001-Add-an-install-task.patch +1 -1
  17. data/ports/patches/pngcrush/0002-Add-a-configure-script.patch +1 -1
  18. data/ports/patches/pngcrush/0003-Use-cc-by-default-instead-of-gcc.patch +36 -0
  19. data/ports/patches/pngcrush/{0003-Produce-a-static-binary.patch → 0004-Produce-a-static-binary.patch} +4 -4
  20. data/ports/patches/pngquant/0001-Work-around-mini-portile-s-configure-invocation.patch +1 -1
  21. data/ports/patches/pngquant/0002-Add-default-LDFLAGS.patch +1 -1
  22. data/ports/patches/pngquant/0003-Disable-libpng-check.patch +1 -1
  23. data/ports/patches/pngquant/0004-Remove-libz-check.patch +1 -1
  24. data/ports/patches/pngquant/0005-Remove-lcms2-check.patch +1 -1
  25. data/ports/patches/pngquant/0006-Do-not-build-static-binary.patch +1 -1
  26. data/ports/patches/pngquant/0007-Use-cc-instead-of-gcc-by-default.patch +27 -0
  27. data/release/x86-linux/Vagrantfile +84 -0
  28. data/release/x86_64-freebsd10/Vagrantfile +86 -0
  29. data/release/x86_64-linux/Vagrantfile +84 -0
  30. data.tar.gz.sig +0 -0
  31. metadata +10 -2
  32. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43e6936c9120b17bfe3c0d4a023c13b3bae530b7
4
- data.tar.gz: edd5b059efe87343a452022a30270b4b64a35cd4
3
+ metadata.gz: 41d51c703869f6e07e06d5511cb0b727ee7f6f0b
4
+ data.tar.gz: e04c08e3d305e66ebd9e972a35860a6311d5b61d
5
5
  SHA512:
6
- metadata.gz: 9de816e7b0ee382ca6b18302d9ffcf262c330ed1d1205062541293746ca46527d2625a96124089cb3a99195608ee13bd95e16c648e84097a48652ac46cd31ad5
7
- data.tar.gz: 8b50f11347528a8a159ec92d61d97fa19ee17d18adaf1059a23f0c0a9baab43716a323ca33a1bd1ea559d613e35ef9894e0ced2a84f3006c2b20e44e10593c2b
6
+ metadata.gz: 8da03caf5543628f0064df3093aa3eb32eae36645a1be0437931f81901bff46254c913cab5fef2406f640e339382be3b4c52bcc98ea7152b1b83a882d129c8ed
7
+ data.tar.gz: 5b8cc83fd4cd80b9aad33d89cb1e3aa35da053edccbf36ffe99bce26c70c6b3832ce14e92c0d49bbc13bcbc0979d204fd059fb85fcfeaf0876aa7ea82cbd80f6
checksums.yaml.gz.sig CHANGED
Binary file
data/.travis.yml CHANGED
@@ -23,17 +23,20 @@ matrix:
23
23
  before_install:
24
24
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then gem update bundler; fi
25
25
  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then sudo gem install bundler; fi
26
+ script:
27
+ - bundle exec rake
28
+ - bundle exec rake binary
26
29
  cache:
27
30
  bundler: true
28
31
  directories:
29
32
  - ports/archives
30
33
  deploy:
31
34
  provider: releases
35
+ skip_cleanup: true
36
+ file_glob: true
37
+ file: $(git ls-files -o pkg | head -1)
32
38
  api_key:
33
39
  secure: lxEv32SRj+E82RJRfmjNDHqjMJqu15sIeAQ283rYxWDkblFiVeZewTNfRqr3/0hgarUaWsr+JK8cuH+YbB5b6LU5sBWCdrmJ8bL9W+Ru803KdGH3J/7S6WaAPUBV0K5PZvz5TKpF8cVkQ2Dz5jpThR8me773yn7iK0nr1Z3Y0ewiFow6JFOODivluRVlQj9HdFMU4ydc/x2aTIGwshlGYyHMS5htqcpA+/dEOrtrNqMCRUPlDcl11HaCZ0uRqD2YjXloIrpBZotjr8pgpJNZ+wvOQxkw9skAmIUjJJ1DEqRkTImqBKou1E6fSc+e6GRYOgmik6AJWCTNpz25pwXiACbIidIRQWLLLTQFJYGnBswE0yO4fdkmeZ8PwQL5SjEWQ4+mL0iGRBx+JrRYpFkCKQH9Lm4UCuKnPxf0/m41odifqW/bNyil4x2H1WKgqS88UR7IhMJAShP0r0X/3duCSrvVe59XnJnKQHjWjqxQYmpkfJ40Y5Wx9Gcp+vYFhceeRF68mE5ZMdZvcxHqlmh7TiIEsPIuqmu49aYF6r+KnsXAIkjiRvdIvNtnpMTGtoHmyk4bO3cCiI2bd29BPRhgljESl5h3iTpitlGnSJk+ofFZyZDq2bvktR5hC+QaJsExoNlIB0xIA47qXtjPn+UaxlZkM8WqfqVVSSCS4m0teZs=
34
- file: "$(git ls-files -o pkg | head -1)"
35
40
  on:
36
- repo: ignisf/image_compressor_pack
37
- branch: master
38
41
  tags: true
39
42
  condition: $TRAVIS_OS_NAME = osx
data/README.md CHANGED
@@ -39,6 +39,17 @@ See https://github.com/toy/image_optim#from-rails for more info on Rails
39
39
  configuration or https://github.com/toy/image_optim#configuration if you are
40
40
  using `image_optim` and `image_compressor_pack` outside of Rails.
41
41
 
42
+ ## Note on the security of this gem
43
+
44
+ The packaged utilities are pretty niche and I wouldn't use them on images from
45
+ untrusted parties. Do so on your own responsibility.
46
+
47
+ The .gem files I produce on trusted systems are signed with the certificate in
48
+ the `certs` directory. There's an OpenPGP signature there, too. It can be used
49
+ to tie the x509 certificate to my OpenPGP web of trust. See
50
+ [this](http://guides.rubygems.org/security/) for more info on verifying gem
51
+ signatures.
52
+
42
53
  ## License
43
54
 
44
55
  The gem is available as open source under the terms of the
data/Rakefile CHANGED
@@ -24,7 +24,7 @@ desc "Build #{Helpers.binary_gem_name} into the pkg directory"
24
24
  task binary: :compile do
25
25
  gemspec = Helpers.binary_gemspec
26
26
  gemspec.extensions.clear
27
- gemspec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem")
27
+ gemspec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") unless ENV['TRAVIS'] == "true"
28
28
 
29
29
  # We don't need most things for the binary
30
30
  gemspec.files = `git ls-files lib`.split("\n")
@@ -58,6 +58,28 @@ begin
58
58
  rescue LoadError
59
59
  end
60
60
 
61
+ namespace :build do
62
+ ['x86_64-linux', 'x86-linux', 'x86_64-freebsd10'].each do |arch|
63
+ desc "build binary gem for #{arch}"
64
+ task arch do
65
+ arch_dir = Pathname(__FILE__).dirname.join("release/#{arch}")
66
+ Dir.chdir(arch_dir) do
67
+ ENV['RUBYLIB'] = nil # https://github.com/mitchellh/vagrant/issues/6158
68
+ sh "vagrant up"
69
+ # sh "vagrant ssh -c 'rm -rf ~/image_compressor_pack'"
70
+ system "vagrant ssh -c 'git clone /image_compressor_pack/.git ~/image_compressor_pack'"
71
+ sh "vagrant ssh -c 'cd ~/image_compressor_pack && bundle install --path vendor/bundle'"
72
+ sh "cat ~/.ssh/gem-private_key.pem | vagrant ssh -c 'cat > ~/.ssh/gem-private_key.pem'"
73
+ sh "vagrant ssh -c 'cd ~/image_compressor_pack && bundle exec rake binary'"
74
+ system "vagrant ssh -c 'shred -vzu ~/.ssh/gem-private_key.pem'"
75
+ system "vagrant ssh -c 'gshred -vzu ~/.ssh/gem-private_key.pem'"
76
+ sh "vagrant ssh -c 'cp ~/image_compressor_pack/pkg/*.gem /vagrant'"
77
+ sh "vagrant destroy"
78
+ end
79
+ end
80
+ end
81
+ end
82
+
61
83
  task build: [:clean, :download]
62
84
 
63
85
  task default: [:compile, :spec]
@@ -0,0 +1,51 @@
1
+ -----BEGIN PGP MESSAGE-----
2
+ Version: GnuPG v2
3
+
4
+ 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
50
+ =4SLJ
51
+ -----END PGP MESSAGE-----
@@ -1,6 +1,15 @@
1
1
  require 'fileutils'
2
2
  require_relative '../../lib/image_compressor_pack/recipes'
3
3
 
4
+ if Gem::Platform.local.os =~ /freebsd/
5
+ unless system 'which gmake 2>&1 > /dev/null'
6
+ fail "image_compressor_pack requires gmake to be installed"
7
+ end
8
+
9
+ `ln -fs #{`which gmake`.chomp} make`
10
+ ENV['PATH'] = "#{File.expand_path '.'}:#{ENV['PATH']}"
11
+ end
12
+
4
13
  root = File.expand_path("../../../", __FILE__)
5
14
 
6
15
  recipes = ImageCompressorPack.recipes
@@ -27,6 +27,9 @@ mozjpeg:
27
27
  files:
28
28
  - :url: https://github.com/mozilla/mozjpeg/releases/download/v3.1/mozjpeg-3.1-release-source.tar.gz
29
29
  :sha256: deedd88342c5da219f0047d9a290cd58eebe1b7a513564fcd8ebc49670077a1f
30
+ patch_files:
31
+ - 0002-Fix-x86-64-ABI-conformance-issue-in-SIMD-code-descri.patch
32
+ configure_options: ['--enable-static', '--disable-shared', '--with-jpeg8']
30
33
  optipng:
31
34
  version: 0.7.6
32
35
  files:
@@ -45,6 +48,7 @@ pngquant:
45
48
  - 0004-Remove-libz-check.patch
46
49
  - 0005-Remove-lcms2-check.patch
47
50
  - 0006-Do-not-build-static-binary.patch
51
+ - 0007-Use-cc-instead-of-gcc-by-default.patch
48
52
  configure_options: []
49
53
  advancecomp:
50
54
  version: 1.20
@@ -75,6 +79,7 @@ pngcrush:
75
79
  patch_files:
76
80
  - 0001-Add-an-install-task.patch
77
81
  - 0002-Add-a-configure-script.patch
82
+ - 0003-Use-cc-by-default-instead-of-gcc.patch
78
83
  jpegoptim:
79
84
  version: 1.4.3
80
85
  files:
@@ -90,4 +95,5 @@ jpeg-archive:
90
95
  patch_files:
91
96
  - 0001-Add-a-rudimentary-configure-script.patch
92
97
  - 0002-Use-our-mozjpeg.patch
98
+ - 0003-Use-cc-instead-of-gcc-by-default.patch
93
99
  configure_options: []
@@ -28,9 +28,10 @@ mozjpeg:
28
28
  files:
29
29
  - :url: https://github.com/mozilla/mozjpeg/releases/download/v3.1/mozjpeg-3.1-release-source.tar.gz
30
30
  :sha256: deedd88342c5da219f0047d9a290cd58eebe1b7a513564fcd8ebc49670077a1f
31
- configure_options: ['--enable-static', '--disable-shared', 'libpng_LIBS=-lpng\ -lz']
31
+ configure_options: ['--enable-static', '--disable-shared', 'libpng_LIBS=-lpng\ -lz', '--with-jpeg8']
32
32
  patch_files:
33
33
  - 0001-Build-static-binaries.patch
34
+ - 0002-Fix-x86-64-ABI-conformance-issue-in-SIMD-code-descri.patch
34
35
  optipng:
35
36
  version: 0.7.6
36
37
  files:
@@ -50,6 +51,7 @@ pngquant:
50
51
  - 0003-Disable-libpng-check.patch
51
52
  - 0004-Remove-libz-check.patch
52
53
  - 0005-Remove-lcms2-check.patch
54
+ - 0007-Use-cc-instead-of-gcc-by-default.patch
53
55
  configure_options: ['--extra-ldflags=-lpng']
54
56
  advancecomp:
55
57
  version: 1.20
@@ -82,7 +84,8 @@ pngcrush:
82
84
  patch_files:
83
85
  - 0001-Add-an-install-task.patch
84
86
  - 0002-Add-a-configure-script.patch
85
- - 0003-Produce-a-static-binary.patch
87
+ - 0003-Use-cc-by-default-instead-of-gcc.patch
88
+ - 0004-Produce-a-static-binary.patch
86
89
  jpegoptim:
87
90
  version: 1.4.3
88
91
  files:
@@ -99,4 +102,5 @@ jpeg-archive:
99
102
  patch_files:
100
103
  - 0001-Add-a-rudimentary-configure-script.patch
101
104
  - 0002-Use-our-mozjpeg.patch
105
+ - 0003-Use-cc-instead-of-gcc-by-default.patch
102
106
  configure_options: ['--ldflags=-static']
@@ -1,3 +1,3 @@
1
1
  module ImageCompressorPack
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  From eec20eb9b5601caf6edeed9355ac225cecc249d0 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Fri, 10 Jun 2016 11:58:28 +0300
4
- Subject: [PATCH 1/2] Add a rudimentary configure script
4
+ Subject: [PATCH 1/3] Add a rudimentary configure script
5
5
 
6
6
  ---
7
7
  Makefile | 3 +++
@@ -1,7 +1,7 @@
1
1
  From 0a577842fc7f44e8b57c1ba8130761e8759626d5 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Fri, 10 Jun 2016 11:59:33 +0300
4
- Subject: [PATCH 2/2] Use our mozjpeg
4
+ Subject: [PATCH 2/3] Use our mozjpeg
5
5
 
6
6
  ---
7
7
  Makefile | 23 +----------------------
@@ -0,0 +1,36 @@
1
+ From 9c5891e0b19451e5f2a244aa2f1ecdca31027095 Mon Sep 17 00:00:00 2001
2
+ From: Petko Bordjukov <bordjukov@gmail.com>
3
+ Date: Tue, 14 Jun 2016 00:03:54 +0300
4
+ Subject: [PATCH 3/3] Use cc instead of gcc by default
5
+
6
+ ---
7
+ Makefile | 2 +-
8
+ src/iqa/Makefile | 2 +-
9
+ 2 files changed, 2 insertions(+), 2 deletions(-)
10
+
11
+ diff --git a/Makefile b/Makefile
12
+ index 2cde65a..04d5b10 100644
13
+ --- a/Makefile
14
+ +++ b/Makefile
15
+ @@ -1,4 +1,4 @@
16
+ -CC ?= gcc
17
+ +CC ?= cc
18
+ CFLAGS += -std=c99 -Wall -O3
19
+ LDFLAGS += -lm
20
+ MAKE ?= make
21
+ diff --git a/src/iqa/Makefile b/src/iqa/Makefile
22
+ index 59be8a3..cbca586 100644
23
+ --- a/src/iqa/Makefile
24
+ +++ b/src/iqa/Makefile
25
+ @@ -11,7 +11,7 @@ SRC= \
26
+ OBJ = $(SRC:.c=.o)
27
+
28
+ INCLUDES = -I./include
29
+ -CC = gcc
30
+ +CC ?= cc
31
+
32
+ ifeq ($(RELEASE),1)
33
+ OUTDIR=./build/release
34
+ --
35
+ 2.8.3
36
+
@@ -1,7 +1,7 @@
1
1
  From 9a12984ba0dde61da211a023c84c04a06a5219e6 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 01:28:09 +0300
4
- Subject: [PATCH] Build static binaries
4
+ Subject: [PATCH 1/2] Build static binaries
5
5
 
6
6
  ---
7
7
  Makefile.am | 1 +
@@ -0,0 +1,332 @@
1
+ From 588337f6e288b1ba42de8262517cc58b81d38c71 Mon Sep 17 00:00:00 2001
2
+ From: Chandler Carruth <chandlerc@gmail.com>
3
+ Date: Tue, 15 Sep 2015 11:57:03 -0700
4
+ Subject: [PATCH 2/2] Fix x86-64 ABI conformance issue in SIMD code
5
+ (descriptions cribbed by DRC from discussion in #20) In the x86-64 ABI, the
6
+ high (unused) DWORD of a 32-bit argument's register is undefined, so it was
7
+ incorrect to use a 64-bit mov instruction to transfer a JDIMENSION argument
8
+ in the 64-bit SSE2 SIMD functions. The code worked thus far only because the
9
+ existing compiler optimizers weren't smart enough to do anything else with
10
+ the register in question, so the upper 32 bits happened to be all zeroes--
11
+ for the past 6 years, on every x86-64 compiler previously known to mankind.
12
+
13
+ The bleeding-edge Clang/LLVM compiler has a smarter optimizer, and
14
+ under certain circumstances, it will attempt to load-combine adjacent
15
+ 32-bit integers from one of the libjpeg structures into a single 64-bit
16
+ integer and pass that 64-bit integer as a 32-bit argument to one of the
17
+ SIMD functions (which is allowed by the ABI, since the upper 32 bits of
18
+ the 32-bit argument's register are undefined.) This caused the
19
+ libjpeg-turbo regression tests to crash.
20
+
21
+ Also enhance the documentation of JDIMENSION to explain that its size
22
+ is significant to the implementation of the SIMD code.
23
+
24
+ Closes #20. Refer also to http://crbug.com/532214.
25
+ ---
26
+ jmorecfg.h | 4 +++-
27
+ simd/jccolext-sse2-64.asm | 4 ++--
28
+ simd/jcgryext-sse2-64.asm | 4 ++--
29
+ simd/jcsample-sse2-64.asm | 12 ++++++------
30
+ simd/jdcolext-sse2-64.asm | 4 ++--
31
+ simd/jdmrgext-sse2-64.asm | 8 ++++----
32
+ simd/jdsample-sse2-64.asm | 8 ++++----
33
+ simd/jidctflt-sse2-64.asm | 2 +-
34
+ simd/jidctfst-sse2-64.asm | 2 +-
35
+ simd/jidctint-sse2-64.asm | 2 +-
36
+ simd/jidctred-sse2-64.asm | 4 ++--
37
+ simd/jquantf-sse2-64.asm | 2 +-
38
+ simd/jquanti-sse2-64.asm | 2 +-
39
+ 13 files changed, 30 insertions(+), 28 deletions(-)
40
+
41
+ diff --git a/jmorecfg.h b/jmorecfg.h
42
+ index 108e7de..d9c35de 100644
43
+ --- a/jmorecfg.h
44
+ +++ b/jmorecfg.h
45
+ @@ -155,7 +155,9 @@ typedef long INT32;
46
+ * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore
47
+ * "unsigned int" is sufficient on all machines. However, if you need to
48
+ * handle larger images and you don't mind deviating from the spec, you
49
+ - * can change this datatype.
50
+ + * can change this datatype. (Note that changing this datatype will
51
+ + * potentially require modifying the SIMD code. The x86-64 SIMD extensions,
52
+ + * in particular, assume a 32-bit JDIMENSION.)
53
+ */
54
+
55
+ typedef unsigned int JDIMENSION;
56
+ diff --git a/simd/jccolext-sse2-64.asm b/simd/jccolext-sse2-64.asm
57
+ index 7bd6d01..7ad4343 100644
58
+ --- a/simd/jccolext-sse2-64.asm
59
+ +++ b/simd/jccolext-sse2-64.asm
60
+ @@ -50,14 +50,14 @@ EXTN(jsimd_rgb_ycc_convert_sse2):
61
+ collect_args
62
+ push rbx
63
+
64
+ - mov rcx, r10
65
+ + mov ecx, r10d
66
+ test rcx,rcx
67
+ jz near .return
68
+
69
+ push rcx
70
+
71
+ mov rsi, r12
72
+ - mov rcx, r13
73
+ + mov ecx, r13d
74
+ mov rdi, JSAMPARRAY [rsi+0*SIZEOF_JSAMPARRAY]
75
+ mov rbx, JSAMPARRAY [rsi+1*SIZEOF_JSAMPARRAY]
76
+ mov rdx, JSAMPARRAY [rsi+2*SIZEOF_JSAMPARRAY]
77
+ diff --git a/simd/jcgryext-sse2-64.asm b/simd/jcgryext-sse2-64.asm
78
+ index 5af02e0..82c0fc8 100644
79
+ --- a/simd/jcgryext-sse2-64.asm
80
+ +++ b/simd/jcgryext-sse2-64.asm
81
+ @@ -50,14 +50,14 @@ EXTN(jsimd_rgb_gray_convert_sse2):
82
+ collect_args
83
+ push rbx
84
+
85
+ - mov rcx, r10
86
+ + mov ecx, r10d
87
+ test rcx,rcx
88
+ jz near .return
89
+
90
+ push rcx
91
+
92
+ mov rsi, r12
93
+ - mov rcx, r13
94
+ + mov ecx, r13d
95
+ mov rdi, JSAMPARRAY [rsi+0*SIZEOF_JSAMPARRAY]
96
+ lea rdi, [rdi+rcx*SIZEOF_JSAMPROW]
97
+
98
+ diff --git a/simd/jcsample-sse2-64.asm b/simd/jcsample-sse2-64.asm
99
+ index f32fb4f..7693285 100644
100
+ --- a/simd/jcsample-sse2-64.asm
101
+ +++ b/simd/jcsample-sse2-64.asm
102
+ @@ -49,11 +49,11 @@ EXTN(jsimd_h2v1_downsample_sse2):
103
+ mov rbp,rsp
104
+ collect_args
105
+
106
+ - mov rcx, r13
107
+ + mov ecx, r13d
108
+ shl rcx,3 ; imul rcx,DCTSIZE (rcx = output_cols)
109
+ jz near .return
110
+
111
+ - mov rdx, r10
112
+ + mov edx, r10d
113
+
114
+ ; -- expand_right_edge
115
+
116
+ @@ -90,7 +90,7 @@ EXTN(jsimd_h2v1_downsample_sse2):
117
+
118
+ ; -- h2v1_downsample
119
+
120
+ - mov rax, r12 ; rowctr
121
+ + mov eax, r12d ; rowctr
122
+ test eax,eax
123
+ jle near .return
124
+
125
+ @@ -193,11 +193,11 @@ EXTN(jsimd_h2v2_downsample_sse2):
126
+ mov rbp,rsp
127
+ collect_args
128
+
129
+ - mov rcx, r13
130
+ + mov ecx, r13d
131
+ shl rcx,3 ; imul rcx,DCTSIZE (rcx = output_cols)
132
+ jz near .return
133
+
134
+ - mov rdx, r10
135
+ + mov edx, r10d
136
+
137
+ ; -- expand_right_edge
138
+
139
+ @@ -234,7 +234,7 @@ EXTN(jsimd_h2v2_downsample_sse2):
140
+
141
+ ; -- h2v2_downsample
142
+
143
+ - mov rax, r12 ; rowctr
144
+ + mov eax, r12d ; rowctr
145
+ test rax,rax
146
+ jle near .return
147
+
148
+ diff --git a/simd/jdcolext-sse2-64.asm b/simd/jdcolext-sse2-64.asm
149
+ index bfd1f35..d356e65 100644
150
+ --- a/simd/jdcolext-sse2-64.asm
151
+ +++ b/simd/jdcolext-sse2-64.asm
152
+ @@ -52,14 +52,14 @@ EXTN(jsimd_ycc_rgb_convert_sse2):
153
+ collect_args
154
+ push rbx
155
+
156
+ - mov rcx, r10 ; num_cols
157
+ + mov ecx, r10d ; num_cols
158
+ test rcx,rcx
159
+ jz near .return
160
+
161
+ push rcx
162
+
163
+ mov rdi, r11
164
+ - mov rcx, r12
165
+ + mov ecx, r12d
166
+ mov rsi, JSAMPARRAY [rdi+0*SIZEOF_JSAMPARRAY]
167
+ mov rbx, JSAMPARRAY [rdi+1*SIZEOF_JSAMPARRAY]
168
+ mov rdx, JSAMPARRAY [rdi+2*SIZEOF_JSAMPARRAY]
169
+ diff --git a/simd/jdmrgext-sse2-64.asm b/simd/jdmrgext-sse2-64.asm
170
+ index ff127b5..989d7f1 100644
171
+ --- a/simd/jdmrgext-sse2-64.asm
172
+ +++ b/simd/jdmrgext-sse2-64.asm
173
+ @@ -52,14 +52,14 @@ EXTN(jsimd_h2v1_merged_upsample_sse2):
174
+ collect_args
175
+ push rbx
176
+
177
+ - mov rcx, r10 ; col
178
+ + mov ecx, r10d ; col
179
+ test rcx,rcx
180
+ jz near .return
181
+
182
+ push rcx
183
+
184
+ mov rdi, r11
185
+ - mov rcx, r12
186
+ + mov ecx, r12d
187
+ mov rsi, JSAMPARRAY [rdi+0*SIZEOF_JSAMPARRAY]
188
+ mov rbx, JSAMPARRAY [rdi+1*SIZEOF_JSAMPARRAY]
189
+ mov rdx, JSAMPARRAY [rdi+2*SIZEOF_JSAMPARRAY]
190
+ @@ -455,10 +455,10 @@ EXTN(jsimd_h2v2_merged_upsample_sse2):
191
+ collect_args
192
+ push rbx
193
+
194
+ - mov rax, r10
195
+ + mov eax, r10d
196
+
197
+ mov rdi, r11
198
+ - mov rcx, r12
199
+ + mov ecx, r12d
200
+ mov rsi, JSAMPARRAY [rdi+0*SIZEOF_JSAMPARRAY]
201
+ mov rbx, JSAMPARRAY [rdi+1*SIZEOF_JSAMPARRAY]
202
+ mov rdx, JSAMPARRAY [rdi+2*SIZEOF_JSAMPARRAY]
203
+ diff --git a/simd/jdsample-sse2-64.asm b/simd/jdsample-sse2-64.asm
204
+ index 335ce2a..2287c00 100644
205
+ --- a/simd/jdsample-sse2-64.asm
206
+ +++ b/simd/jdsample-sse2-64.asm
207
+ @@ -67,7 +67,7 @@ EXTN(jsimd_h2v1_fancy_upsample_sse2):
208
+ mov rbp,rsp
209
+ collect_args
210
+
211
+ - mov rax, r11 ; colctr
212
+ + mov eax, r11d ; colctr
213
+ test rax,rax
214
+ jz near .return
215
+
216
+ @@ -214,7 +214,7 @@ EXTN(jsimd_h2v2_fancy_upsample_sse2):
217
+ collect_args
218
+ push rbx
219
+
220
+ - mov rax, r11 ; colctr
221
+ + mov eax, r11d ; colctr
222
+ test rax,rax
223
+ jz near .return
224
+
225
+ @@ -506,7 +506,7 @@ EXTN(jsimd_h2v1_upsample_sse2):
226
+ mov rbp,rsp
227
+ collect_args
228
+
229
+ - mov rdx, r11
230
+ + mov edx, r11d
231
+ add rdx, byte (2*SIZEOF_XMMWORD)-1
232
+ and rdx, byte -(2*SIZEOF_XMMWORD)
233
+ jz near .return
234
+ @@ -596,7 +596,7 @@ EXTN(jsimd_h2v2_upsample_sse2):
235
+ collect_args
236
+ push rbx
237
+
238
+ - mov rdx, r11
239
+ + mov edx, r11d
240
+ add rdx, byte (2*SIZEOF_XMMWORD)-1
241
+ and rdx, byte -(2*SIZEOF_XMMWORD)
242
+ jz near .return
243
+ diff --git a/simd/jidctflt-sse2-64.asm b/simd/jidctflt-sse2-64.asm
244
+ index 32e4ec2..95bd4dc 100644
245
+ --- a/simd/jidctflt-sse2-64.asm
246
+ +++ b/simd/jidctflt-sse2-64.asm
247
+ @@ -326,7 +326,7 @@ EXTN(jsimd_idct_float_sse2):
248
+ mov rax, [original_rbp]
249
+ lea rsi, [workspace] ; FAST_FLOAT * wsptr
250
+ mov rdi, r12 ; (JSAMPROW *)
251
+ - mov rax, r13
252
+ + mov eax, r13d
253
+ mov rcx, DCTSIZE/4 ; ctr
254
+ .rowloop:
255
+
256
+ diff --git a/simd/jidctfst-sse2-64.asm b/simd/jidctfst-sse2-64.asm
257
+ index 8566952..d507578 100644
258
+ --- a/simd/jidctfst-sse2-64.asm
259
+ +++ b/simd/jidctfst-sse2-64.asm
260
+ @@ -323,7 +323,7 @@ EXTN(jsimd_idct_ifast_sse2):
261
+
262
+ mov rax, [original_rbp]
263
+ mov rdi, r12 ; (JSAMPROW *)
264
+ - mov rax, r13
265
+ + mov eax, r13d
266
+
267
+ ; -- Even part
268
+
269
+ diff --git a/simd/jidctint-sse2-64.asm b/simd/jidctint-sse2-64.asm
270
+ index 32bbfd8..1cc3086 100644
271
+ --- a/simd/jidctint-sse2-64.asm
272
+ +++ b/simd/jidctint-sse2-64.asm
273
+ @@ -515,7 +515,7 @@ EXTN(jsimd_idct_islow_sse2):
274
+
275
+ mov rax, [original_rbp]
276
+ mov rdi, r12 ; (JSAMPROW *)
277
+ - mov rax, r13
278
+ + mov eax, r13d
279
+
280
+ ; -- Even part
281
+
282
+ diff --git a/simd/jidctred-sse2-64.asm b/simd/jidctred-sse2-64.asm
283
+ index dad43d9..02b155a 100644
284
+ --- a/simd/jidctred-sse2-64.asm
285
+ +++ b/simd/jidctred-sse2-64.asm
286
+ @@ -312,7 +312,7 @@ EXTN(jsimd_idct_4x4_sse2):
287
+
288
+ mov rax, [original_rbp]
289
+ mov rdi, r12 ; (JSAMPROW *)
290
+ - mov rax, r13
291
+ + mov eax, r13d
292
+
293
+ ; -- Even part
294
+
295
+ @@ -521,7 +521,7 @@ EXTN(jsimd_idct_2x2_sse2):
296
+ ; ---- Pass 2: process rows, store into output array.
297
+
298
+ mov rdi, r12 ; (JSAMPROW *)
299
+ - mov rax, r13
300
+ + mov eax, r13d
301
+
302
+ ; | input:| result:|
303
+ ; | A0 B0 | |
304
+ diff --git a/simd/jquantf-sse2-64.asm b/simd/jquantf-sse2-64.asm
305
+ index 20e815f..cf7f0d8 100644
306
+ --- a/simd/jquantf-sse2-64.asm
307
+ +++ b/simd/jquantf-sse2-64.asm
308
+ @@ -50,7 +50,7 @@ EXTN(jsimd_convsamp_float_sse2):
309
+ packsswb xmm7,xmm7 ; xmm7 = PB_CENTERJSAMPLE (0x808080..)
310
+
311
+ mov rsi, r10
312
+ - mov rax, r11
313
+ + mov eax, r11d
314
+ mov rdi, r12
315
+ mov rcx, DCTSIZE/2
316
+ .convloop:
317
+ diff --git a/simd/jquanti-sse2-64.asm b/simd/jquanti-sse2-64.asm
318
+ index 50b8dce..b61f4db 100644
319
+ --- a/simd/jquanti-sse2-64.asm
320
+ +++ b/simd/jquanti-sse2-64.asm
321
+ @@ -50,7 +50,7 @@ EXTN(jsimd_convsamp_sse2):
322
+ psllw xmm7,7 ; xmm7={0xFF80 0xFF80 0xFF80 0xFF80 ..}
323
+
324
+ mov rsi, r10
325
+ - mov rax, r11
326
+ + mov eax, r11d
327
+ mov rdi, r12
328
+ mov rcx, DCTSIZE/4
329
+ .convloop:
330
+ --
331
+ 2.8.3
332
+
@@ -1,7 +1,7 @@
1
1
  From 8868eb72ea64fef8193b71c9372373e4aebdd4fd Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Sun, 22 Nov 2015 18:45:07 +0200
4
- Subject: [PATCH 1/3] Add an install task
4
+ Subject: [PATCH 1/4] Add an install task
5
5
 
6
6
  ---
7
7
  Makefile | 6 ++++++
@@ -1,7 +1,7 @@
1
1
  From f5f4dbab2c81d9a3a6e908f9cc9d8c41c9188a71 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Sun, 22 Nov 2015 18:46:05 +0200
4
- Subject: [PATCH 2/3] Add a configure script
4
+ Subject: [PATCH 2/4] Add a configure script
5
5
 
6
6
  ---
7
7
  configure | 47 +++++++++++++++++++++++++++++++++++++++++++++++
@@ -0,0 +1,36 @@
1
+ From a419719212782c73e114848064cb07d48bfebb50 Mon Sep 17 00:00:00 2001
2
+ From: Petko Bordjukov <bordjukov@gmail.com>
3
+ Date: Mon, 13 Jun 2016 23:33:27 +0300
4
+ Subject: [PATCH 3/4] Use cc by default instead of gcc
5
+
6
+ ---
7
+ Makefile | 6 +++---
8
+ 1 file changed, 3 insertions(+), 3 deletions(-)
9
+
10
+ diff --git a/Makefile b/Makefile
11
+ index 0391a49..6f53ade 100644
12
+ --- a/Makefile
13
+ +++ b/Makefile
14
+ @@ -16,8 +16,8 @@
15
+
16
+ DESTDIR=.
17
+
18
+ -CC = gcc
19
+ -LD = gcc
20
+ +CC = cc
21
+ +LD = cc
22
+ RM = rm -f
23
+
24
+ CPPFLAGS = -I.
25
+ @@ -35,7 +35,7 @@ TOOFAR_OK=
26
+ #CFLAGS = -O2
27
+ #CFLAGS = -O2 -fomit-frame-pointer -Wall
28
+ #CFLAGS = -Os -fomit-frame-pointer -Wall
29
+ -CFLAGS = -O3 -funroll-loops -fomit-frame-pointer -Wall -Wshadow
30
+ +CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
31
+ # [note that -Wall is a gcc-specific compilation flag ("all warnings on")]
32
+
33
+ LDFLAGS =
34
+ --
35
+ 2.8.3
36
+
@@ -1,18 +1,18 @@
1
- From 5e45c536b23db916fd14f3290209acbff9059029 Mon Sep 17 00:00:00 2001
1
+ From 7f1e5ded3dd2ef10e5740d2185a168b5701bbc47 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 02:03:46 +0300
4
- Subject: [PATCH 3/3] Produce a static binary
4
+ Subject: [PATCH 4/4] Produce a static binary
5
5
 
6
6
  ---
7
7
  Makefile | 2 +-
8
8
  1 file changed, 1 insertion(+), 1 deletion(-)
9
9
 
10
10
  diff --git a/Makefile b/Makefile
11
- index 0391a49..c008c3e 100644
11
+ index 6f53ade..ac4f3ab 100644
12
12
  --- a/Makefile
13
13
  +++ b/Makefile
14
14
  @@ -38,7 +38,7 @@ TOOFAR_OK=
15
- CFLAGS = -O3 -funroll-loops -fomit-frame-pointer -Wall -Wshadow
15
+ CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
16
16
  # [note that -Wall is a gcc-specific compilation flag ("all warnings on")]
17
17
 
18
18
  -LDFLAGS =
@@ -1,7 +1,7 @@
1
1
  From 2a2d11aa8ebd7942e4ff5e03bcdf77dc1a10462b Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 02:51:12 +0300
4
- Subject: [PATCH 1/6] Work around mini portile's configure invocation
4
+ Subject: [PATCH 1/7] Work around mini portile's configure invocation
5
5
 
6
6
  ---
7
7
  configure | 471 +--------------------------------------------------------
@@ -1,7 +1,7 @@
1
1
  From 0a57a934ba38621c666df40abba6f83cb6e32026 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 02:54:43 +0300
4
- Subject: [PATCH 2/6] Add default LDFLAGS
4
+ Subject: [PATCH 2/7] Add default LDFLAGS
5
5
 
6
6
  ---
7
7
  configure.bash | 1 +
@@ -1,7 +1,7 @@
1
1
  From dad6e24886adbf10959492caf90fbe85572adf6d Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 03:05:23 +0300
4
- Subject: [PATCH 3/6] Disable libpng check
4
+ Subject: [PATCH 3/7] Disable libpng check
5
5
 
6
6
  ---
7
7
  configure.bash | 52 ++--------------------------------------------------
@@ -1,7 +1,7 @@
1
1
  From 0ebf0e9a703606e6a495bb42a43c34e90734b0dd Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 03:07:27 +0300
4
- Subject: [PATCH 4/6] Remove libz check
4
+ Subject: [PATCH 4/7] Remove libz check
5
5
 
6
6
  ---
7
7
  configure.bash | 7 +------
@@ -1,7 +1,7 @@
1
1
  From 28212c119b915202ae3f53f77bd28b68ad481458 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 03:11:07 +0300
4
- Subject: [PATCH 5/6] Remove lcms2 check
4
+ Subject: [PATCH 5/7] Remove lcms2 check
5
5
 
6
6
  ---
7
7
  configure.bash | 17 ++---------------
@@ -1,7 +1,7 @@
1
1
  From f9bd64476161112ed1fb8d76e6069b23c0219ab8 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Thu, 9 Jun 2016 04:45:34 +0300
4
- Subject: [PATCH 6/6] Do not build static binary
4
+ Subject: [PATCH 6/7] Do not build static binary
5
5
 
6
6
  ---
7
7
  configure.bash | 2 +-
@@ -0,0 +1,27 @@
1
+ From 5ff1fc51189b133f243286a66673ec5e008463ea Mon Sep 17 00:00:00 2001
2
+ From: Petko Bordjukov <bordjukov@gmail.com>
3
+ Date: Mon, 13 Jun 2016 23:30:46 +0300
4
+ Subject: [PATCH 7/7] Use cc instead of gcc by default
5
+
6
+ ---
7
+ configure.bash | 4 ++--
8
+ 1 file changed, 2 insertions(+), 2 deletions(-)
9
+
10
+ diff --git a/configure.bash b/configure.bash
11
+ index 25c0e90..dddcc1d 100755
12
+ --- a/configure.bash
13
+ +++ b/configure.bash
14
+ @@ -19,8 +19,8 @@ LDFLAGS="-lpng -lz -llcms2 -lpthread"
15
+ EXTRA_CFLAGS=
16
+ EXTRA_LDFLAGS=
17
+
18
+ -# make gcc default compiler unless CC is already set
19
+ -CC=${CC:-gcc}
20
+ +# make cc default compiler unless CC is already set
21
+ +CC=${CC:-cc}
22
+
23
+ help() {
24
+ printf "%4s %s\n" "" "$1"
25
+ --
26
+ 2.8.3
27
+
@@ -0,0 +1,84 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # All Vagrant configuration is done below. The "2" in Vagrant.configure
5
+ # configures the configuration version (we support older styles for
6
+ # backwards compatibility). Please don't change it unless you know what
7
+ # you're doing.
8
+ Vagrant.configure(2) do |config|
9
+ # The most common configuration options are documented and commented below.
10
+ # For a complete reference, please see the online documentation at
11
+ # https://docs.vagrantup.com.
12
+
13
+ # Every Vagrant development environment requires a box. You can search for
14
+ # boxes at https://atlas.hashicorp.com/search.
15
+ # https://atlas.hashicorp.com/boxcutter/boxes/debian80-i386
16
+ config.vm.box = "ubuntu/trusty32"
17
+
18
+ # Disable automatic box update checking. If you disable this, then
19
+ # boxes will only be checked for updates when the user runs
20
+ # `vagrant box outdated`. This is not recommended.
21
+ # config.vm.box_check_update = false
22
+
23
+ # Create a forwarded port mapping which allows access to a specific port
24
+ # within the machine from a port on the host machine. In the example below,
25
+ # accessing "localhost:8080" will access port 80 on the guest machine.
26
+ # config.vm.network "forwarded_port", guest: 80, host: 8080
27
+
28
+ # Create a private network, which allows host-only access to the machine
29
+ # using a specific IP.
30
+ # config.vm.network "private_network", ip: "192.168.33.10"
31
+
32
+ # Create a public network, which generally matched to bridged network.
33
+ # Bridged networks make the machine appear as another physical device on
34
+ # your network.
35
+ # config.vm.network "public_network"
36
+
37
+ # Share an additional folder to the guest VM. The first argument is
38
+ # the path on the host to the actual folder. The second argument is
39
+ # the path on the guest to mount the folder. And the optional third
40
+ # argument is a set of non-required options.
41
+ config.vm.synced_folder "../..", "/image_compressor_pack"
42
+
43
+ # Provider-specific configuration so you can fine-tune various
44
+ # backing providers for Vagrant. These expose provider-specific options.
45
+ # Example for VirtualBox:
46
+ #
47
+ # config.vm.provider "virtualbox" do |vb|
48
+ # # Display the VirtualBox GUI when booting the machine
49
+ # vb.gui = true
50
+ #
51
+ # # Customize the amount of memory on the VM:
52
+ # vb.memory = "1024"
53
+ # end
54
+ #
55
+ # View the documentation for the provider you are using for more
56
+ # information on available options.
57
+ config.vm.provider :virtualbox do |vb|
58
+ vb.memory = "2048"
59
+ vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
60
+ vb.customize ["modifyvm", :id, "--audio", "none"]
61
+ vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
62
+ end
63
+
64
+ # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
65
+ # such as FTP and Heroku are also available. See the documentation at
66
+ # https://docs.vagrantup.com/v2/push/atlas.html for more information.
67
+ # config.push.define "atlas" do |push|
68
+ # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
69
+ # end
70
+
71
+ # Enable provisioning with a shell script. Additional provisioners such as
72
+ # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
73
+ # documentation for more information about their specific syntax and use.
74
+ config.vm.provision "shell", inline: <<-SHELL
75
+ sudo apt-get update
76
+ sudo apt-get install -y software-properties-common
77
+ sudo apt-add-repository ppa:brightbox/ruby-ng
78
+ sudo apt-get update
79
+ sudo apt-get dist-upgrade -y
80
+ sudo apt-get install -y build-essential git ruby-switch ruby2.3 ruby2.3-dev
81
+ sudo ruby-switch --set ruby2.3
82
+ sudo gem install bundler
83
+ SHELL
84
+ end
@@ -0,0 +1,86 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # All Vagrant configuration is done below. The "2" in Vagrant.configure
5
+ # configures the configuration version (we support older styles for
6
+ # backwards compatibility). Please don't change it unless you know what
7
+ # you're doing.
8
+ Vagrant.configure(2) do |config|
9
+ # The most common configuration options are documented and commented below.
10
+ # For a complete reference, please see the online documentation at
11
+ # https://docs.vagrantup.com.
12
+
13
+ # Every Vagrant development environment requires a box. You can search for
14
+ # boxes at https://atlas.hashicorp.com/search.
15
+ config.vm.box = "freebsd/FreeBSD-10.3-RELEASE"
16
+
17
+ # Disable automatic box update checking. If you disable this, then
18
+ # boxes will only be checked for updates when the user runs
19
+ # `vagrant box outdated`. This is not recommended.
20
+ # config.vm.box_check_update = false
21
+
22
+ # Create a forwarded port mapping which allows access to a specific port
23
+ # within the machine from a port on the host machine. In the example below,
24
+ # accessing "localhost:8080" will access port 80 on the guest machine.
25
+ # config.vm.network "forwarded_port", guest: 80, host: 8080
26
+
27
+ # Create a private network, which allows host-only access to the machine
28
+ # using a specific IP.
29
+ # config.vm.network "private_network", ip: "192.168.33.10"
30
+ config.vm.network "private_network", ip: "192.168.33.10"
31
+
32
+ # Create a public network, which generally matched to bridged network.
33
+ # Bridged networks make the machine appear as another physical device on
34
+ # your network.
35
+ # config.vm.network "public_network"
36
+
37
+ # Share an additional folder to the guest VM. The first argument is
38
+ # the path on the host to the actual folder. The second argument is
39
+ # the path on the guest to mount the folder. And the optional third
40
+ # argument is a set of non-required options.
41
+ config.vm.synced_folder ".", "/vagrant", nfs: true
42
+ config.vm.synced_folder "../..", "/image_compressor_pack", nfs: true
43
+
44
+
45
+ # Provider-specific configuration so you can fine-tune various
46
+ # backing providers for Vagrant. These expose provider-specific options.
47
+ # Example for VirtualBox:
48
+ #
49
+ # config.vm.provider "virtualbox" do |vb|
50
+ # # Display the VirtualBox GUI when booting the machine
51
+ # vb.gui = true
52
+ #
53
+ # # Customize the amount of memory on the VM:
54
+ # vb.memory = "1024"
55
+ # end
56
+ #
57
+ # View the documentation for the provider you are using for more
58
+ # information on available options.
59
+ # Various settings as suggested by the FreeBSD community
60
+ config.ssh.shell = "sh"
61
+ config.vm.base_mac = "080030D25D61"
62
+ config.vm.provider :virtualbox do |vb|
63
+ vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
64
+ vb.customize ["modifyvm", :id, "--audio", "none"]
65
+ vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
66
+ vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
67
+ end
68
+
69
+ # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
70
+ # such as FTP and Heroku are also available. See the documentation at
71
+ # https://docs.vagrantup.com/v2/push/atlas.html for more information.
72
+ # config.push.define "atlas" do |push|
73
+ # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
74
+ # end
75
+
76
+ # Enable provisioning with a shell script. Additional provisioners such as
77
+ # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
78
+ # documentation for more information about their specific syntax and use.
79
+ # config.vm.provision "shell", inline: <<-SHELL
80
+ # sudo apt-get update
81
+ # sudo apt-get install -y apache2
82
+ # SHELL
83
+ config.vm.provision "shell", inline: <<-SHELL
84
+ pkg install -y bash gmake ruby rubygem-bundler git coreutils
85
+ SHELL
86
+ end
@@ -0,0 +1,84 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # All Vagrant configuration is done below. The "2" in Vagrant.configure
5
+ # configures the configuration version (we support older styles for
6
+ # backwards compatibility). Please don't change it unless you know what
7
+ # you're doing.
8
+ Vagrant.configure(2) do |config|
9
+ # The most common configuration options are documented and commented below.
10
+ # For a complete reference, please see the online documentation at
11
+ # https://docs.vagrantup.com.
12
+
13
+ # Every Vagrant development environment requires a box. You can search for
14
+ # boxes at https://atlas.hashicorp.com/search.
15
+ # https://atlas.hashicorp.com/quarkslab/boxes/debian-8.0-amd64
16
+ config.vm.box = "ubuntu/trusty64"
17
+
18
+ # Disable automatic box update checking. If you disable this, then
19
+ # boxes will only be checked for updates when the user runs
20
+ # `vagrant box outdated`. This is not recommended.
21
+ # config.vm.box_check_update = false
22
+
23
+ # Create a forwarded port mapping which allows access to a specific port
24
+ # within the machine from a port on the host machine. In the example below,
25
+ # accessing "localhost:8080" will access port 80 on the guest machine.
26
+ # config.vm.network "forwarded_port", guest: 80, host: 8080
27
+
28
+ # Create a private network, which allows host-only access to the machine
29
+ # using a specific IP.
30
+ # config.vm.network "private_network", ip: "192.168.33.10"
31
+
32
+ # Create a public network, which generally matched to bridged network.
33
+ # Bridged networks make the machine appear as another physical device on
34
+ # your network.
35
+ # config.vm.network "public_network"
36
+
37
+ # Share an additional folder to the guest VM. The first argument is
38
+ # the path on the host to the actual folder. The second argument is
39
+ # the path on the guest to mount the folder. And the optional third
40
+ # argument is a set of non-required options.
41
+ config.vm.synced_folder "../..", "/image_compressor_pack"
42
+
43
+ # Provider-specific configuration so you can fine-tune various
44
+ # backing providers for Vagrant. These expose provider-specific options.
45
+ # Example for VirtualBox:
46
+ #
47
+ # config.vm.provider "virtualbox" do |vb|
48
+ # # Display the VirtualBox GUI when booting the machine
49
+ # vb.gui = true
50
+ #
51
+ # # Customize the amount of memory on the VM:
52
+ # vb.memory = "1024"
53
+ # end
54
+ #
55
+ # View the documentation for the provider you are using for more
56
+ # information on available options.
57
+ config.vm.provider :virtualbox do |vb|
58
+ vb.memory = "2048"
59
+ vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
60
+ vb.customize ["modifyvm", :id, "--audio", "none"]
61
+ vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
62
+ end
63
+
64
+ # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
65
+ # such as FTP and Heroku are also available. See the documentation at
66
+ # https://docs.vagrantup.com/v2/push/atlas.html for more information.
67
+ # config.push.define "atlas" do |push|
68
+ # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
69
+ # end
70
+
71
+ # Enable provisioning with a shell script. Additional provisioners such as
72
+ # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
73
+ # documentation for more information about their specific syntax and use.
74
+ config.vm.provision "shell", inline: <<-SHELL
75
+ sudo apt-get update
76
+ sudo apt-get install -y software-properties-common
77
+ sudo apt-add-repository ppa:brightbox/ruby-ng
78
+ sudo apt-get update
79
+ sudo apt-get dist-upgrade -y
80
+ sudo apt-get install -y build-essential git ruby-switch ruby2.3 ruby2.3-dev
81
+ sudo ruby-switch --set ruby2.3
82
+ sudo gem install bundler
83
+ SHELL
84
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_compressor_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Petko Bordjukov
@@ -133,6 +133,7 @@ files:
133
133
  - bin/console
134
134
  - bin/setup
135
135
  - certs/ignisf.pem
136
+ - certs/ignisf.pem.asc
136
137
  - ext/image_compressor_pack/extconf.rb
137
138
  - image_compressor_pack.gemspec
138
139
  - lib/image_compressor_pack.rb
@@ -160,19 +161,26 @@ files:
160
161
  - ports/patches/jhead/0005-Produce-a-static-binary.patch
161
162
  - ports/patches/jpeg-archive/0001-Add-a-rudimentary-configure-script.patch
162
163
  - ports/patches/jpeg-archive/0002-Use-our-mozjpeg.patch
164
+ - ports/patches/jpeg-archive/0003-Use-cc-instead-of-gcc-by-default.patch
163
165
  - ports/patches/jpegoptim/0001-Link-lm-after-ljpeg.patch
164
166
  - ports/patches/libpng/0001-Do-not-build-binary-utilities.patch
165
167
  - ports/patches/mozjpeg/0001-Build-static-binaries.patch
168
+ - ports/patches/mozjpeg/0002-Fix-x86-64-ABI-conformance-issue-in-SIMD-code-descri.patch
166
169
  - ports/patches/optipng/0001-Allow-passing-LDFLAGS-as-configure-arg.patch
167
170
  - ports/patches/pngcrush/0001-Add-an-install-task.patch
168
171
  - ports/patches/pngcrush/0002-Add-a-configure-script.patch
169
- - ports/patches/pngcrush/0003-Produce-a-static-binary.patch
172
+ - ports/patches/pngcrush/0003-Use-cc-by-default-instead-of-gcc.patch
173
+ - ports/patches/pngcrush/0004-Produce-a-static-binary.patch
170
174
  - ports/patches/pngquant/0001-Work-around-mini-portile-s-configure-invocation.patch
171
175
  - ports/patches/pngquant/0002-Add-default-LDFLAGS.patch
172
176
  - ports/patches/pngquant/0003-Disable-libpng-check.patch
173
177
  - ports/patches/pngquant/0004-Remove-libz-check.patch
174
178
  - ports/patches/pngquant/0005-Remove-lcms2-check.patch
175
179
  - ports/patches/pngquant/0006-Do-not-build-static-binary.patch
180
+ - ports/patches/pngquant/0007-Use-cc-instead-of-gcc-by-default.patch
181
+ - release/x86-linux/Vagrantfile
182
+ - release/x86_64-freebsd10/Vagrantfile
183
+ - release/x86_64-linux/Vagrantfile
176
184
  homepage: https://github.com/ignisf/image_compressor_pack
177
185
  licenses:
178
186
  - MIT
metadata.gz.sig CHANGED
Binary file