[libvirt] [PATCH 00/16] examples: Install more files and tidy up

This series changes our install procedure so that we install all available examples on the target system; in the process, it also removes all custom shell code from the installation procedure, replacing it with standard autotools usage, and fixes a few admittedly very minor issues. Andrea Bolognani (16): spec: Don't install libvirt-api.xml as documentation examples: Drop object_events_event_test_CFLAGS examples: Reformat $(AM_CPPFLAGS) and $(LDADDS) examples: Remove $(WARN_CFLAGS) from $(LDADD) examples: Don't look for headers in $(top_srcdir) examples: Move $(STATIC_BINARIES) to $(AM_LDFLAGS) examples: Move $(WARN_CFLAGS) to $(AM_CFLAGS) examples: Drop unnecessary $(mkinstalldirs) call examples: Install nwfilters without shell scripting examples: Install Polkit examples examples: Install SystemTap examples examples: Install remaining XML examples examples: Move and install shell examples examples: Organize C examples into categories examples: Rework C examples installation examples: Group all C programs together .gitignore | 30 +-- examples/Makefile.am | 192 ++++++++++-------- examples/{ => c}/admin/client_close.c | 0 examples/{ => c}/admin/client_info.c | 0 examples/{ => c}/admin/client_limits.c | 0 examples/{ => c}/admin/list_clients.c | 0 examples/{ => c}/admin/list_servers.c | 0 examples/{ => c}/admin/logging.c | 0 examples/{ => c}/admin/threadpool_params.c | 0 .../{dommigrate => c/domain}/dommigrate.c | 0 examples/{domtop => c/domain}/domtop.c | 0 examples/{dominfo => c/domain}/info1.c | 0 examples/{rename => c/domain}/rename.c | 0 examples/{domsuspend => c/domain}/suspend.c | 0 .../{object-events => c/misc}/event-test.c | 0 .../{hellolibvirt => c/misc}/hellolibvirt.c | 0 examples/{openauth => c/misc}/openauth.c | 0 examples/{lxcconvert => sh}/virt-lxc-convert | 0 libvirt.spec.in | 4 - 19 files changed, 123 insertions(+), 103 deletions(-) rename examples/{ => c}/admin/client_close.c (100%) rename examples/{ => c}/admin/client_info.c (100%) rename examples/{ => c}/admin/client_limits.c (100%) rename examples/{ => c}/admin/list_clients.c (100%) rename examples/{ => c}/admin/list_servers.c (100%) rename examples/{ => c}/admin/logging.c (100%) rename examples/{ => c}/admin/threadpool_params.c (100%) rename examples/{dommigrate => c/domain}/dommigrate.c (100%) rename examples/{domtop => c/domain}/domtop.c (100%) rename examples/{dominfo => c/domain}/info1.c (100%) rename examples/{rename => c/domain}/rename.c (100%) rename examples/{domsuspend => c/domain}/suspend.c (100%) rename examples/{object-events => c/misc}/event-test.c (100%) rename examples/{hellolibvirt => c/misc}/hellolibvirt.c (100%) rename examples/{openauth => c/misc}/openauth.c (100%) rename examples/{lxcconvert => sh}/virt-lxc-convert (100%) -- 2.21.0

We already install the file, along with its driver-specific counterparts, into ${datadir}/libvirt/api/ where language bindings will actually look for them. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- libvirt.spec.in | 2 -- 1 file changed, 2 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index b159c50d8f..06cdce9a2f 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -1867,8 +1867,6 @@ exit 0 %{_datadir}/libvirt/api/libvirt-admin-api.xml %{_datadir}/libvirt/api/libvirt-qemu-api.xml %{_datadir}/libvirt/api/libvirt-lxc-api.xml -# Needed building python bindings -%doc docs/libvirt-api.xml %changelog -- 2.21.0

$(AM_CPPFLAGS) already includes $(WARN_CFLAGS), so this is not doing anything useful. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 11c9f44917..9a32fd5d4a 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -67,9 +67,6 @@ domsuspend_suspend_SOURCES = domsuspend/suspend.c domtop_domtop_SOURCES = domtop/domtop.c hellolibvirt_hellolibvirt_SOURCES = hellolibvirt/hellolibvirt.c -object_events_event_test_CFLAGS = \ - $(WARN_CFLAGS) \ - $(NULL) object_events_event_test_SOURCES = object-events/event-test.c openauth_openauth_SOURCES = openauth/openauth.c -- 2.21.0

