glib2 4.0.2 → 4.0.4

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: e7d1eb0a21b97c5152d4f792de24a5fc4c12074f1f38e1c0eb220d63e68c1adf
4
- data.tar.gz: 792084386504df0ca97a1a8dcd0f5c5fae4cc0909ae93daf0699225d1a9bb52a
3
+ metadata.gz: f7926c6f46ecefebbd076553fd03848564c70d5674206bc00d636b8ba776790e
4
+ data.tar.gz: 6715f80c40625e14d63c9423057395c3bda87ea758db05cc2291ebf477e51836
5
5
  SHA512:
6
- metadata.gz: 68b6c0da8fac487e6267dfcf77b5695b838a8244702c241032f6a21a180cb7b9e403c642353efbec236d0fd5a2a9ffd6b6d241d85123fcc50038432b95599456
7
- data.tar.gz: 7f369ff1a891dc192546b6c690ac819ad36610f13c3a69d68897607c41af214fb84d77312229c9c74c7777e9419c0ec06297d1c63939874c7d3e1deef015cf2c
6
+ metadata.gz: d65c4f2210c78150e61295a4d5bc24a8ef3d07745dc9a5dafd94863e2cdd871f22b0750a40fce61510c88eb79db713860c1c1294036ea7990a78842dca664029
7
+ data.tar.gz: 8c20a8cbe5c7ac23ee1eaaae3d38f478f5d30968394e80ce348332ad85db5ed9d30ecdbd187a050c99c4999f5a8af85c1f0623d27a32fc90698fde0d83dd55a7
data/ext/glib2/rbglib.h CHANGED
@@ -33,7 +33,7 @@ G_BEGIN_DECLS
33
33
 
34
34
  #define RBGLIB_MAJOR_VERSION 4
35
35
  #define RBGLIB_MINOR_VERSION 0
36
- #define RBGLIB_MICRO_VERSION 2
36
+ #define RBGLIB_MICRO_VERSION 4
37
37
 
38
38
  #ifndef RB_ZALLOC
39
39
  # ifdef ZALLOC
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011-2021 Ruby-GNOME Project Team
3
+ * Copyright (C) 2011-2022 Ruby-GNOME Project Team
4
4
  * Copyright (C) 2004 Masao Mutoh
5
5
  * Copyright (C) 2004 Kazuhiro NISHIYAMA
6
6
  *
@@ -230,11 +230,45 @@ Init_glib_spawn(void)
230
230
  RG_DEF_SMETHOD(command_line_async, 1);
231
231
  RG_DEF_SMETHOD(close_pid, 1);
232
232
 
233
- rb_define_const(RG_TARGET_NAMESPACE, "LEAVE_DESCRIPTORS_OPEN", INT2NUM(G_SPAWN_LEAVE_DESCRIPTORS_OPEN));
234
- rb_define_const(RG_TARGET_NAMESPACE, "DO_NOT_REAP_CHILD", INT2NUM(G_SPAWN_DO_NOT_REAP_CHILD));
235
- rb_define_const(RG_TARGET_NAMESPACE, "SEARCH_PATH", INT2NUM(G_SPAWN_SEARCH_PATH));
236
- rb_define_const(RG_TARGET_NAMESPACE, "STDOUT_TO_DEV_NULL", INT2NUM(G_SPAWN_STDOUT_TO_DEV_NULL));
237
- rb_define_const(RG_TARGET_NAMESPACE, "STDERR_TO_DEV_NULL", INT2NUM(G_SPAWN_STDERR_TO_DEV_NULL));
238
- rb_define_const(RG_TARGET_NAMESPACE, "CHILD_INHERITS_STDIN", INT2NUM(G_SPAWN_CHILD_INHERITS_STDIN));
239
- rb_define_const(RG_TARGET_NAMESPACE, "FILE_AND_ARGV_ZERO", INT2NUM(G_SPAWN_FILE_AND_ARGV_ZERO));
233
+ rb_define_const(RG_TARGET_NAMESPACE,
234
+ "DEFAULT",
235
+ INT2NUM(G_SPAWN_DEFAULT));
236
+ rb_define_const(RG_TARGET_NAMESPACE,
237
+ "LEAVE_DESCRIPTORS_OPEN",
238
+ INT2NUM(G_SPAWN_LEAVE_DESCRIPTORS_OPEN));
239
+ rb_define_const(RG_TARGET_NAMESPACE,
240
+ "DO_NOT_REAP_CHILD",
241
+ INT2NUM(G_SPAWN_DO_NOT_REAP_CHILD));
242
+ rb_define_const(RG_TARGET_NAMESPACE,
243
+ "SEARCH_PATH",
244
+ INT2NUM(G_SPAWN_SEARCH_PATH));
245
+ rb_define_const(RG_TARGET_NAMESPACE,
246
+ "STDOUT_TO_DEV_NULL",
247
+ INT2NUM(G_SPAWN_STDOUT_TO_DEV_NULL));
248
+ rb_define_const(RG_TARGET_NAMESPACE,
249
+ "STDERR_TO_DEV_NULL",
250
+ INT2NUM(G_SPAWN_STDERR_TO_DEV_NULL));
251
+ rb_define_const(RG_TARGET_NAMESPACE,
252
+ "CHILD_INHERITS_STDIN",
253
+ INT2NUM(G_SPAWN_CHILD_INHERITS_STDIN));
254
+ rb_define_const(RG_TARGET_NAMESPACE,
255
+ "FILE_AND_ARGV_ZERO",
256
+ INT2NUM(G_SPAWN_FILE_AND_ARGV_ZERO));
257
+ rb_define_const(RG_TARGET_NAMESPACE,
258
+ "SEARCH_PATH_FROM_ENVP",
259
+ INT2NUM(G_SPAWN_SEARCH_PATH_FROM_ENVP));
260
+ rb_define_const(RG_TARGET_NAMESPACE,
261
+ "CLOEXEC_PIPES",
262
+ INT2NUM(G_SPAWN_CLOEXEC_PIPES));
263
+ #if GLIB_CHECK_VERSION(2, 74, 0)
264
+ rb_define_const(RG_TARGET_NAMESPACE,
265
+ "CHILD_INHERITS_STDOUT",
266
+ INT2NUM(G_SPAWN_CHILD_INHERITS_STDOUT));
267
+ rb_define_const(RG_TARGET_NAMESPACE,
268
+ "CHILD_INHERITS_STDERR",
269
+ INT2NUM(G_SPAWN_CHILD_INHERITS_STDERR));
270
+ rb_define_const(RG_TARGET_NAMESPACE,
271
+ "STDIN_FROM_DEV_NULL",
272
+ INT2NUM(G_SPAWN_STDIN_FROM_DEV_NULL));
273
+ #endif
240
274
  }
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2004-2021 Ruby-GNOME Project Team
3
+ * Copyright (C) 2004-2022 Ruby-GNOME Project Team
4
4
  * Copyright (C) 2002,2003 Masahiro Sakai
