Merge branch 'gir-gio-unix-split' into 'main'

girepository: Remove backward compatibility introspection from Gio-2.0

Closes #3744

See merge request GNOME/glib!4761
This commit is contained in:
Emmanuele Bassi
2025-08-29 18:26:18 +01:00
7 changed files with 191 additions and 112 deletions

View File

@@ -1795,7 +1795,7 @@ g_desktop_app_info_class_init (GDesktopAppInfoClass *klass)
/**
* GDesktopAppInfo:filename:
*
* The origin filename of this [class@Gio.DesktopAppInfo]
* The origin filename of this [class@GioUnix.DesktopAppInfo]
*/
g_object_class_install_property (gobject_class,
PROP_FILENAME,
@@ -2084,9 +2084,9 @@ g_desktop_app_info_load_file (GDesktopAppInfo *self)
* g_desktop_app_info_new_from_keyfile:
* @key_file: an opened [type@GLib.KeyFile]
*
* Creates a new [class@Gio.DesktopAppInfo].
* Creates a new [class@GioUnix.DesktopAppInfo].
*
* Returns: (nullable): a new [class@Gio.DesktopAppInfo] or `NULL` on error.
* Returns: (nullable): a new [class@GioUnix.DesktopAppInfo] or `NULL` on error.
*
* Since: 2.18
**/
@@ -2113,9 +2113,9 @@ g_desktop_app_info_new_from_keyfile (GKeyFile *key_file)
* @filename: (type filename): the path of a desktop file, in the GLib
* filename encoding
*
* Creates a new [class@Gio.DesktopAppInfo].
* Creates a new [class@GioUnix.DesktopAppInfo].
*
* Returns: (nullable): a new [class@Gio.DesktopAppInfo] or `NULL` on error.
* Returns: (nullable): a new [class@GioUnix.DesktopAppInfo] or `NULL` on error.
**/
GDesktopAppInfo *
g_desktop_app_info_new_from_filename (const char *filename)
@@ -2135,7 +2135,7 @@ g_desktop_app_info_new_from_filename (const char *filename)
* g_desktop_app_info_new:
* @desktop_id: the desktop file ID
*
* Creates a new [class@Gio.DesktopAppInfo] based on a desktop file ID.
* Creates a new [class@GioUnix.DesktopAppInfo] based on a desktop file ID.
*
* A desktop file ID is the basename of the desktop file, including the
* `.desktop` extension. GIO is looking for a desktop file with this name
@@ -2147,7 +2147,7 @@ g_desktop_app_info_new_from_filename (const char *filename)
* (i.e. a desktop ID of `kde-foo.desktop` will match
* `/usr/share/applications/kde/foo.desktop`).
*
* Returns: (nullable): a new [class@Gio.DesktopAppInfo], or `NULL` if no
* Returns: (nullable): a new [class@GioUnix.DesktopAppInfo], or `NULL` if no
* desktop file with that ID exists.
*/
GDesktopAppInfo *
@@ -2266,7 +2266,7 @@ g_desktop_app_info_get_display_name (GAppInfo *appinfo)
/**
* g_desktop_app_info_get_is_hidden:
* @info: a [class@Gio.DesktopAppInfo].
* @info: a [class@GioUnix.DesktopAppInfo].
*
* A desktop file is hidden if the
* [`Hidden` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-hidden)
@@ -2282,11 +2282,13 @@ g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info)
/**
* g_desktop_app_info_get_filename:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
*
* When @info was created from a known filename, return it. In some
* situations such as a [class@Gio.DesktopAppInfo] returned from
* [ctor@Gio.DesktopAppInfo.new_from_keyfile], this function will return `NULL`.
* When @info was created from a known filename, return it.
*
* In some situations such as a [class@GioUnix.DesktopAppInfo] returned
* from [ctor@GioUnix.DesktopAppInfo.new_from_keyfile], this function
* will return `NULL`.
*
* Returns: (nullable) (type filename): The full path to the file for @info,
* or `NULL` if not known.
@@ -2332,7 +2334,7 @@ g_desktop_app_info_get_icon (GAppInfo *appinfo)
/**
* g_desktop_app_info_get_categories:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
*
* Gets the categories from the desktop file.
*
@@ -2349,7 +2351,7 @@ g_desktop_app_info_get_categories (GDesktopAppInfo *info)
/**
* g_desktop_app_info_get_keywords:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
*
* Gets the keywords from the desktop file.
*
@@ -2366,7 +2368,7 @@ g_desktop_app_info_get_keywords (GDesktopAppInfo *info)
/**
* g_desktop_app_info_get_generic_name:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
*
* Gets the generic name from the desktop file.
*
@@ -2381,7 +2383,7 @@ g_desktop_app_info_get_generic_name (GDesktopAppInfo *info)
/**
* g_desktop_app_info_get_nodisplay:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
*
* Gets the value of the
* [`NoDisplay` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-nodisplay)
@@ -2400,7 +2402,7 @@ g_desktop_app_info_get_nodisplay (GDesktopAppInfo *info)
/**
* g_desktop_app_info_get_show_in:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @desktop_env: (nullable): a string specifying a desktop name
*
* Checks if the application info should be shown in menus that list available
@@ -3569,7 +3571,7 @@ g_desktop_app_info_launch (GAppInfo *appinfo,
/**
* g_desktop_app_info_launch_uris_as_manager_with_fds:
* @appinfo: a [class@Gio.DesktopAppInfo]
* @appinfo: a [class@GioUnix.DesktopAppInfo]
* @uris: (element-type utf8): List of URIs
* @launch_context: (nullable): a [class@Gio.AppLaunchContext]
* @spawn_flags: [flags@GLib.SpawnFlags], used for each process
@@ -3583,9 +3585,9 @@ g_desktop_app_info_launch (GAppInfo *appinfo,
* @stderr_fd: file descriptor to use for childs stderr, or `-1`
* @error: return location for a #GError, or `NULL`
*
* Equivalent to [method@Gio.DesktopAppInfo.launch_uris_as_manager] but allows
* you to pass in file descriptors for the stdin, stdout and stderr streams
* of the launched process.
* Equivalent to [method@GioUnix.DesktopAppInfo.launch_uris_as_manager] but
* allows you to pass in file descriptors for the stdin, stdout and stderr
* streams of the launched process.
*
* If application launching occurs via some non-spawn mechanism (e.g. D-Bus
* activation) then @stdin_fd, @stdout_fd and @stderr_fd are ignored.
@@ -3624,7 +3626,7 @@ g_desktop_app_info_launch_uris_as_manager_with_fds (GDesktopAppInfo *
/**
* g_desktop_app_info_launch_uris_as_manager:
* @appinfo: a [class@Gio.DesktopAppInfo]
* @appinfo: a [class@GioUnix.DesktopAppInfo]
* @uris: (element-type utf8): List of URIs
* @launch_context: (nullable): a [class@Gio.AppLaunchContext]
* @spawn_flags: [flags@GLib.SpawnFlags], used for each process
@@ -3686,7 +3688,7 @@ g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo,
* Sets the name of the desktop that the application is running in.
*
* This is used by [method@Gio.AppInfo.should_show] and
* [method@Gio.DesktopAppInfo.get_show_in] to evaluate the
* [method@GioUnix.DesktopAppInfo.get_show_in] to evaluate the
* [`OnlyShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-onlyshowin)
* and [`NotShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-notshowin)
* keys.
@@ -4699,7 +4701,7 @@ g_app_info_get_default_for_uri_scheme_impl (const char *uri_scheme)
* the `Implements` line of the desktop file of the application.
*
* Returns: (element-type GDesktopAppInfo) (transfer full): a list of
* [class@Gio.DesktopAppInfo] objects.
* [class@GioUnix.DesktopAppInfo] objects.
*
* Since: 2.42
**/
@@ -4752,11 +4754,12 @@ g_desktop_app_info_get_implementations (const gchar *interface)
* any time.
*
* None of the search results are subjected to the normal validation
* checks performed by [ctor@Gio.DesktopAppInfo.new] (for example, checking that
* the executable referenced by a result exists), and so it is possible for
* [ctor@Gio.DesktopAppInfo.new] to return `NULL` when passed an app ID returned
* by this function. It is expected that calling code will do this when
* subsequently creating a [class@Gio.DesktopAppInfo] for each result.
* checks performed by [ctor@GioUnix.DesktopAppInfo.new] (for example,
* checking that the executable referenced by a result exists), and so it is
* possible for [ctor@GioUnix.DesktopAppInfo.new] to return `NULL` when passed
* an app ID returned by this function. It is expected that calling code will
* do this when subsequently creating a [class@GioUnix.DesktopAppInfo] for
* each result.
*
* Returns: (array zero-terminated=1) (element-type GStrv) (transfer full): a
* list of strvs. Free each item with [func@GLib.strfreev] and free the outer
@@ -4882,7 +4885,7 @@ g_app_info_get_all_impl (void)
* #GDesktopAppInfoLookup is an opaque data structure and can only be accessed
* using the following functions.
*
* Deprecated: 2.28: The [iface@Gio.DesktopAppInfoLookup] interface is
* Deprecated: 2.28: The [iface@GioUnix.DesktopAppInfoLookup] interface is
* deprecated and unused by GIO.
**/
@@ -4900,14 +4903,14 @@ g_desktop_app_info_lookup_default_init (GDesktopAppInfoLookupInterface *iface)
/**
* g_desktop_app_info_lookup_get_default_for_uri_scheme:
* @lookup: a [iface@Gio.DesktopAppInfoLookup]
* @lookup: a [iface@GioUnix.DesktopAppInfoLookup]
* @uri_scheme: a string containing a URI scheme.
*
* Gets the default application for launching applications
* using this URI scheme for a particular [iface@Gio.DesktopAppInfoLookup]
* using this URI scheme for a particular [iface@GioUnix.DesktopAppInfoLookup]
* implementation.
*
* The [iface@Gio.DesktopAppInfoLookup] interface and this function is used
* The [iface@GioUnix.DesktopAppInfoLookup] interface and this function is used
* to implement [func@Gio.AppInfo.get_default_for_uri_scheme] backends
* in a GIO module. There is no reason for applications to use it
* directly. Applications should use
@@ -4916,7 +4919,7 @@ g_desktop_app_info_lookup_default_init (GDesktopAppInfoLookupInterface *iface)
* Returns: (transfer full) (nullable): [iface@Gio.AppInfo] for given
* @uri_scheme or `NULL` on error.
*
* Deprecated: 2.28: The [iface@Gio.DesktopAppInfoLookup] interface is
* Deprecated: 2.28: The [iface@GioUnix.DesktopAppInfoLookup] interface is
* deprecated and unused by GIO.
*/
GAppInfo *
@@ -4938,7 +4941,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
/**
* g_desktop_app_info_get_startup_wm_class:
* @info: a [class@Gio.DesktopAppInfo] that supports startup notify
* @info: a [class@GioUnix.DesktopAppInfo] that supports startup notify
*
* Retrieves the `StartupWMClass` field from @info. This represents the
* `WM_CLASS` property of the main window of the application, if launched
@@ -4959,7 +4962,7 @@ g_desktop_app_info_get_startup_wm_class (GDesktopAppInfo *info)
/**
* g_desktop_app_info_get_string:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @key: the key to look up
*
* Looks up a string value in the keyfile backing @info.
@@ -4983,7 +4986,7 @@ g_desktop_app_info_get_string (GDesktopAppInfo *info,
/**
* g_desktop_app_info_get_locale_string:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @key: the key to look up
*
* Looks up a localized string value in the keyfile backing @info
@@ -5010,7 +5013,7 @@ g_desktop_app_info_get_locale_string (GDesktopAppInfo *info,
/**
* g_desktop_app_info_get_boolean:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @key: the key to look up
*
* Looks up a boolean value in the keyfile backing @info.
@@ -5033,7 +5036,7 @@ g_desktop_app_info_get_boolean (GDesktopAppInfo *info,
/**
* g_desktop_app_info_get_string_list:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @key: the key to look up
* @length: (out) (optional): return location for the number of returned
* strings, or `NULL`
@@ -5061,7 +5064,7 @@ g_desktop_app_info_get_string_list (GDesktopAppInfo *info,
/**
* g_desktop_app_info_has_key:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @key: the key to look up
*
* Returns whether @key exists in the `Desktop Entry` group
@@ -5085,7 +5088,7 @@ g_desktop_app_info_has_key (GDesktopAppInfo *info,
/**
* g_desktop_app_info_list_actions:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
*
* Returns the list of
* [additional application actions](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s11.html)
@@ -5122,9 +5125,9 @@ app_info_has_action (GDesktopAppInfo *info,
/**
* g_desktop_app_info_get_action_name:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @action_name: the name of the action as from
* [method@Gio.DesktopAppInfo.list_actions]
* [method@GioUnix.DesktopAppInfo.list_actions]
*
* Gets the user-visible display name of the
* [additional application actions](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s11.html)
@@ -5165,15 +5168,15 @@ g_desktop_app_info_get_action_name (GDesktopAppInfo *info,
/**
* g_desktop_app_info_launch_action:
* @info: a [class@Gio.DesktopAppInfo]
* @info: a [class@GioUnix.DesktopAppInfo]
* @action_name: the name of the action as from
* [method@Gio.DesktopAppInfo.list_actions]
* [method@GioUnix.DesktopAppInfo.list_actions]
* @launch_context: (nullable): a [class@Gio.AppLaunchContext]
*
* Activates the named application action.
*
* You may only call this function on action names that were
* returned from [method@Gio.DesktopAppInfo.list_actions].
* returned from [method@GioUnix.DesktopAppInfo.list_actions].
*
* Note that if the main entry of the desktop file indicates that the
* application supports startup notification, and @launch_context is

View File

@@ -1867,7 +1867,7 @@ g_unix_mount_entries_get (guint64 *time_read)
* @n_entries_out: (optional) (out caller-allocates): return location for the
* number of mount entries returned
*
* Gets an array of [struct@Gio.UnixMountEntry]s containing the Unix mounts
* Gets an array of [struct@GioUnix.MountEntry]s containing the Unix mounts
* listed in @table_path.
*
* This is a generalized version of [func@GioUnix.mount_entries_get], mainly
@@ -1899,7 +1899,7 @@ g_unix_mounts_get_from_file (const char *table_path,
* @n_entries_out: (optional) (out caller-allocates): return location for the
* number of mount entries returned
*
* Gets an array of [struct@Gio.UnixMountEntry]s containing the Unix mounts
* Gets an array of [struct@GioUnix.MountEntry]s containing the Unix mounts
* listed in @table_path.
*
* This is a generalized version of [func@GioUnix.mount_entries_get], mainly
@@ -2126,7 +2126,7 @@ g_unix_mount_points_get (guint64 *time_read)
* @n_points_out: (optional) (out caller-allocates): return location for the
* number of mount points returned
*
* Gets an array of [struct@Gio.UnixMountPoint]s containing the Unix mount
* Gets an array of [struct@GioUnix.MountPoint]s containing the Unix mount
* points listed in @table_path.
*
* This is a generalized version of [func@GioUnix.mount_points_get], mainly
@@ -2722,7 +2722,7 @@ g_unix_mount_monitor_new (void)
*
* Frees a Unix mount.
*
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.free] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.free] instead.
*/
void
g_unix_mount_free (GUnixMountEntry *mount_entry)
@@ -2759,7 +2759,7 @@ g_unix_mount_entry_free (GUnixMountEntry *mount_entry)
*
* Returns: (transfer full): a new [struct@GioUnix.MountEntry]
* Since: 2.54
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.copy] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.copy] instead.
*/
GUnixMountEntry *
g_unix_mount_copy (GUnixMountEntry *mount_entry)
@@ -2850,7 +2850,7 @@ g_unix_mount_point_copy (GUnixMountPoint *mount_point)
*
* Returns: `1`, `0` or `-1` if @mount1 is greater than, equal to,
* or less than @mount2, respectively
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.compare] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.compare] instead.
*/
gint
g_unix_mount_compare (GUnixMountEntry *mount1,
@@ -2912,7 +2912,7 @@ g_unix_mount_entry_compare (GUnixMountEntry *mount1,
* Gets the mount path for a Unix mount.
*
* Returns: (type filename): the mount path for @mount_entry
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.get_mount_path] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.get_mount_path] instead.
*/
const gchar *
g_unix_mount_get_mount_path (GUnixMountEntry *mount_entry)
@@ -2944,7 +2944,7 @@ g_unix_mount_entry_get_mount_path (GUnixMountEntry *mount_entry)
* Gets the device path for a Unix mount.
*
* Returns: (type filename): a string containing the device path
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.get_device_path] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.get_device_path] instead.
*/
const gchar *
g_unix_mount_get_device_path (GUnixMountEntry *mount_entry)
@@ -2973,8 +2973,9 @@ g_unix_mount_entry_get_device_path (GUnixMountEntry *mount_entry)
* g_unix_mount_get_root_path:
* @mount_entry: a [struct@GioUnix.MountEntry]
*
* Gets the root of the mount within the filesystem. This is useful e.g. for
* mounts created by bind operation, or btrfs subvolumes.
* Gets the root of the mount within the filesystem.
*
* This is useful e.g. for mounts created by bind operation, or btrfs subvolumes.
*
* For example, the root path is equal to `/` for a mount created by
* `mount /dev/sda1 /mnt/foo` and `/bar` for
@@ -2982,7 +2983,7 @@ g_unix_mount_entry_get_device_path (GUnixMountEntry *mount_entry)
*
* Returns: (nullable): a string containing the root, or `NULL` if not supported
* Since: 2.60
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.get_root_path] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.get_root_path] instead.
*/
const gchar *
g_unix_mount_get_root_path (GUnixMountEntry *mount_entry)
@@ -3019,7 +3020,7 @@ g_unix_mount_entry_get_root_path (GUnixMountEntry *mount_entry)
* Gets the filesystem type for the Unix mount.
*
* Returns: a string containing the file system type
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.get_fs_type] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.get_fs_type] instead.
*/
const gchar *
g_unix_mount_get_fs_type (GUnixMountEntry *mount_entry)
@@ -3052,13 +3053,13 @@ g_unix_mount_entry_get_fs_type (GUnixMountEntry *mount_entry)
*
* For example: `rw,relatime,seclabel,data=ordered`.
*
* This is similar to [func@GioUnix.MountPoint.get_options], but it takes
* This is similar to [method@GioUnix.MountPoint.get_options], but it takes
* a [struct@GioUnix.MountEntry] as an argument.
*
* Returns: (nullable): a string containing the options, or `NULL` if not
* available.
* Since: 2.58
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.get_options] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.get_options] instead.
*/
const gchar *
g_unix_mount_get_options (GUnixMountEntry *mount_entry)
@@ -3074,7 +3075,7 @@ g_unix_mount_get_options (GUnixMountEntry *mount_entry)
*
* For example: `rw,relatime,seclabel,data=ordered`.
*
* This is similar to [func@GioUnix.MountPoint.get_options], but it takes
* This is similar to [method@GioUnix.MountPoint.get_options], but it takes
* a [struct@GioUnix.MountEntry] as an argument.
*
* Returns: (nullable): a string containing the options, or `NULL` if not
@@ -3096,7 +3097,7 @@ g_unix_mount_entry_get_options (GUnixMountEntry *mount_entry)
* Checks if a Unix mount is mounted read only.
*
* Returns: true if @mount_entry is read only; false otherwise
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.is_readonly] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.is_readonly] instead.
*/
gboolean
g_unix_mount_is_readonly (GUnixMountEntry *mount_entry)
@@ -3135,7 +3136,7 @@ g_unix_mount_entry_is_readonly (GUnixMountEntry *mount_entry)
* file system types and device paths are ignored.
*
* Returns: true if the Unix mount is for a system path; false otherwise
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.is_system_internal] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.is_system_internal] instead.
*/
gboolean
g_unix_mount_is_system_internal (GUnixMountEntry *mount_entry)
@@ -3527,7 +3528,7 @@ type_to_icon (GUnixMountType type, gboolean is_mount_point, gboolean use_symboli
* The result is a translated string.
*
* Returns: (transfer full): a newly allocated translated string
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.guess_name] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.guess_name] instead.
*/
gchar *
g_unix_mount_guess_name (GUnixMountEntry *mount_entry)
@@ -3566,7 +3567,7 @@ g_unix_mount_entry_guess_name (GUnixMountEntry *mount_entry)
* Guesses the icon of a Unix mount entry.
*
* Returns: (transfer full): a [iface@Gio.Icon]
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.guess_icon] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.guess_icon] instead.
*/
GIcon *
g_unix_mount_guess_icon (GUnixMountEntry *mount_entry)
@@ -3597,7 +3598,7 @@ g_unix_mount_entry_guess_icon (GUnixMountEntry *mount_entry)
*
* Returns: (transfer full): a [iface@Gio.Icon]
* Since: 2.34
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.guess_symbolic_icon] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.guess_symbolic_icon] instead.
*/
GIcon *
g_unix_mount_guess_symbolic_icon (GUnixMountEntry *mount_entry)
@@ -3679,7 +3680,7 @@ g_unix_mount_point_guess_symbolic_icon (GUnixMountPoint *mount_point)
* Guesses whether a Unix mount entry can be ejected.
*
* Returns: true if @mount_entry is deemed to be ejectable; false otherwise
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.guess_can_eject] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.guess_can_eject] instead.
*/
gboolean
g_unix_mount_guess_can_eject (GUnixMountEntry *mount_entry)
@@ -3716,7 +3717,7 @@ g_unix_mount_entry_guess_can_eject (GUnixMountEntry *mount_entry)
* Guesses whether a Unix mount entry should be displayed in the UI.
*
* Returns: true if @mount_entry is deemed to be displayable; false otherwise
* Deprecated: 2.84: Use [func@GioUnix.MountEntry.guess_should_display] instead.
* Deprecated: 2.84: Use [method@GioUnix.MountEntry.guess_should_display] instead.
*/
gboolean
g_unix_mount_guess_should_display (GUnixMountEntry *mount_entry)