This will make further changes easier to review. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 9a32fd5d4a..8f50149812 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -26,13 +26,19 @@ EXTRA_DIST = \ $(wildcard $(srcdir)/xml/storage/*.xml) \ $(wildcard $(srcdir)/xml/test/*.xml) - AM_CPPFLAGS = \ - -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir) \ - $(WARN_CFLAGS) -LDADD = $(STATIC_BINARIES) $(WARN_CFLAGS) \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/include \ + -I$(top_srcdir) \ + $(WARN_CFLAGS) \ + $(NULL) + +LDADD = \ + $(STATIC_BINARIES) \ + $(WARN_CFLAGS) \ $(top_builddir)/src/libvirt.la \ - $(top_builddir)/src/libvirt-admin.la + $(top_builddir)/src/libvirt-admin.la \ + $(NULL) # List of example programs. We need to list them here instead of using # $(noinst_PROGRAMS) directly because we want to have access to the -- 2.21.0

$(WARN_CFLAGS) contains options intended for the compiler, whereas $(LDADD) is supposed to list additional objects required during linking, so the former clearly doesn't belong in the latter. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 8f50149812..4c04bd35be 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -35,7 +35,6 @@ AM_CPPFLAGS = \ LDADD = \ $(STATIC_BINARIES) \ - $(WARN_CFLAGS) \ $(top_builddir)/src/libvirt.la \ $(top_builddir)/src/libvirt-admin.la \ $(NULL) -- 2.21.0

The C programs in this directory are supposed to be only using public functions, so having $(top_srcdir) in the header search path is unnecessary at best and actively harmful at worst. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 4c04bd35be..d83104a130 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -29,7 +29,6 @@ EXTRA_DIST = \ AM_CPPFLAGS = \ -I$(top_builddir)/include \ -I$(top_srcdir)/include \ - -I$(top_srcdir) \ $(WARN_CFLAGS) \ $(NULL) -- 2.21.0

$(LDADD) is for object files that should be added during linking, not for options that should be passed to the linker: that's what $(AM_LDFLAGS) is for. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index d83104a130..38dcb399c0 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -32,8 +32,11 @@ AM_CPPFLAGS = \ $(WARN_CFLAGS) \ $(NULL) -LDADD = \ +AM_LDFLAGS = \ $(STATIC_BINARIES) \ + $(NULL) + +LDADD = \ $(top_builddir)/src/libvirt.la \ $(top_builddir)/src/libvirt-admin.la \ $(NULL) -- 2.21.0

$(AM_CPPFLAGS) is for passing options to the C preprocessor, not the C compiler, and the stuff in $(WARN_CFLAGS) belongs to the latter category. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/Makefile.am b/examples/Makefile.am index 38dcb399c0..f2fef7df59 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -29,6 +29,9 @@ EXTRA_DIST = \ AM_CPPFLAGS = \ -I$(top_builddir)/include \ -I$(top_srcdir)/include \ + $(NULL) + +AM_CFLAGS = \ $(WARN_CFLAGS) \ $(NULL) -- 2.21.0

$(mkinstalldirs) works like 'mkdir -p' in that it will create all the necessary parts of the path leading up to the actual directory, which means creating $(examplesdir) beforehand is not necessary. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index f2fef7df59..8c7f4a3d64 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -115,7 +115,6 @@ endif WITH_NWFILTER examplesdir = $(docdir)/examples install-data-local: $(INSTALL_DATA_LOCAL) - $(mkinstalldirs) $(DESTDIR)$(examplesdir) for p in $(EXAMPLES); do \ d=$$(dirname $$p); \ $(mkinstalldirs) $(DESTDIR)$(examplesdir)/$$d; \ -- 2.21.0

We're doing nothing more than copying files to a target directory, so we don't need any custom shell commands and can just use the standard autotools data installation support instead. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 8c7f4a3d64..67d959c6a3 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -90,38 +90,23 @@ admin_client_info_SOURCES = admin/client_info.c admin_client_close_SOURCES = admin/client_close.c admin_logging_SOURCES = admin/logging.c -INSTALL_DATA_LOCAL = -UNINSTALL_LOCAL = - if WITH_NWFILTER -NWFILTER_DIR = "$(DESTDIR)$(sysconfdir)/libvirt/nwfilter" - -install-nwfilter-local: - $(MKDIR_P) "$(NWFILTER_DIR)" - for f in $(FILTERS); do \ - $(INSTALL_DATA) $$f "$(NWFILTER_DIR)"; \ - done -uninstall-nwfilter-local:: - for f in $(FILTERS); do \ - rm -f "$(NWFILTER_DIR)/`basename $$f`"; \ - done - -test -z "$(shell ls $(NWFILTER_DIR))" || rmdir $(NWFILTER_DIR) +nwfilterdir = $(sysconfdir)/libvirt/nwfilter +nwfilter_DATA = $(FILTERS) -INSTALL_DATA_LOCAL += install-nwfilter-local -UNINSTALL_LOCAL += uninstall-nwfilter-local endif WITH_NWFILTER examplesdir = $(docdir)/examples -install-data-local: $(INSTALL_DATA_LOCAL) +install-data-local: for p in $(EXAMPLES); do \ d=$$(dirname $$p); \ $(mkinstalldirs) $(DESTDIR)$(examplesdir)/$$d; \ $(INSTALL_DATA) $(srcdir)/$${p}.c $(DESTDIR)$(examplesdir)/$$d/; \ done -uninstall-local: $(UNINSTALL_LOCAL) +uninstall-local: for p in $(EXAMPLES); do \ rm -f $(DESTDIR)$(examplesdir)/$${p}.c; \ done -- 2.21.0

Right now we install the files in RPMs only, and we include them in the -daemon package which is probably not the best option either. Start installing them via autotools; the RPMs will get them automatically in the -docs package. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 9 ++++++++- libvirt.spec.in | 2 -- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 67d959c6a3..4122219e22 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -18,9 +18,13 @@ FILTERS = $(wildcard $(srcdir)/xml/nwfilter/*.xml) +POLKIT_EXAMPLES = \ + $(wildcard $(srcdir)/polkit/*.rules) \ + $(NULL) + EXTRA_DIST = \ lxcconvert/virt-lxc-convert \ - polkit/libvirt-acl.rules \ + $(POLKIT_EXAMPLES) \ $(wildcard $(srcdir)/systemtap/*.stp) \ $(FILTERS) \ $(wildcard $(srcdir)/xml/storage/*.xml) \ @@ -99,6 +103,9 @@ endif WITH_NWFILTER examplesdir = $(docdir)/examples +polkitexamplesdir = $(examplesdir)/polkit +polkitexamples_DATA = $(POLKIT_EXAMPLES) + install-data-local: for p in $(EXAMPLES); do \ d=$$(dirname $$p); \ diff --git a/libvirt.spec.in b/libvirt.spec.in index 06cdce9a2f..7157b449a1 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -1572,8 +1572,6 @@ exit 0 %{_mandir}/man8/virtlockd.8* %{_mandir}/man7/virkey*.7* -%doc examples/polkit/*.rules - %files daemon-config-network %dir %{_datadir}/libvirt/networks/ %{_datadir}/libvirt/networks/default.xml -- 2.21.0

Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 4122219e22..7a15decc00 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -22,10 +22,14 @@ POLKIT_EXAMPLES = \ $(wildcard $(srcdir)/polkit/*.rules) \ $(NULL) +SYSTEMTAP_EXAMPLES = \ + $(wildcard $(srcdir)/systemtap/*.stp) \ + $(NULL) + EXTRA_DIST = \ lxcconvert/virt-lxc-convert \ $(POLKIT_EXAMPLES) \ - $(wildcard $(srcdir)/systemtap/*.stp) \ + $(SYSTEMTAP_EXAMPLES) \ $(FILTERS) \ $(wildcard $(srcdir)/xml/storage/*.xml) \ $(wildcard $(srcdir)/xml/test/*.xml) @@ -106,6 +110,9 @@ examplesdir = $(docdir)/examples polkitexamplesdir = $(examplesdir)/polkit polkitexamples_DATA = $(POLKIT_EXAMPLES) +systemtapexamplesdir = $(examplesdir)/systemtap +systemtapexamples_DATA = $(SYSTEMTAP_EXAMPLES) + install-data-local: for p in $(EXAMPLES); do \ d=$$(dirname $$p); \ -- 2.21.0

We already install nwfilters separately. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 7a15decc00..c0d0100c9f 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -22,17 +22,26 @@ POLKIT_EXAMPLES = \ $(wildcard $(srcdir)/polkit/*.rules) \ $(NULL) +STORAGE_XML_EXAMPLES = \ + $(wildcard $(srcdir)/xml/storage/*.xml) \ + $(NULL) + SYSTEMTAP_EXAMPLES = \ $(wildcard $(srcdir)/systemtap/*.stp) \ $(NULL) +TEST_XML_EXAMPLES = \ + $(wildcard $(srcdir)/xml/test/*.xml) \ + $(NULL) + EXTRA_DIST = \ lxcconvert/virt-lxc-convert \ $(POLKIT_EXAMPLES) \ + $(STORAGE_XML_EXAMPLES) \ $(SYSTEMTAP_EXAMPLES) \ + $(TEST_XML_EXAMPLES) \ $(FILTERS) \ - $(wildcard $(srcdir)/xml/storage/*.xml) \ - $(wildcard $(srcdir)/xml/test/*.xml) + $(NULL) AM_CPPFLAGS = \ -I$(top_builddir)/include \ @@ -110,9 +119,15 @@ examplesdir = $(docdir)/examples polkitexamplesdir = $(examplesdir)/polkit polkitexamples_DATA = $(POLKIT_EXAMPLES) +storagexmlexamplesdir = $(examplesdir)/xml/storage +storagexmlexamples_DATA = $(STORAGE_XML_EXAMPLES) + systemtapexamplesdir = $(examplesdir)/systemtap systemtapexamples_DATA = $(SYSTEMTAP_EXAMPLES) +testxmlexamplesdir = $(examplesdir)/xml/test +testxmlexamples_DATA = $(TEST_XML_EXAMPLES) + install-data-local: for p in $(EXAMPLES); do \ d=$$(dirname $$p); \ -- 2.21.0

The virt-lxc-convert shell script is at this point the only example we don't install on the target system. Create a sh/ subdirectory, following the example set by the existing polkit/, systemtap/ and xml/, and move the script there; then add rules that will install all example shell scripts as documentation. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 9 ++++++++- examples/{lxcconvert => sh}/virt-lxc-convert | 0 2 files changed, 8 insertions(+), 1 deletion(-) rename examples/{lxcconvert => sh}/virt-lxc-convert (100%) diff --git a/examples/Makefile.am b/examples/Makefile.am index c0d0100c9f..d613135086 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -22,6 +22,10 @@ POLKIT_EXAMPLES = \ $(wildcard $(srcdir)/polkit/*.rules) \ $(NULL) +SH_EXAMPLES = \ + $(wildcard $(srcdir)/sh/*) \ + $(NULL) + STORAGE_XML_EXAMPLES = \ $(wildcard $(srcdir)/xml/storage/*.xml) \ $(NULL) @@ -35,8 +39,8 @@ TEST_XML_EXAMPLES = \ $(NULL) EXTRA_DIST = \ - lxcconvert/virt-lxc-convert \ $(POLKIT_EXAMPLES) \ + $(SH_EXAMPLES) \ $(STORAGE_XML_EXAMPLES) \ $(SYSTEMTAP_EXAMPLES) \ $(TEST_XML_EXAMPLES) \ @@ -119,6 +123,9 @@ examplesdir = $(docdir)/examples polkitexamplesdir = $(examplesdir)/polkit polkitexamples_DATA = $(POLKIT_EXAMPLES) +shexamplesdir = $(examplesdir)/sh +shexamples_DATA = $(SH_EXAMPLES) + storagexmlexamplesdir = $(examplesdir)/xml/storage storagexmlexamples_DATA = $(STORAGE_XML_EXAMPLES) diff --git a/examples/lxcconvert/virt-lxc-convert b/examples/sh/virt-lxc-convert similarity index 100% rename from examples/lxcconvert/virt-lxc-convert rename to examples/sh/virt-lxc-convert -- 2.21.0

Most C examples live in their own directory, which seems a bit unnecessary especially considering that all virt-admin related examples share a single admin/ directory. Reorganize non-admin C examples in two categories: domain/ for those that act on a domain, and misc/ for everything else. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .gitignore | 16 +++---- examples/Makefile.am | 45 +++++++++---------- examples/{dommigrate => domain}/dommigrate.c | 0 examples/{domtop => domain}/domtop.c | 0 examples/{dominfo => domain}/info1.c | 0 examples/{rename => domain}/rename.c | 0 examples/{domsuspend => domain}/suspend.c | 0 examples/{object-events => misc}/event-test.c | 0 .../{hellolibvirt => misc}/hellolibvirt.c | 0 examples/{openauth => misc}/openauth.c | 0 10 files changed, 29 insertions(+), 32 deletions(-) rename examples/{dommigrate => domain}/dommigrate.c (100%) rename examples/{domtop => domain}/domtop.c (100%) rename examples/{dominfo => domain}/info1.c (100%) rename examples/{rename => domain}/rename.c (100%) rename examples/{domsuspend => domain}/suspend.c (100%) rename examples/{object-events => misc}/event-test.c (100%) rename examples/{hellolibvirt => misc}/hellolibvirt.c (100%) rename examples/{openauth => misc}/openauth.c (100%) diff --git a/.gitignore b/.gitignore index 16eb4a3e2e..c15263037d 100644 --- a/.gitignore +++ b/.gitignore @@ -75,14 +75,14 @@ /examples/admin/list_servers /examples/admin/logging /examples/admin/threadpool_params -/examples/object-events/event-test -/examples/dominfo/info1 -/examples/domsuspend/suspend -/examples/dommigrate/dommigrate -/examples/domtop/domtop -/examples/hellolibvirt/hellolibvirt -/examples/openauth/openauth -/examples/rename/rename +/examples/domain/dommigrate +/examples/domain/domtop +/examples/domain/info1 +/examples/domain/rename +/examples/domain/suspend +/examples/misc/event-test +/examples/misc/hellolibvirt +/examples/misc/openauth /gnulib/lib/* /gnulib/m4/* /gnulib/tests/* diff --git a/examples/Makefile.am b/examples/Makefile.am index d613135086..832e5fea08 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -78,38 +78,35 @@ EXAMPLES = \ admin/list_servers \ admin/logging \ admin/threadpool_params \ - dominfo/info1 \ - dommigrate/dommigrate \ - domsuspend/suspend \ - domtop/domtop \ - hellolibvirt/hellolibvirt \ - object-events/event-test \ - openauth/openauth \ - rename/rename \ + domain/dommigrate \ + domain/domtop \ + domain/info1 \ + domain/rename \ + domain/suspend \ + misc/event-test \ + misc/hellolibvirt \ + misc/openauth \ $(NULL) noinst_PROGRAMS = \ $(EXAMPLES) \ $(NULL) -dominfo_info1_SOURCES = dominfo/info1.c -dommigrate_dommigrate_SOURCES = dommigrate/dommigrate.c -domsuspend_suspend_SOURCES = domsuspend/suspend.c -domtop_domtop_SOURCES = domtop/domtop.c -hellolibvirt_hellolibvirt_SOURCES = hellolibvirt/hellolibvirt.c - -object_events_event_test_SOURCES = object-events/event-test.c - -openauth_openauth_SOURCES = openauth/openauth.c -rename_rename_SOURCES = rename/rename.c - -admin_list_servers_SOURCES = admin/list_servers.c -admin_list_clients_SOURCES = admin/list_clients.c -admin_threadpool_params_SOURCES = admin/threadpool_params.c -admin_client_limits_SOURCES = admin/client_limits.c -admin_client_info_SOURCES = admin/client_info.c admin_client_close_SOURCES = admin/client_close.c +admin_client_info_SOURCES = admin/client_info.c +admin_client_limits_SOURCES = admin/client_limits.c +admin_list_clients_SOURCES = admin/list_clients.c +admin_list_servers_SOURCES = admin/list_servers.c admin_logging_SOURCES = admin/logging.c +admin_threadpool_params_SOURCES = admin/threadpool_params.c +domain_dommigrate_SOURCES = domain/dommigrate.c +domain_domtop_SOURCES = domain/domtop.c +domain_info1_SOURCES = domain/info1.c +domain_rename_SOURCES = domain/rename.c +domain_suspend_SOURCES = domain/suspend.c +misc_event_test_SOURCES = misc/event-test.c +misc_hellolibvirt_SOURCES = misc/hellolibvirt.c +misc_openauth_SOURCES = misc/openauth.c if WITH_NWFILTER diff --git a/examples/dommigrate/dommigrate.c b/examples/domain/dommigrate.c similarity index 100% rename from examples/dommigrate/dommigrate.c rename to examples/domain/dommigrate.c diff --git a/examples/domtop/domtop.c b/examples/domain/domtop.c similarity index 100% rename from examples/domtop/domtop.c rename to examples/domain/domtop.c diff --git a/examples/dominfo/info1.c b/examples/domain/info1.c similarity index 100% rename from examples/dominfo/info1.c rename to examples/domain/info1.c diff --git a/examples/rename/rename.c b/examples/domain/rename.c similarity index 100% rename from examples/rename/rename.c rename to examples/domain/rename.c diff --git a/examples/domsuspend/suspend.c b/examples/domain/suspend.c similarity index 100% rename from examples/domsuspend/suspend.c rename to examples/domain/suspend.c diff --git a/examples/object-events/event-test.c b/examples/misc/event-test.c similarity index 100% rename from examples/object-events/event-test.c rename to examples/misc/event-test.c diff --git a/examples/hellolibvirt/hellolibvirt.c b/examples/misc/hellolibvirt.c similarity index 100% rename from examples/hellolibvirt/hellolibvirt.c rename to examples/misc/hellolibvirt.c diff --git a/examples/openauth/openauth.c b/examples/misc/openauth.c similarity index 100% rename from examples/openauth/openauth.c rename to examples/misc/openauth.c -- 2.21.0

Now that all C examples are neatly sorted into only three categories, getting rid of our custom installation machinery and replacing it with the standard autotools mechanism finally becomes feasible. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- examples/Makefile.am | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/examples/Makefile.am b/examples/Makefile.am index 832e5fea08..50dae304e8 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -18,6 +18,18 @@ FILTERS = $(wildcard $(srcdir)/xml/nwfilter/*.xml) +ADMIN_EXAMPLES = \ + $(wildcard $(srcdir)/admin/*.c) \ + $(NULL) + +DOMAIN_EXAMPLES = \ + $(wildcard $(srcdir)/domain/*.c) \ + $(NULL) + +MISC_EXAMPLES = \ + $(wildcard $(srcdir)/misc/*.c) \ + $(NULL) + POLKIT_EXAMPLES = \ $(wildcard $(srcdir)/polkit/*.rules) \ $(NULL) @@ -65,12 +77,7 @@ LDADD = \ $(top_builddir)/src/libvirt-admin.la \ $(NULL) -# List of example programs. We need to list them here instead of using -# $(noinst_PROGRAMS) directly because we want to have access to the -# unmodified list during (un)installation, but at the same time automake -# might tweak $(noinst_PROGRAMS) to eg. automatically add the .exe file -# extension when targeting Windows. -EXAMPLES = \ +noinst_PROGRAMS = \ admin/client_close \ admin/client_info \ admin/client_limits \ @@ -88,10 +95,6 @@ EXAMPLES = \ misc/openauth \ $(NULL) -noinst_PROGRAMS = \ - $(EXAMPLES) \ - $(NULL) - admin_client_close_SOURCES = admin/client_close.c admin_client_info_SOURCES = admin/client_info.c admin_client_limits_SOURCES = admin/client_limits.c @@ -117,6 +120,15 @@ endif WITH_NWFILTER examplesdir = $(docdir)/examples +adminexamplesdir = $(examplesdir)/admin +adminexamples_DATA = $(ADMIN_EXAMPLES) + +domainexamplesdir = $(examplesdir)/domain +domainexamples_DATA = $(DOMAIN_EXAMPLES) + +miscexamplesdir = $(examplesdir)/misc +miscexamples_DATA = $(MISC_EXAMPLES) + polkitexamplesdir = $(examplesdir)/polkit polkitexamples_DATA = $(POLKIT_EXAMPLES) @@ -131,15 +143,3 @@ systemtapexamples_DATA = $(SYSTEMTAP_EXAMPLES) testxmlexamplesdir = $(examplesdir)/xml/test testxmlexamples_DATA = $(TEST_XML_EXAMPLES) - -install-data-local: - for p in $(EXAMPLES); do \ - d=$$(dirname $$p); \ - $(mkinstalldirs) $(DESTDIR)$(examplesdir)/$$d; \ - $(INSTALL_DATA) $(srcdir)/$${p}.c $(DESTDIR)$(examplesdir)/$$d/; \ - done - -uninstall-local: - for p in $(EXAMPLES); do \ - rm -f $(DESTDIR)$(examplesdir)/$${p}.c; \ - done -- 2.21.0

All other examples are organized using the either the format/ or the format/category/ hierarchy already, and grouping all C programs together removes the last remaining outliers. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .gitignore | 30 ++++----- examples/Makefile.am | 72 +++++++++++----------- examples/{ => c}/admin/client_close.c | 0 examples/{ => c}/admin/client_info.c | 0 examples/{ => c}/admin/client_limits.c | 0 examples/{ => c}/admin/list_clients.c | 0 examples/{ => c}/admin/list_servers.c | 0 examples/{ => c}/admin/logging.c | 0 examples/{ => c}/admin/threadpool_params.c | 0 examples/{ => c}/domain/dommigrate.c | 0 examples/{ => c}/domain/domtop.c | 0 examples/{ => c}/domain/info1.c | 0 examples/{ => c}/domain/rename.c | 0 examples/{ => c}/domain/suspend.c | 0 examples/{ => c}/misc/event-test.c | 0 examples/{ => c}/misc/hellolibvirt.c | 0 examples/{ => c}/misc/openauth.c | 0 17 files changed, 51 insertions(+), 51 deletions(-) rename examples/{ => c}/admin/client_close.c (100%) rename examples/{ => c}/admin/client_info.c (100%) rename examples/{ => c}/admin/client_limits.c (100%) rename examples/{ => c}/admin/list_clients.c (100%) rename examples/{ => c}/admin/list_servers.c (100%) rename examples/{ => c}/admin/logging.c (100%) rename examples/{ => c}/admin/threadpool_params.c (100%) rename examples/{ => c}/domain/dommigrate.c (100%) rename examples/{ => c}/domain/domtop.c (100%) rename examples/{ => c}/domain/info1.c (100%) rename examples/{ => c}/domain/rename.c (100%) rename examples/{ => c}/domain/suspend.c (100%) rename examples/{ => c}/misc/event-test.c (100%) rename examples/{ => c}/misc/hellolibvirt.c (100%) rename examples/{ => c}/misc/openauth.c (100%) diff --git a/.gitignore b/.gitignore index c15263037d..727bfdb6ec 100644 --- a/.gitignore +++ b/.gitignore @@ -68,21 +68,21 @@ /docs/libvirt-refs.xml /docs/news.html.in /docs/todo.html.in -/examples/admin/client_close -/examples/admin/client_info -/examples/admin/client_limits -/examples/admin/list_clients -/examples/admin/list_servers -/examples/admin/logging -/examples/admin/threadpool_params -/examples/domain/dommigrate -/examples/domain/domtop -/examples/domain/info1 -/examples/domain/rename -/examples/domain/suspend -/examples/misc/event-test -/examples/misc/hellolibvirt -/examples/misc/openauth +/examples/c/admin/client_close +/examples/c/admin/client_info +/examples/c/admin/client_limits +/examples/c/admin/list_clients +/examples/c/admin/list_servers +/examples/c/admin/logging +/examples/c/admin/threadpool_params +/examples/c/domain/dommigrate +/examples/c/domain/domtop +/examples/c/domain/info1 +/examples/c/domain/rename +/examples/c/domain/suspend +/examples/c/misc/event-test +/examples/c/misc/hellolibvirt +/examples/c/misc/openauth /gnulib/lib/* /gnulib/m4/* /gnulib/tests/* diff --git a/examples/Makefile.am b/examples/Makefile.am index 50dae304e8..0adb4b42e2 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -19,15 +19,15 @@ FILTERS = $(wildcard $(srcdir)/xml/nwfilter/*.xml) ADMIN_EXAMPLES = \ - $(wildcard $(srcdir)/admin/*.c) \ + $(wildcard $(srcdir)/c/admin/*.c) \ $(NULL) DOMAIN_EXAMPLES = \ - $(wildcard $(srcdir)/domain/*.c) \ + $(wildcard $(srcdir)/c/domain/*.c) \ $(NULL) MISC_EXAMPLES = \ - $(wildcard $(srcdir)/misc/*.c) \ + $(wildcard $(srcdir)/c/misc/*.c) \ $(NULL) POLKIT_EXAMPLES = \ @@ -78,38 +78,38 @@ LDADD = \ $(NULL) noinst_PROGRAMS = \ - admin/client_close \ - admin/client_info \ - admin/client_limits \ - admin/list_clients \ - admin/list_servers \ - admin/logging \ - admin/threadpool_params \ - domain/dommigrate \ - domain/domtop \ - domain/info1 \ - domain/rename \ - domain/suspend \ - misc/event-test \ - misc/hellolibvirt \ - misc/openauth \ + c/admin/client_close \ + c/admin/client_info \ + c/admin/client_limits \ + c/admin/list_clients \ + c/admin/list_servers \ + c/admin/logging \ + c/admin/threadpool_params \ + c/domain/dommigrate \ + c/domain/domtop \ + c/domain/info1 \ + c/domain/rename \ + c/domain/suspend \ + c/misc/event-test \ + c/misc/hellolibvirt \ + c/misc/openauth \ $(NULL) -admin_client_close_SOURCES = admin/client_close.c -admin_client_info_SOURCES = admin/client_info.c -admin_client_limits_SOURCES = admin/client_limits.c -admin_list_clients_SOURCES = admin/list_clients.c -admin_list_servers_SOURCES = admin/list_servers.c -admin_logging_SOURCES = admin/logging.c -admin_threadpool_params_SOURCES = admin/threadpool_params.c -domain_dommigrate_SOURCES = domain/dommigrate.c -domain_domtop_SOURCES = domain/domtop.c -domain_info1_SOURCES = domain/info1.c -domain_rename_SOURCES = domain/rename.c -domain_suspend_SOURCES = domain/suspend.c -misc_event_test_SOURCES = misc/event-test.c -misc_hellolibvirt_SOURCES = misc/hellolibvirt.c -misc_openauth_SOURCES = misc/openauth.c +c_admin_client_close_SOURCES = c/admin/client_close.c +c_admin_client_info_SOURCES = c/admin/client_info.c +c_admin_client_limits_SOURCES = c/admin/client_limits.c +c_admin_list_clients_SOURCES = c/admin/list_clients.c +c_admin_list_servers_SOURCES = c/admin/list_servers.c +c_admin_logging_SOURCES = c/admin/logging.c +c_admin_threadpool_params_SOURCES = c/admin/threadpool_params.c +c_domain_dommigrate_SOURCES = c/domain/dommigrate.c +c_domain_domtop_SOURCES = c/domain/domtop.c +c_domain_info1_SOURCES = c/domain/info1.c +c_domain_rename_SOURCES = c/domain/rename.c +c_domain_suspend_SOURCES = c/domain/suspend.c +c_misc_event_test_SOURCES = c/misc/event-test.c +c_misc_hellolibvirt_SOURCES = c/misc/hellolibvirt.c +c_misc_openauth_SOURCES = c/misc/openauth.c if WITH_NWFILTER @@ -120,13 +120,13 @@ endif WITH_NWFILTER examplesdir = $(docdir)/examples -adminexamplesdir = $(examplesdir)/admin +adminexamplesdir = $(examplesdir)/c/admin adminexamples_DATA = $(ADMIN_EXAMPLES) -domainexamplesdir = $(examplesdir)/domain +domainexamplesdir = $(examplesdir)/c/domain domainexamples_DATA = $(DOMAIN_EXAMPLES) -miscexamplesdir = $(examplesdir)/misc +miscexamplesdir = $(examplesdir)/c/misc miscexamples_DATA = $(MISC_EXAMPLES) polkitexamplesdir = $(examplesdir)/polkit diff --git a/examples/admin/client_close.c b/examples/c/admin/client_close.c similarity index 100% rename from examples/admin/client_close.c rename to examples/c/admin/client_close.c diff --git a/examples/admin/client_info.c b/examples/c/admin/client_info.c similarity index 100% rename from examples/admin/client_info.c rename to examples/c/admin/client_info.c diff --git a/examples/admin/client_limits.c b/examples/c/admin/client_limits.c similarity index 100% rename from examples/admin/client_limits.c rename to examples/c/admin/client_limits.c diff --git a/examples/admin/list_clients.c b/examples/c/admin/list_clients.c similarity index 100% rename from examples/admin/list_clients.c rename to examples/c/admin/list_clients.c diff --git a/examples/admin/list_servers.c b/examples/c/admin/list_servers.c similarity index 100% rename from examples/admin/list_servers.c rename to examples/c/admin/list_servers.c diff --git a/examples/admin/logging.c b/examples/c/admin/logging.c similarity index 100% rename from examples/admin/logging.c rename to examples/c/admin/logging.c diff --git a/examples/admin/threadpool_params.c b/examples/c/admin/threadpool_params.c similarity index 100% rename from examples/admin/threadpool_params.c rename to examples/c/admin/threadpool_params.c diff --git a/examples/domain/dommigrate.c b/examples/c/domain/dommigrate.c similarity index 100% rename from examples/domain/dommigrate.c rename to examples/c/domain/dommigrate.c diff --git a/examples/domain/domtop.c b/examples/c/domain/domtop.c similarity index 100% rename from examples/domain/domtop.c rename to examples/c/domain/domtop.c diff --git a/examples/domain/info1.c b/examples/c/domain/info1.c similarity index 100% rename from examples/domain/info1.c rename to examples/c/domain/info1.c diff --git a/examples/domain/rename.c b/examples/c/domain/rename.c similarity index 100% rename from examples/domain/rename.c rename to examples/c/domain/rename.c diff --git a/examples/domain/suspend.c b/examples/c/domain/suspend.c similarity index 100% rename from examples/domain/suspend.c rename to examples/c/domain/suspend.c diff --git a/examples/misc/event-test.c b/examples/c/misc/event-test.c similarity index 100% rename from examples/misc/event-test.c rename to examples/c/misc/event-test.c diff --git a/examples/misc/hellolibvirt.c b/examples/c/misc/hellolibvirt.c similarity index 100% rename from examples/misc/hellolibvirt.c rename to examples/c/misc/hellolibvirt.c diff --git a/examples/misc/openauth.c b/examples/c/misc/openauth.c similarity index 100% rename from examples/misc/openauth.c rename to examples/c/misc/openauth.c -- 2.21.0

On 5/22/19 7:52 PM, Andrea Bolognani wrote:
This series changes our install procedure so that we install all available examples on the target system; in the process, it also removes all custom shell code from the installation procedure, replacing it with standard autotools usage, and fixes a few admittedly very minor issues.
Andrea Bolognani (16): spec: Don't install libvirt-api.xml as documentation examples: Drop object_events_event_test_CFLAGS examples: Reformat $(AM_CPPFLAGS) and $(LDADDS) examples: Remove $(WARN_CFLAGS) from $(LDADD) examples: Don't look for headers in $(top_srcdir) examples: Move $(STATIC_BINARIES) to $(AM_LDFLAGS) examples: Move $(WARN_CFLAGS) to $(AM_CFLAGS) examples: Drop unnecessary $(mkinstalldirs) call examples: Install nwfilters without shell scripting examples: Install Polkit examples examples: Install SystemTap examples examples: Install remaining XML examples examples: Move and install shell examples examples: Organize C examples into categories examples: Rework C examples installation examples: Group all C programs together
.gitignore | 30 +-- examples/Makefile.am | 192 ++++++++++-------- examples/{ => c}/admin/client_close.c | 0 examples/{ => c}/admin/client_info.c | 0 examples/{ => c}/admin/client_limits.c | 0 examples/{ => c}/admin/list_clients.c | 0 examples/{ => c}/admin/list_servers.c | 0 examples/{ => c}/admin/logging.c | 0 examples/{ => c}/admin/threadpool_params.c | 0 .../{dommigrate => c/domain}/dommigrate.c | 0 examples/{domtop => c/domain}/domtop.c | 0 examples/{dominfo => c/domain}/info1.c | 0 examples/{rename => c/domain}/rename.c | 0 examples/{domsuspend => c/domain}/suspend.c | 0 .../{object-events => c/misc}/event-test.c | 0 .../{hellolibvirt => c/misc}/hellolibvirt.c | 0 examples/{openauth => c/misc}/openauth.c | 0 examples/{lxcconvert => sh}/virt-lxc-convert | 0 libvirt.spec.in | 4 - 19 files changed, 123 insertions(+), 103 deletions(-) rename examples/{ => c}/admin/client_close.c (100%) rename examples/{ => c}/admin/client_info.c (100%) rename examples/{ => c}/admin/client_limits.c (100%) rename examples/{ => c}/admin/list_clients.c (100%) rename examples/{ => c}/admin/list_servers.c (100%) rename examples/{ => c}/admin/logging.c (100%) rename examples/{ => c}/admin/threadpool_params.c (100%) rename examples/{dommigrate => c/domain}/dommigrate.c (100%) rename examples/{domtop => c/domain}/domtop.c (100%) rename examples/{dominfo => c/domain}/info1.c (100%) rename examples/{rename => c/domain}/rename.c (100%) rename examples/{domsuspend => c/domain}/suspend.c (100%) rename examples/{object-events => c/misc}/event-test.c (100%) rename examples/{hellolibvirt => c/misc}/hellolibvirt.c (100%) rename examples/{openauth => c/misc}/openauth.c (100%) rename examples/{lxcconvert => sh}/virt-lxc-convert (100%)
ACK Michal
participants (2)
-
Andrea Bolognani
-
Michal Privoznik