Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package jsonrpc-glib for openSUSE:Factory checked in at 2022-03-23 20:17:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/jsonrpc-glib (Old) and /work/SRC/openSUSE:Factory/.jsonrpc-glib.new.25692 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jsonrpc-glib" Wed Mar 23 20:17:40 2022 rev:12 rq:963618 version:3.42.0 Changes: -------- --- /work/SRC/openSUSE:Factory/jsonrpc-glib/jsonrpc-glib.changes 2021-09-29 20:20:05.223090494 +0200 +++ /work/SRC/openSUSE:Factory/.jsonrpc-glib.new.25692/jsonrpc-glib.changes 2022-03-23 20:19:40.286506653 +0100 @@ -1,0 +2,25 @@ +Sat Mar 19 05:39:54 UTC 2022 - Luciano Santos <[email protected]> + +- Update to version 3.42.0: + + Documentation improvements to use gi-docgen. + + Introspection fixes. +- Replace gtk-doc with pkgconfig(gi-docgen) build requirement as + the new improved way for generating the API documentation. +- Add temporary hacky SED commands to fix the gi-docgen generated + documentation ending up under /usr/share/doc/ rather than + /usr/share/doc/PKG_NAME. +- Add jsonrpc-glib-rpmlintrc to filter out the: + "obsolete-not-provided typelib-1_0-Jsonrpc-1.0" since there's no + need to do so as we already used the capability typelib(foobar), + for requirements, before the renaming. + +------------------------------------------------------------------- +Fri Jan 7 22:53:13 UTC 2022 - Bj??rn Lie <[email protected]> + +- Update to version 3.41.0: + + Improvements to JSONRPC_MESSAGE_PUT_VARIANT(). +- Replace post(un) handling with ldconfig_scriptlets macro. +- Add check section, meson_test macro and pass enable_tests=true to + meson, run tests during build. + +------------------------------------------------------------------- Old: ---- jsonrpc-glib-3.40.0.tar.xz New: ---- jsonrpc-glib-3.42.0.tar.xz jsonrpc-glib-rpmlintrc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ jsonrpc-glib.spec ++++++ --- /var/tmp/diff_new_pack.iCtRpZ/_old 2022-03-23 20:19:40.746506913 +0100 +++ /var/tmp/diff_new_pack.iCtRpZ/_new 2022-03-23 20:19:40.750506916 +0100 @@ -1,7 +1,7 @@ # # spec file for package jsonrpc-glib # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,18 +17,22 @@ %define sover 1_0-1 + Name: jsonrpc-glib -Version: 3.40.0 +Version: 3.42.0 Release: 0 Summary: Library to communicate with JSON-RPC based peers License: LGPL-2.1-or-later Group: Development/Libraries/GNOME URL: https://gitlab.gnome.org/GNOME/jsonrpc-glib -Source0: https://download.gnome.org/sources/jsonrpc-glib/3.40/%{name}-%{version}.tar.xz +Source0: https://download.gnome.org/sources/jsonrpc-glib/3.42/%{name}-%{version}.tar.xz +Source1: jsonrpc-glib-rpmlintrc -BuildRequires: gtk-doc BuildRequires: meson >= 0.49.2 BuildRequires: pkgconfig +# Used by enable_gtk_doc meson option -- since 3.42.0 +BuildRequires: pkgconfig(gi-docgen) +# BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(glib-2.0) @@ -86,21 +90,29 @@ %prep %autosetup +### Temporary Hack +# Fix documentation directory (we don't use /usr/share/doc/pkg_name). +# TODO -- Make an upstreamable patch to make use of a 'docdir' meson option. +sed -i -r "/^datadir/s/ = join_paths\(prefix, (get_option\('datadir'\))\)/ = \1/" meson.build +sed -i -r "/^docs_dir/s|(.*)|\1 / 'packages'|" doc/meson.build + %build %meson \ -Denable_profiling=false \ -Dwith_introspection=true \ -Dwith_vapi=true \ -Denable_gtk_doc=true \ - -Denable_tests=false \ + -Denable_tests=true \ %{nil} %meson_build %install %meson_install -%post -n libjsonrpc-glib-%{sover} -p /sbin/ldconfig -%postun -n libjsonrpc-glib-%{sover} -p /sbin/ldconfig +%ldconfig_scriptlets -n libjsonrpc-glib-%{sover} + +%check +%meson_test %files -n libjsonrpc-glib-%{sover} %license COPYING @@ -112,7 +124,6 @@ %files devel %doc AUTHORS CONTRIBUTING.md README.md -%doc %{_datadir}/gtk-doc/html/jsonrpc-glib/ %dir %{_includedir}/jsonrpc-glib-1.0 %{_includedir}/jsonrpc-glib-1.0/jsonrpc-*.h %{_libdir}/libjsonrpc-glib-1.0.so @@ -121,5 +132,6 @@ %{_datadir}/vala/vapi/jsonrpc-glib-1.0.deps %{_datadir}/vala/vapi/jsonrpc-glib-1.0.vapi %{_libdir}/pkgconfig/jsonrpc-glib-1.0.pc +%{_defaultdocdir}/jsonrpc-glib/ %changelog ++++++ jsonrpc-glib-3.40.0.tar.xz -> jsonrpc-glib-3.42.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/.gitignore new/jsonrpc-glib-3.42.0/.gitignore --- old/jsonrpc-glib-3.40.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/jsonrpc-glib-3.42.0/.gitignore 2022-03-19 00:10:13.000000000 +0100 @@ -0,0 +1,4 @@ +build +*.swp +*.swo +*~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/.gitlab-ci.yml new/jsonrpc-glib-3.42.0/.gitlab-ci.yml --- old/jsonrpc-glib-3.40.0/.gitlab-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/jsonrpc-glib-3.42.0/.gitlab-ci.yml 2022-03-19 00:10:13.000000000 +0100 @@ -0,0 +1,40 @@ +image: fedora:latest +stages: + - test + - docs + - deploy + +build: + stage: test + script: + - sudo dnf install 'dnf-command(builddep)' -y + - sudo dnf builddep jsonrpc-glib-devel -y + - meson _build + - ninja -C _build + - ninja -C _build test + +reference: + stage: docs + script: + - sudo dnf install 'dnf-command(builddep)' -y + - sudo dnf builddep jsonrpc-glib-devel -y + - sudo dnf install gi-docgen -y + - mkdir -p pfx/ + - meson --prefix=${PWD}/pfx -Denable_gtk_doc=true _build + - ninja -C _build install + - mkdir -p _reference/ + - mv pfx/share/doc/jsonrpc-glib/* _reference/ + artifacts: + paths: + - _reference + +pages: + stage: deploy + needs: ['reference'] + script: + - mv _reference public + artifacts: + paths: + - public + only: + - main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/NEWS new/jsonrpc-glib-3.42.0/NEWS --- old/jsonrpc-glib-3.40.0/NEWS 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/NEWS 2022-03-19 00:10:13.000000000 +0100 @@ -1,4 +1,19 @@ ============== +Version 3.42.0 +============== + + ??? Documentation improvements to use gi-docgen + ??? Introspection fixes + +============== +Version 3.41.0 +============== + +This is a development release. + + ??? Improvements to JSONRPC_MESSAGE_PUT_VARIANT() + +============== Version 3.40.0 ============== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/README.md new/jsonrpc-glib-3.42.0/README.md --- old/jsonrpc-glib-3.40.0/README.md 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/README.md 2022-03-19 00:10:13.000000000 +0100 @@ -17,5 +17,4 @@ ## Documentation -You can read the documentation online at https://people.gnome.org/~chergert/docs/jsonrpc-glib/ - +Nightly documentations can be found at https://gnome.pages.gitlab.gnome.org/jsonrpc-glib/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/doc/Jsonrpc.toml.in new/jsonrpc-glib-3.42.0/doc/Jsonrpc.toml.in --- old/jsonrpc-glib-3.40.0/doc/Jsonrpc.toml.in 1970-01-01 01:00:00.000000000 +0100 +++ new/jsonrpc-glib-3.42.0/doc/Jsonrpc.toml.in 2022-03-19 00:10:13.000000000 +0100 @@ -0,0 +1,38 @@ +[library] +version = "@version@" +browse_url = "https://gitlab.gnome.org/GNOME/jsonrpc-glib/" +repository_url = "https://gitlab.gnome.org/GNOME/jsonrpc-glib.git" +website_url = "https://gitlab.gnome.org/GNOME/jsonrpc-glib/" +docs_url = "https://gnome.pages.gitlab.gnome.org/jsonrpc-glib/" +authors = "Christian Hergert" +license = "LGPL-2.1" +description = "A GNOME library to communicate with JSON-RPC based peers" +dependencies = [ "GObject-2.0", "GLib-2.0", "Gio-2.0"] +devhelp = true +search_index = true + + [dependencies."GObject-2.0"] + name = "GObject" + description = "The base type system library" + docs_url = "https://docs.gtk.org/gobject/" + + [dependencies."GLib-2.0"] + name = "GLib" + description = "The base type system library" + docs_url = "https://docs.gtk.org/glib/" + + [dependencies."Gio-2.0"] + name = "GIO" + description = "GObject Interfaces and Objects, Networking, IPC, and I/O" + docs_url = "https://docs.gtk.org/gio/" + +[theme] +name = "basic" +show_index_summary = true +show_class_hierarchy = true + +[source-location] +base_url = "https://gitlab.gnome.org/GNOME/jsonrpc-glib/-/blob/main/" + +[extra] +urlmap_file = "urlmap.js" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/doc/jsonrpc-glib-docs.sgml new/jsonrpc-glib-3.42.0/doc/jsonrpc-glib-docs.sgml --- old/jsonrpc-glib-3.40.0/doc/jsonrpc-glib-docs.sgml 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/doc/jsonrpc-glib-docs.sgml 1970-01-01 01:00:00.000000000 +0100 @@ -1,78 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" - "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" -[ - <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> - <!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent"> - %gtkdocentities; -]> -<book id="index"> - <bookinfo> - <title>&package_name; Reference Manual</title> - <releaseinfo> - <para>This document is the API reference for for &package_name; &package_version;.</para> - <para> - The latest version of this API reference is also available - <ulink role="online-location" url="https://developer.gnome.org/jsonrpc/">online</ulink>. - </para> - <para> - If you find any issues in this API reference, please report it - using <ulink type="http" url="&package_bugreport;">the online - bug reporting tool</ulink> at bugzilla.gnome.org. - </para> - </releaseinfo> - - <copyright> - <year>2016-2017</year> - <holder>Christian Hergert</holder> - </copyright> - - <legalnotice> - <para> - Permission is granted to copy, distribute and/or modify this - document under the terms of the <citetitle>GNU Free - Documentation License</citetitle>, Version 1.1 or any later - version published by the Free Software Foundation with no - Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. You may obtain a copy of the <citetitle>GNU Free - Documentation License</citetitle> from the Free Software - Foundation by visiting <ulink type="http" - url="http://www.fsf.org">their Web site</ulink> or by writing - to: - - <address> - The Free Software Foundation, Inc., - <street>59 Temple Place</street> - Suite 330, - <city>Boston</city>, <state>MA</state> <postcode>02111-1307</postcode>, - <country>USA</country> - </address> - </para> - </legalnotice> - </bookinfo> - - <chapter> - <title>Jsonrpc-GLib API Reference</title> - <xi:include href="xml/jsonrpc-client.xml"/> - <xi:include href="xml/jsonrpc-server.xml"/> - <xi:include href="xml/jsonrpc-message.xml"/> - <xi:include href="xml/jsonrpc-input-stream.xml"/> - <xi:include href="xml/jsonrpc-output-stream.xml"/> - </chapter> - - <chapter id="object-tree"> - <title>Object Hierarchy</title> - <xi:include href="xml/tree_index.sgml"/> - </chapter> - - <index id="api-index-full"> - <title>API Index</title> - <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include> - </index> - - <index id="deprecated-api-index" role="deprecated"> - <title>Index of deprecated API</title> - <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include> - </index> - - <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> -</book> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/doc/meson.build new/jsonrpc-glib-3.42.0/doc/meson.build --- old/jsonrpc-glib-3.40.0/doc/meson.build 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/doc/meson.build 2022-03-19 00:10:13.000000000 +0100 @@ -1,38 +1,46 @@ -subdir('xml') - -private_headers = [ - 'config.h', - 'jsonrpc-glib.h', - 'jsonrpc-version.h', +if get_option('enable_gtk_doc') and not get_option('with_introspection') + error('API reference requires introspection.') +endif + +toml_conf = configuration_data() +toml_conf.set('version', meson.project_version()) + +gidocgen = find_program('gi-docgen', required: get_option('enable_gtk_doc')) + +gidocgen_common_args = [ + '--quiet', + '--no-namespace-dir', ] -glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix') -glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') -json_prefix = dependency('json-glib-1.0').get_pkgconfig_variable('prefix') -json_docpath = join_paths(json_prefix, 'share', 'gtk-doc', 'html') -docpath = join_paths(get_option('datadir'), 'gtk-doc', 'html') - -gnome.gtkdoc('jsonrpc-glib', - main_xml: 'jsonrpc-glib-docs.sgml', - src_dir: [ - join_paths(meson.source_root(), 'src'), - join_paths(meson.build_root(), 'src'), - ], - - dependencies: libjsonrpc_glib_dep, - gobject_typesfile: 'jsonrpc-glib.types', - scan_args: [ - '--rebuild-types', - '--ignore-decorators=_JSONRPC_EXTERN', - '--ignore-headers=' + ' '.join(private_headers), - ], - - fixxref_args: [ - '--html-dir=@0@'.format(docpath), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), - '--extra-dir=@0@'.format(json_docpath), - ], - install: true) - +if get_option('werror') + gidocgen_common_args += ['--fatal-warnings'] +endif + +docs_dir = datadir / 'doc' + +if get_option('enable_gtk_doc') + source_toml = configure_file( + input: 'Jsonrpc.toml.in', + output: 'Jsonrpc.toml', + configuration: toml_conf, + install: true, + install_dir: docs_dir / 'jsonrpc-glib', + ) + + custom_target('jsonrpc-glib-doc', + input: [ source_toml, libjsonrpc_glib_gir[0] ], + output: 'jsonrpc-glib', + command: [ + gidocgen, + 'generate', + gidocgen_common_args, + '--config=@INPUT0@', + '--output-dir=@OUTPUT@', + '--content-dir=@0@'.format(meson.current_source_dir()), + '@INPUT1@', + ], + build_by_default: true, + install: true, + install_dir: docs_dir, + ) +endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/doc/urlmap.js new/jsonrpc-glib-3.42.0/doc/urlmap.js --- old/jsonrpc-glib-3.40.0/doc/urlmap.js 1970-01-01 01:00:00.000000000 +0100 +++ new/jsonrpc-glib-3.42.0/doc/urlmap.js 2022-03-19 00:10:13.000000000 +0100 @@ -0,0 +1,6 @@ +// A map between namespaces and base URLs for their online documentation +baseURLs = [ + [ 'GLib', 'https://docs.gtk.org/glib/' ], + [ 'GObject', 'https://docs.gtk.org/gobject/' ], + [ 'Gio', 'https://docs.gtk.org/gio/' ], +] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/doc/xml/gtkdocentities.ent.in new/jsonrpc-glib-3.42.0/doc/xml/gtkdocentities.ent.in --- old/jsonrpc-glib-3.40.0/doc/xml/gtkdocentities.ent.in 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/doc/xml/gtkdocentities.ent.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,8 +0,0 @@ -<!ENTITY package "@PACKAGE@"> -<!ENTITY package_bugreport "@PACKAGE_BUGREPORT@"> -<!ENTITY package_name "@PACKAGE_NAME@"> -<!ENTITY package_string "@PACKAGE_STRING@"> -<!ENTITY package_tarname "@PACKAGE_TARNAME@"> -<!ENTITY package_url "@PACKAGE_URL@"> -<!ENTITY package_version "@PACKAGE_VERSION@"> -<!ENTITY package_api_version "@PACKAGE_API_VERSION@"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/doc/xml/meson.build new/jsonrpc-glib-3.42.0/doc/xml/meson.build --- old/jsonrpc-glib-3.40.0/doc/xml/meson.build 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/doc/xml/meson.build 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -ent_conf = configuration_data() -ent_conf.set('PACKAGE', 'Jsonrpc-GLib') -ent_conf.set('PACKAGE_BUGREPORT', 'https://bugzilla.gnome.org/enter_bug.cgi?product=jsonrpc-glib') -ent_conf.set('PACKAGE_NAME', 'Jsonrpc-GLib') -ent_conf.set('PACKAGE_STRING', 'jsonrpc-glib') -ent_conf.set('PACKAGE_TARNAME', 'jsonrpc-glib-' + meson.project_version()) -ent_conf.set('PACKAGE_URL', 'http://wiki.gnome.org/Apps/Builder') -ent_conf.set('PACKAGE_VERSION', meson.project_version()) -ent_conf.set('PACKAGE_API_VERSION', apiversion) -configure_file(input: 'gtkdocentities.ent.in', output: 'gtkdocentities.ent', configuration: ent_conf) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/meson.build new/jsonrpc-glib-3.42.0/meson.build --- old/jsonrpc-glib-3.40.0/meson.build 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/meson.build 2022-03-19 00:10:13.000000000 +0100 @@ -1,5 +1,5 @@ project('jsonrpc-glib', 'c', - version: '3.40.0', + version: '3.42.0', license: 'LGPLv2.1+', meson_version: '>= 0.49.2', default_options: [ 'warning_level=1', 'buildtype=debugoptimized', 'c_std=gnu11' ], @@ -28,6 +28,10 @@ darwin_versions = [current + 1, '@0@.@1@'.format(current + 1, revision)] +prefix = get_option('prefix') + +datadir = join_paths(prefix, get_option('datadir')) + config_h = configuration_data() config_h.set_quoted('GETTEXT_PACKAGE', 'libjsonrpc_glib') config_h.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/src/jsonrpc-client.c new/jsonrpc-glib-3.42.0/src/jsonrpc-client.c --- old/jsonrpc-glib-3.40.0/src/jsonrpc-client.c 2021-09-23 00:11:53.081877700 +0200 +++ new/jsonrpc-glib-3.42.0/src/jsonrpc-client.c 2022-03-19 00:10:13.000000000 +0100 @@ -21,33 +21,33 @@ #include "config.h" /** - * SECTION:jsonrpc-client - * @title: JsonrpcClient - * @short_description: a client for JSON-RPC communication + * JsonrpcClient: + * + * A client for JSON-RPC communication * * The #JsonrpcClient class provides a convenient API to coordinate with a - * JSON-RPC server. You can provide the underlying #GIOStream to communicate + * JSON-RPC server. You can provide the underlying [[email protected]] to communicate * with allowing you to control the negotiation of how you setup your - * communications channel. One such method might be to use a #GSubprocess and + * communications channel. One such method might be to use a [[email protected]] and * communicate over stdin and stdout. * * Because JSON-RPC allows for out-of-band notifications from the server to * the client, it is important that the consumer of this API calls - * jsonrpc_client_close() or jsonrpc_client_close_async() when they no longer + * [[email protected]] or [[email protected]_async] when they no longer * need the client. This is because #JsonrpcClient contains an asynchronous - * read-loop to process incoming messages. Until jsonrpc_client_close() or - * jsonrpc_client_close_async() have been called, this read loop will prevent + * read-loop to process incoming messages. Until [[email protected]] or + * [[email protected]_async] have been called, this read loop will prevent * the object from finalizing (being freed). * - * To make an RPC call, use jsonrpc_client_call() or - * jsonrpc_client_call_async() and provide the method name and the parameters - * as a #GVariant for call. + * To make an RPC call, use [[email protected]] or + * [[email protected]_async] and provide the method name and the parameters + * as a [[email protected]] for call. * * It is a programming error to mix synchronous and asynchronous API calls * of the #JsonrpcClient class. * * For synchronous calls, #JsonrpcClient will use the thread-default - * #GMainContext. If you have special needs here ensure you've set the context + * [[email protected]]. If you have special needs here ensure you've set the context * before calling into any #JsonrpcClient API. * * Since: 3.26 @@ -456,7 +456,7 @@ /** * JsonrpcClient:io-stream: * - * The "io-stream" property is the #GIOStream to use for communicating + * The "io-stream" property is the [[email protected]] to use for communicating * with a JSON-RPC peer. * * Since: 3.26 @@ -471,14 +471,14 @@ /** * JsonrpcClient:use-gvariant: * - * The "use-gvariant" property denotes if #GVariant should be used to + * The "use-gvariant" property denotes if [[email protected]] should be used to * communicate with the peer instead of JSON. You should only set this * if you know the peer is also a Jsonrpc-GLib based client. * * Setting this property allows the peers to communicate using GVariant * instead of JSON. This means that we can access the messages without * expensive memory allocations and parsing costs associated with JSON. - * #GVariant is much more optimal for memory-bassed message passing. + * [[email protected]] is much more optimal for memory-bassed message passing. * * Since: 3.26 */ @@ -511,8 +511,8 @@ /** * JsonrpcClient::handle-call: * @self: A #JsonrpcClient - * @method: (not nullable): the method name - * @id: (not nullable): The "id" field of the JSONRPC message + * @method: The method name + * @id: The "id" field of the JSONRPC message * @params: (nullable): The "params" field of the JSONRPC message * * This signal is emitted when an RPC has been received from the peer we @@ -521,8 +521,7 @@ * synthesized. * * If you handle the message, you are responsible for replying to the peer - * in a timely manner using jsonrpc_client_reply() or - * jsonrpc_client_reply_async(). + * in a timely manner using [[email protected]] or [[email protected]_async]. * * Additionally, since 3.28 you may connect to the "detail" of this signal * to handle a specific method call. Use the method name as the detail of @@ -549,11 +548,11 @@ /** * JsonrpcClient::notification: * @self: A #JsonrpcClient - * @method: the method name of the notification - * @params: (nullable): params for the notification + * @method: The method name of the notification + * @params: (nullable): Params for the notification * * This signal is emitted when a notification has been received from a - * peer. Unlike #JsonrpcClient::handle-call, this does not have an "id" + * peer. Unlike [signal@Client::handle-call], this does not have an "id" * parameter because notifications do not have ids. They do not round * trip. * @@ -587,13 +586,13 @@ /** * jsonrpc_client_new: - * @io_stream: (not nullable): A #GIOStream + * @io_stream: A [[email protected]] * * Creates a new #JsonrpcClient instance. * * If you want to communicate with a process using stdin/stdout, consider using - * #GSubprocess to launch the process and create a #GSimpleIOStream using the - * g_subprocess_get_stdin_pipe() and g_subprocess_get_stdout_pipe(). + * [[email protected]] to launch the process and create a [[email protected]] using the + * [[email protected]_stdin_pipe] and [[email protected]_stdout_pipe]. * * Returns: (transfer full): A newly created #JsonrpcClient * @@ -882,10 +881,10 @@ /** * jsonrpc_client_call: * @self: A #JsonrpcClient - * @method: the name of the method to call - * @params: (transfer none) (nullable): A #GVariant of parameters or %NULL + * @method: The name of the method to call + * @params: (transfer none) (nullable): A [[email protected]] of parameters or %NULL * @cancellable: (nullable): A #GCancellable or %NULL - * @return_value: (nullable) (out): A location for a #GVariant + * @return_value: (nullable) (out): A location for a [[email protected]] * * Synchronously calls @method with @params on the remote peer. * @@ -943,21 +942,21 @@ /** * jsonrpc_client_call_with_id_async: * @self: A #JsonrpcClient - * @method: the name of the method to call - * @params: (transfer none) (nullable): A #GVariant of parameters or %NULL - * @id: (out) (transfer full) (optional): a location for a #GVariant + * @method: The name of the method to call + * @params: (transfer none) (nullable): A [[email protected]] of parameters or %NULL + * @id: (out) (transfer full) (optional): A location for a [[email protected]] * describing the identifier used for the method call, or %NULL. * @cancellable: (nullable): A #GCancellable or %NULL - * @callback: a callback to executed upon completion - * @user_data: user data for @callback + * @callback: Callback to executed upon completion + * @user_data: User data for @callback * * Asynchronously calls @method with @params on the remote peer. * * Upon completion or failure, @callback is executed and it should - * call jsonrpc_client_call_finish() to complete the request and release + * call [[email protected]_finish] to complete the request and release * any memory held. * - * This function is similar to jsonrpc_client_call_async() except that + * This function is similar to [[email protected]_async] except that * it allows the caller to get the id of the command which might be useful * in systems where you can cancel the operation (such as the Language * Server Protocol). @@ -1041,8 +1040,8 @@ /** * jsonrpc_client_call_async: * @self: A #JsonrpcClient - * @method: the name of the method to call - * @params: (transfer none) (nullable): A #GVariant of parameters or %NULL + * @method: The name of the method to call + * @params: (transfer none) (nullable): A [[email protected]] of parameters or %NULL * @cancellable: (nullable): A #GCancellable or %NULL * @callback: a callback to executed upon completion * @user_data: user data for @callback @@ -1050,7 +1049,7 @@ * Asynchronously calls @method with @params on the remote peer. * * Upon completion or failure, @callback is executed and it should - * call jsonrpc_client_call_finish() to complete the request and release + * call [[email protected]_finish] to complete the request and release * any memory held. * * If @params is floating, the floating reference is consumed. @@ -1071,11 +1070,11 @@ /** * jsonrpc_client_call_finish: * @self: A #JsonrpcClient. - * @result: A #GAsyncResult provided to the callback in jsonrpc_client_call_async() - * @return_value: (out) (nullable): A location for a #GVariant or %NULL + * @result: A #GAsyncResult provided to the callback in [[email protected]_async] + * @return_value: (out) (nullable): A location for a [[email protected]] or %NULL * @error: a location for a #GError or %NULL * - * Completes an asynchronous call to jsonrpc_client_call_async(). + * Completes an asynchronous call to [[email protected]_async]. * * Returns: %TRUE if successful and @return_value is set, otherwise %FALSE and @error is set. * @@ -1130,11 +1129,12 @@ /** * jsonrpc_client_send_notification: * @self: A #JsonrpcClient - * @method: the name of the method to call - * @params: (transfer none) (nullable): A #GVariant of parameters or %NULL + * @method: The name of the method to call + * @params: (transfer none) (nullable): A [[email protected]] of parameters or %NULL * @cancellable: (nullable): A #GCancellable or %NULL * * Synchronously calls @method with @params on the remote peer. + * * This function will not wait or expect a reply from the peer. * * If @params is floating then the reference is consumed. @@ -1181,11 +1181,12 @@ /** * jsonrpc_client_send_notification_async: * @self: A #JsonrpcClient - * @method: the name of the method to call - * @params: (transfer none) (nullable): A #GVariant of parameters or %NULL + * @method: The name of the method to call + * @params: (transfer none) (nullable): A [[email protected]] of parameters or %NULL * @cancellable: (nullable): A #GCancellable or %NULL * * Asynchronously calls @method with @params on the remote peer. + * * This function will not wait or expect a reply from the peer. * * This function is useful when the caller wants to be notified that @@ -1243,13 +1244,13 @@ * jsonrpc_client_send_notification_finish: * @self: A #JsonrpcClient * - * Completes an asynchronous call to jsonrpc_client_send_notification_async(). + * Completes an asynchronous call to [[email protected]_notification_async]. * * Successful completion of this function only indicates that the request * has been written to the underlying buffer, not that the peer has received * the notification. * - * Returns: %TRUE if the bytes have been flushed to the #GIOStream; otherwise + * Returns: %TRUE if the bytes have been flushed to the [[email protected]]; otherwise * %FALSE and @error is set. * * Since: 3.26 @@ -1270,7 +1271,9 @@ * @self: A #JsonrpcClient * * Closes the underlying streams and cancels any inflight operations of the - * #JsonrpcClient. This is important to call when you are done with the + * #JsonrpcClient. + * + * This is important to call when you are done with the * client so that any outstanding operations that have caused @self to * hold additional references are cancelled. * @@ -1324,7 +1327,7 @@ * jsonrpc_client_close_async: * @self: A #JsonrpcClient. * - * Asynchronous version of jsonrpc_client_close() + * Asynchronous version of [[email protected]]. * * Currently this operation is implemented synchronously, but in the future may * be converted to using asynchronous operations. @@ -1357,9 +1360,9 @@ /** * jsonrpc_client_close_finish: - * @self A #JsonrpcClient. + * @self: A #JsonrpcClient. * - * Completes an asynchronous request of jsonrpc_client_close_async(). + * Completes an asynchronous request of [[email protected]_async]. * * Returns: %TRUE if successful; otherwise %FALSE and @error is set. * @@ -1397,17 +1400,17 @@ /** * jsonrpc_client_reply_error_async: - * @self: a #JsonrpcClient - * @id: (transfer none): a #GVariant containing the call id - * @code: the error code - * @message: (nullable): an optional error message - * @cancellable: (nullable): a #GCancellable, or %NULL - * @callback: (nullable): a #GAsyncReadyCallback or %NULL - * @user_data: closure data for @callback + * @self: A #JsonrpcClient + * @id: (transfer none): A [[email protected]] containing the call id + * @code: The error code + * @message: (nullable): An optional error message + * @cancellable: (nullable): A #GCancellable, or %NULL + * @callback: (nullable): A #GAsyncReadyCallback or %NULL + * @user_data: Closure data for @callback * * Asynchronously replies to the peer, sending a JSON-RPC error message. * - * Call jsonrpc_client_reply_error_finish() to get the result of this operation. + * Call [[email protected]_error_finish] to get the result of this operation. * * If @id is floating, it's floating reference is consumed. * @@ -1478,13 +1481,13 @@ /** * jsonrpc_client_reply: - * @self: a #JsonrpcClient - * @id: (transfer none) (not nullable): the id of the message to reply - * @result: (transfer none) (nullable): the return value or %NULL - * @cancellable: (nullable): a #GCancellable, or %NULL - * @error: a #GError, or %NULL + * @self: A #JsonrpcClient + * @id: (transfer none): The id of the message to reply + * @result: (transfer none) (nullable): The return value or %NULL + * @cancellable: (nullable): A #GCancellable, or %NULL + * @error: A #GError, or %NULL * - * Synchronous variant of jsonrpc_client_reply_async(). + * Synchronous variant of [[email protected]_async]. * * If @id or @result are floating, there floating references are consumed. * @@ -1544,12 +1547,12 @@ /** * jsonrcp_client_reply_async: - * @self: a #JsonrpcClient - * @id: (transfer none): the id of the message to reply - * @result: (transfer none) (nullable): the return value or %NULL - * @cancellable: a #GCancellable, or %NULL - * @callback: (nullable): a #GAsyncReadyCallback or %NULL - * @user_data: closure data for @callback + * @self: A #JsonrpcClient + * @id: (transfer none): The id of the message to reply + * @result: (transfer none) (nullable): The return value or %NULL + * @cancellable: A #GCancellable, or %NULL + * @callback: (nullable): A #GAsyncReadyCallback or %NULL + * @user_data: Closure data for @callback * * This function will reply to a method call identified by @id with the * result provided. If @result is %NULL, then a null JSON node is returned @@ -1559,10 +1562,10 @@ * method is provided allowing #JsonrpcClient to be used for either * side of communications. * - * If no signal handler has handled #JsonrpcClient::handle-call then + * If no signal handler has handled [signal@Client::handle-call] then * an error will be synthesized to the peer. * - * Call jsonrpc_client_reply_finish() to complete the operation. Note + * Call [[email protected]_finish] to complete the operation. Note * that since the peer does not reply to replies, completion of this * asynchronous message does not indicate that the peer has received * the message. @@ -1616,11 +1619,11 @@ /** * jsonrpc_client_reply_finish: - * @self: a #JsonrpcClient + * @self: A #JsonrpcClient * @result: A #GAsyncResult - * @error: a location for a #GError or %NULL + * @error: A location for a #GError or %NULL * - * Completes an asynchronous request to jsonrpc_client_reply_async(). + * Completes an asynchronous request to [[email protected]_async]. * * Returns: %TRUE if successful; otherwise %FALSE and @error is set. * @@ -1639,7 +1642,7 @@ /** * jsonrpc_client_start_listening: - * @self: a #JsonrpcClient + * @self: A #JsonrpcClient * * This function requests that client start processing incoming * messages from the peer. @@ -1678,13 +1681,13 @@ /** * jsonrpc_client_get_use_gvariant: - * @self: a #JsonrpcClient + * @self: A #JsonrpcClient * - * Gets the #JsonrpcClient:use-gvariant property. + * Gets the [property@Client:use-gvariant] property. * - * Indicates if #GVariant is being used to communicate with the peer. + * Indicates if [[email protected]] is being used to communicate with the peer. * - * Returns: %TRUE if #GVariant is being used; otherwise %FALSE. + * Returns: %TRUE if [[email protected]] is being used; otherwise %FALSE. * * Since: 3.26 */ @@ -1700,15 +1703,15 @@ /** * jsonrpc_client_set_use_gvariant: - * @self: a #JsonrpcClient - * @use_gvariant: if #GVariant should be used + * @self: A #JsonrpcClient + * @use_gvariant: If [[email protected]] should be used * - * Sets the #JsonrpcClient:use-gvariant property. + * Sets the [property@Client:use-gvariant] property. * - * This function sets if #GVariant should be used to communicate with the + * This function sets if [[email protected]] should be used to communicate with the * peer. Doing so can allow for more efficient communication by avoiding * expensive parsing overhead and memory allocations. However, it requires - * that the peer also supports #GVariant encoding. + * that the peer also supports [[email protected]] encoding. * * Since: 3.26 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/src/jsonrpc-message.c new/jsonrpc-glib-3.42.0/src/jsonrpc-message.c --- old/jsonrpc-glib-3.40.0/src/jsonrpc-message.c 2021-09-23 00:11:53.082877600 +0200 +++ new/jsonrpc-glib-3.42.0/src/jsonrpc-message.c 2022-03-19 00:10:13.000000000 +0100 @@ -90,13 +90,7 @@ if (!keyptr || keyptr->magic.bytes[0] == '}') EXIT; - if (IS_PUT_VARIANT (keyptr)) - { - g_variant_builder_add (builder, "v", ((JsonrpcMessagePutVariant *)keyptr)->val); - EXIT; - } - - g_variant_builder_open (builder, G_VARIANT_TYPE ("{sv}")); + g_assert (!IS_PUT_VARIANT (keyptr)); /* * Either this is a string wrapped in JSONRPC_MESSAGE_PUT_STRING() or @@ -107,13 +101,13 @@ else key = (const char *)keyptr; - g_variant_builder_add (builder, "s", key); - /* * Now try to read the value for the key/val pair. */ valptr = va_arg (*args, gpointer); + g_variant_builder_open (builder, G_VARIANT_TYPE ("{sv}")); + g_variant_builder_add (builder, "s", key); g_variant_builder_open (builder, G_VARIANT_TYPE ("v")); switch (valptr->magic.bytes[0]) @@ -123,12 +117,32 @@ /* * Peek ahead if a possible GVariant will be injected */ - if (IS_PUT_VARIANT ((JsonrpcMessageAny *)param)) - g_variant_builder_open (builder, G_VARIANT_TYPE ("v")); + if (IS_PUT_VARIANT ((JsonrpcMessageAny *)param) && + ((JsonrpcMessagePutVariant *)param)->val != NULL) + { + if (g_variant_is_of_type (((JsonrpcMessagePutVariant *)param)->val, G_VARIANT_TYPE_VARDICT)) + { + g_variant_builder_add (builder, "v", ((JsonrpcMessagePutVariant *)param)->val); + } + else + { + g_warning ("Attempt to add variant of type %s but expected a{sv}", + g_variant_get_type_string (((JsonrpcMessagePutVariant *)param)->val)); + g_variant_builder_open (builder, G_VARIANT_TYPE ("mav")); + } + } + else if (IS_PUT_VARIANT ((JsonrpcMessageAny *)param)) + { + g_variant_builder_open (builder, G_VARIANT_TYPE ("mav")); + g_variant_builder_close (builder); + } else - g_variant_builder_open (builder, G_VARIANT_TYPE ("a{sv}")); - jsonrpc_message_build_object (builder, param, args); - g_variant_builder_close (builder); + { + g_variant_builder_open (builder, G_VARIANT_TYPE ("a{sv}")); + jsonrpc_message_build_object (builder, param, args); + g_variant_builder_close (builder); + } + break; case '[': @@ -379,7 +393,24 @@ } } else if (IS_GET_VARIANT (valptr)) - ret = !!(*((JsonrpcMessageGetVariant *)valptr)->variantptr = g_variant_dict_lookup_value (dict, key, NULL)); + { + GVariant *lookup = g_variant_dict_lookup_value (dict, key, NULL); + GVariant *child = NULL; + + if (lookup != NULL && + g_variant_is_of_type (lookup, G_VARIANT_TYPE_VARIANT) && + g_variant_n_children (lookup) == 1 && + (child = g_variant_get_child_value (lookup, 0)) && + g_variant_is_of_type (child, G_VARIANT_TYPE ("a{sv}"))) + *((JsonrpcMessageGetVariant *)valptr)->variantptr = g_steal_pointer (&child); + else + *((JsonrpcMessageGetVariant *)valptr)->variantptr = g_steal_pointer (&lookup); + + ret = !!(*((JsonrpcMessageGetVariant *)valptr)->variantptr); + + g_clear_pointer (&lookup, g_variant_unref); + g_clear_pointer (&child, g_variant_unref); + } else if (IS_GET_STRING (valptr)) { g_autoptr(GVariant) v = g_variant_dict_lookup_value (dict, key, NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/src/jsonrpc-server.c new/jsonrpc-glib-3.42.0/src/jsonrpc-server.c --- old/jsonrpc-glib-3.40.0/src/jsonrpc-server.c 2021-09-23 00:11:53.082877600 +0200 +++ new/jsonrpc-glib-3.42.0/src/jsonrpc-server.c 2022-03-19 00:10:13.000000000 +0100 @@ -28,13 +28,13 @@ #include "jsonrpc-server.h" /** - * SECTION:jsonrpc-server - * @title: JsonrpcServer - * @short_description: A server for JSON-RPC communication + * JsonrpcServer: + * + * A server for JSON-RPC communication * * The #JsonrpcServer class can help you implement a JSON-RPC server. You can * accept connections and then communicate with clients using the - * #JsonrpcClient API. + * [class@Client] API. */ typedef struct @@ -133,16 +133,16 @@ /** * JsonrpcServer::handle-call: - * @self: a #JsonrpcServer - * @client: a #JsonrpcClient - * @method: the method that was called - * @id: the identifier of the method call - * @params: the parameters of the method call + * @self: A #JsonrpcServer + * @client: A #JsonrpcClient + * @method: The method that was called + * @id: The identifier of the method call + * @params: The parameters of the method call * * This method is emitted when the client requests a method call. * * If you return %TRUE from this function, you should reply to it (even upon - * failure), using jsonrpc_client_reply() or jsonrpc_client_reply_async(). + * failure), using [[email protected]] or [[email protected]_async]. * * Returns: %TRUE if the request was handled. * @@ -169,8 +169,8 @@ * JsonrpcServer::notification: * @self: A #JsonrpcServer * @client: A #JsonrpcClient - * @method: the notification name - * @id: the params for the notification + * @method: The notification name + * @id: The params for the notification * * This signal is emitted when the client has sent a notification to us. * @@ -323,7 +323,7 @@ /** * jsonrpc_server_accept_io_stream: - * @self: a #JsonrpcServer + * @self: A #JsonrpcServer * @io_stream: A #GIOStream * * This function accepts @io_stream as a new client to the #JsonrpcServer @@ -385,13 +385,13 @@ * @method: A method to handle * @handler: (closure handler_data) (destroy handler_data_destroy): A handler to * execute when an incoming method matches @methods - * @handler_data: user data for @handler - * @handler_data_destroy: a destroy callback for @handler_data + * @handler_data: User data for @handler + * @handler_data_destroy: A destroy callback for @handler_data * * Adds a new handler that will be dispatched when a matching @method arrives. * * Returns: A handler id that can be used to remove the handler with - * jsonrpc_server_remove_handler(). + * [[email protected]_handler]. * * Since: 3.26 */ @@ -422,10 +422,10 @@ /** * jsonrpc_server_remove_handler: - * @self: a #JsonrpcServer - * @handler_id: a handler returned from jsonrpc_server_add_handler() + * @self: A #JsonrpcServer + * @handler_id: A handler returned from [[email protected]_handler] * - * Removes a handler that was previously registered with jsonrpc_server_add_handler(). + * Removes a handler that was previously registered with [[email protected]_handler]. * * Since: 3.26 */ @@ -452,9 +452,9 @@ /** * jsonrpc_server_foreach: - * @self: a #JsonrpcServer - * @foreach_func: (scope call): a callback for each client - * @user_data: closure data for @foreach_func + * @self: A #JsonrpcServer + * @foreach_func: (scope call): A callback for each client + * @user_data: Closure data for @foreach_func * * Calls @foreach_func for every client connected. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/src/meson.build new/jsonrpc-glib-3.42.0/src/meson.build --- old/jsonrpc-glib-3.40.0/src/meson.build 2021-09-23 00:11:53.082877600 +0200 +++ new/jsonrpc-glib-3.42.0/src/meson.build 2022-03-19 00:10:13.000000000 +0100 @@ -83,8 +83,9 @@ namespace: 'Jsonrpc', symbol_prefix: 'jsonrpc', identifier_prefix: 'Jsonrpc', + export_packages: 'jsonrpc-glib-@0@'.format(apiversion), link_with: libjsonrpc_glib, - includes: [ 'Gio-2.0', 'Json-1.0' ], + includes: ['GObject-2.0', 'GLib-2.0', 'Gio-2.0'], install: true, install_dir_gir: girdir, install_dir_typelib: typelibdir, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpc-glib-3.40.0/tests/test-message.c new/jsonrpc-glib-3.42.0/tests/test-message.c --- old/jsonrpc-glib-3.40.0/tests/test-message.c 2021-09-23 00:11:53.082877600 +0200 +++ new/jsonrpc-glib-3.42.0/tests/test-message.c 2022-03-19 00:10:13.000000000 +0100 @@ -299,6 +299,55 @@ g_assert_null (get_ar_from_v); } +static void +test_putv_null (void) +{ + g_autoptr(GVariant) src = NULL; + g_autoptr(GVariant) dst = NULL; + GVariantDict dict; + + src = JSONRPC_MESSAGE_NEW ("key", "{", JSONRPC_MESSAGE_PUT_VARIANT (NULL), "}"); + g_assert_nonnull (src); + + g_variant_dict_init (&dict, NULL); + g_variant_dict_insert (&dict, "key", "mav", NULL); + dst = g_variant_dict_end (&dict); + + g_assert_nonnull (dst); + g_assert_true (g_variant_equal (dst, src)); +} + +static void +test_putv_nonnull (void) +{ + g_autoptr(GVariant) src = NULL; + g_autoptr(GVariant) dst = NULL; + g_autoptr(GVariant) child = NULL; + g_autoptr(GVariant) child2 = NULL; + GVariantDict cdict; + GVariantDict dict; + + g_variant_dict_init (&cdict, NULL); + g_variant_dict_insert (&cdict, "hello", "s", "world"); + child = g_variant_take_ref (g_variant_dict_end (&cdict)); + + src = JSONRPC_MESSAGE_NEW ("key", "{", JSONRPC_MESSAGE_PUT_VARIANT (child), "}"); + g_assert_nonnull (src); + + g_variant_dict_init (&dict, NULL); + g_variant_dict_insert (&dict, "key", "v", child); + dst = g_variant_take_ref (g_variant_dict_end (&dict)); + g_assert_nonnull (dst); + + g_assert_false (g_variant_is_floating (src)); + g_assert_false (g_variant_is_floating (dst)); + g_assert_false (g_variant_is_floating (child)); + g_assert_true (g_variant_equal (dst, src)); + + JSONRPC_MESSAGE_PARSE (src, "key", JSONRPC_MESSAGE_GET_VARIANT (&child2)); + g_assert_true (g_variant_equal (child, child2)); +} + gint main (gint argc, gchar *argv[]) @@ -316,5 +365,7 @@ g_test_add_func ("/Jsonrpc/Message/null_string", test_null_string); g_test_add_func ("/Jsonrpc/Message/strv", test_strv); g_test_add_func ("/Jsonrpc/Message/null_strv", test_null_strv); + g_test_add_func ("/Jsonrpc/Message/putv_null", test_putv_null); + g_test_add_func ("/Jsonrpc/Message/putv_nonnull", test_putv_nonnull); return g_test_run (); } ++++++ jsonrpc-glib-rpmlintrc ++++++ # This warning can be ignored as, despite the renaming of typelib-1_0-Jsonrpc-1.0 # to typelib-1_0-Jsonrpc-1_0, there's no reason to add a provides tag for the old # name (we already used the capability typelib(foobar) before the renaming). addFilter(".* W: obsolete-not-provided typelib-1_0-Jsonrpc-1.0")
