[libvirt PATCH v2] schemas: move out of docs, fix no-docs build

Claudio Fontana posted 1 patch 2 years, 1 month ago
Test syntax-check passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20220322081857.5010-1-cfontana@suse.de
docs/api_extension.rst                        |  2 +-
docs/meson.build                              |  2 --
src/conf/cpu_conf.c                           |  2 +-
src/conf/meson.build                          |  2 ++
{docs => src/conf}/schemas/basictypes.rng     |  0
{docs => src/conf}/schemas/capability.rng     |  0
{docs => src/conf}/schemas/cpu.rng            |  0
{docs => src/conf}/schemas/cputypes.rng       |  0
{docs => src/conf}/schemas/domain.rng         |  0
{docs => src/conf}/schemas/domainbackup.rng   |  0
{docs => src/conf}/schemas/domaincaps.rng     |  0
.../conf}/schemas/domaincheckpoint.rng        |  0
{docs => src/conf}/schemas/domaincommon.rng   |  0
{docs => src/conf}/schemas/domainsnapshot.rng |  0
{docs => src/conf}/schemas/interface.rng      |  0
{docs => src/conf}/schemas/meson.build        |  4 +--
{docs => src/conf}/schemas/network.rng        |  0
{docs => src/conf}/schemas/networkcommon.rng  |  0
{docs => src/conf}/schemas/networkport.rng    |  0
{docs => src/conf}/schemas/nodedev.rng        |  0
{docs => src/conf}/schemas/nwfilter.rng       |  0
.../conf}/schemas/nwfilter_params.rng         |  0
.../conf}/schemas/nwfilterbinding.rng         |  0
{docs => src/conf}/schemas/secret.rng         |  0
{docs => src/conf}/schemas/storagecommon.rng  |  0
{docs => src/conf}/schemas/storagepool.rng    |  0
.../conf}/schemas/storagepoolcaps.rng         |  0
{docs => src/conf}/schemas/storagevol.rng     |  0
src/util/virxml.c                             |  2 +-
tests/virschematest.c                         | 36 ++++++++++---------
30 files changed, 26 insertions(+), 24 deletions(-)
rename {docs => src/conf}/schemas/basictypes.rng (100%)
rename {docs => src/conf}/schemas/capability.rng (100%)
rename {docs => src/conf}/schemas/cpu.rng (100%)
rename {docs => src/conf}/schemas/cputypes.rng (100%)
rename {docs => src/conf}/schemas/domain.rng (100%)
rename {docs => src/conf}/schemas/domainbackup.rng (100%)
rename {docs => src/conf}/schemas/domaincaps.rng (100%)
rename {docs => src/conf}/schemas/domaincheckpoint.rng (100%)
rename {docs => src/conf}/schemas/domaincommon.rng (100%)
rename {docs => src/conf}/schemas/domainsnapshot.rng (100%)
rename {docs => src/conf}/schemas/interface.rng (100%)
rename {docs => src/conf}/schemas/meson.build (83%)
rename {docs => src/conf}/schemas/network.rng (100%)
rename {docs => src/conf}/schemas/networkcommon.rng (100%)
rename {docs => src/conf}/schemas/networkport.rng (100%)
rename {docs => src/conf}/schemas/nodedev.rng (100%)
rename {docs => src/conf}/schemas/nwfilter.rng (100%)
rename {docs => src/conf}/schemas/nwfilter_params.rng (100%)
rename {docs => src/conf}/schemas/nwfilterbinding.rng (100%)
rename {docs => src/conf}/schemas/secret.rng (100%)
rename {docs => src/conf}/schemas/storagecommon.rng (100%)
rename {docs => src/conf}/schemas/storagepool.rng (100%)
rename {docs => src/conf}/schemas/storagepoolcaps.rng (100%)
rename {docs => src/conf}/schemas/storagevol.rng (100%)
[libvirt PATCH v2] schemas: move out of docs, fix no-docs build
Posted by Claudio Fontana 2 years, 1 month ago
schemas are used for more than just documentation,
virsh edit fails if schemas are not available.

Therefore, fix the no-docs build by moving schemas/
to the parsing code inside src/conf/.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
---

changes v1 -> v2:

