cairo 1.16.1 → 1.16.6

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: 1c0295dcbda17d35f093e4b3f701e7b01adc508e6fc423474064e732dadc496c
4
- data.tar.gz: f616e14bac09b9603fcdca5a4f3e495a37e63f7950db7dae5ff13a4f3f71621e
3
+ metadata.gz: c15e8af590215c88e266c06bdbc88bd56fa67447150014354e46f04aefd88ad6
4
+ data.tar.gz: 4cd483495ef9499f407826907ef021973794af9d44a9072e594ac613ec64574e
5
5
  SHA512:
6
- metadata.gz: 925042cfc8150d35aa49a495c92cae180748a286d96a78f5b9341921a6404eea61b3f8a2be5ac9142b70d00d87a501c0ae6a871a01ccf7c75f9c3cc20433b6fb
7
- data.tar.gz: 4d58be5e2c897efe578a4ccd10206b3fd0441d79c0fee4e9878a5d8387f2852a08137438b94e61c886538f99fdb9e1f97425b0643c87ce1160d165daf20cd420
6
+ metadata.gz: 21bc8f32edabb79ab6c5c397292ec31a465893ba7a7d2702315fd50eadecdc489c437f21c7f4c238a8c968ebe121ea5386b6ed1470334b466727b568b417060a
7
+ data.tar.gz: 5dfcb99bfa8c74626d0162251c13ac4cfa331b11e5adf16a4b76b3236fd04d5070e592378d63aeb9e8c472dac1e4bd443f3bf34ba916f7204e9449720670f7de
data/NEWS CHANGED
@@ -1,3 +1,101 @@
1
+ Release 1.16.6 (2020-07-23) Sutou Kouhei <kou@cozmixng.org>
2
+ ============================================================
3
+
4
+ Improvements
5
+ ------------
6
+
7
+ * Specified GPL 2.0 or later explicitly in gemspec.
8
+ [GitHub#62][Reported by Gabriel Mazetto]
9
+
10
+ * Added more metadata to gem.
11
+ [GitHub#63][Patch by Gabriel Mazetto]
12
+
13
+ Fixes
14
+ -----
15
+
16
+ * Windows: Fixed a link error.
17
+ [GitHub#ruby-gnome/ruby-gnome#1402][Reported by dsisnero]
18
+
19
+ Thanks
20
+ ------
21
+
22
+ * Gabriel Mazetto
23
+
24
+ * dsisnero
25
+
26
+ Release 1.16.5 (2020-02-03) Sutou Kouhei <kou@cozmixng.org>
27
+ ============================================================
28
+
29
+ Improvements
30
+ ------------
31
+
32
+ * Added Cairo::Context#raw_address for integration with other
33
+ libraries.
34
+ [GitHub#59][Reported by kojix2]
35
+
36
+ Fixes
37
+ -----
38
+
39
+ * Changed to use only ASCII for color name.
40
+ [GitHub#57][Reported by spoolkitamura]
41
+
42
+ * Fixed the number of arguments of the following methods:
43
+
44
+ * Cairo::Surface#copy_page
45
+
46
+ * Cairo::Surface#show_page
47
+
48
+ Thanks
49
+ ------
50
+
51
+ * spoolkitamura
52
+
53
+ * kojix2
54
+
55
+ Release 1.16.4 (2019-03-09) Kouhei Sutou <kou@cozmixng.org>
56
+ ============================================================
57
+
58
+ Fixes
59
+ -----
60
+
61
+ * Removed Skia related code entirely.
62
+
63
+ Release 1.16.3 (2019-03-09) Kouhei Sutou <kou@cozmixng.org>
64
+ ============================================================
65
+
66
+ Improvements
67
+ ------------
68
+
69
+ * Improved Cairo::Poinst#distance performance.
70
+ [GitHub#53][Patch by scivola]
71
+
72
+ * Added support for building with cairo and GLib 2.60 installed by
73
+ Homebrew.
74
+
75
+ * Updated colors. There are some backward incompatibility. Sorry.
76
+
77
+ Fixes
78
+ -----
79
+
80
+ * Fixed Cairo::Color::RGB#to_s.
81
+ [GitHub#55][Patch by spoolkitamura]
82
+
83
+ Thanks
84
+ ------
85
+
86
+ * scivola
87
+
88
+ * spoolkitamura.
89
+
90
+ Release 1.16.2 (2018-10-31) Kouhei Sutou <kou@cozmixng.org>
91
+ ============================================================
92
+
93
+ Improvements
94
+ ------------
95
+
96
+ * Stopped to provide fat gem for Windows. Windows users should use
97
+ MSYS2 packages.
98
+
1
99
  Release 1.16.1 (2018-10-31) Kouhei Sutou <kou@cozmixng.org>
2
100
  ============================================================
3
101
 
data/Rakefile CHANGED
@@ -1,15 +1,7 @@
1
1
  # -*- coding: utf-8; mode: ruby -*-
2
2
 
3
- require "English"
4
-
5
- require "find"
6
- require "fileutils"
7
- require "open-uri"
8
3
  require "rubygems"
9
- require "rubygems/package_task"
10
- require "yard"
11
4
  require "bundler/gem_helper"
12
- require "rake/extensiontask"
13
5
  require "packnga"
14
6
 
15
7
  base_dir = File.join(File.dirname(__FILE__))
@@ -24,10 +16,6 @@ helper = Bundler::GemHelper.new(base_dir)
24
16
  helper.install
25
17
  spec = helper.gemspec
26
18
 
27
- Gem::PackageTask.new(spec) do |pkg|
28
- pkg.need_tar_gz = true
29
- end
30
-
31
19
  Packnga::DocumentTask.new(spec) do |task|
32
20
  task.original_language = "en"
33
21
  task.translate_languages = ["ja"]
@@ -36,521 +24,8 @@ end
36
24
  Packnga::ReleaseTask.new(spec) do |task|
37
25
  end
38
26
 
39
- module RCairoBuild
40
- class << self
41
- def for_64bit?
42
- ENV["RCAIRO_WINDOWS_64"] == "yes"
43
- end
44
- end
45
- end
46
-
47
- binary_dir = File.join("vendor", "local")
48
- Rake::ExtensionTask.new("cairo", spec) do |ext|
49
- if RCairoBuild.for_64bit?
50
- ext.cross_platform = ["x64-mingw32"]
51
- else
52
- ext.cross_platform = ["x86-mingw32"]
53
- end
54
- ext.cross_compile = true
55
- ext.cross_compiling do |_spec|
56
- if /mingw|mswin/ =~ _spec.platform.to_s
57
- _spec.metadata.delete("msys2_mingw_dependencies")
58
-
59
- binary_files = []
60
- Find.find(binary_dir) do |name|
61
- next unless File.file?(name)
62
- next if /\.zip\z/i =~ name
63
- binary_files << name
64
- end
65
- _spec.files += binary_files
66
-
67
- stage_path = "#{ext.tmp_dir}/#{_spec.platform}/stage"
68
- binary_files.each do |binary_file|
69
- stage_binary_file = "#{stage_path}/#{binary_file}"
70
- stage_binary_dir = File.dirname(stage_binary_file)
71
- directory stage_binary_dir
72
- file stage_binary_file => [stage_binary_dir, binary_file] do
73
- cp(binary_file, stage_binary_file)
74
- end
75
- end
76
- end
77
- end
78
- end
79
-
80
- class Package < Struct.new(:name,
81
- :label,
82
- :version,
83
- :compression_method,
84
- :download_site,
85
- :download_base_url,
86
- :windows)
87
- def initialize(parameters)
88
- super()
89
- parameters.each do |key, value|
90
- __send__("#{key}=", value)
91
- end
92
- end
93
-
94
- def label
95
- super || name
96
- end
97
-
98
- def base_name
99
- "#{name}-#{version}"
100
- end
101
-
102
- def compression_method
103
- super || "xz"
104
- end
105
-
106
- def archive_path
107
- "#{base_name}.tar.#{compression_method}"
108
- end
109
-
110
- def archive_url
111
- "#{download_base_url}/#{archive_path}"
112
- end
113
-
114
- def download_base_url
115
- super || download_site_base_url
116
- end
117
-
118
- def download_site_base_url
119
- case download_site
120
- when :cairo
121
- base_url = "https://cairographics.org/releases"
122
- when :cairo_snapshots
123
- base_url = "https://cairographics.org/snapshots"
124
- when :gnome
125
- base_url = "http://ftp.gnome.org/pub/gnome/sources"
126
- release_series = version.gsub(/\A(\d+\.\d+).+\z/, '\1')
127
- base_url << "/#{name}/#{release_series}"
128
- else
129
- base_url = nil
130
- end
131
- base_url
132
- end
133
-
134
- def windows
135
- Windows.new(super || {})
136
- end
137
-
138
- class Windows < Struct.new(:builder,
139
- :build_host,
140
- :configure_args,
141
- :built_file,
142
- :patches,
143
- :need_autoreconf)
144
- def initialize(parameters)
145
- super()
146
- parameters.each do |key, value|
147
- __send__("#{key}=", value)
148
- end
149
- end
150
-
151
- def build_host
152
- if RCairoBuild.for_64bit?
153
- "x86_64-w64-mingw32"
154
- else
155
- "i686-w64-mingw32"
156
- end
157
- end
158
-
159
- def configure_args
160
- super || []
161
- end
162
-
163
- def patches
164
- super || []
165
- end
166
-
167
- def need_autoreconf?
168
- need_autoreconf
169
- end
170
- end
171
- end
172
-
173
- class WindowsTask
174
- include Rake::DSL
175
-
176
- def initialize(spec, base_dir=".")
177
- @spec = spec
178
- @base_dir = Pathname.new(base_dir).expand_path
179
- yield(self)
180
- end
181
-
182
- def define
183
- define_download_task
184
- end
185
-
186
- def packages=(packages)
187
- @packages = packages.collect do |parameters|
188
- Package.new(parameters)
189
- end
190
- end
191
-
192
- private
193
- def define_download_task
194
- define_gcc_task
195
- define_source_download_task
196
- define_build_task
197
- end
198
-
199
- def define_gcc_task
200
- namespace :windows do
201
- namespace :gcc do
202
- namespace :dll do
203
- binary_path = install_dir + "bin"
204
- directory binary_path.to_s
205
- desc "Bundle GCC related DLLs"
206
- task :bundle => binary_path do
207
- dll_names = [
208
- "libstdc++-6.dll",
209
- "libwinpthread-1.dll",
210
- "libgcc_s_sjlj-1.dll",
211
- "libgcc_s_seh-1.dll",
212
- ]
213
- dll_names.each do |dll_name|
214
- destination_path = binary_path + dll_name
215
- dll_path = absolete_gcc_dll_path(dll_name)
216
- unless File.exist?(dll_path)
217
- puts("#{dll_name} doesn't exist.")
218
- next
219
- end
220
- cp(dll_path, destination_path)
221
- chmod(0755, destination_path)
222
- end
223
- end
224
- end
225
- end
226
- end
227
- end
228
-
229
- def absolete_gcc_dll_path(dll_name)
230
- build_host = @packages.first.windows.build_host
231
- `#{build_host}-gcc -print-file-name=#{dll_name}`.strip
232
- end
233
-
234
- def define_source_download_task
235
- namespace :source do
236
- tasks = []
237
- @packages.each do |package|
238
- namespace package.name do
239
- archive_path = downloaded_archive_path(package)
240
- file archive_path.to_s do
241
- mkdir_p(archive_path.dirname.to_s)
242
- download(package, archive_path)
243
- end
244
-
245
- desc "Download #{package.name} source"
246
- task :download => archive_path.to_s
247
- tasks << join_task_name(Rake.application.current_scope, "download")
248
- end
249
- end
250
- desc "Download sources"
251
- task :download => tasks
252
- end
253
- end
254
-
255
- def download(package, archive_path)
256
- rake_output_message "Downloading... #{package.archive_url}"
257
- open(package.archive_url) do |downloaded_archive|
258
- begin
259
- archive_path.open("wb") do |archive_file|
260
- buffer = ""
261
- while downloaded_archive.read(4096, buffer)
262
- archive_file.print(buffer)
263
- end
264
- end
265
- rescue Exception
266
- rm_rf(archive_path.to_s)
267
- raise
268
- end
269
- end
270
- end
271
-
272
- def define_build_task
273
- namespace :windows do
274
- tasks = []
275
- @packages.each do |package|
276
- namespace package.name do
277
- built_file = install_dir + package.windows.built_file
278
- file built_file.to_s do
279
- Rake::Task["source:#{package.name}:download"].invoke
280
- build(package)
281
- end
282
-
283
- desc "Build #{package.label} package"
284
- task :build => built_file.to_s
285
- tasks << join_task_name(Rake.application.current_scope, "build")
286
- end
287
- end
288
- desc "Build packages"
289
- task :build => ["windows:gcc:dll:bundle"] + tasks
290
- end
291
- end
292
-
293
- def join_task_name(current_scope, task_name)
294
- if Rake.const_defined?(:Scope)
295
- current_scope.path_with_task_name(task_name)
296
- else
297
- (current_scope + [task_name]).join(":")
298
- end
299
- end
300
-
301
- def build(package)
302
- ENV["PATH"] = ["#{install_dir}/bin", ENV["PATH"]].join(File::PATH_SEPARATOR)
303
- ENV["PKG_CONFIG_LIBDIR"] = "#{install_dir}/lib/pkgconfig"
304
- ENV["PKG_CONFIG_PATH"] = [
305
- ruby_glib2_pkg_config_path,
306
- ].join(":")
307
-
308
- package_build_dir = build_dir + package.name
309
- rm_rf(package_build_dir.to_s)
310
- mkdir_p(package_build_dir.to_s)
311
-
312
- archive_path = downloaded_archive_path(package).expand_path
313
-
314
- Dir.chdir(package_build_dir.to_s) do
315
- sh("tar", "xf", archive_path.to_s)
316
- Dir.chdir(package.base_name.to_s) do
317
- package.windows.patches.each do |patch|
318
- sh("patch", "-p1", "--input", (patches_dir + patch).to_s)
319
- end
320
- sh("autoreconf", "--install") if package.windows.need_autoreconf?
321
- custom_builder = package.windows.builder
322
- if custom_builder
323
- custom_builder.build(package, install_dir)
324
- else
325
- build_with_gnu_build_system(package)
326
- end
327
- package_license_dir = license_dir + package.name
328
- package_license_files = Dir.glob("{README*,AUTHORS,COPYING*}")
329
- mkdir_p(package_license_dir.to_s)
330
- cp(package_license_files, package_license_dir.to_s)
331
- end
332
- end
333
- end
334
-
335
- def build_with_gnu_build_system(package)
336
- configure_args = [
337
- "CPPFLAGS=#{cppflags(package)}",
338
- "LDFLAGS=#{ldflags(package)}",
339
- "--prefix=#{install_dir}",
340
- "--host=#{package.windows.build_host}",
341
- ]
342
- configure_args += package.windows.configure_args
343
- sh("./configure", *configure_args)
344
- ENV["GREP_OPTIONS"] = "--text"
345
- sh("nice", "make", *build_make_args(package))
346
- sh("nice", "make", "install", *install_make_args(package))
347
- end
348
-
349
- def cppflags(package)
350
- include_paths = [
351
- install_dir + "include",
352
- ]
353
- flags = include_paths.collect do |path|
354
- "-I#{path}"
355
- end
356
- flags.join(" ")
357
- end
358
-
359
- def ldflags(package)
360
- library_paths = [
361
- install_dir + "lib",
362
- ]
363
- flags = library_paths.collect do |path|
364
- "-L#{path}"
365
- end
366
- flags.join(" ")
367
- end
368
-
369
- def build_make_args(package)
370
- args = []
371
- make_n_jobs = ENV["MAKE_N_JOBS"]
372
- args << "-j#{make_n_jobs}" if make_n_jobs
373
- args
374
- end
375
-
376
- def install_make_args(package)
377
- []
378
- end
379
-
380
- def tmp_dir
381
- @base_dir + "tmp"
382
- end
383
-
384
- def download_dir
385
- tmp_dir + "download"
386
- end
387
-
388
- def build_dir
389
- tmp_dir + "build"
390
- end
391
-
392
- def install_dir
393
- @base_dir + "vendor" + "local"
394
- end
395
-
396
- def license_dir
397
- install_dir + "share" + "license"
398
- end
399
-
400
- def downloaded_archive_path(package)
401
- download_dir + package.archive_path
402
- end
403
-
404
- def patches_dir
405
- @base_dir + "patches"
406
- end
407
-
408
- def ruby_gnome2_dir
409
- @base_dir.parent + "ruby-gnome2"
410
- end
411
-
412
- def ruby_glib2_pkg_config_path
413
- ruby_gnome2_dir + "glib2/vendor/local/lib/pkgconfig"
414
- end
415
- end
416
-
417
- class ZlibBuilder
418
- include Rake::DSL
419
-
420
- def build(package, install_dir)
421
- version_for_path = package.version.gsub(".", "")
422
- dll_name = "zlib#{version_for_path}.dll"
423
- sh("make",
424
- "PREFIX=#{package.windows.build_host}-",
425
- "SHAREDLIB=#{dll_name}",
426
- "-f",
427
- "win32/Makefile.gcc")
428
- include_path = install_dir + "include"
429
- library_path = install_dir + "lib"
430
- binary_path = install_dir + "bin"
431
- sh("make",
432
- "INCLUDE_PATH=#{include_path}",
433
- "LIBRARY_PATH=#{library_path}",
434
- "BINARY_PATH=#{binary_path}",
435
- "SHARED_MODE=1",
436
- "SHAREDLIB=#{dll_name}",
437
- "-f",
438
- "win32/Makefile.gcc",
439
- "install")
440
- end
441
- end
442
-
443
- windows_task = WindowsTask.new(spec) do |task|
444
- zlib_version = "1.2.11"
445
- libpng_version = "1.6.35"
446
- freetype_version = "2.9.1"
447
- task.packages = [
448
- {
449
- # We should use the same version as Ruby Installer.
450
- :name => "zlib",
451
- :version => zlib_version,
452
- :download_base_url => "https://downloads.sourceforge.net/project/libpng/zlib/#{zlib_version}",
453
- :compression_method => "gz",
454
- :windows => {
455
- :builder => ZlibBuilder.new,
456
- :built_file => "bin/zlib#{zlib_version.gsub(".", "")}.dll",
457
- },
458
- },
459
- {
460
- :name => "libpng",
461
- :version => libpng_version,
462
- :download_base_url => "https://downloads.sourceforge.net/project/libpng/libpng16/#{libpng_version}",
463
- :windows => {
464
- :built_file => "bin/libpng16-16.dll",
465
- },
466
- },
467
- {
468
- :name => "freetype",
469
- :version => freetype_version,
470
- :download_base_url => "https://downloads.sourceforge.net/project/freetype/freetype2/#{freetype_version}",
471
- :compression_method => "bz2",
472
- :windows => {
473
- :built_file => "bin/libfreetype-7.dll",
474
- },
475
- },
476
- {
477
- :name => "libxml2",
478
- :version => "2.9.8",
479
- :download_base_url => "ftp://xmlsoft.org/libxml2",
480
- :compression_method => "gz",
481
- :windows => {
482
- :built_file => "bin/libxml2-2.dll",
483
- :configure_args => [
484
- "--without-python",
485
- ],
486
- },
487
- },
488
- {
489
- :name => "fontconfig",
490
- :version => "2.13.0",
491
- :download_base_url => "https://www.freedesktop.org/software/fontconfig/release",
492
- :compression_method => "bz2",
493
- :windows => {
494
- :built_file => "bin/libfontconfig-1.dll",
495
- :configure_args => [
496
- "--enable-libxml2",
497
- "--disable-docs",
498
- ],
499
- },
500
- },
501
- {
502
- :name => "pixman",
503
- :version => "0.34.0",
504
- :download_site => :cairo,
505
- :compression_method => "gz",
506
- :windows => {
507
- :built_file => "bin/libpixman-1-0.dll",
508
- },
509
- },
510
- {
511
- :name => "cairo",
512
- :version => "1.16.0",
513
- :download_site => :cairo,
514
- :windows => {
515
- :built_file => "bin/libcairo-2.dll",
516
- :configure_args => [
517
- "--enable-gobject",
518
- ],
519
- :patches => [
520
- "cairo-1.15.4-99054-fix-win32-backend-assertion-failure.diff"
521
- ],
522
- :need_autoreconf => true,
523
- },
524
- },
525
- ]
526
- end
527
- windows_task.define
528
-
529
- namespace :vm do
530
- namespace :windows do
531
- architectures = ["32", "64"]
532
- build_tasks = []
533
-
534
- namespace :build do
535
- architectures.each do |architecture|
536
- desc "Build all packages for Windows #{architecture}"
537
- task_name = "win#{architecture}"
538
- build_tasks << "vm:windows:build:#{task_name}"
539
- task task_name do
540
- cd("build") do
541
- sh("vagrant", "destroy", "--force", task_name)
542
- sh("vagrant", "up", task_name)
543
- end
544
- end
545
- end
546
- end
547
-
548
- desc "Build all packages for Windows"
549
- task :build => build_tasks
550
- end
551
- end
552
-
553
27
  # for releasing
28
+ desc "Release to cairographics.org"
554
29
  task :dist do
555
30
  sh "./dist.sh", spec.version.to_s
556
31
  end
@@ -624,7 +99,6 @@ langs.each do |lang,|
624
99
  lang_rcairo_doc_dir = File.join(rcairo_doc_dir, lang)
625
100
  cp Dir[File.join(lang_rcairo_doc_dir, "*.rd")], lang_doc_dir
626
101
  ruby File.join(rcairo_doc_dir, "update-html.rb"), lang_doc_dir
627
- ruby File.join(rcairo_doc_dir, "update-html.rb"), lang_doc_dir
628
102
  rm Dir[File.join(lang_doc_dir, "*.{rd,rdc,rbl}")]
629
103
  end
630
104
  end
@@ -633,16 +107,6 @@ file "Makefile" => ["extconf.rb", "ext/cairo/extconf.rb"] do
633
107
  ruby("extconf.rb")
634
108
  end
635
109
 
636
- namespace :make do
637
- namespace :debug_flags do
638
- task :reset do
639
- ENV["MAKE"] ||= "make debugflags="
640
- end
641
- end
642
- end
643
-
644
- task :cross => "make:debug_flags:reset"
645
-
646
110
  desc "Configure"
647
111
  task :configure => "Makefile"
648
112