From e17a067e684d070c438febcc3e5c756eb984e821 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 9 Jun 2020 18:06:15 +0200 Subject: [PATCH] all: move "shared/nm-libnm-core-intern" to "libnm-core/nm-libnm-core-intern" The "shared" directory is used by libnm-core, it should thus only depend on code that is in the "shared" directory. Otherwise there is a circular dependency, and meson's subdir() does not work nicely. Also, libnm-core is really part of (and also an extension of) libnm-core, so it belongs there. I guess, the original idea was that this is also an extension for libnm, so another project could take these utility functions (by copying them into their source tree) and use them. That is still possible, it's just that the sources are no longer under the shared directory. Also add a readme to explain the non-obvious meaning of these files. --- Makefile.am | 46 ++++++++++--------- docs/libnm/Makefile.am | 5 ++ docs/libnm/meson.build | 5 ++ libnm-core/meson.build | 6 ++- libnm-core/nm-libnm-core-intern/README.md | 20 ++++++++ .../nm-libnm-core-intern/nm-auth-subject.c | 0 .../nm-libnm-core-intern/nm-auth-subject.h | 0 .../nm-libnm-core-intern/nm-common-macros.h | 0 .../nm-libnm-core-intern/nm-ethtool-utils.c | 0 .../nm-libnm-core-intern/nm-ethtool-utils.h | 0 .../nm-libnm-core-utils.c | 0 .../nm-libnm-core-utils.h | 0 shared/meson.build | 6 --- 13 files changed, 59 insertions(+), 29 deletions(-) create mode 100644 libnm-core/nm-libnm-core-intern/README.md rename {shared => libnm-core}/nm-libnm-core-intern/nm-auth-subject.c (100%) rename {shared => libnm-core}/nm-libnm-core-intern/nm-auth-subject.h (100%) rename {shared => libnm-core}/nm-libnm-core-intern/nm-common-macros.h (100%) rename {shared => libnm-core}/nm-libnm-core-intern/nm-ethtool-utils.c (100%) rename {shared => libnm-core}/nm-libnm-core-intern/nm-ethtool-utils.h (100%) rename {shared => libnm-core}/nm-libnm-core-intern/nm-libnm-core-utils.c (100%) rename {shared => libnm-core}/nm-libnm-core-intern/nm-libnm-core-utils.h (100%) diff --git a/Makefile.am b/Makefile.am index 47fe4d5a1c..caa02d9a93 100644 --- a/Makefile.am +++ b/Makefile.am @@ -456,9 +456,9 @@ shared_nm_udev_aux_libnm_udev_aux_la_LIBADD = \ ############################################################################### -noinst_LTLIBRARIES += shared/nm-libnm-core-intern/libnm-libnm-core-intern.la +noinst_LTLIBRARIES += libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la -shared_nm_libnm_core_intern_libnm_libnm_core_intern_la_CPPFLAGS = \ +libnm_core_nm_libnm_core_intern_libnm_libnm_core_intern_la_CPPFLAGS = \ $(dflt_cppflags) \ -I$(srcdir)/shared \ -I$(builddir)/shared \ @@ -471,26 +471,28 @@ shared_nm_libnm_core_intern_libnm_libnm_core_intern_la_CPPFLAGS = \ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE \ $(NULL) -shared_nm_libnm_core_intern_libnm_libnm_core_intern_la_SOURCES = \ - shared/nm-libnm-core-intern/nm-common-macros.h \ - shared/nm-libnm-core-intern/nm-ethtool-utils.c \ - shared/nm-libnm-core-intern/nm-ethtool-utils.h \ - shared/nm-libnm-core-intern/nm-libnm-core-utils.c \ - shared/nm-libnm-core-intern/nm-libnm-core-utils.h \ - shared/nm-libnm-core-intern/nm-auth-subject.c \ - shared/nm-libnm-core-intern/nm-auth-subject.h \ +libnm_core_nm_libnm_core_intern_libnm_libnm_core_intern_la_SOURCES = \ + libnm-core/nm-libnm-core-intern/nm-auth-subject.c \ + libnm-core/nm-libnm-core-intern/nm-auth-subject.h \ + libnm-core/nm-libnm-core-intern/nm-common-macros.h \ + libnm-core/nm-libnm-core-intern/nm-ethtool-utils.c \ + libnm-core/nm-libnm-core-intern/nm-ethtool-utils.h \ + libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c \ + libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.h \ $(NULL) -shared_nm_libnm_core_intern_libnm_libnm_core_intern_la_LDFLAGS = \ +libnm_core_nm_libnm_core_intern_libnm_libnm_core_intern_la_LDFLAGS = \ $(CODE_COVERAGE_LDFLAGS) \ $(SANITIZER_LIB_LDFLAGS) \ $(NULL) -shared_nm_libnm_core_intern_libnm_libnm_core_intern_la_LIBADD = \ +libnm_core_nm_libnm_core_intern_libnm_libnm_core_intern_la_LIBADD = \ $(GLIB_LIBS) \ $(NULL) -$(shared_nm_libnm_core_intern_libnm_libnm_core_intern_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +$(libnm_core_nm_libnm_core_intern_libnm_libnm_core_intern_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + +EXTRA_DIST += libnm-core/nm-libnm-core-intern/README.md ############################################################################### @@ -1224,7 +1226,7 @@ libnm_core_tests_ldadd = \ libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/libnm-core.la \ $(libnm_crypto_lib) \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/systemd/libnm-systemd-shared.la \ shared/systemd/libnm-systemd-logging-stub.la \ shared/nm-glib-aux/libnm-glib-aux.la \ @@ -1452,7 +1454,7 @@ libnm_liblibnm_la_LIBADD = \ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/libnm-core.la \ $(libnm_crypto_lib) \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ introspection/libnmdbus.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/systemd/libnm-systemd-shared.la \ @@ -2308,7 +2310,7 @@ src_libNetworkManager_la_LIBADD = \ libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/libnm-core.la \ $(libnm_crypto_lib) \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/nm-udev-aux/libnm-udev-aux.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-std-aux/libnm-std-aux.la \ @@ -2399,7 +2401,7 @@ src_nm_iface_helper_LDADD = \ libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/libnm-core.la \ $(libnm_crypto_lib) \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/nm-udev-aux/libnm-udev-aux.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-std-aux/libnm-std-aux.la \ @@ -2448,7 +2450,7 @@ src_initrd_nm_initrd_generator_LDADD = \ libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/libnm-core.la \ $(libnm_crypto_lib) \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/nm-udev-aux/libnm-udev-aux.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-std-aux/libnm-std-aux.la \ @@ -4433,7 +4435,7 @@ clients_common_tests_test_clients_common_LDADD = \ clients/common/libnmc.la \ clients/common/libnmc-base.la \ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-std-aux/libnm-std-aux.la \ shared/libcsiphash.la \ @@ -4524,7 +4526,7 @@ clients_cli_nmcli_LDADD = \ clients/common/libnmc.la \ clients/common/libnmc-base.la \ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-std-aux/libnm-std-aux.la \ shared/libcsiphash.la \ @@ -4725,7 +4727,7 @@ clients_tui_nmtui_LDADD = \ clients/common/libnmc-base.la \ shared/nm-libnm-aux/libnm-libnm-aux.la \ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-std-aux/libnm-std-aux.la \ shared/libcsiphash.la \ @@ -4792,7 +4794,7 @@ clients_cloud_setup_nm_cloud_setup_LDFLAGS = \ clients_cloud_setup_nm_cloud_setup_LDADD = \ shared/nm-libnm-aux/libnm-libnm-aux.la \ shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ - shared/nm-libnm-core-intern/libnm-libnm-core-intern.la \ + libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-std-aux/libnm-std-aux.la \ shared/libcsiphash.la \ diff --git a/docs/libnm/Makefile.am b/docs/libnm/Makefile.am index 7d16b8ca65..f02c2de4f1 100644 --- a/docs/libnm/Makefile.am +++ b/docs/libnm/Makefile.am @@ -58,6 +58,11 @@ IGNORE_HFILES= \ nm-keyfile-internal.h \ nm-keyfile-utils.h \ \ + nm-auth-subject.h \ + nm-common-macros.h \ + nm-ethtool-utils.h \ + nm-libnm-core-utils.h \ + \ $(NULL) # Images to copy into HTML directory. diff --git a/docs/libnm/meson.build b/docs/libnm/meson.build index 92dce23d0c..460e3e224d 100644 --- a/docs/libnm/meson.build +++ b/docs/libnm/meson.build @@ -30,6 +30,11 @@ private_headers = [ 'nm-keyfile-internal.h', 'nm-keyfile-utils.h', + + 'nm-auth-subject.h', + 'nm-common-macros.h', + 'nm-ethtool-utils.h', + 'nm-libnm-core-utils.h', ] scan_args = [ diff --git a/libnm-core/meson.build b/libnm-core/meson.build index 37fc514e4c..a5914519fb 100644 --- a/libnm-core/meson.build +++ b/libnm-core/meson.build @@ -88,7 +88,11 @@ libnm_core_enum_sources = gnome.mkenums_simple( libnm_libnm_core_intern = static_library( 'nm-libnm-core-intern', - sources: nm_ethtool_utils_source + nm_libnm_core_utils_source + nm_auth_subject_source + [libnm_core_enum_sources[1]], + sources: files( + 'nm-libnm-core-intern/nm-auth-subject.c', + 'nm-libnm-core-intern/nm-ethtool-utils.c', + 'nm-libnm-core-intern/nm-libnm-core-utils.c', + ) + [libnm_core_enum_sources[1]], dependencies: libnm_core_nm_default_dep, c_args: common_c_flags, ) diff --git a/libnm-core/nm-libnm-core-intern/README.md b/libnm-core/nm-libnm-core-intern/README.md new file mode 100644 index 0000000000..284a82ed5f --- /dev/null +++ b/libnm-core/nm-libnm-core-intern/README.md @@ -0,0 +1,20 @@ +nm-libnm-core-intern is a static library that: + + - uses parts of "libnm-core", that are public API of "libnm" + - that is statically linked into libnm-core (and thus libnm + and NetworkManager). + - that can also be statically linked into other users of libnm. + +Basically, it is a static library with utility functions that extends +libnm-core (the part that is public API of libnm), but it is used +by libnm-core. + +That means: + + - you can use it everywhere where you either statically link + with libnm-core, or dynamically link with libnm. + - you can even use it inside of libnm-core itself. + +Also, since nm-libnm-core-intern itself only uses public (stable) +API of libnm, you theoretically can copy the sources into your +own source tree. diff --git a/shared/nm-libnm-core-intern/nm-auth-subject.c b/libnm-core/nm-libnm-core-intern/nm-auth-subject.c similarity index 100% rename from shared/nm-libnm-core-intern/nm-auth-subject.c rename to libnm-core/nm-libnm-core-intern/nm-auth-subject.c diff --git a/shared/nm-libnm-core-intern/nm-auth-subject.h b/libnm-core/nm-libnm-core-intern/nm-auth-subject.h similarity index 100% rename from shared/nm-libnm-core-intern/nm-auth-subject.h rename to libnm-core/nm-libnm-core-intern/nm-auth-subject.h diff --git a/shared/nm-libnm-core-intern/nm-common-macros.h b/libnm-core/nm-libnm-core-intern/nm-common-macros.h similarity index 100% rename from shared/nm-libnm-core-intern/nm-common-macros.h rename to libnm-core/nm-libnm-core-intern/nm-common-macros.h diff --git a/shared/nm-libnm-core-intern/nm-ethtool-utils.c b/libnm-core/nm-libnm-core-intern/nm-ethtool-utils.c similarity index 100% rename from shared/nm-libnm-core-intern/nm-ethtool-utils.c rename to libnm-core/nm-libnm-core-intern/nm-ethtool-utils.c diff --git a/shared/nm-libnm-core-intern/nm-ethtool-utils.h b/libnm-core/nm-libnm-core-intern/nm-ethtool-utils.h similarity index 100% rename from shared/nm-libnm-core-intern/nm-ethtool-utils.h rename to libnm-core/nm-libnm-core-intern/nm-ethtool-utils.h diff --git a/shared/nm-libnm-core-intern/nm-libnm-core-utils.c b/libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c similarity index 100% rename from shared/nm-libnm-core-intern/nm-libnm-core-utils.c rename to libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c diff --git a/shared/nm-libnm-core-intern/nm-libnm-core-utils.h b/libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.h similarity index 100% rename from shared/nm-libnm-core-intern/nm-libnm-core-utils.h rename to libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.h diff --git a/shared/meson.build b/shared/meson.build index 81975685a3..7399e55118 100644 --- a/shared/meson.build +++ b/shared/meson.build @@ -107,12 +107,8 @@ nm_version_macro_header = configure_file( configuration: data_conf, ) -nm_ethtool_utils_source = files('nm-libnm-core-intern/nm-ethtool-utils.c') - nm_libnm_core_aux_source = files('nm-libnm-core-aux/nm-libnm-core-aux.c') -nm_libnm_core_utils_source = files('nm-libnm-core-intern/nm-libnm-core-utils.c') - nm_libnm_aux_source = files('nm-libnm-aux/nm-libnm-aux.c') nm_meta_setting_source = files('nm-meta-setting.c') @@ -121,8 +117,6 @@ nm_test_utils_impl_source = files('nm-test-utils-impl.c') nm_vpn_plugin_utils_source = files('nm-utils/nm-vpn-plugin-utils.c') -nm_auth_subject_source = files('nm-libnm-core-intern/nm-auth-subject.c') - c_flags = [ '-DG_LOG_DOMAIN="@0@"'.format(libnm_name), '-DNETWORKMANAGER_COMPILATION=0',