* move to src/conf/ instead of top_srcdir (Daniel)
* meson, rename docs_schema_files to just schema_files (Daniel)
* tests/virschematest.c: adapt (Andrea)
* src/util/virxml.c: adapt (Andrea)
* src/conf/cpu_conf.c: adapt (Andrea)
* docs/api_extension.rst: adapt one additional reference

 docs/api_extension.rst                        |  2 +-
 docs/meson.build                              |  2 --
 src/conf/cpu_conf.c                           |  2 +-
 src/conf/meson.build                          |  2 ++
 {docs => src/conf}/schemas/basictypes.rng     |  0
 {docs => src/conf}/schemas/capability.rng     |  0
 {docs => src/conf}/schemas/cpu.rng            |  0
 {docs => src/conf}/schemas/cputypes.rng       |  0
 {docs => src/conf}/schemas/domain.rng         |  0
 {docs => src/conf}/schemas/domainbackup.rng   |  0
 {docs => src/conf}/schemas/domaincaps.rng     |  0
 .../conf}/schemas/domaincheckpoint.rng        |  0
 {docs => src/conf}/schemas/domaincommon.rng   |  0
 {docs => src/conf}/schemas/domainsnapshot.rng |  0
 {docs => src/conf}/schemas/interface.rng      |  0
 {docs => src/conf}/schemas/meson.build        |  4 +--
 {docs => src/conf}/schemas/network.rng        |  0
 {docs => src/conf}/schemas/networkcommon.rng  |  0
 {docs => src/conf}/schemas/networkport.rng    |  0
 {docs => src/conf}/schemas/nodedev.rng        |  0
 {docs => src/conf}/schemas/nwfilter.rng       |  0
 .../conf}/schemas/nwfilter_params.rng         |  0
 .../conf}/schemas/nwfilterbinding.rng         |  0
 {docs => src/conf}/schemas/secret.rng         |  0
 {docs => src/conf}/schemas/storagecommon.rng  |  0
 {docs => src/conf}/schemas/storagepool.rng    |  0
 .../conf}/schemas/storagepoolcaps.rng         |  0
 {docs => src/conf}/schemas/storagevol.rng     |  0
 src/util/virxml.c                             |  2 +-
 tests/virschematest.c                         | 36 ++++++++++---------
 30 files changed, 26 insertions(+), 24 deletions(-)
 rename {docs => src/conf}/schemas/basictypes.rng (100%)
 rename {docs => src/conf}/schemas/capability.rng (100%)
 rename {docs => src/conf}/schemas/cpu.rng (100%)
 rename {docs => src/conf}/schemas/cputypes.rng (100%)
 rename {docs => src/conf}/schemas/domain.rng (100%)
 rename {docs => src/conf}/schemas/domainbackup.rng (100%)
 rename {docs => src/conf}/schemas/domaincaps.rng (100%)
 rename {docs => src/conf}/schemas/domaincheckpoint.rng (100%)
 rename {docs => src/conf}/schemas/domaincommon.rng (100%)
 rename {docs => src/conf}/schemas/domainsnapshot.rng (100%)
 rename {docs => src/conf}/schemas/interface.rng (100%)
 rename {docs => src/conf}/schemas/meson.build (83%)
 rename {docs => src/conf}/schemas/network.rng (100%)
 rename {docs => src/conf}/schemas/networkcommon.rng (100%)
 rename {docs => src/conf}/schemas/networkport.rng (100%)
 rename {docs => src/conf}/schemas/nodedev.rng (100%)
 rename {docs => src/conf}/schemas/nwfilter.rng (100%)
 rename {docs => src/conf}/schemas/nwfilter_params.rng (100%)
 rename {docs => src/conf}/schemas/nwfilterbinding.rng (100%)
 rename {docs => src/conf}/schemas/secret.rng (100%)
 rename {docs => src/conf}/schemas/storagecommon.rng (100%)
 rename {docs => src/conf}/schemas/storagepool.rng (100%)
 rename {docs => src/conf}/schemas/storagepoolcaps.rng (100%)
 rename {docs => src/conf}/schemas/storagevol.rng (100%)