5
5
  *
6
6
  * This library is free software; you can redistribute it and/or
@@ -19,6 +19,10 @@
19
19
  * MA 02110-1301 USA
20
20
  */
21
21
 
22
+ /* This is for suppressing warnings for GValueArray.
23
+ * We support GValueArray because GStreamer still uses it. */
24
+ #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_30
25
+
22
26
  #include "rbgprivate.h"
23
27
 
24
28
  #define DEF_NUMERIC_PSPEC_METHODS_FUNC(pspec_type, typename, from_ruby, to_ruby, pspec_cast) \
@@ -198,6 +202,20 @@ pointer_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb, VALUE flags)
198
202
  return Qnil;
199
203
  }
200
204
 
205
+ static VALUE
206
+ value_array_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
207
+ VALUE element_spec, VALUE flags)
208
+ {
209
+ GParamSpec *pspec;
210
+ pspec = g_param_spec_value_array(StringValuePtr(name),
211
+ StringValuePtr(nick),
212
+ StringValuePtr(blurb),
213
+ RVAL2GOBJ(element_spec),
214
+ NUM2UINT(flags));
215
+ rbgobj_param_spec_initialize(self, pspec);
216
+ return Qnil;
217
+ }
218
+
201
219
  static VALUE
202
220
  object_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
203
221
  VALUE object_type, VALUE flags)
@@ -288,6 +306,9 @@ Init_gobject_gparamspecs(void)
288
306
  c = G_DEF_CLASS(G_TYPE_PARAM_POINTER, "Pointer", cParamSpec);
289
307
  rbg_define_method(c, "initialize", pointer_initialize, 4);
290
308
 
309
+ c = G_DEF_CLASS(G_TYPE_PARAM_VALUE_ARRAY, "ValueArray", cParamSpec);
310
+ rbg_define_method(c, "initialize", value_array_initialize, 5);
311
+
291
312
  c = G_DEF_CLASS(G_TYPE_PARAM_OBJECT, "Object", cParamSpec);
292
313
  rbg_define_method(c, "initialize", object_initialize, 5);
293
314
  }
@@ -418,8 +418,10 @@ gobj_sig_connect_impl(gboolean after, int argc, VALUE *argv, VALUE self)
418
418
  rclosure, after);
419
419
  VALUE rb_handler_id = ULONG2NUM(handler_id);
