cairo 1.16.1 → 1.16.6

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.
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