diff --git a/docs/api_extension.rst b/docs/api_extension.rst
index 16d4b0a005..d70c244fd4 100644
--- a/docs/api_extension.rst
+++ b/docs/api_extension.rst
@@ -73,7 +73,7 @@ The first task is to define the public API. If the new API involves an
 XML extension, you have to enhance the RelaxNG schema and document the
 new elements or attributes:
 
-``docs/schemas/domaincommon.rng         docs/formatdomain.html.in``
+``src/conf/schemas/domaincommon.rng         docs/formatdomain.html.in``
 
 If the API extension involves a new function, you have to add a
 declaration in the public header, and arrange to export the function
diff --git a/docs/meson.build b/docs/meson.build
index 868267b764..7aebe08047 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -334,8 +334,6 @@ subdir('js')
 subdir('kbase')
 subdir('logos')
 subdir('manpages')
-subdir('schemas')
-
 
 foreach file : docs_assets
   # This hack enables us to view the web pages
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 819efcea8c..2d447da7c3 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -345,7 +345,7 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt,
         g_autofree char *schemafile = NULL;
 
         if (!(schemafile = virFileFindResource("cpu.rng",
-                                               abs_top_srcdir "/docs/schemas",
+                                               abs_top_srcdir "/src/conf/schemas",
                                                PKGDATADIR "/schemas")))
             return -1;
 
