diff options
author | Sam Thursfield <sam@afuera.me.uk> | 2019-12-04 20:34:38 +0100 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2019-12-04 20:54:27 +0100 |
commit | 186bcaf1de91074a18659d9e850589598dd744f0 (patch) | |
tree | e7e8d782aea8463a405df2b037889f29769ed846 | |
parent | 13e0d64143ea6cc1348156501306c991bde054a0 (diff) | |
download | tracker-186bcaf1de91074a18659d9e850589598dd744f0.tar.gz |
Remove libuuid dependency, bump GLib requirement to >= 2.52.0
The functionality that we were using from libuuid is now present in
GLib itself.
Fixes https://gitlab.gnome.org/GNOME/tracker/issues/131
-rw-r--r-- | meson.build | 10 | ||||
-rw-r--r-- | src/libtracker-data/meson.build | 2 | ||||
-rw-r--r-- | src/libtracker-data/tracker-turtle-reader.vala | 8 | ||||
-rw-r--r-- | src/libtracker-data/tracker-uuid.c | 13 | ||||
-rw-r--r-- | src/libtracker-sparql/meson.build | 6 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-utils.vala | 14 |
6 files changed, 7 insertions, 46 deletions
diff --git a/meson.build b/meson.build index 376c0784c..844e4728e 100644 --- a/meson.build +++ b/meson.build @@ -24,7 +24,7 @@ libversion = '@0@.@1@.@2@'.format(soversion, tracker_binary_age - tracker_interf libdir = join_paths(get_option('prefix'), get_option('libdir')) datadir = join_paths(get_option('prefix'), get_option('datadir')) -glib_required = '2.46.0' +glib_required = '2.52.0' # 3.6.11 for sqlite_backup API # 3.6.16 to fix test failures @@ -51,14 +51,6 @@ sqlite = dependency('sqlite3', version: '>' + sqlite_required) libmath = cc.find_library('m', required: false) -# FIXME: here we work around a quirk todo with Meson and Vala: the 'uuid' -# pkg-config component corresponds to 'libuuid.vapi', but Meson assumes that -# .vapi name always matches pkg-config name, and will add `--pkg uuid` to the -# Vala commandline. By finding 'uuid' using find_library() instead, we get -# a dependency object back that won't cause any `--pkg` arguments to be added -# to the Vala commandline, but still works as expected for C code. -uuid = cc.find_library('uuid') - add_project_arguments('-Wformat', '-Wformat-security', language: 'c') # There are various gchar vs. unsigned char warnings that occur in extract diff --git a/src/libtracker-data/meson.build b/src/libtracker-data/meson.build index 4f40c1fcc..1ef30f709 100644 --- a/src/libtracker-data/meson.build +++ b/src/libtracker-data/meson.build @@ -28,7 +28,7 @@ tracker_data_enums = gnome.mkenums('tracker-data-enum-types', ) tracker_data_dependencies = [ - tracker_common_dep, gvdb_dep, sqlite, uuid, + tracker_common_dep, gvdb_dep, sqlite, ] if get_option('fts') diff --git a/src/libtracker-data/tracker-turtle-reader.vala b/src/libtracker-data/tracker-turtle-reader.vala index 788eb571d..f5f04cdb3 100644 --- a/src/libtracker-data/tracker-turtle-reader.vala +++ b/src/libtracker-data/tracker-turtle-reader.vala @@ -85,8 +85,7 @@ public class Tracker.TurtleReader : Object { scanner = new SparqlScanner (buffer, len); } - base_uuid = new uchar[16]; - uuid_generate (base_uuid); + base_uuid = GLib.Uuid.string_random(); tokens = new TokenInfo[BUFFER_SIZE]; prefix_map = new HashTable<string,string>.full (str_hash, str_equal, g_free, g_free); @@ -101,7 +100,7 @@ public class Tracker.TurtleReader : Object { } else { var checksum = new Checksum (ChecksumType.SHA1); // base UUID, unique per file - checksum.update (base_uuid, 16); + checksum.update (base_uuid, -1); // node ID checksum.update ((uchar[]) user_bnodeid, -1); @@ -380,8 +379,5 @@ public class Tracker.TurtleReader : Object { } } } - - [CCode (cname = "uuid_generate")] - public extern static void uuid_generate ([CCode (array_length = false)] uchar[] uuid); } diff --git a/src/libtracker-data/tracker-uuid.c b/src/libtracker-data/tracker-uuid.c index f2b18967a..7717dfed5 100644 --- a/src/libtracker-data/tracker-uuid.c +++ b/src/libtracker-data/tracker-uuid.c @@ -23,24 +23,11 @@ #define DEFAULT_PREFIX "urn:uuid" -#if ! GLIB_CHECK_VERSION (2, 52, 0) -#include <uuid/uuid.h> -#endif - gchar * tracker_generate_uuid (const gchar *uri_prefix) { gchar *result; -#if GLIB_CHECK_VERSION (2, 52, 0) result = g_uuid_string_random (); -#else - uuid_t base = { 0, }; - gchar uuid[37]; - - uuid_generate (base); - uuid_unparse_lower (base, uuid); - result = g_strdup_printf (uuid); -#endif if (uri_prefix) { gchar *uri; diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build index 2bd750f36..971d39bf3 100644 --- a/src/libtracker-sparql/meson.build +++ b/src/libtracker-sparql/meson.build @@ -7,8 +7,6 @@ enums_h = gnome.mkenums('tracker-sparql-enum-types', h_template: 'tracker-sparql-enum-types.h.template', ) -tracker_sparql_intermediate_dependencies = [uuid] - # First build the Vala parts ... libtracker_sparql_c_vapi = files('libtracker-sparql-intermediate-c.vapi') libtracker_sparql_c_vapi_dep = meson.get_compiler('vala').find_library('libtracker-sparql-intermediate-c', dirs: meson.current_source_dir()) @@ -32,7 +30,7 @@ libtracker_sparql_intermediate_vala = static_library('tracker-sparql-intermediat '--target-glib', glib_required, libtracker_sparql_c_vapi ], - dependencies: [tracker_common_dep] + tracker_sparql_intermediate_dependencies, + dependencies: [tracker_common_dep], include_directories: [commoninc, configinc, srcinc], ) @@ -86,7 +84,7 @@ tracker_sparql_intermediate_dep = declare_dependency( link_with: [libtracker_sparql_intermediate_c, libtracker_sparql_intermediate_vala], sources: tracker_sparql_generated_header, include_directories: [srcinc, include_directories('.')], - dependencies: [ tracker_sparql_intermediate_dependencies, libtracker_sparql_c_vapi_dep ], + dependencies: [ libtracker_sparql_c_vapi_dep ], ) install_headers( diff --git a/src/libtracker-sparql/tracker-utils.vala b/src/libtracker-sparql/tracker-utils.vala index a4664abf0..2dd2484a0 100644 --- a/src/libtracker-sparql/tracker-utils.vala +++ b/src/libtracker-sparql/tracker-utils.vala @@ -95,12 +95,6 @@ namespace Tracker.Sparql { return str.str; } - [CCode (cname = "uuid_generate")] - private extern static void uuid_generate ([CCode (array_length = false)] uchar[] uuid); - - [CCode (cname = "uuid_unparse_lower")] - private extern static void uuid_unparse_lower ([CCode (array_length = false)] uchar[] uuid, char* out); - /** * tracker_sparql_get_uuid_urn: * @@ -115,13 +109,7 @@ namespace Tracker.Sparql { * Since: 0.10 */ public string get_uuid_urn () { - uchar[] base_uuid = new uchar[16]; - string lower = (string) new char[37]; - - uuid_generate (base_uuid); - uuid_unparse_lower (base_uuid, (char *) lower); - // generate uuid - return "urn:uuid:%s".printf (lower); + return "urn:uuid:%s".printf (GLib.Uuid.string_random ()); } } |