glib2 3.3.2 → 3.3.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.
- checksums.yaml +4 -4
- data/ext/glib2/extconf.rb +4 -3
- data/ext/glib2/rbglib-gc.c +2 -1
- data/ext/glib2/rbglib.h +2 -2
- data/ext/glib2/rbglib_iochannel.c +19 -15
- data/ext/glib2/rbglib_pollfd.c +2 -2
- data/ext/glib2/rbglib_regex.c +3 -2
- data/ext/glib2/rbglib_ucs4.c +3 -3
- data/ext/glib2/rbglib_unicode.c +3 -3
- data/ext/glib2/rbglib_utf16.c +3 -3
- data/ext/glib2/rbglib_utils.c +3 -3
- data/ext/glib2/rbgobj_boxed.c +2 -1
- data/ext/glib2/rbgobj_enums.c +3 -2
- data/ext/glib2/rbgobj_flags.c +4 -3
- data/ext/glib2/rbgobj_object.c +8 -5
- data/ext/glib2/rbgobj_param.c +2 -1
- data/ext/glib2/rbgobj_signal.c +5 -4
- data/ext/glib2/rbgobj_valuearray.c +2 -2
- data/ext/glib2/rbgutil_list.c +3 -3
- data/glib2.gemspec +2 -2
- data/lib/gnome2/rake/external-package.rb +3 -209
- data/lib/gnome2/rake/native-binary-build-task.rb +1 -96
- data/lib/gnome2/rake/package-task.rb +3 -151
- data/lib/gnome2/rake/source-download-task.rb +1 -75
- data/lib/gnome2/rake/windows-binary-build-task.rb +1 -431
- data/lib/gnome2/rake/windows-binary-download-task.rb +1 -168
- data/lib/mkmf-gnome2.rb +13 -11
- data/test/test-file-utils.rb +15 -7
- data/test/test-spawn.rb +15 -4
- metadata +4 -4
@@ -1,183 +1,16 @@
|
|
1
|
-
# Copyright(C) 2010-
|
1
|
+
# Copyright(C) 2010-2019 Ruby-GNOME2 Project.
|
2
2
|
#
|
3
3
|
# This program is licenced under the same license of Ruby-GNOME2.
|
4
4
|
|
5
|
-
require 'open-uri'
|
6
|
-
require 'rubygems'
|
7
|
-
require 'mechanize'
|
8
|
-
|
9
5
|
module GNOME2
|
10
6
|
module Rake
|
11
7
|
class WindowsBinaryDownloadTask
|
12
|
-
include ::Rake::DSL
|
13
|
-
|
14
8
|
URL_BASE = "http://ftp.gnome.org/pub/gnome/binaries"
|
15
9
|
def initialize(package)
|
16
10
|
@package = package
|
17
11
|
end
|
18
12
|
|
19
13
|
def define
|
20
|
-
namespace :windows do
|
21
|
-
namespace :downloader do
|
22
|
-
task :before
|
23
|
-
|
24
|
-
download_tasks = []
|
25
|
-
namespace :download do
|
26
|
-
directory dist_dir.to_s
|
27
|
-
task :prepare => [dist_dir.to_s]
|
28
|
-
|
29
|
-
packages.each do |package|
|
30
|
-
desc "download #{package}"
|
31
|
-
task package => [:prepare] do
|
32
|
-
download_package(package)
|
33
|
-
end
|
34
|
-
download_tasks << package
|
35
|
-
end
|
36
|
-
|
37
|
-
dependencies.each do |dependency|
|
38
|
-
name, version = dependency
|
39
|
-
desc "download #{name}"
|
40
|
-
task name => [:prepare] do
|
41
|
-
download_dependency(dependency)
|
42
|
-
end
|
43
|
-
download_tasks << name
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
download_tasks = download_tasks.collect do |task|
|
48
|
-
"windows:downloader:download:#{task}"
|
49
|
-
end
|
50
|
-
desc "download Windows binaries into #{dist_dir}"
|
51
|
-
task :download => download_tasks
|
52
|
-
|
53
|
-
task :after
|
54
|
-
end
|
55
|
-
desc "download Windows binaries"
|
56
|
-
task :download => ["windows:downloader:before",
|
57
|
-
"windows:downloader:download",
|
58
|
-
"windows:downloader:after"]
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
private
|
63
|
-
def dist_dir
|
64
|
-
@package.windows.absolute_binary_dir
|
65
|
-
end
|
66
|
-
|
67
|
-
def packages
|
68
|
-
@package.windows.packages
|
69
|
-
end
|
70
|
-
|
71
|
-
def dependencies
|
72
|
-
@package.windows.dependencies
|
73
|
-
end
|
74
|
-
|
75
|
-
def build_architecture_suffix
|
76
|
-
@package.windows.build_architecture_suffix
|
77
|
-
end
|
78
|
-
|
79
|
-
def download_package(package)
|
80
|
-
suffix = build_architecture_suffix
|
81
|
-
version_page_url = "#{URL_BASE}/#{suffix}/#{package}"
|
82
|
-
version_page = agent.get(version_page_url)
|
83
|
-
latest_version_link = version_page.links.sort_by do |link|
|
84
|
-
if /\A(\d+\.\d+)\/\z/ =~ link.href
|
85
|
-
$1.split(/\./).collect {|component| component.to_i}
|
86
|
-
else
|
87
|
-
[-1]
|
88
|
-
end
|
89
|
-
end.last
|
90
|
-
|
91
|
-
escaped_package = Regexp.escape(package)
|
92
|
-
latest_version_page = latest_version_link.click
|
93
|
-
latest_version = latest_version_page.links.collect do |link|
|
94
|
-
case link.href
|
95
|
-
when /#{escaped_package}_([\d\.\-]+)_#{suffix}\.zip\z/,
|
96
|
-
/#{escaped_package}-([\d\.\-]+)-#{suffix}\.zip\z/, # old
|
97
|
-
/#{escaped_package}-([\d\.\-]+)\.zip\z/ # old
|
98
|
-
version = $1
|
99
|
-
normalized_version = version.split(/[\.\-]/).collect do |component|
|
100
|
-
component.to_i
|
101
|
-
end
|
102
|
-
[normalized_version, version]
|
103
|
-
else
|
104
|
-
[[-1], nil]
|
105
|
-
end
|
106
|
-
end.sort_by do |normalized_version, version|
|
107
|
-
normalized_version
|
108
|
-
end.last[1]
|
109
|
-
|
110
|
-
if latest_version.nil?
|
111
|
-
raise "can't find package: <#{package}>:<#{version_page_url}>"
|
112
|
-
end
|
113
|
-
escaped_latest_version = Regexp.escape(latest_version)
|
114
|
-
latest_version_page.links.each do |link|
|
115
|
-
case link.href
|
116
|
-
when /#{escaped_package}(?:-dev)?_#{escaped_latest_version}_#{suffix}\.zip\z/,
|
117
|
-
/#{escaped_package}(?:-dev)?-#{escaped_latest_version}-#{suffix}\.zip\z/, # old
|
118
|
-
/#{escaped_package}(?:-dev)?-#{escaped_latest_version}\.zip\z/ # old
|
119
|
-
click_zip_link(link)
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def download_dependency(dependency)
|
125
|
-
suffix = build_architecture_suffix
|
126
|
-
dependency_version = "any"
|
127
|
-
dependency_version_re = /[\d\.\-]+/
|
128
|
-
if dependency.is_a?(Array)
|
129
|
-
dependency, dependency_version = dependency
|
130
|
-
dependency_version_re = /#{Regexp.escape(dependency_version)}/
|
131
|
-
end
|
132
|
-
escaped_dependency = Regexp.escape(dependency)
|
133
|
-
dependencies_url = "#{URL_BASE}/dependencies"
|
134
|
-
dependencies_page = agent.get(dependencies_url)
|
135
|
-
latest_version = dependencies_page.links.collect do |link|
|
136
|
-
case link.href
|
137
|
-
when /\A#{escaped_dependency}_(#{dependency_version_re})_#{suffix}\.zip\z/
|
138
|
-
version = $1
|
139
|
-
[version.split(/[\.\-]/).collect {|component| component.to_i}, version]
|
140
|
-
else
|
141
|
-
[[-1], nil]
|
142
|
-
end
|
143
|
-
end.sort_by do |normalized_version, version|
|
144
|
-
normalized_version
|
145
|
-
end.last[1]
|
146
|
-
|
147
|
-
if latest_version.nil?
|
148
|
-
message = "can't find dependency package: " +
|
149
|
-
"<#{dependency}>(#{dependency_version}):<#{dependencies_url}>"
|
150
|
-
raise message
|
151
|
-
end
|
152
|
-
escaped_latest_version = Regexp.escape(latest_version)
|
153
|
-
dependencies_page.links.each do |link|
|
154
|
-
case link.href
|
155
|
-
when /\A#{escaped_dependency}(?:-dev)?_#{escaped_latest_version}_#{suffix}\.zip\z/
|
156
|
-
click_zip_link(link)
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
private
|
162
|
-
def agent
|
163
|
-
@agent ||= Mechanize.new
|
164
|
-
end
|
165
|
-
|
166
|
-
def click_zip_link(link)
|
167
|
-
zip = link.click
|
168
|
-
Dir.chdir(dist_dir) do
|
169
|
-
open(zip.filename, "wb") do |file|
|
170
|
-
file.print(zip.body)
|
171
|
-
end
|
172
|
-
system("unzip", "-o", zip.filename)
|
173
|
-
Dir.glob("lib/pkgconfig/*.pc") do |pc_path|
|
174
|
-
pc = File.read(pc_path)
|
175
|
-
pc = pc.gsub(/\Aprefix=.+$/) {"prefix=#{dist_dir}"}
|
176
|
-
File.open(pc_path, "w") do |pc_file|
|
177
|
-
pc_file.print(pc)
|
178
|
-
end
|
179
|
-
end
|
180
|
-
end
|
181
14
|
end
|
182
15
|
end
|
183
16
|
end
|
data/lib/mkmf-gnome2.rb
CHANGED
@@ -134,18 +134,23 @@ def find_gem_spec(package)
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
|
-
def
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
137
|
+
def setup_homebrew
|
138
|
+
checking_for(checking_message("Homebrew")) do
|
139
|
+
platform = NativePackageInstaller::Platform.detect
|
140
|
+
if platform.is_a?(NativePackageInstaller::Platform::Homebrew)
|
141
|
+
libffi_prefix = `brew --prefix libffi`.chomp
|
142
|
+
PKGConfig.add_path("#{libffi_prefix}/lib/pkgconfig")
|
143
|
+
true
|
144
|
+
else
|
145
|
+
false
|
146
|
+
end
|
147
|
+
end
|
143
148
|
end
|
144
149
|
|
150
|
+
setup_homebrew
|
151
|
+
|
145
152
|
#add_depend_package("glib2", "ext/glib2", "/...../ruby-gnome2")
|
146
153
|
def add_depend_package(target_name, target_srcdir, top_srcdir, options={})
|
147
|
-
setup_homebrew_libffi if target_name == "gobject-introspection"
|
148
|
-
|
149
154
|
gem_spec = find_gem_spec(target_name)
|
150
155
|
if gem_spec
|
151
156
|
target_source_dir = File.join(gem_spec.full_gem_path, "ext/#{target_name}")
|
@@ -456,9 +461,6 @@ def required_pkg_config_package(package_info, native_package_info=nil)
|
|
456
461
|
else
|
457
462
|
required_package_info = [package_info]
|
458
463
|
end
|
459
|
-
if required_package_info[0] == "gobject-introspection-1.0"
|
460
|
-
setup_homebrew_libffi
|
461
|
-
end
|
462
464
|
return true if PKGConfig.have_package(*required_package_info)
|
463
465
|
|
464
466
|
native_package_info ||= {}
|
data/test/test-file-utils.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2015 Ruby-GNOME2 Project Team
|
1
|
+
# Copyright (C) 2015-2019 Ruby-GNOME2 Project Team
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -13,10 +13,14 @@
|
|
13
13
|
# You should have received a copy of the GNU Lesser General Public
|
14
14
|
# License along with this library; if not, write to the Free Software
|
15
15
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
-
|
16
|
+
|
17
17
|
class TestGLibFileUtils < Test::Unit::TestCase
|
18
18
|
include GLibTestUtils
|
19
19
|
|
20
|
+
def normalize_space(string)
|
21
|
+
string.gsub("\u{00A0}", " ")
|
22
|
+
end
|
23
|
+
|
20
24
|
sub_test_case "#format_size_for_display" do
|
21
25
|
def setup
|
22
26
|
only_glib_version(2, 16, 0)
|
@@ -50,26 +54,30 @@ class TestGLibFileUtils < Test::Unit::TestCase
|
|
50
54
|
end
|
51
55
|
|
52
56
|
def test_kb
|
53
|
-
assert_equal("1.0 kB",
|
57
|
+
assert_equal("1.0 kB",
|
58
|
+
normalize_space(GLib.format_size(1000)))
|
54
59
|
end
|
55
60
|
|
56
61
|
def test_mb
|
57
|
-
assert_equal("1.0 MB",
|
62
|
+
assert_equal("1.0 MB",
|
63
|
+
normalize_space(GLib.format_size(1000 * 1000)))
|
58
64
|
end
|
59
65
|
|
60
66
|
def test_gb
|
61
|
-
assert_equal("1.0 GB",
|
67
|
+
assert_equal("1.0 GB",
|
68
|
+
normalize_space(GLib.format_size(1000 * 1000 * 1000)))
|
62
69
|
end
|
63
70
|
|
64
71
|
def test_over_guint32_value
|
65
72
|
guint32_max = 2 ** 32 - 1
|
66
|
-
assert_equal("4.3 GB",
|
73
|
+
assert_equal("4.3 GB",
|
74
|
+
normalize_space(GLib.format_size(guint32_max + 1)))
|
67
75
|
end
|
68
76
|
|
69
77
|
sub_test_case "flags" do
|
70
78
|
sub_test_case ":iec_units" do
|
71
79
|
def format_size(size)
|
72
|
-
GLib.format_size(size, :flags => :iec_units)
|
80
|
+
normalize_space(GLib.format_size(size, :flags => :iec_units))
|
73
81
|
end
|
74
82
|
|
75
83
|
def test_kib
|
data/test/test-spawn.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2015 Ruby-GNOME2 Project Team
|
1
|
+
# Copyright (C) 2015-2019 Ruby-GNOME2 Project Team
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# License along with this library; if not, write to the Free Software
|
15
15
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
16
|
|
17
|
-
require
|
17
|
+
require "rbconfig"
|
18
18
|
|
19
19
|
class TestGLibSpawn < Test::Unit::TestCase
|
20
20
|
include GLibTestUtils
|
@@ -41,8 +41,19 @@ class TestGLibSpawn < Test::Unit::TestCase
|
|
41
41
|
RbConfig::CONFIG['RUBY_INSTALL_NAME'] +
|
42
42
|
RbConfig::CONFIG['EXEEXT'])
|
43
43
|
end
|
44
|
-
|
44
|
+
test_env_name = "RUBY_GLIB2_TEST"
|
45
|
+
ENV[test_env_name] = "yes"
|
46
|
+
pid = GLib::Spawn.async(Dir.pwd,
|
47
|
+
[
|
48
|
+
ruby,
|
49
|
+
"-e",
|
50
|
+
"exit(!ENV.key?(#{test_env_name.dump}))",
|
51
|
+
],
|
52
|
+
[],
|
53
|
+
GLib::Spawn::DO_NOT_REAP_CHILD)
|
45
54
|
_, status = *Process.waitpid2(pid)
|
46
|
-
assert
|
55
|
+
assert do
|
56
|
+
status.success?
|
57
|
+
end
|
47
58
|
end
|
48
59
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glib2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Ruby-GNOME2 Project Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pkg-config
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.3.5
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.3.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: native-package-installer
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|