View File

@@ -135,6 +135,15 @@ struct _GIRepository
G_DEFINE_TYPE (GIRepository, gi_repository, G_TYPE_OBJECT);
static GITypelib *
require_internal (GIRepository *repository,
const char *namespace,
const char *version,
GIRepositoryLoadFlags flags,
const char * const *search_paths,
size_t n_search_paths,
GError **error);
#ifdef G_PLATFORM_WIN32
#include <windows.h>
@@ -596,6 +605,10 @@ load_dependencies_recurse (GIRepository *repository,
{
int i;
const char * const *search_path =
(const char * const *) repository->typelib_search_path->pdata;
gsize search_path_len = repository->typelib_search_path->len;
for (i = 0; dependencies[i]; i++)
{
char *dependency = dependencies[i];
@@ -608,8 +621,9 @@ load_dependencies_recurse (GIRepository *repository,
dependency_namespace = g_strndup (dependency, (size_t) (last_dash - dependency));
dependency_version = last_dash+1;
if (!gi_repository_require (repository, dependency_namespace, dependency_version,
0, error))
if (!require_internal (repository, dependency_namespace, dependency_version,
0, search_path, search_path_len,
error))
{
g_free (dependency_namespace);
g_strfreev (dependencies);
@@ -649,7 +663,7 @@ static const char *
register_internal (GIRepository *repository,
const char *source,
gboolean lazy,
GITypelib *typelib,
GITypelib *typelib,
GError **error)
{
Header *header;
@@ -2009,6 +2023,54 @@ require_internal (GIRepository *repository,
return ret;
}
static GITypelib *
require_internal_with_platform_data (GIRepository *repository,
const char *namespace,
const char *version,
GIRepositoryLoadFlags flags,
const char * const *search_paths,
size_t search_paths_len,
GError **error)
{
GITypelib *typelib;
typelib = require_internal (repository, namespace, version, flags,
search_paths, search_paths_len,
error);
if (!typelib)
return NULL;
#if defined (G_OS_UNIX) || defined (G_OS_WIN32)
/* Backward compatibility hack: if we're loading Gio-2.0, we automatically
* load the platform specific introspection data that used to exist inside
* Gio-2.0
*/
if (g_str_equal (namespace, "Gio") &&
(!version || g_str_equal (version, "2.0")))
{
GError *local_error = NULL;
const char *platform_namespace;
# if defined (G_OS_UNIX)
platform_namespace = "GioUnix";
# elif defined (G_OS_WIN32)
platform_namespace = "GioWin32";
# endif /* defined (G_OS_LINUX) */
if (!require_internal (repository, platform_namespace, version, flags,
search_paths, search_paths_len,
&local_error))
{
g_critical ("Unable to load platform-specific GIO introspection data: %s",
local_error->message);
g_error_free (local_error);
}
}
#endif /* defined(G_OS_UNIX) || defined(G_OS_WIN32) */
return typelib;
}
/**
* gi_repository_require:
* @repository: A #GIRepository
@@ -2029,19 +2091,24 @@ require_internal (GIRepository *repository,
* Since: 2.80
*/
GITypelib *
gi_repository_require (GIRepository *repository,
const char *namespace,
const char *version,
GIRepositoryLoadFlags flags,
GError **error)
gi_repository_require (GIRepository *repository,
const char *namespace,
const char *version,
GIRepositoryLoadFlags flags,
GError **error)
{
GITypelib *typelib;
const char * const *search_paths;
size_t search_paths_len;
typelib = require_internal (repository, namespace, version, flags,
(const char * const *) repository->typelib_search_path->pdata,
repository->typelib_search_path->len, error);
g_return_val_if_fail (GI_IS_REPOSITORY (repository), NULL);
g_return_val_if_fail (namespace != NULL, NULL);
return typelib;
search_paths = (const char * const *) repository->typelib_search_path->pdata;
search_paths_len = repository->typelib_search_path->len;
return require_internal_with_platform_data (repository, namespace, version, flags,
search_paths, search_paths_len,
error);
}
/**
@@ -2075,8 +2142,12 @@ gi_repository_require_private (GIRepository *repository,
{
const char * const search_path[] = { typelib_dir, NULL };
return require_internal (repository, namespace, version, flags,
search_path, 1, error);
g_return_val_if_fail (GI_IS_REPOSITORY (repository), NULL);
g_return_val_if_fail (namespace != NULL, NULL);
return require_internal_with_platform_data (repository, namespace, version, flags,
search_path, 1,
error);
}
static gboolean

View File

@@ -234,27 +234,6 @@ gio_gir_args = [
'--symbol-prefix=gio',
]
# For API compatibility reasons, Gio-2.0.gir needs to contain the platform
# specific APIs which are also present in the (newer) GioUnix-2.0.gir and
# GioWin32-2.0.gir repositories.
# See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3892#note_2001361
# These can be dropped when GIO next breaks API (i.e. with Gio-3.0.gir).
if host_system == 'windows'
gio_gir_sources += [ gio_win32_include_headers, win32_sources ]
foreach h: gio_win32_include_headers
gio_gir_args += '--c-include=gio/' + fs.name(h)
endforeach
gio_gir_packages += 'gio-windows-2.0'
gio_gir_args += '--pkg=gio-windows-2.0'
else
gio_gir_sources += [ gio_unix_include_headers, unix_sources ]
foreach h: gio_unix_include_headers
gio_gir_args += '--c-include=gio/' + fs.name(h)
endforeach
gio_gir_packages += 'gio-unix-2.0'
gio_gir_args += '--pkg=gio-unix-2.0'
endif
gio_gir = gnome.generate_gir(libgio,
sources: gio_gir_sources,
namespace: 'Gio',

View File

@@ -210,6 +210,32 @@ test_callable_info_static_vfunc (RepositoryFixture *fx,
gi_base_info_unref ((GIBaseInfo *) vfunc_info);
}
#ifdef G_OS_UNIX
static void
test_callable_info_platform_unix_is_method (RepositoryFixture *fx,
const void *unused)
{
GIBaseInfo *info;
GIFunctionInfo *func_info;
g_test_message ("Checking DesktopAppInfo in Gio");
info = gi_repository_find_by_name (fx->repository, "Gio", "DesktopAppInfo");
g_assert_null (info);
g_test_message ("Checking DesktopAppInfo in GioUnix");
info = gi_repository_find_by_name (fx->repository, "GioUnix", "DesktopAppInfo");
g_assert_nonnull (info);
/* Must provide Gio.DesktopAppInfo methods */
func_info = gi_object_info_find_method (GI_OBJECT_INFO (info), "has_key");
g_assert_true (gi_callable_info_is_method (GI_CALLABLE_INFO (func_info)));
g_assert_nonnull (func_info);
g_clear_pointer (&func_info, gi_base_info_unref);
gi_base_info_unref (info);
}
#endif
int
main (int argc, char **argv)
{
@@ -221,5 +247,9 @@ main (int argc, char **argv)
ADD_REPOSITORY_TEST ("/callable-info/static-method", test_callable_info_static_method, &typelib_load_spec_gio);
ADD_REPOSITORY_TEST ("/callable-info/static-vfunc", test_callable_info_static_vfunc, &typelib_load_spec_gio);
#ifdef G_OS_UNIX
ADD_REPOSITORY_TEST ("/callable-info/platform/unix/is-method", test_callable_info_platform_unix_is_method, &typelib_load_spec_gio);
#endif
return g_test_run ();
}

View File

@@ -926,7 +926,7 @@ main (int argc,
ADD_REPOSITORY_TEST ("/repository/constructor-return-type", test_repository_constructor_return_type, &typelib_load_spec_gobject);
ADD_REPOSITORY_TEST ("/repository/enum-info-c-identifier", test_repository_enum_info_c_identifier, &typelib_load_spec_glib);
ADD_REPOSITORY_TEST ("/repository/enum-info-static-methods", test_repository_enum_info_static_methods, &typelib_load_spec_glib);
ADD_REPOSITORY_TEST ("/repository/error-quark", test_repository_error_quark, &typelib_load_spec_gio_platform);
ADD_REPOSITORY_TEST ("/repository/error-quark", test_repository_error_quark, &typelib_load_spec_gio);
ADD_REPOSITORY_TEST ("/repository/flags-info-c-identifier", test_repository_flags_info_c_identifier, &typelib_load_spec_gobject);
ADD_REPOSITORY_TEST ("/repository/fundamental-ref-func", test_repository_fundamental_ref_func, &typelib_load_spec_gobject);
ADD_REPOSITORY_TEST ("/repository/instance-method-ownership-transfer", test_repository_instance_method_ownership_transfer, &typelib_load_spec_gio);
@@ -936,8 +936,8 @@ main (int argc,
ADD_REPOSITORY_TEST ("/repository/vfunc-info-with-no-invoker", test_repository_vfunc_info_with_no_invoker, &typelib_load_spec_gobject);
ADD_REPOSITORY_TEST ("/repository/vfunc-info-with-invoker-on-interface", test_repository_vfunc_info_with_invoker_on_interface, &typelib_load_spec_gio);
ADD_REPOSITORY_TEST ("/repository/vfunc-info-with-invoker-on-object", test_repository_vfunc_info_with_invoker_on_object, &typelib_load_spec_gio);
ADD_REPOSITORY_TEST ("/repository/find-by-gtype", test_repository_find_by_gtype, &typelib_load_spec_gio_platform);
ADD_REPOSITORY_TEST ("/repository/loaded-namespaces", test_repository_loaded_namespaces, &typelib_load_spec_gio_platform);
ADD_REPOSITORY_TEST ("/repository/find-by-gtype", test_repository_find_by_gtype, &typelib_load_spec_gio);
ADD_REPOSITORY_TEST ("/repository/loaded-namespaces", test_repository_loaded_namespaces, &typelib_load_spec_gio);
g_test_add_func ("/repository/dup_default", test_repository_dup_default);
return g_test_run ();

View File

@@ -36,11 +36,6 @@ typedef struct
static const TypelibLoadSpec typelib_load_spec_glib = { "GLib", "2.0" };
static const TypelibLoadSpec typelib_load_spec_gobject = { "GObject", "2.0" };
static const TypelibLoadSpec typelib_load_spec_gio = { "Gio", "2.0" };
#if defined(G_OS_UNIX)
static const TypelibLoadSpec typelib_load_spec_gio_platform = { "GioUnix", "2.0" };
#elif defined(G_OS_WIN32)
static const TypelibLoadSpec typelib_load_spec_gio_platform = { "GioWin32", "2.0" };
#endif
void repository_init (int *argc,
char **argv[]);