diff --git a/src/conf/meson.build b/src/conf/meson.build
index bd35d87e0a..82d265e975 100644
--- a/src/conf/meson.build
+++ b/src/conf/meson.build
@@ -111,3 +111,5 @@ virt_conf_lib = static_library(
 libvirt_libs += virt_conf_lib
 
 conf_inc_dir = include_directories('.')
+
+subdir('schemas')
diff --git a/docs/schemas/basictypes.rng b/src/conf/schemas/basictypes.rng
similarity index 100%
rename from docs/schemas/basictypes.rng
rename to src/conf/schemas/basictypes.rng
diff --git a/docs/schemas/capability.rng b/src/conf/schemas/capability.rng
similarity index 100%
rename from docs/schemas/capability.rng
rename to src/conf/schemas/capability.rng
diff --git a/docs/schemas/cpu.rng b/src/conf/schemas/cpu.rng
similarity index 100%
rename from docs/schemas/cpu.rng
rename to src/conf/schemas/cpu.rng
diff --git a/docs/schemas/cputypes.rng b/src/conf/schemas/cputypes.rng
similarity index 100%
rename from docs/schemas/cputypes.rng
rename to src/conf/schemas/cputypes.rng
diff --git a/docs/schemas/domain.rng b/src/conf/schemas/domain.rng
similarity index 100%
rename from docs/schemas/domain.rng
rename to src/conf/schemas/domain.rng
diff --git a/docs/schemas/domainbackup.rng b/src/conf/schemas/domainbackup.rng
similarity index 100%
rename from docs/schemas/domainbackup.rng
rename to src/conf/schemas/domainbackup.rng
diff --git a/docs/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.rng
similarity index 100%
rename from docs/schemas/domaincaps.rng
rename to src/conf/schemas/domaincaps.rng
diff --git a/docs/schemas/domaincheckpoint.rng b/src/conf/schemas/domaincheckpoint.rng
similarity index 100%
rename from docs/schemas/domaincheckpoint.rng
rename to src/conf/schemas/domaincheckpoint.rng
diff --git a/docs/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
similarity index 100%
rename from docs/schemas/domaincommon.rng
rename to src/conf/schemas/domaincommon.rng
diff --git a/docs/schemas/domainsnapshot.rng b/src/conf/schemas/domainsnapshot.rng
similarity index 100%
rename from docs/schemas/domainsnapshot.rng
rename to src/conf/schemas/domainsnapshot.rng
diff --git a/docs/schemas/interface.rng b/src/conf/schemas/interface.rng
similarity index 100%
rename from docs/schemas/interface.rng
rename to src/conf/schemas/interface.rng
diff --git a/docs/schemas/meson.build b/src/conf/schemas/meson.build
similarity index 83%
rename from docs/schemas/meson.build
rename to src/conf/schemas/meson.build
index bb6a48787f..700161bf75 100644
--- a/docs/schemas/meson.build
+++ b/src/conf/schemas/meson.build
@@ -1,4 +1,4 @@
-docs_schema_files = [
+schema_files = [
   'basictypes.rng',
   'capability.rng',
   'cpu.rng',
@@ -24,4 +24,4 @@ docs_schema_files = [
   'storagevol.rng',
 ]
 
-install_data(docs_schema_files, install_dir: pkgdatadir / 'schemas')
+install_data(schema_files, install_dir: pkgdatadir / 'schemas')
diff --git a/docs/schemas/network.rng b/src/conf/schemas/network.rng
similarity index 100%
rename from docs/schemas/network.rng
rename to src/conf/schemas/network.rng
diff --git a/docs/schemas/networkcommon.rng b/src/conf/schemas/networkcommon.rng
similarity index 100%
rename from docs/schemas/networkcommon.rng
rename to src/conf/schemas/networkcommon.rng
diff --git a/docs/schemas/networkport.rng b/src/conf/schemas/networkport.rng
similarity index 100%
rename from docs/schemas/networkport.rng
rename to src/conf/schemas/networkport.rng
diff --git a/docs/schemas/nodedev.rng b/src/conf/schemas/nodedev.rng
similarity index 100%
rename from docs/schemas/nodedev.rng
rename to src/conf/schemas/nodedev.rng
diff --git a/docs/schemas/nwfilter.rng b/src/conf/schemas/nwfilter.rng
similarity index 100%
rename from docs/schemas/nwfilter.rng
rename to src/conf/schemas/nwfilter.rng
diff --git a/docs/schemas/nwfilter_params.rng b/src/conf/schemas/nwfilter_params.rng
similarity index 100%
rename from docs/schemas/nwfilter_params.rng
rename to src/conf/schemas/nwfilter_params.rng
diff --git a/docs/schemas/nwfilterbinding.rng b/src/conf/schemas/nwfilterbinding.rng
similarity index 100%
rename from docs/schemas/nwfilterbinding.rng
rename to src/conf/schemas/nwfilterbinding.rng
diff --git a/docs/schemas/secret.rng b/src/conf/schemas/secret.rng
similarity index 100%
rename from docs/schemas/secret.rng
rename to src/conf/schemas/secret.rng
diff --git a/docs/schemas/storagecommon.rng b/src/conf/schemas/storagecommon.rng
similarity index 100%
rename from docs/schemas/storagecommon.rng
rename to src/conf/schemas/storagecommon.rng
diff --git a/docs/schemas/storagepool.rng b/src/conf/schemas/storagepool.rng
similarity index 100%
rename from docs/schemas/storagepool.rng
rename to src/conf/schemas/storagepool.rng
diff --git a/docs/schemas/storagepoolcaps.rng b/src/conf/schemas/storagepoolcaps.rng
similarity index 100%
rename from docs/schemas/storagepoolcaps.rng
rename to src/conf/schemas/storagepoolcaps.rng
diff --git a/docs/schemas/storagevol.rng b/src/conf/schemas/storagevol.rng
similarity index 100%
rename from docs/schemas/storagevol.rng
rename to src/conf/schemas/storagevol.rng
diff --git a/src/util/virxml.c b/src/util/virxml.c
index 268aad1d20..8ff59e7cda 100644
--- a/src/util/virxml.c
+++ b/src/util/virxml.c
@@ -1099,7 +1099,7 @@ virXMLParseHelper(int domcode,
 
     if (validate && schemafile != NULL) {
         g_autofree char *schema = virFileFindResource(schemafile,
-                                                      abs_top_srcdir "/docs/schemas",
+                                                      abs_top_srcdir "/src/conf/schemas",
                                                       PKGDATADIR "/schemas");
         if (!schema ||
             (virXMLValidateAgainstSchema(schema, xml) < 0))
diff --git a/tests/virschematest.c b/tests/virschematest.c
index 4e657159e1..29a5546418 100644
--- a/tests/virschematest.c
+++ b/tests/virschematest.c
@@ -336,27 +336,29 @@ mymain(void)
 {
     int ret = 0;
 
+#define SCHEMAS_PATH "src/conf/schemas/"
+
 #define DO_TEST(sch, ent) \
     if (testSchemaEntries((sch), (ent), G_N_ELEMENTS(ent)) < 0) \
         ret = -1;
 
-    DO_TEST("docs/schemas/capability.rng", schemaCapability);
-    DO_TEST("docs/schemas/domain.rng", schemaDomain);
-    DO_TEST("docs/schemas/domaincaps.rng", schemaDomainCaps);
-    DO_TEST("docs/schemas/domainbackup.rng", schemaDomainBackup);
-    DO_TEST("docs/schemas/domaincheckpoint.rng", schemaDomainCheckpoint);
-    DO_TEST("docs/schemas/domainsnapshot.rng", schemaDomainSnapshot);
-    DO_TEST("docs/schemas/interface.rng", schemaInterface);
-    DO_TEST("docs/schemas/network.rng", schemaNetwork);
-    DO_TEST("docs/schemas/networkport.rng", schemaNetworkport);
-    DO_TEST("docs/schemas/nodedev.rng", schemaNodedev);
-    DO_TEST("docs/schemas/nwfilter.rng", schemaNwfilter);
-    DO_TEST("docs/schemas/nwfilterbinding.rng", schemaNwfilterbinding);
-    DO_TEST("docs/schemas/secret.rng", schemaSecret);
-    DO_TEST("docs/schemas/storagepoolcaps.rng", schemaStoragepoolcaps);
-    DO_TEST("docs/schemas/storagepool.rng", schemaStoragePool);
-    DO_TEST("docs/schemas/storagevol.rng", schemaStorageVol);
-    DO_TEST("docs/schemas/cpu.rng", schemaCpu);
+    DO_TEST(SCHEMAS_PATH "capability.rng", schemaCapability);
+    DO_TEST(SCHEMAS_PATH "domain.rng", schemaDomain);
+    DO_TEST(SCHEMAS_PATH "domaincaps.rng", schemaDomainCaps);
+    DO_TEST(SCHEMAS_PATH "domainbackup.rng", schemaDomainBackup);
+    DO_TEST(SCHEMAS_PATH "domaincheckpoint.rng", schemaDomainCheckpoint);
+    DO_TEST(SCHEMAS_PATH "domainsnapshot.rng", schemaDomainSnapshot);
+    DO_TEST(SCHEMAS_PATH "interface.rng", schemaInterface);
+    DO_TEST(SCHEMAS_PATH "network.rng", schemaNetwork);
+    DO_TEST(SCHEMAS_PATH "networkport.rng", schemaNetworkport);
+    DO_TEST(SCHEMAS_PATH "nodedev.rng", schemaNodedev);
+    DO_TEST(SCHEMAS_PATH "nwfilter.rng", schemaNwfilter);
+    DO_TEST(SCHEMAS_PATH "nwfilterbinding.rng", schemaNwfilterbinding);
+    DO_TEST(SCHEMAS_PATH "secret.rng", schemaSecret);
+    DO_TEST(SCHEMAS_PATH "storagepoolcaps.rng", schemaStoragepoolcaps);
+    DO_TEST(SCHEMAS_PATH "storagepool.rng", schemaStoragePool);
+    DO_TEST(SCHEMAS_PATH "storagevol.rng", schemaStorageVol);
+    DO_TEST(SCHEMAS_PATH "cpu.rng", schemaCpu);
 
     return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
 }
-- 
2.35.1
Re: [libvirt PATCH v2] schemas: move out of docs, fix no-docs build
Posted by Andrea Bolognani 2 years, 1 month ago
On Tue, Mar 22, 2022 at 09:18:57AM +0100, Claudio Fontana wrote:
> schemas are used for more than just documentation,
> virsh edit fails if schemas are not available.
>
> Therefore, fix the no-docs build by moving schemas/
> to the parsing code inside src/conf/.
>
> Signed-off-by: Claudio Fontana <cfontana@suse.de>
> ---
>
> changes v1 -> v2:
>
> * move to src/conf/ instead of top_srcdir (Daniel)
> * meson, rename docs_schema_files to just schema_files (Daniel)
> * tests/virschematest.c: adapt (Andrea)
> * src/util/virxml.c: adapt (Andrea)
> * src/conf/cpu_conf.c: adapt (Andrea)
> * docs/api_extension.rst: adapt one additional reference

Reviewed-by: Andrea Bolognani <abologna@redhat.com>

and pushed. Thanks!

-- 
Andrea Bolognani / Red Hat / Virtualization