all: move "shared/nm-libnm-core-aux" to "libnm-core/nm-libnm-core-aux"

Like the previous commit. Move code that depends on libnm-core out
of shared to avoid circular dependency.

Also add a readme file explaining the reason for existence of
the helper libraries nm-libnm-core-intern and nm-libnm-core-aux.
This commit is contained in:
Thomas Haller 2020-06-09 18:06:15 +02:00
parent e17a067e68
commit a9408e3497
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
11 changed files with 54 additions and 24 deletions

View file

@ -496,9 +496,9 @@ EXTRA_DIST += libnm-core/nm-libnm-core-intern/README.md
############################################################################### ###############################################################################
noinst_LTLIBRARIES += shared/nm-libnm-core-aux/libnm-libnm-core-aux.la noinst_LTLIBRARIES += libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la
shared_nm_libnm_core_aux_libnm_libnm_core_aux_la_CPPFLAGS = \ libnm_core_nm_libnm_core_aux_libnm_libnm_core_aux_la_CPPFLAGS = \
$(dflt_cppflags) \ $(dflt_cppflags) \
-I$(srcdir)/shared \ -I$(srcdir)/shared \
-I$(builddir)/shared \ -I$(builddir)/shared \
@ -511,22 +511,24 @@ shared_nm_libnm_core_aux_libnm_libnm_core_aux_la_CPPFLAGS = \
-DNETWORKMANAGER_COMPILATION='(NM_NETWORKMANAGER_COMPILATION_WITH_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB)' \ -DNETWORKMANAGER_COMPILATION='(NM_NETWORKMANAGER_COMPILATION_WITH_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB)' \
$(NULL) $(NULL)
shared_nm_libnm_core_aux_libnm_libnm_core_aux_la_SOURCES = \ libnm_core_nm_libnm_core_aux_libnm_libnm_core_aux_la_SOURCES = \
shared/nm-libnm-core-aux/nm-dispatcher-api.h \ libnm-core/nm-libnm-core-aux/nm-dispatcher-api.h \
shared/nm-libnm-core-aux/nm-libnm-core-aux.c \ libnm-core/nm-libnm-core-aux/nm-libnm-core-aux.c \
shared/nm-libnm-core-aux/nm-libnm-core-aux.h \ libnm-core/nm-libnm-core-aux/nm-libnm-core-aux.h \
$(NULL) $(NULL)
shared_nm_libnm_core_aux_libnm_libnm_core_aux_la_LDFLAGS = \ libnm_core_nm_libnm_core_aux_libnm_libnm_core_aux_la_LDFLAGS = \
$(CODE_COVERAGE_LDFLAGS) \ $(CODE_COVERAGE_LDFLAGS) \
$(SANITIZER_LIB_LDFLAGS) \ $(SANITIZER_LIB_LDFLAGS) \
$(NULL) $(NULL)
shared_nm_libnm_core_aux_libnm_libnm_core_aux_la_LIBADD = \ libnm_core_nm_libnm_core_aux_libnm_libnm_core_aux_la_LIBADD = \
$(GLIB_LIBS) \ $(GLIB_LIBS) \
$(NULL) $(NULL)
$(shared_nm_libnm_core_aux_libnm_libnm_core_aux_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_core_nm_libnm_core_aux_libnm_libnm_core_aux_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
EXTRA_DIST += libnm-core/nm-libnm-core-aux/README.md
############################################################################### ###############################################################################
@ -1222,7 +1224,7 @@ nodist_libnm_core_tests_test_general_SOURCES = \
$(NULL) $(NULL)
libnm_core_tests_ldadd = \ libnm_core_tests_ldadd = \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/nm-keyfile/libnm-keyfile.la \
libnm-core/libnm-core.la \ libnm-core/libnm-core.la \
$(libnm_crypto_lib) \ $(libnm_crypto_lib) \
@ -1451,7 +1453,7 @@ nodist_libnm_liblibnm_la_SOURCES = \
$(NULL) $(NULL)
libnm_liblibnm_la_LIBADD = \ libnm_liblibnm_la_LIBADD = \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/libnm-core.la \ libnm-core/libnm-core.la \
$(libnm_crypto_lib) \ $(libnm_crypto_lib) \
libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \ libnm-core/nm-libnm-core-intern/libnm-libnm-core-intern.la \
@ -2306,7 +2308,7 @@ src_libNetworkManager_la_SOURCES = \
src_libNetworkManager_la_LIBADD = \ src_libNetworkManager_la_LIBADD = \
src/libNetworkManagerBase.la \ src/libNetworkManagerBase.la \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/nm-keyfile/libnm-keyfile.la \
libnm-core/libnm-core.la \ libnm-core/libnm-core.la \
$(libnm_crypto_lib) \ $(libnm_crypto_lib) \
@ -2397,7 +2399,7 @@ src_nm_iface_helper_SOURCES = \
src_nm_iface_helper_LDADD = \ src_nm_iface_helper_LDADD = \
src/libNetworkManagerBase.la \ src/libNetworkManagerBase.la \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/nm-keyfile/libnm-keyfile.la \
libnm-core/libnm-core.la \ libnm-core/libnm-core.la \
$(libnm_crypto_lib) \ $(libnm_crypto_lib) \
@ -2446,7 +2448,7 @@ src_initrd_nm_initrd_generator_SOURCES = \
src_initrd_nm_initrd_generator_LDADD = \ src_initrd_nm_initrd_generator_LDADD = \
src/initrd/libnmi-core.la \ src/initrd/libnmi-core.la \
src/libNetworkManagerBase.la \ src/libNetworkManagerBase.la \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/nm-keyfile/libnm-keyfile.la \ libnm-core/nm-keyfile/libnm-keyfile.la \
libnm-core/libnm-core.la \ libnm-core/libnm-core.la \
$(libnm_crypto_lib) \ $(libnm_crypto_lib) \
@ -4434,7 +4436,7 @@ clients_common_tests_test_clients_common_LDFLAGS = \
clients_common_tests_test_clients_common_LDADD = \ clients_common_tests_test_clients_common_LDADD = \
clients/common/libnmc.la \ clients/common/libnmc.la \
clients/common/libnmc-base.la \ clients/common/libnmc-base.la \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/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-glib-aux/libnm-glib-aux.la \
shared/nm-std-aux/libnm-std-aux.la \ shared/nm-std-aux/libnm-std-aux.la \
@ -4478,7 +4480,7 @@ clients_common_tests_test_libnm_core_aux_LDFLAGS = \
$(NULL) $(NULL)
clients_common_tests_test_libnm_core_aux_LDADD = \ clients_common_tests_test_libnm_core_aux_LDADD = \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
shared/nm-glib-aux/libnm-glib-aux.la \ shared/nm-glib-aux/libnm-glib-aux.la \
shared/nm-std-aux/libnm-std-aux.la \ shared/nm-std-aux/libnm-std-aux.la \
shared/libcsiphash.la \ shared/libcsiphash.la \
@ -4525,7 +4527,7 @@ clients_cli_nmcli_CPPFLAGS = \
clients_cli_nmcli_LDADD = \ clients_cli_nmcli_LDADD = \
clients/common/libnmc.la \ clients/common/libnmc.la \
clients/common/libnmc-base.la \ clients/common/libnmc-base.la \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/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-glib-aux/libnm-glib-aux.la \
shared/nm-std-aux/libnm-std-aux.la \ shared/nm-std-aux/libnm-std-aux.la \
@ -4726,7 +4728,7 @@ clients_tui_nmtui_LDADD = \
clients/common/libnmc.la \ clients/common/libnmc.la \
clients/common/libnmc-base.la \ clients/common/libnmc-base.la \
shared/nm-libnm-aux/libnm-libnm-aux.la \ shared/nm-libnm-aux/libnm-libnm-aux.la \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/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-glib-aux/libnm-glib-aux.la \
shared/nm-std-aux/libnm-std-aux.la \ shared/nm-std-aux/libnm-std-aux.la \
@ -4793,7 +4795,7 @@ clients_cloud_setup_nm_cloud_setup_LDFLAGS = \
clients_cloud_setup_nm_cloud_setup_LDADD = \ clients_cloud_setup_nm_cloud_setup_LDADD = \
shared/nm-libnm-aux/libnm-libnm-aux.la \ shared/nm-libnm-aux/libnm-libnm-aux.la \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \ libnm-core/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/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-glib-aux/libnm-glib-aux.la \
shared/nm-std-aux/libnm-std-aux.la \ shared/nm-std-aux/libnm-std-aux.la \

View file

@ -63,6 +63,9 @@ IGNORE_HFILES= \
nm-ethtool-utils.h \ nm-ethtool-utils.h \
nm-libnm-core-utils.h \ nm-libnm-core-utils.h \
\ \
nm-dispatcher-api.h \
nm-libnm-core-aux.h \
\
$(NULL) $(NULL)
# Images to copy into HTML directory. # Images to copy into HTML directory.

View file

@ -35,6 +35,9 @@ private_headers = [
'nm-common-macros.h', 'nm-common-macros.h',
'nm-ethtool-utils.h', 'nm-ethtool-utils.h',
'nm-libnm-core-utils.h', 'nm-libnm-core-utils.h',
'nm-dispatcher-api.h',
'nm-libnm-core-aux.h',
] ]
scan_args = [ scan_args = [

View file

@ -225,7 +225,9 @@ c_flags = [
libnm_libnm_core_aux = static_library( libnm_libnm_core_aux = static_library(
'nm-libnm-core-aux', 'nm-libnm-core-aux',
sources: nm_libnm_core_aux_source + [libnm_core_enum_sources[1]], sources: files(
'nm-libnm-core-aux/nm-libnm-core-aux.c',
) + [libnm_core_enum_sources[1]],
dependencies: libnm_utils_base_dep, dependencies: libnm_utils_base_dep,
c_args: c_flags, c_args: c_flags,
link_with: libnm_libnm_core_intern, link_with: libnm_libnm_core_intern,

View file

@ -0,0 +1,21 @@
nm-libnm-core-aux is a static library that:
- uses parts of "libnm-core", that are public API of "libnm"
- can be statically linked into users of libnm-core (like 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 can also be
used without full libnm.
That means:
- you can use it everywhere where you either statically link
with libnm-core, or dynamically link with libnm.
- you cannot use it inside libnm-core itself. This is the difference
between nm-libnm-core-intern and nm-libnm-core-aux.
Also, since nm-libnm-core-aux itself only uses public (stable)
API of libnm, you theoretically can copy the sources into your
own source tree.

View file

@ -13,7 +13,8 @@ That means:
- you can use it everywhere where you either statically link - you can use it everywhere where you either statically link
with libnm-core, or dynamically link with libnm. with libnm-core, or dynamically link with libnm.
- you can even use it inside of libnm-core itself. - you can even use it inside of libnm-core itself. This is the difference
between nm-libnm-core-intern and nm-libnm-core-aux.
Also, since nm-libnm-core-intern itself only uses public (stable) Also, since nm-libnm-core-intern itself only uses public (stable)
API of libnm, you theoretically can copy the sources into your API of libnm, you theoretically can copy the sources into your

View file

@ -58,6 +58,7 @@ libnm-core/nm-connection.c
libnm-core/nm-dbus-utils.c libnm-core/nm-dbus-utils.c
libnm-core/nm-keyfile/nm-keyfile-utils.c libnm-core/nm-keyfile/nm-keyfile-utils.c
libnm-core/nm-keyfile/nm-keyfile.c libnm-core/nm-keyfile/nm-keyfile.c
libnm-core/nm-libnm-core-aux/nm-libnm-core-aux.c
libnm-core/nm-setting-6lowpan.c libnm-core/nm-setting-6lowpan.c
libnm-core/nm-setting-8021x.c libnm-core/nm-setting-8021x.c
libnm-core/nm-setting-adsl.c libnm-core/nm-setting-adsl.c
@ -142,7 +143,6 @@ libnm/nm-vpn-plugin-old.c
libnm/nm-vpn-service-plugin.c libnm/nm-vpn-service-plugin.c
data/org.freedesktop.NetworkManager.policy.in.in data/org.freedesktop.NetworkManager.policy.in.in
shared/nm-glib-aux/nm-shared-utils.c shared/nm-glib-aux/nm-shared-utils.c
shared/nm-libnm-core-aux/nm-libnm-core-aux.c
src/NetworkManagerUtils.c src/NetworkManagerUtils.c
src/main.c src/main.c
src/main-utils.c src/main-utils.c

View file

@ -107,8 +107,6 @@ nm_version_macro_header = configure_file(
configuration: data_conf, configuration: data_conf,
) )
nm_libnm_core_aux_source = files('nm-libnm-core-aux/nm-libnm-core-aux.c')
nm_libnm_aux_source = files('nm-libnm-aux/nm-libnm-aux.c') nm_libnm_aux_source = files('nm-libnm-aux/nm-libnm-aux.c')
nm_meta_setting_source = files('nm-meta-setting.c') nm_meta_setting_source = files('nm-meta-setting.c')