420
420
  if (handler_id != 0) {
421
- VALUE rb_connected_closures = rb_ivar_get(self, id_connected_closures);
422
- if (NIL_P(rb_connected_closures)) {
421
+ VALUE rb_connected_closures;
422
+ if (RVAL2CBOOL(rb_ivar_defined(self, id_connected_closures))) {
423
+ rb_connected_closures = rb_ivar_get(self, id_connected_closures);
424
+ } else {
423
425
  rb_connected_closures = rb_hash_new();
424
426
  rb_ivar_set(self, id_connected_closures, rb_connected_closures);
425
427
  }
@@ -66,8 +66,10 @@ static void
66
66
  cinfo_free(void *data)
67
67
  {
68
68
  RGObjClassInfo *cinfo = data;
69
+ g_hash_table_remove(gtype_to_cinfo, GUINT_TO_POINTER(cinfo->gtype));
69
70
  xfree(cinfo->name);
70
71
  xfree(cinfo->data_type);
72
+ xfree(cinfo);
71
73
  }
72
74
 
73
75
  static RGObjClassInfo *
@@ -106,6 +108,7 @@ rbgobj_class_info_create_data_type(VALUE klass)
106
108
  rb_data_type_t *data_type;
107
109
 
108
110
  data_type = RB_ZALLOC(rb_data_type_t);
111
+ data_type->wrap_struct_name = "RGObjClassInfo";
109
112
  data_type->function.dmark = cinfo_mark;
110
113
  data_type->function.dfree = cinfo_free;
111
114
  if (RB_TYPE_P(klass, RUBY_T_CLASS) && klass != rb_cObject) {
@@ -0,0 +1,104 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011-2022 Ruby-GNOME Project Team
4
+ * Copyright (C) 2006 Sjoerd Simons
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ /* This is for suppressing warnings for GValueArray.
23
+ * We support GValueArray because GStreamer still uses it. */
24
+ #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_30
25
+
26
+ #include "rbgprivate.h"
27
+
28
+ static VALUE
29
+ value_array_to_ruby(const GValue *from)
30
+ {
31
+ VALUE ary;
32
+ guint i;
33
+
34
+ GValueArray *array = (GValueArray *)g_value_get_boxed(from);
35
+ if (array == NULL)
36
+ return Qnil;
37
+
38
+ ary = rb_ary_new();
39
+ for (i = 0; i < array->n_values; i++)
40
+ rb_ary_push(ary, GVAL2RVAL(g_value_array_get_nth(array, i)));
41
+
42
+ return ary;
43
+ }
44
+
45
+ struct value_array_from_ruby_args {
46
+ VALUE ary;
47
+ long n;
48
+ GValueArray *result;
49
+ };
50
+
51
+ static VALUE
52
+ value_array_from_ruby_body(VALUE value)
53
+ {
54
+ long i;
55
+ struct value_array_from_ruby_args *args = (struct value_array_from_ruby_args *)value;
56
+
57
+ for (i = 0; i < args->n; i++) {
58
+ GValue v = G_VALUE_INIT;
59
+
60
+ g_value_init(&v, RVAL2GTYPE(RARRAY_PTR(args->ary)[i]));
61
+ rbgobj_rvalue_to_gvalue(RARRAY_PTR(args->ary)[i], &v);
62
+
63
+ g_value_array_append(args->result, &v);
64
+ }
65
+
66
+ return Qnil;
67
+ }
68
+
69
+ static G_GNUC_NORETURN VALUE
70
+ value_array_from_ruby_rescue(VALUE value, VALUE error)
71
+ {
72
+ g_value_array_free(((struct value_array_from_ruby_args *)value)->result);
73
+
74
+ rb_exc_raise(error);
75
+ }
76
+
77
+ static void
78
+ value_array_from_ruby(const VALUE from, GValue *to)
79
+ {
80
+ struct value_array_from_ruby_args args;
81
+
82
+ if (NIL_P(from)) {
83
+ g_value_set_boxed(to, NULL);
84
+
85
+ return;
86
+ }
87
+
88
+ args.ary = rb_ary_to_ary(from);
89
+ args.n = RARRAY_LEN(args.ary);
90
+ args.result = g_value_array_new((guint)args.n);
91
+
92
+ rb_rescue(value_array_from_ruby_body, (VALUE)&args,
93
+ value_array_from_ruby_rescue, (VALUE)&args);
94
+
95
+ g_value_set_boxed(to, args.result);
96
+ }
97
+
98
+ void
99
+ Init_gobject_value_array(void)
100
+ {
101
+ /* ValueArray is treated as Array */
102
+ rbgobj_register_g2r_func(G_TYPE_VALUE_ARRAY, value_array_to_ruby);
103
+ rbgobj_register_r2g_func(G_TYPE_VALUE_ARRAY, value_array_from_ruby);
104
+ }
@@ -23,7 +23,7 @@
23
23
  #include "rbgobject.h"
24
24
 
25
25
  static const rb_data_type_t rbg_pointer_type = {
26
- "GLib::Poitner",
26
+ "GLib::Pointer",
27
27
  {
28
28
  NULL,
29
29
  NULL,
@@ -43,9 +43,9 @@ gpointer
43
43
  rbgobj_ptr2cptr(VALUE ptr)
44
44
  {
45
45
  gpointer dest;
46
- if (rb_obj_is_kind_of(ptr, GTYPE2CLASS(G_TYPE_POINTER))){
46
+ if (RVAL2CBOOL(rb_obj_is_kind_of(ptr, GTYPE2CLASS(G_TYPE_POINTER)))) {
47
47
  TypedData_Get_Struct(ptr, void, &rbg_pointer_type, dest);
48
- } else if (rb_obj_is_kind_of(ptr, rb_cObject)){
48
+ } else if (RVAL2CBOOL(rb_obj_is_kind_of(ptr, rb_cObject))) {
49
49
  dest = (gpointer)ptr;
50
50
  } else{
51
51
  rb_raise(rb_eTypeError, "not a pointer object");
@@ -53,24 +53,51 @@ rbgobj_ptr2cptr(VALUE ptr)
53
53
  return dest;
54
54
  }
55
55
 
56
+ static VALUE
57
+ ptr_alloc(VALUE klass)
58
+ {
59
+ gpointer pointer;
60
+ return TypedData_Make_Struct(klass,
61
+ gpointer,
62
+ &rbg_pointer_type,
63
+ pointer);
64
+ }
65
+
66
+
56
67
  static VALUE
57
68
  ptr_s_gtype(VALUE klass)
58
69
  {
59
70
  return rbgobj_gtype_new(rbgobj_lookup_class(klass)->gtype);
60
71
  }
61
72
 
73
+ static VALUE
74
+ ptr_initialize(VALUE self, VALUE address)
75
+ {
76
+ RTYPEDDATA_DATA(self) = NUM2POINTER(address);
77
+ return RUBY_Qnil;
78
+ }
79
+
62
80
  static VALUE
63
81
  ptr_gtype(VALUE self)
64
82
  {
65
83
  return ptr_s_gtype(CLASS_OF(self));
66
84
  }
67
85
 
86
+ static VALUE
87
+ ptr_to_i(VALUE self)
88
+ {
89
+ return POINTER2NUM(rbgobj_ptr2cptr(self));
90
+ }
91
+
68
92
  static void
69
93
  Init_gtype_pointer(void)
70
94
  {
71
95
  VALUE cPtr = G_DEF_CLASS(G_TYPE_POINTER, "Pointer", rbg_mGLib());
72
- rbg_define_singleton_method(cPtr, "gtype", ptr_s_gtype, 1);
73
- rbg_define_method(cPtr, "gtype", ptr_gtype, 1);
96
+ rb_define_alloc_func(cPtr, ptr_alloc);
97
+ rbg_define_singleton_method(cPtr, "gtype", ptr_s_gtype, 0);
98
+ rbg_define_method(cPtr, "initialize", ptr_initialize, 1);
99
+ rbg_define_method(cPtr, "gtype", ptr_gtype, 0);
100
+ rbg_define_method(cPtr, "to_i", ptr_to_i, 0);
74
101
  }
75
102
 
76
103
  /**********************************************************************/
@@ -390,6 +390,7 @@ Init_gobject(void)
390
390
  Init_gobject_gvaluetypes();
391
391
  Init_gobject_gboxed();
392
392
  Init_gobject_gstrv();
393
+ Init_gobject_value_array();
393
394
  Init_gobject_genumflags();
394
395
  Init_gobject_gparam();
395
396
  Init_gobject_gparamspecs();
@@ -28,7 +28,9 @@
28
28
  * Ubuntu 20.04: GLib 2.64
29
29
  * Ubuntu 22.04: GLib 2.72
30
30
  */
31
- #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_50
31
+ #ifndef GLIB_VERSION_MIN_REQUIRED
32
+ # define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_50
33
+ #endif
32
34
 
33
35
  #define G_LOG_DOMAIN "Ruby/GLib2"
34
36
 
@@ -189,6 +191,7 @@ G_GNUC_INTERNAL void Init_gobject_gvalue(void);
189
191
  G_GNUC_INTERNAL void Init_gobject_gvaluetypes(void);
190
192
  G_GNUC_INTERNAL void Init_gobject_gboxed(void);
191
193
  G_GNUC_INTERNAL void Init_gobject_gstrv(void);
194
+ G_GNUC_INTERNAL void Init_gobject_value_array(void);
192
195
  G_GNUC_INTERNAL void Init_gobject_genumflags(void);
193
196
  G_GNUC_INTERNAL void Init_gobject_genums(void);
194
197
  G_GNUC_INTERNAL void Init_gobject_gflags(void);
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2019 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2013-2022 Ruby-GNOME 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
- module GNOME2
17
+ module GNOME
18
18
  module Rake
19
19
  class ExternalPackage < Struct.new(:name,
20
20
  :download_name,
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2019 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2013-2022 Ruby-GNOME 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
- module GNOME2
17
+ module GNOME
18
18
  module Rake
19
19
  class NativeBinaryBuildTask
20
20
  def initialize(package)
@@ -0,0 +1,217 @@
1
+ # Copyright(C) 2011-2022 Ruby-GNOME Project.
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ require "find"
18
+ require "pathname"
19
+
20
+ require "rubygems"
21
+ require "rubygems/package_task"
22
+ require_relative "package"
23
+ require_relative "external-package"
24
+ require_relative "source-download-task"
25
+ require_relative "native-binary-build-task"
26
+ require_relative "windows-binary-download-task"
27
+ require_relative "windows-binary-build-task"
28
+
29
+ module GNOME
30
+ module Rake
31
+ class PackageTask
32
+ class << self
33
+ def define(spec, root_dir, &block)
34
+ new(spec, root_dir, &block).define
35
+ end
36
+ end
37
+
38
+ include ::Rake::DSL
39
+
40
+ attr_accessor :name, :summary, :description, :author, :email, :homepage, :required_ruby_version, :post_install_message
41
+ attr_reader :root_dir
42
+ def initialize(spec=nil, root_dir=nil)
43
+ @spec = spec
44
+ initialize_variables
45
+ initialize_configurations
46
+ if @spec
47
+ @package = Package.new(@spec.name, root_dir)
48
+ else
49
+ file, line, method = caller[1].scan(/^(.*):(\d+)(?::.*`(.*)')?\Z/).first
50
+ root_dir = File.dirname(file)
51
+ @package = Package.new(File.basename(root_dir), root_dir)
52
+ end
53
+ @packages = FileList["#{@package.root_dir.parent}/*"].map{|f| File.directory?(f) ? File.basename(f) : nil}.compact
54
+ @name = @package.name
55
+ @cross_compiling_hooks = []
56
+ yield(self) if block_given?
57
+ end
58
+
59
+ def cross_compiling(&block)
60
+ warn("cross compile support is dropped.")
61
+ @cross_compiling_hooks << block
62
+ end
63
+
64
+ def define
65
+ task :default => :build
66
+ define_spec
67
+ define_package_tasks
68
+ end
69
+
70
+ # Deprecated. Use #define instead.
71
+ def define_tasks
72
+ define
73
+ end
74
+
75
+ def ruby_gnome2_package?(name)
76
+ @packages.include?(name)
77
+ end
78
+
79
+ def dependency
80
+ @dependency_configuration
81
+ end
82
+
83
+ def package
84
+ @package
85
+ end
86
+
87
+ def windows
88
+ @package.windows
89
+ end
90
+
91
+ def native
92
+ @package.native
93
+ end
94
+
95
+ def version
96
+ ENV["VERSION"] || guess_version
97
+ end
98
+
99
+ def guess_version
100
+ versions = {}
101
+ File.open("#{@package.glib2_root_dir}/ext/glib2/rbglib.h") do |rbglib_h|
102
+ rbglib_h.each_line do |line|
103
+ if /#define\s+RBGLIB_([A-Z]+)_VERSION\s+(\d+)/ =~ line
104
+ versions[$1.downcase] = $2.to_i
105
+ end
106
+ end
107
+ end
108
+ ["major", "minor", "micro"].collect {|type| versions[type]}.compact.join(".")
109
+ end
110
+
111
+ def external_packages
112
+ @package.external_packages
113
+ end
114
+
115
+ def external_packages=(packages)
116
+ @package.external_packages = packages
117
+ end
118
+
119
+ def windows_binary_build_task
120
+ @windows_binary_build_task ||= WindowsBinaryBuildTask.new(@package)
121
+ end
122
+
123
+ private
124
+ def initialize_variables
125
+ @summary = ""
126
+ @description = ""
127
+ @author = "The Ruby-GNOME2 Project Team"
128
+ @email = "ruby-gnome2-devel-en@lists.sourceforge.net"
129
+ @homepage = "https://ruby-gnome2.osdn.jp/"
130
+ @external_packages = []
131
+ end
132
+
133
+ def initialize_configurations
134
+ @dependency_configuration = DependencyConfiguration.new(self)
135
+ end
136
+
137
+ def define_spec
138
+ @spec ||= Gem::Specification.new do |s|
139
+ warn("spec generation is deprecated. Use .gemspec instead.")
140
+ s.name = @name
141
+ s.summary = @summary
142
+ s.description = @description
143
+ s.author = @author
144
+ s.email = @email
145
+ s.homepage = @homepage
146
+ s.licenses = ["LGPL-2.1+"]
147
+ s.version = version
148
+ extensions = FileList["ext/#{@name}/extconf.rb",
149
+ "dependency-check/Rakefile"]
150
+ extensions.existing!
151
+ s.extensions = extensions
152
+ s.require_paths = ["lib"]
153
+ files = FileList["ChangeLog", "README",
154
+ "Rakefile", "extconf.rb",
155
+ "dependency-check/Rakefile",
156
+ "lib/**/*.rb",
157
+ "ext/**/depend",
158
+ "ext/**/*.{c,h,def,rb}",
159
+ "{sample,test}/**/*"]
160
+ files.existing!
161
+ s.files = files
162
+ s.required_ruby_version = @required_ruby_version || ">= 2.1.0"
163
+ s.post_install_message = @post_install_message
164
+ @dependency_configuration.apply(s)
165
+ end
166
+ end
167
+
168
+ def define_package_tasks
169
+ Gem::PackageTask.new(@spec) do |pkg|
170
+ end
171
+ end
172
+
173
+ class DependencyConfiguration
174
+ attr_accessor :platform, :ruby
175
+ def initialize(package)
176
+ @package = package
177
+ @platform = Gem::Platform::RUBY
178
+ @gem_configuration = GemConfiguration.new(@package)
179
+ end
180
+
181
+ def gem
182
+ @gem_configuration
183
+ end
184
+
185
+ def apply(spec)
186
+ spec.platform = @platform
187
+ @gem_configuration.apply(spec)
188
+ end
189
+
190
+ class GemConfiguration
191
+ attr_accessor :runtime, :development
192
+ def initialize(package)
193
+ @package = package
194
+ @runtime = []
195
+ @development = []
196
+ end
197
+
198
+ def apply(spec)
199
+ @runtime.each do |dependency|
200
+ spec.add_runtime_dependency(*append_version(dependency))
201
+ end
202
+
203
+ @development.each do |dependency|
204
+ spec.add_development_dependency(*append_version(dependency))
205
+ end
206
+ end
207
+
208
+ def append_version(dependency)
209
+ name, *ver = dependency.is_a?(Array) ? dependency : [dependency]
210
+ ver << "= #{@package.version}" if @package.ruby_gnome2_package?(name)
211
+ [name, *ver]
212
+ end
213
+ end
214
+ end
215
+ end
216
+ end
217
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- ruby -*-
2
2
  #
3
- # Copyright (C) 2013-2015 Ruby-GNOME2 Project Team
3
+ # Copyright (C) 2013-2022 Ruby-GNOME Project Team
4
4
  #
5
5
  # This library is free software; you can redistribute it and/or
6
6
  # modify it under the terms of the GNU Lesser General Public
@@ -18,7 +18,7 @@
18
18
 
19
19
  require "pathname"
20
20
 
21
- module GNOME2
21
+ module GNOME
22
22
  module Rake
23
23
  class Package
24
24
  attr_reader :name
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2019 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2013-2022 Ruby-GNOME 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
- module GNOME2
17
+ module GNOME
18
18
  module Rake
19
19
  class SourceDownloadTask
20
20
  def initialize(package)
@@ -0,0 +1,45 @@
1
+ # Copyright(C) 2012-2022 Ruby-GNOME Project.
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module GNOME
18
+ module Rake
19
+ class WindowsBinaryBuildTask
20
+ def initialize(package)
21
+ @package = package
22
+ end
23
+
24
+ def define
25
+ end
26
+
27
+ def rcairo_binary_base_dir
28
+ rcairo_dir + "vendor" + "local"
29
+ end
30
+
31
+ def glib2_binary_base_dir
32
+ @package.glib2_root_dir + "vendor" + "local"
33
+ end
34
+
35
+ def binary_base_dir(package)
36
+ @package.project_root_dir + package + "vendor" + "local"
37
+ end
38
+
39
+ private
40
+ def rcairo_dir
41
+ @package.project_root_dir.parent + "rcairo"
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,29 @@
1
+ # Copyright(C) 2010-2022 Ruby-GNOME Project.
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module GNOME
18
+ module Rake
19
+ class WindowsBinaryDownloadTask
20
+ URL_BASE = "http://ftp.gnome.org/pub/gnome/binaries"
21
+ def initialize(package)
22
+ @package = package
23
+ end
24
+
25
+ def define
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,205 +1,25 @@
1
- # Copyright(C) 2011-2019 Ruby-GNOME2 Project.
1
+ # Copyright(C) 2011-2022 Ruby-GNOME Project.
2
2
  #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
3
16
  # This program is licenced under the same license of Ruby-GNOME2.
4
17
 
5
- require "find"
6
- require "pathname"
7
-
8
- require "rubygems"
9
- require "rubygems/package_task"
10
- require "gnome2/rake/package"
11
- require "gnome2/rake/external-package"
12
- require "gnome2/rake/source-download-task"
13
- require "gnome2/rake/native-binary-build-task"
14
- require "gnome2/rake/windows-binary-download-task"
15
- require "gnome2/rake/windows-binary-build-task"
18
+ # Just for backward compatibility.
19
+ require "gnome/rake/package-task"
16
20
 
17
21
  module GNOME2
18
22
  module Rake
19
- class PackageTask
20
- class << self
21
- def define(spec, root_dir, &block)
22
- new(spec, root_dir, &block).define
23
- end
24
- end
25
-
26
- include ::Rake::DSL
27
-
28
- attr_accessor :name, :summary, :description, :author, :email, :homepage, :required_ruby_version, :post_install_message
29
- attr_reader :root_dir
30
- def initialize(spec=nil, root_dir=nil)
31
- @spec = spec
32
- initialize_variables
33
- initialize_configurations
34
- if @spec
35
- @package = Package.new(@spec.name, root_dir)
36
- else
37
- file, line, method = caller[1].scan(/^(.*):(\d+)(?::.*`(.*)')?\Z/).first
38
- root_dir = File.dirname(file)
39
- @package = Package.new(File.basename(root_dir), root_dir)
40
- end
41
- @packages = FileList["#{@package.root_dir.parent}/*"].map{|f| File.directory?(f) ? File.basename(f) : nil}.compact
42
- @name = @package.name
43
- @cross_compiling_hooks = []
44
- yield(self) if block_given?
45
- end
46
-
47
- def cross_compiling(&block)
48
- warn("cross compile support is dropped.")
49
- @cross_compiling_hooks << block
50
- end
51
-
52
- def define
53
- task :default => :build
54
- define_spec
55
- define_package_tasks
56
- end
57
-
58
- # Deprecated. Use #define instead.
59
- def define_tasks
60
- define
61
- end
62
-
63
- def ruby_gnome2_package?(name)
64
- @packages.include?(name)
65
- end
66
-
67
- def dependency
68
- @dependency_configuration
69
- end
70
-
71
- def package
72
- @package
73
- end
74
-
75
- def windows
76
- @package.windows
77
- end
78
-
79
- def native
80
- @package.native
81
- end
82
-
83
- def version
84
- ENV["VERSION"] || guess_version
85
- end
86
-
87
- def guess_version
88
- versions = {}
89
- File.open("#{@package.glib2_root_dir}/ext/glib2/rbglib.h") do |rbglib_h|
90
- rbglib_h.each_line do |line|
91
- if /#define\s+RBGLIB_([A-Z]+)_VERSION\s+(\d+)/ =~ line
92
- versions[$1.downcase] = $2.to_i
93
- end
94
- end
95
- end
96
- ["major", "minor", "micro"].collect {|type| versions[type]}.compact.join(".")
97
- end
98
-
99
- def external_packages
100
- @package.external_packages
101
- end
102
-
103
- def external_packages=(packages)
104
- @package.external_packages = packages
105
- end
106
-
107
- def windows_binary_build_task
108
- @windows_binary_build_task ||= WindowsBinaryBuildTask.new(@package)
109
- end
110
-
111
- private
112
- def initialize_variables
113
- @summary = ""
114
- @description = ""
115
- @author = "The Ruby-GNOME2 Project Team"
116
- @email = "ruby-gnome2-devel-en@lists.sourceforge.net"
117
- @homepage = "https://ruby-gnome2.osdn.jp/"
118
- @external_packages = []
119
- end
120
-
121
- def initialize_configurations
122
- @dependency_configuration = DependencyConfiguration.new(self)
123
- end
124
-
125
- def define_spec
126
- @spec ||= Gem::Specification.new do |s|
127
- warn("spec generation is deprecated. Use .gemspec instead.")
128
- s.name = @name
129
- s.summary = @summary
130
- s.description = @description
131
- s.author = @author
132
- s.email = @email
133
- s.homepage = @homepage
134
- s.licenses = ["LGPL-2.1+"]
135
- s.version = version
136
- extensions = FileList["ext/#{@name}/extconf.rb",
137
- "dependency-check/Rakefile"]
138
- extensions.existing!
139
- s.extensions = extensions
140
- s.require_paths = ["lib"]
141
- files = FileList["ChangeLog", "README",
142
- "Rakefile", "extconf.rb",
143
- "dependency-check/Rakefile",
144
- "lib/**/*.rb",
145
- "ext/**/depend",
146
- "ext/**/*.{c,h,def,rb}",
147
- "{sample,test}/**/*"]
148
- files.existing!
149
- s.files = files
150
- s.required_ruby_version = @required_ruby_version || ">= 2.1.0"
151
- s.post_install_message = @post_install_message
152
- @dependency_configuration.apply(s)
153
- end
154
- end
155
-
156
- def define_package_tasks
157
- Gem::PackageTask.new(@spec) do |pkg|
158
- end
159
- end
160
-
161
- class DependencyConfiguration
162
- attr_accessor :platform, :ruby
163
- def initialize(package)
164
- @package = package
165
- @platform = Gem::Platform::RUBY
166
- @gem_configuration = GemConfiguration.new(@package)
167
- end
168
-
169
- def gem
170
- @gem_configuration
171
- end
172
-
173
- def apply(spec)
174
- spec.platform = @platform
175
- @gem_configuration.apply(spec)
176
- end
177
-
178
- class GemConfiguration
179
- attr_accessor :runtime, :development
180
- def initialize(package)
181
- @package = package
182
- @runtime = []
183
- @development = []
184
- end
185
-
186
- def apply(spec)
187
- @runtime.each do |dependency|
188
- spec.add_runtime_dependency(*append_version(dependency))
189
- end
190
-
191
- @development.each do |dependency|
192
- spec.add_development_dependency(*append_version(dependency))
193
- end
194
- end
195
-
196
- def append_version(dependency)
197
- name, *ver = dependency.is_a?(Array) ? dependency : [dependency]
198
- ver << "= #{@package.version}" if @package.ruby_gnome2_package?(name)
199
- [name, *ver]
200
- end
201
- end
202
- end
203
- end
23
+ PackageTask = GNOME::Rake::PackageTask
204
24
  end
205
25
  end
@@ -0,0 +1,24 @@
1
+ # Copyright (C) 2022 Ruby-GNOME Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestGLibPointer < Test::Unit::TestCase
18
+ include GLibTestUtils
19
+
20
+ test "#to_i" do
21
+ pointer = GLib::Pointer.new(0x08)
22
+ assert_equal(0x08, pointer.to_i)
23
+ end
24
+ 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: 4.0.2
4
+ version: 4.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME Project Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-05 00:00:00.000000000 Z
11
+ date: 2022-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pkg-config
@@ -128,6 +128,7 @@ files:
128
128
  - ext/glib2/rbgobj_typemodule.c
129
129
  - ext/glib2/rbgobj_typeplugin.c
130
130
  - ext/glib2/rbgobj_value.c
131
+ - ext/glib2/rbgobj_valuearray.c
131
132
  - ext/glib2/rbgobj_valuetypes.c
132
133
  - ext/glib2/rbgobject.c
133
134
  - ext/glib2/rbgobject.h
@@ -149,14 +150,15 @@ files:
149
150
  - lib/glib2/regex.rb
150
151
  - lib/glib2/variant.rb
151
152
  - lib/glib2/version.rb
153
+ - lib/gnome/rake/external-package.rb
154
+ - lib/gnome/rake/native-binary-build-task.rb
155
+ - lib/gnome/rake/package-task.rb
156
+ - lib/gnome/rake/package.rb
157
+ - lib/gnome/rake/source-download-task.rb
158
+ - lib/gnome/rake/windows-binary-build-task.rb
159
+ - lib/gnome/rake/windows-binary-download-task.rb
152
160
  - lib/gnome2-raketask.rb
153
- - lib/gnome2/rake/external-package.rb
154
- - lib/gnome2/rake/native-binary-build-task.rb
155
161
  - lib/gnome2/rake/package-task.rb
156
- - lib/gnome2/rake/package.rb
157
- - lib/gnome2/rake/source-download-task.rb
158
- - lib/gnome2/rake/windows-binary-build-task.rb
159
- - lib/gnome2/rake/windows-binary-download-task.rb
160
162
  - lib/mkmf-gnome.rb
161
163
  - lib/mkmf-gnome2.rb
162
164
  - sample/bookmarkfile.rb
@@ -185,6 +187,7 @@ files:
185
187
  - test/test-key-file.rb
186
188
  - test/test-match-info.rb
187
189
  - test/test-mkenums.rb
190
+ - test/test-pointer.rb
188
191
  - test/test-poll-fd.rb
189
192
  - test/test-regex.rb
190
193
  - test/test-signal.rb
@@ -1,33 +0,0 @@
1
- # Copyright(C) 2012-2019 Ruby-GNOME2 Project.
2
- #
3
- # This program is licenced under the same license of Ruby-GNOME2.
4
-
5
- module GNOME2
6
- module Rake
7
- class WindowsBinaryBuildTask
8
- def initialize(package)
9
- @package = package
10
- end
11
-
12
- def define
13
- end
14
-
15
- def rcairo_binary_base_dir
16
- rcairo_dir + "vendor" + "local"
17
- end
18
-
19
- def glib2_binary_base_dir
20
- @package.glib2_root_dir + "vendor" + "local"
21
- end
22
-
23
- def binary_base_dir(package)
24
- @package.project_root_dir + package + "vendor" + "local"
25
- end
26
-
27
- private
28
- def rcairo_dir
29
- @package.project_root_dir.parent + "rcairo"
30
- end
31
- end
32
- end
33
- end
@@ -1,17 +0,0 @@
1
- # Copyright(C) 2010-2019 Ruby-GNOME2 Project.
2
- #
3
- # This program is licenced under the same license of Ruby-GNOME2.
4
-
5
- module GNOME2
6
- module Rake
7
- class WindowsBinaryDownloadTask
8
- URL_BASE = "http://ftp.gnome.org/pub/gnome/binaries"
9
- def initialize(package)
10
- @package = package
11
- end
12
-
13
- def define
14
- end
15
- end
16
- end
17
- end