From cc78d89796909750d8a5f2b960e36b38f9d7a070 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 11 Oct 2016 21:50:18 +0200 Subject: [PATCH 01/17] build: fix check_local for wifi plugin --- src/devices/wifi/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/devices/wifi/Makefile.am b/src/devices/wifi/Makefile.am index 121a874f26..c0d303a074 100644 --- a/src/devices/wifi/Makefile.am +++ b/src/devices/wifi/Makefile.am @@ -1,5 +1,7 @@ include $(GLIB_MAKEFILE) +include $(top_srcdir)/nm.mk + @GNOME_CODE_COVERAGE_RULES@ if ENABLE_TESTS From 38d669d5ee5e13a8025acd5bb1a0e348662ca596 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 10:06:58 +0200 Subject: [PATCH 02/17] build: move check_so_symbols for settings plugins to parent makefile Like for the device plugins, check_so_symbols is called from the Makefile of the plugin itself, not from tests/Makefile.am. Just keep it consistent. --- src/settings/plugins/ibft/Makefile.am | 7 +++++++ src/settings/plugins/ibft/tests/Makefile.am | 5 ----- src/settings/plugins/ifcfg-rh/Makefile.am | 8 ++++++++ src/settings/plugins/ifcfg-rh/tests/Makefile.am | 5 ----- src/settings/plugins/ifnet/Makefile.am | 7 +++++++ src/settings/plugins/ifnet/tests/Makefile.am | 5 ----- src/settings/plugins/ifupdown/Makefile.am | 6 ++++++ src/settings/plugins/ifupdown/tests/Makefile.am | 5 ----- 8 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/settings/plugins/ibft/Makefile.am b/src/settings/plugins/ibft/Makefile.am index 3ad3a19e46..369d64443a 100644 --- a/src/settings/plugins/ibft/Makefile.am +++ b/src/settings/plugins/ibft/Makefile.am @@ -2,6 +2,8 @@ SUBDIRS = . tests @GNOME_CODE_COVERAGE_RULES@ +include $(top_srcdir)/nm.mk + pkglib_LTLIBRARIES = libnm-settings-plugin-ibft.la noinst_LTLIBRARIES = libnms-ibft-core.la @@ -42,4 +44,9 @@ libnm_settings_plugin_ibft_la_LIBADD = \ ############################################################################### +check-local: + $(call check_so_symbols,$(builddir)/.libs/libnm-settings-plugin-ibft.so) + +############################################################################### + CLEANFILES = $(BUILT_SOURCES) diff --git a/src/settings/plugins/ibft/tests/Makefile.am b/src/settings/plugins/ibft/tests/Makefile.am index 43df1ab77d..79ae507eb0 100644 --- a/src/settings/plugins/ibft/tests/Makefile.am +++ b/src/settings/plugins/ibft/tests/Makefile.am @@ -1,7 +1,5 @@ if ENABLE_TESTS -include $(top_srcdir)/nm.mk - @GNOME_CODE_COVERAGE_RULES@ AM_CPPFLAGS = \ @@ -36,9 +34,6 @@ test_ibft_LDADD = \ @VALGRIND_RULES@ TESTS = test-ibft -check-local: - $(call check_so_symbols,$(builddir)/../.libs/libnm-settings-plugin-ibft.so) - endif EXTRA_DIST = \ diff --git a/src/settings/plugins/ifcfg-rh/Makefile.am b/src/settings/plugins/ifcfg-rh/Makefile.am index 63c117ea20..37f0716ada 100644 --- a/src/settings/plugins/ifcfg-rh/Makefile.am +++ b/src/settings/plugins/ifcfg-rh/Makefile.am @@ -2,6 +2,8 @@ SUBDIRS = . tests @GNOME_CODE_COVERAGE_RULES@ +include $(top_srcdir)/nm.mk + pkglib_LTLIBRARIES = \ libnm-settings-plugin-ifcfg-rh.la @@ -78,6 +80,11 @@ libnm_settings_plugin_ifcfg_rh_la_LIBADD = \ ############################################################################### +check-local: + $(call check_so_symbols,$(builddir)/.libs/libnm-settings-plugin-ifcfg-rh.so) + +############################################################################### + dbusservicedir = $(DBUS_SYS_DIR) dbusservice_DATA = nm-ifcfg-rh.conf @@ -87,3 +94,4 @@ EXTRA_DIST = \ CLEANFILES = $(BUILT_SOURCES) + diff --git a/src/settings/plugins/ifcfg-rh/tests/Makefile.am b/src/settings/plugins/ifcfg-rh/tests/Makefile.am index 8315e494bf..299843833e 100644 --- a/src/settings/plugins/ifcfg-rh/tests/Makefile.am +++ b/src/settings/plugins/ifcfg-rh/tests/Makefile.am @@ -1,7 +1,5 @@ if ENABLE_TESTS -include $(top_srcdir)/nm.mk - SUBDIRS=network-scripts @GNOME_CODE_COVERAGE_RULES@ @@ -40,7 +38,4 @@ test_ifcfg_rh_LDADD = \ @VALGRIND_RULES@ TESTS = test-ifcfg-rh -check-local: - $(call check_so_symbols,$(builddir)/../.libs/libnm-settings-plugin-ifcfg-rh.so) - endif diff --git a/src/settings/plugins/ifnet/Makefile.am b/src/settings/plugins/ifnet/Makefile.am index f2a65d9622..207c95f8ae 100644 --- a/src/settings/plugins/ifnet/Makefile.am +++ b/src/settings/plugins/ifnet/Makefile.am @@ -2,6 +2,8 @@ SUBDIRS = . tests @GNOME_CODE_COVERAGE_RULES@ +include $(top_srcdir)/nm.mk + AM_CPPFLAGS = \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/platform \ @@ -47,3 +49,8 @@ libnm_settings_plugin_ifnet_la_LDFLAGS = \ libnm_settings_plugin_ifnet_la_LIBADD = \ libnms-ifnet-core.la + +############################################################################### + +check-local: + $(call check_so_symbols,$(builddir)/.libs/libnm-settings-plugin-ifnet.so) diff --git a/src/settings/plugins/ifnet/tests/Makefile.am b/src/settings/plugins/ifnet/tests/Makefile.am index 7ff38fa09c..283c758942 100644 --- a/src/settings/plugins/ifnet/tests/Makefile.am +++ b/src/settings/plugins/ifnet/tests/Makefile.am @@ -1,7 +1,5 @@ if ENABLE_TESTS -include $(top_srcdir)/nm.mk - @GNOME_CODE_COVERAGE_RULES@ AM_CPPFLAGS= \ @@ -39,9 +37,6 @@ test_ifnet_LDADD = \ @VALGRIND_RULES@ TESTS = test-ifnet -check-local: - $(call check_so_symbols,$(builddir)/../.libs/libnm-settings-plugin-ifnet.so) - endif EXTRA_DIST = \ diff --git a/src/settings/plugins/ifupdown/Makefile.am b/src/settings/plugins/ifupdown/Makefile.am index 539b8a2fe6..0050aa8657 100644 --- a/src/settings/plugins/ifupdown/Makefile.am +++ b/src/settings/plugins/ifupdown/Makefile.am @@ -2,6 +2,8 @@ SUBDIRS = . tests @GNOME_CODE_COVERAGE_RULES@ +include $(top_srcdir)/nm.mk + AM_CPPFLAGS = \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/settings \ @@ -43,3 +45,7 @@ libnm_settings_plugin_ifupdown_la_LDFLAGS = \ libnm_settings_plugin_ifupdown_la_LIBADD = \ libnms-ifupdown-core.la +############################################################################### + +check-local: + $(call check_so_symbols,$(builddir)/.libs/libnm-settings-plugin-ifupdown.so) diff --git a/src/settings/plugins/ifupdown/tests/Makefile.am b/src/settings/plugins/ifupdown/tests/Makefile.am index 80abf8a9e7..d8d13c3b2d 100644 --- a/src/settings/plugins/ifupdown/tests/Makefile.am +++ b/src/settings/plugins/ifupdown/tests/Makefile.am @@ -1,7 +1,5 @@ if ENABLE_TESTS -include $(top_srcdir)/nm.mk - AM_CPPFLAGS = \ -I$(top_srcdir)/shared \ -I$(top_builddir)/shared \ @@ -31,9 +29,6 @@ test_ifupdown_LDADD = \ @VALGRIND_RULES@ TESTS = test-ifupdown -check-local: - $(call check_so_symbols,$(builddir)/../.libs/libnm-settings-plugin-ifupdown.so) - endif EXTRA_DIST = \ From 9f5b80d21510c516ec658e09058908c9759142ac Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 10:42:23 +0200 Subject: [PATCH 03/17] build: don't guard check-local with "if ENABLE_TESTS" We should enable tests by default, probably we even should drop the configure flags to enable tests and just always build them. Anyway, at this point there is no use in guarding check-local with a check for ENABLE_TESTS. A user who does't want to run the tests, should just not call `make check`. --- libnm-glib/Makefile.am | 5 ----- libnm-util/Makefile.am | 5 ----- src/devices/adsl/Makefile.am | 5 ----- src/devices/bluetooth/Makefile.am | 5 ----- src/devices/team/Makefile.am | 4 ---- src/devices/wifi/Makefile.am | 5 ----- src/devices/wwan/Makefile.am | 5 ----- 7 files changed, 34 deletions(-) diff --git a/libnm-glib/Makefile.am b/libnm-glib/Makefile.am index 6cb3e4b826..71fb7341ad 100644 --- a/libnm-glib/Makefile.am +++ b/libnm-glib/Makefile.am @@ -222,10 +222,5 @@ typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) CLEANFILES += $(gir_DATA) $(typelib_DATA) endif -if ENABLE_TESTS - check-local: $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-glib.so $(SYMBOL_VIS_FILE) - -endif - diff --git a/libnm-util/Makefile.am b/libnm-util/Makefile.am index 466e475f23..2991aa93d0 100644 --- a/libnm-util/Makefile.am +++ b/libnm-util/Makefile.am @@ -196,10 +196,5 @@ CLEANFILES = $(gir_DATA) $(typelib_DATA) endif -if ENABLE_TESTS - check-local: $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-util.so $(SYMBOL_VIS_FILE) - -endif - diff --git a/src/devices/adsl/Makefile.am b/src/devices/adsl/Makefile.am index 1dbd5a3b4f..bf7f974275 100644 --- a/src/devices/adsl/Makefile.am +++ b/src/devices/adsl/Makefile.am @@ -37,11 +37,6 @@ libnm_device_plugin_adsl_la_LIBADD = \ EXTRA_DIST = $(SYMBOL_VIS_FILE) -if ENABLE_TESTS - check-local: $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-adsl.so $(SYMBOL_VIS_FILE) $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-adsl.so) - -endif - diff --git a/src/devices/bluetooth/Makefile.am b/src/devices/bluetooth/Makefile.am index 951807aa47..d1a833a3c5 100644 --- a/src/devices/bluetooth/Makefile.am +++ b/src/devices/bluetooth/Makefile.am @@ -73,11 +73,6 @@ endif CLEANFILES = $(BUILT_SOURCES) EXTRA_DIST = $(SYMBOL_VIS_FILE) -if ENABLE_TESTS - check-local: $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-bluetooth.so $(SYMBOL_VIS_FILE) $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-bluetooth.so) - -endif - diff --git a/src/devices/team/Makefile.am b/src/devices/team/Makefile.am index da9d5b2e7c..350cf0c7c4 100644 --- a/src/devices/team/Makefile.am +++ b/src/devices/team/Makefile.am @@ -47,10 +47,6 @@ endif EXTRA_DIST = $(SYMBOL_VIS_FILE) -if ENABLE_TESTS - check-local: $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-team.so $(SYMBOL_VIS_FILE) $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-team.so) - -endif diff --git a/src/devices/wifi/Makefile.am b/src/devices/wifi/Makefile.am index c0d303a074..3042b19794 100644 --- a/src/devices/wifi/Makefile.am +++ b/src/devices/wifi/Makefile.am @@ -50,11 +50,6 @@ libnm_device_plugin_wifi_la_LIBADD = \ EXTRA_DIST = $(SYMBOL_VIS_FILE) -if ENABLE_TESTS - check-local: $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-wifi.so $(SYMBOL_VIS_FILE) $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-wifi.so) - -endif - diff --git a/src/devices/wwan/Makefile.am b/src/devices/wwan/Makefile.am index 7f7e6e8b41..a118a5545c 100644 --- a/src/devices/wwan/Makefile.am +++ b/src/devices/wwan/Makefile.am @@ -85,14 +85,9 @@ libnm_device_plugin_wwan_la_LIBADD = \ CLEANFILES = $(BUILT_SOURCES) EXTRA_DIST = $(SYMBOL_VIS_FILE) $(WWAN_SYMBOL_VIS_FILE) -if ENABLE_TESTS - check-local: $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-wwan.so $(SYMBOL_VIS_FILE) $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-wwan.so) - $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-wwan.so $(WWAN_SYMBOL_VIS_FILE) $(call check_so_symbols,$(builddir)/.libs/libnm-wwan.so) -endif - From 76a057b4ec50ae71b778a1cf44277dec162bab09 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 10:43:41 +0200 Subject: [PATCH 04/17] build: always include subdir wifi/tests regardless of ENABLE_TESTS Like done for all other device plugins. --- src/devices/wifi/Makefile.am | 2 -- src/devices/wifi/tests/Makefile.am | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/devices/wifi/Makefile.am b/src/devices/wifi/Makefile.am index 3042b19794..72863bc4a6 100644 --- a/src/devices/wifi/Makefile.am +++ b/src/devices/wifi/Makefile.am @@ -4,9 +4,7 @@ include $(top_srcdir)/nm.mk @GNOME_CODE_COVERAGE_RULES@ -if ENABLE_TESTS SUBDIRS=. tests -endif AM_CPPFLAGS = \ -I${top_srcdir}/src \ diff --git a/src/devices/wifi/tests/Makefile.am b/src/devices/wifi/tests/Makefile.am index 4ad66261b2..1f0171d0db 100644 --- a/src/devices/wifi/tests/Makefile.am +++ b/src/devices/wifi/tests/Makefile.am @@ -1,3 +1,5 @@ +if ENABLE_TESTS + AM_CPPFLAGS = \ -I$(top_builddir)/introspection \ -I$(top_srcdir)/shared \ @@ -26,3 +28,4 @@ test_general_LDADD = $(top_builddir)/src/libNetworkManager.la @VALGRIND_RULES@ TESTS = test-general +endif From b171fbc9ca86223dc055f81a12c0e1f4c4318dde Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 11 Oct 2016 16:40:00 +0200 Subject: [PATCH 05/17] build: explicitly whitelist symbols in NetworkManager binary - this allows the linker to drop unused symbols via link-time optimization or with --gc-sections: git clean -fdx ./autogen.sh --enable-ld-gc --enable-ifcfg-rh --enable-ifupdown \ --enable-ifnet --enable-ibft --enable-teamdctl --enable-wifi \ --with-modem-manager-1 --with-ofono --with-more-asserts \ --with-more-logging make -j20 strip ./src/NetworkManager gives 2822840 vs. 2625960 bytes (-7%). - this also gives more control over the symbols that are used by the plugins. Yes, it means if you modify a plugin to use a new symbols, you have to extend NetworkManager.ver file. You can run the script to create the version file: $ ./tools/create-exports-NetworkManager.sh update but be sure that your current configuration enables all plugins and debugging options to actually use all symbols that are in use. - If you compile with certain plugins enabled, you could theoretically re-compile NetworkManager to expose less symbols. Try: $ ./tools/create-exports-NetworkManager.sh build - note that we have `make check` tests to ensure that all used symbols of the plugins can be found. So, it should not be possible to accidentally forget to expose a symbol. --- src/NetworkManager.ver | 562 ++++++++++++++++++++++++- tools/create-exports-NetworkManager.sh | 104 +++++ 2 files changed, 657 insertions(+), 9 deletions(-) create mode 100755 tools/create-exports-NetworkManager.sh diff --git a/src/NetworkManager.ver b/src/NetworkManager.ver index 0e092f44ad..db97295ef9 100644 --- a/src/NetworkManager.ver +++ b/src/NetworkManager.ver @@ -1,15 +1,559 @@ +# this file is generated by ./tools/create-exports-NetworkManager.sh { global: - nm_*; - nmp_*; - _nm*; - NM*; - _NM*; + NM_ASSERT_VALID_PATH_COMPONENT; + _nm_dbus_error_has_name; + _nm_dbus_proxy_call_finish; + _nm_dbus_signal_connect_data; + _nm_device_factory_no_default_links; + _nm_exported_object_clear_and_unexport; + _nm_log_impl; + _nm_logging_enabled_state; + _nm_platform_error_to_string; + _nm_singleton_instance_register_destruction; + _nm_utils_ascii_str_to_int64; + _nm_utils_dns_option_find_idx; + _nm_utils_hash_values_to_slist; + _nm_utils_strsplit_set; + _nm_utils_uuid_generate_from_strings; + nm_act_request_cancel_secrets; + nm_act_request_clear_secrets; + nm_act_request_get_applied_connection; + nm_act_request_get_secrets; + nm_act_request_get_settings_connection; + nm_act_request_get_type; + nm_active_connection_get_specific_object; + nm_active_connection_get_type; + nm_active_connection_set_specific_object; + nm_config_data_get_connection_default; + nm_config_data_get_device_config; + nm_config_data_get_device_config_boolean; + nm_config_data_get_value_boolean; + nm_config_get; + nm_config_get_data; + nm_config_get_data_orig; + nm_config_get_dhcp_client; + nm_config_get_monitor_connection_files; + nm_connection_add_setting; + nm_connection_compare; + nm_connection_error_quark; + nm_connection_for_each_setting_value; + nm_connection_get_id; + nm_connection_get_interface_name; + nm_connection_get_path; + nm_connection_get_setting_802_1x; + nm_connection_get_setting_adsl; + nm_connection_get_setting_bluetooth; + nm_connection_get_setting_bond; + nm_connection_get_setting_bridge; + nm_connection_get_setting_bridge_port; + nm_connection_get_setting_cdma; + nm_connection_get_setting_connection; + nm_connection_get_setting_dcb; + nm_connection_get_setting_gsm; + nm_connection_get_setting_infiniband; + nm_connection_get_setting_ip4_config; + nm_connection_get_setting_ip6_config; + nm_connection_get_setting_olpc_mesh; + nm_connection_get_setting_ppp; + nm_connection_get_setting_pppoe; + nm_connection_get_setting_proxy; + nm_connection_get_setting_serial; + nm_connection_get_setting_team; + nm_connection_get_setting_team_port; + nm_connection_get_setting_vlan; + nm_connection_get_setting_wired; + nm_connection_get_setting_wireless; + nm_connection_get_setting_wireless_security; + nm_connection_get_type; + nm_connection_get_uuid; + nm_connection_is_type; + nm_connection_need_secrets; + nm_connection_normalize; + nm_connection_set_path; + nm_connection_verify; + nm_device_activate_ip4_state_done; + nm_device_activate_ip4_state_in_conf; + nm_device_activate_ip6_state_done; + nm_device_activate_ip6_state_in_conf; + nm_device_activate_schedule_ip4_config_result; + nm_device_activate_schedule_ip4_config_timeout; + nm_device_activate_schedule_ip6_config_result; + nm_device_activate_schedule_ip6_config_timeout; + nm_device_activate_schedule_stage1_device_prepare; + nm_device_activate_schedule_stage2_device_config; + nm_device_activate_schedule_stage3_ip_config_start; + nm_device_add_pending_action; + nm_device_bring_up; + nm_device_emit_recheck_auto_activate; + nm_device_error_quark; + nm_device_factory_emit_component_added; + nm_device_factory_get_type; + nm_device_get_act_request; + nm_device_get_applied_connection; + nm_device_get_applied_setting; + nm_device_get_firmware_missing; + nm_device_get_hw_address; + nm_device_get_iface; + nm_device_get_ifindex; + nm_device_get_initial_hw_address; + nm_device_get_ip_iface; + nm_device_get_ip_ifindex; + nm_device_get_permanent_hw_address; + nm_device_get_settings; + nm_device_get_settings_connection; + nm_device_get_state; + nm_device_get_type; + nm_device_has_unmodified_applied_connection; + nm_device_hw_addr_reset; + nm_device_hw_addr_set; + nm_device_hw_addr_set_cloned; + nm_device_ip_method_failed; + nm_device_ipv6_sysctl_set; + nm_device_is_activating; + nm_device_master_check_slave_physical_port; + nm_device_queue_recheck_assume; + nm_device_queue_recheck_available; + nm_device_queue_state; + nm_device_recheck_available_connections; + nm_device_remove_pending_action; + nm_device_set_autoconnect; + nm_device_set_carrier; + nm_device_set_dhcp_anycast_address; + nm_device_set_dhcp_timeout; + nm_device_set_firmware_missing; + nm_device_set_ip_iface; + nm_device_set_wwan_ip4_config; + nm_device_set_wwan_ip6_config; + nm_device_state_changed; + nm_device_take_down; + nm_device_uses_assumed_connection; + nm_ethernet_address_is_valid; + nm_exported_object_class_add_interface; + nm_exported_object_export; + nm_exported_object_get_path; + nm_exported_object_get_type; + nm_exported_object_is_exported; + nm_exported_object_skeleton_create; + nm_exported_object_skeleton_release; + nm_exported_object_skeletonify_method_name; + nm_exported_object_unexport; + nm_inotify_helper_add_watch; + nm_inotify_helper_get; + nm_inotify_helper_remove_watch; + nm_ip4_config_add_address; + nm_ip4_config_add_nameserver; + nm_ip4_config_add_route; + nm_ip4_config_get_address; + nm_ip4_config_get_nameserver; + nm_ip4_config_get_num_nameservers; + nm_ip4_config_new; + nm_ip4_config_reset_nameservers; + nm_ip4_config_set_gateway; + nm_ip4_config_set_mtu; + nm_ip6_config_add_address; + nm_ip6_config_add_nameserver; + nm_ip6_config_get_address; + nm_ip6_config_get_num_addresses; + nm_ip6_config_new; + nm_ip6_config_set_gateway; + nm_ip_address_get_address; + nm_ip_address_get_attribute; + nm_ip_address_get_prefix; + nm_ip_address_new; + nm_ip_address_set_attribute; + nm_ip_address_unref; + nm_ip_route_get_dest; + nm_ip_route_get_metric; + nm_ip_route_get_next_hop; + nm_ip_route_get_prefix; + nm_ip_route_new; + nm_ip_route_unref; + nm_manager_get; + nm_manager_get_devices; + nm_manager_set_capability; + nm_platform_address_flush; + nm_platform_get; + nm_platform_link_enslave; + nm_platform_link_get_by_ifname; + nm_platform_link_get_ifindex; + nm_platform_link_get_mtu; + nm_platform_link_get_type; + nm_platform_link_release; + nm_platform_link_set_down; + nm_platform_link_set_noarp; + nm_platform_link_set_up; + nm_platform_link_team_add; + nm_platform_mesh_get_channel; + nm_platform_mesh_set_channel; + nm_platform_mesh_set_ssid; + nm_platform_sysctl_get_int_checked; + nm_platform_wifi_find_frequency; + nm_platform_wifi_get_bssid; + nm_platform_wifi_get_capabilities; + nm_platform_wifi_get_frequency; + nm_platform_wifi_get_mode; + nm_platform_wifi_get_quality; + nm_platform_wifi_get_rate; + nm_platform_wifi_indicate_addressing_running; + nm_platform_wifi_set_mode; + nm_platform_wifi_set_powersave; + nm_ppp_manager_new; + nm_ppp_manager_start; + nm_ppp_manager_stop; + nm_ppp_manager_stop_finish; + nm_route_manager_get; + nm_route_manager_route_flush; + nm_setting_802_1x_add_eap_method; + nm_setting_802_1x_get_altsubject_match; + nm_setting_802_1x_get_anonymous_identity; + nm_setting_802_1x_get_ca_cert_blob; + nm_setting_802_1x_get_ca_cert_path; + nm_setting_802_1x_get_ca_cert_scheme; + nm_setting_802_1x_get_client_cert_blob; + nm_setting_802_1x_get_client_cert_path; + nm_setting_802_1x_get_client_cert_scheme; + nm_setting_802_1x_get_domain_suffix_match; + nm_setting_802_1x_get_eap_method; + nm_setting_802_1x_get_identity; + nm_setting_802_1x_get_num_altsubject_matches; + nm_setting_802_1x_get_num_eap_methods; + nm_setting_802_1x_get_num_phase2_altsubject_matches; + nm_setting_802_1x_get_pac_file; + nm_setting_802_1x_get_password; + nm_setting_802_1x_get_password_flags; + nm_setting_802_1x_get_phase1_fast_provisioning; + nm_setting_802_1x_get_phase1_peaplabel; + nm_setting_802_1x_get_phase1_peapver; + nm_setting_802_1x_get_phase2_altsubject_match; + nm_setting_802_1x_get_phase2_auth; + nm_setting_802_1x_get_phase2_autheap; + nm_setting_802_1x_get_phase2_ca_cert_blob; + nm_setting_802_1x_get_phase2_ca_cert_path; + nm_setting_802_1x_get_phase2_ca_cert_scheme; + nm_setting_802_1x_get_phase2_client_cert_blob; + nm_setting_802_1x_get_phase2_client_cert_path; + nm_setting_802_1x_get_phase2_client_cert_scheme; + nm_setting_802_1x_get_phase2_domain_suffix_match; + nm_setting_802_1x_get_phase2_private_key_blob; + nm_setting_802_1x_get_phase2_private_key_format; + nm_setting_802_1x_get_phase2_private_key_password; + nm_setting_802_1x_get_phase2_private_key_password_flags; + nm_setting_802_1x_get_phase2_private_key_path; + nm_setting_802_1x_get_phase2_private_key_scheme; + nm_setting_802_1x_get_phase2_subject_match; + nm_setting_802_1x_get_private_key_blob; + nm_setting_802_1x_get_private_key_format; + nm_setting_802_1x_get_private_key_password; + nm_setting_802_1x_get_private_key_password_flags; + nm_setting_802_1x_get_private_key_path; + nm_setting_802_1x_get_private_key_scheme; + nm_setting_802_1x_get_subject_match; + nm_setting_802_1x_new; + nm_setting_802_1x_set_ca_cert; + nm_setting_802_1x_set_client_cert; + nm_setting_802_1x_set_phase2_ca_cert; + nm_setting_802_1x_set_phase2_client_cert; + nm_setting_802_1x_set_phase2_private_key; + nm_setting_802_1x_set_private_key; + nm_setting_adsl_get_encapsulation; + nm_setting_adsl_get_protocol; + nm_setting_adsl_get_type; + nm_setting_adsl_get_username; + nm_setting_adsl_get_vci; + nm_setting_adsl_get_vpi; + nm_setting_bluetooth_get_bdaddr; + nm_setting_bluetooth_get_connection_type; + nm_setting_bluetooth_new; + nm_setting_bond_add_option; + nm_setting_bond_get_num_options; + nm_setting_bond_get_option; + nm_setting_bond_get_type; + nm_setting_bond_new; + nm_setting_bridge_get_ageing_time; + nm_setting_bridge_get_forward_delay; + nm_setting_bridge_get_hello_time; + nm_setting_bridge_get_mac_address; + nm_setting_bridge_get_max_age; + nm_setting_bridge_get_multicast_snooping; + nm_setting_bridge_get_priority; + nm_setting_bridge_get_stp; + nm_setting_bridge_get_type; + nm_setting_bridge_new; + nm_setting_bridge_port_get_hairpin_mode; + nm_setting_bridge_port_get_path_cost; + nm_setting_bridge_port_get_priority; + nm_setting_bridge_port_new; + nm_setting_cdma_get_number; + nm_setting_cdma_get_password; + nm_setting_cdma_get_username; + nm_setting_cdma_new; + nm_setting_connection_add_permission; + nm_setting_connection_add_secondary; + nm_setting_connection_get_autoconnect; + nm_setting_connection_get_autoconnect_priority; + nm_setting_connection_get_autoconnect_slaves; + nm_setting_connection_get_connection_type; + nm_setting_connection_get_gateway_ping_timeout; + nm_setting_connection_get_id; + nm_setting_connection_get_interface_name; + nm_setting_connection_get_lldp; + nm_setting_connection_get_master; + nm_setting_connection_get_metered; + nm_setting_connection_get_num_permissions; + nm_setting_connection_get_num_secondaries; + nm_setting_connection_get_permission; + nm_setting_connection_get_secondary; + nm_setting_connection_get_stable_id; + nm_setting_connection_get_type; + nm_setting_connection_get_uuid; + nm_setting_connection_get_zone; + nm_setting_connection_is_slave_type; + nm_setting_connection_new; + nm_setting_dcb_get_app_fcoe_flags; + nm_setting_dcb_get_app_fcoe_mode; + nm_setting_dcb_get_app_fcoe_priority; + nm_setting_dcb_get_app_fip_flags; + nm_setting_dcb_get_app_fip_priority; + nm_setting_dcb_get_app_iscsi_flags; + nm_setting_dcb_get_app_iscsi_priority; + nm_setting_dcb_get_priority_bandwidth; + nm_setting_dcb_get_priority_flow_control; + nm_setting_dcb_get_priority_flow_control_flags; + nm_setting_dcb_get_priority_group_bandwidth; + nm_setting_dcb_get_priority_group_flags; + nm_setting_dcb_get_priority_group_id; + nm_setting_dcb_get_priority_strict_bandwidth; + nm_setting_dcb_get_priority_traffic_class; + nm_setting_dcb_new; + nm_setting_dcb_set_priority_bandwidth; + nm_setting_dcb_set_priority_flow_control; + nm_setting_dcb_set_priority_group_bandwidth; + nm_setting_dcb_set_priority_group_id; + nm_setting_dcb_set_priority_strict_bandwidth; + nm_setting_dcb_set_priority_traffic_class; + nm_setting_generic_new; + nm_setting_get_secret_flags; + nm_setting_get_type; + nm_setting_gsm_get_apn; + nm_setting_gsm_get_device_id; + nm_setting_gsm_get_home_only; + nm_setting_gsm_get_network_id; + nm_setting_gsm_get_number; + nm_setting_gsm_get_password; + nm_setting_gsm_get_pin; + nm_setting_gsm_get_sim_id; + nm_setting_gsm_get_sim_operator_id; + nm_setting_gsm_get_username; + nm_setting_infiniband_get_mac_address; + nm_setting_infiniband_get_mtu; + nm_setting_infiniband_get_p_key; + nm_setting_infiniband_get_parent; + nm_setting_infiniband_get_transport_mode; + nm_setting_infiniband_get_type; + nm_setting_infiniband_new; + nm_setting_ip4_config_get_dhcp_client_id; + nm_setting_ip4_config_get_dhcp_fqdn; + nm_setting_ip4_config_get_type; + nm_setting_ip4_config_new; + nm_setting_ip6_config_addr_gen_mode_get_type; + nm_setting_ip6_config_get_addr_gen_mode; + nm_setting_ip6_config_get_ip6_privacy; + nm_setting_ip6_config_get_token; + nm_setting_ip6_config_get_type; + nm_setting_ip6_config_new; + nm_setting_ip_config_add_address; + nm_setting_ip_config_add_dns; + nm_setting_ip_config_add_dns_option; + nm_setting_ip_config_add_dns_search; + nm_setting_ip_config_add_route; + nm_setting_ip_config_clear_dns_options; + nm_setting_ip_config_get_address; + nm_setting_ip_config_get_dad_timeout; + nm_setting_ip_config_get_dhcp_hostname; + nm_setting_ip_config_get_dhcp_send_hostname; + nm_setting_ip_config_get_dhcp_timeout; + nm_setting_ip_config_get_dns; + nm_setting_ip_config_get_dns_option; + nm_setting_ip_config_get_dns_priority; + nm_setting_ip_config_get_dns_search; + nm_setting_ip_config_get_gateway; + nm_setting_ip_config_get_ignore_auto_dns; + nm_setting_ip_config_get_ignore_auto_routes; + nm_setting_ip_config_get_may_fail; + nm_setting_ip_config_get_method; + nm_setting_ip_config_get_never_default; + nm_setting_ip_config_get_num_addresses; + nm_setting_ip_config_get_num_dns; + nm_setting_ip_config_get_num_dns_options; + nm_setting_ip_config_get_num_dns_searches; + nm_setting_ip_config_get_num_routes; + nm_setting_ip_config_get_route; + nm_setting_ip_config_get_route_metric; + nm_setting_ip_config_get_type; + nm_setting_ip_config_has_dns_options; + nm_setting_olpc_mesh_get_channel; + nm_setting_olpc_mesh_get_dhcp_anycast_address; + nm_setting_olpc_mesh_get_ssid; + nm_setting_olpc_mesh_new; + nm_setting_ppp_get_noauth; + nm_setting_ppp_get_refuse_chap; + nm_setting_ppp_get_refuse_eap; + nm_setting_ppp_get_refuse_mschap; + nm_setting_ppp_get_refuse_mschapv2; + nm_setting_ppp_get_refuse_pap; + nm_setting_ppp_new; + nm_setting_pppoe_get_password; + nm_setting_pppoe_get_type; + nm_setting_pppoe_get_username; + nm_setting_pppoe_new; + nm_setting_proxy_get_browser_only; + nm_setting_proxy_get_method; + nm_setting_proxy_get_pac_script; + nm_setting_proxy_get_pac_url; + nm_setting_proxy_new; + nm_setting_team_get_config; + nm_setting_team_get_type; + nm_setting_team_new; + nm_setting_team_port_get_config; + nm_setting_team_port_new; + nm_setting_verify; + nm_setting_vlan_add_priority_str; + nm_setting_vlan_get_flags; + nm_setting_vlan_get_id; + nm_setting_vlan_get_parent; + nm_setting_vlan_get_type; + nm_setting_vlan_new; + nm_setting_wired_add_s390_option; + nm_setting_wired_get_cloned_mac_address; + nm_setting_wired_get_generate_mac_address_mask; + nm_setting_wired_get_mac_address; + nm_setting_wired_get_mac_address_blacklist; + nm_setting_wired_get_mtu; + nm_setting_wired_get_num_s390_options; + nm_setting_wired_get_s390_nettype; + nm_setting_wired_get_s390_option; + nm_setting_wired_get_s390_option_by_key; + nm_setting_wired_get_s390_subchannels; + nm_setting_wired_get_type; + nm_setting_wired_get_wake_on_lan; + nm_setting_wired_get_wake_on_lan_password; + nm_setting_wired_new; + nm_setting_wireless_ap_security_compatible; + nm_setting_wireless_get_band; + nm_setting_wireless_get_bssid; + nm_setting_wireless_get_channel; + nm_setting_wireless_get_cloned_mac_address; + nm_setting_wireless_get_generate_mac_address_mask; + nm_setting_wireless_get_hidden; + nm_setting_wireless_get_mac_address; + nm_setting_wireless_get_mac_address_blacklist; + nm_setting_wireless_get_mac_address_randomization; + nm_setting_wireless_get_mode; + nm_setting_wireless_get_mtu; + nm_setting_wireless_get_powersave; + nm_setting_wireless_get_ssid; + nm_setting_wireless_get_type; + nm_setting_wireless_new; + nm_setting_wireless_security_add_group; + nm_setting_wireless_security_add_pairwise; + nm_setting_wireless_security_add_proto; + nm_setting_wireless_security_get_auth_alg; + nm_setting_wireless_security_get_group; + nm_setting_wireless_security_get_key_mgmt; + nm_setting_wireless_security_get_leap_password; + nm_setting_wireless_security_get_leap_password_flags; + nm_setting_wireless_security_get_leap_username; + nm_setting_wireless_security_get_num_groups; + nm_setting_wireless_security_get_num_pairwise; + nm_setting_wireless_security_get_num_protos; + nm_setting_wireless_security_get_pairwise; + nm_setting_wireless_security_get_proto; + nm_setting_wireless_security_get_psk; + nm_setting_wireless_security_get_psk_flags; + nm_setting_wireless_security_get_type; + nm_setting_wireless_security_get_wep_key; + nm_setting_wireless_security_get_wep_key_flags; + nm_setting_wireless_security_get_wep_key_type; + nm_setting_wireless_security_get_wep_tx_keyidx; + nm_setting_wireless_security_new; + nm_setting_wireless_security_set_wep_key; + nm_settings_add_connection; + nm_settings_connection_add_seen_bssid; + nm_settings_connection_commit_changes; + nm_settings_connection_delete; + nm_settings_connection_get_filename; + nm_settings_connection_get_nm_generated; + nm_settings_connection_get_timestamp; + nm_settings_connection_get_type; + nm_settings_connection_has_seen_bssid; + nm_settings_connection_replace_settings; + nm_settings_connection_set_autoconnect_blocked_reason; + nm_settings_connection_set_filename; + nm_settings_connection_set_flags; + nm_settings_connection_set_ready; + nm_settings_connection_signal_remove; + nm_settings_error_quark; + nm_settings_get; + nm_settings_get_best_connections; + nm_settings_get_connections; + nm_settings_get_type; + nm_settings_plugin_get_type; + nm_simple_connection_new; + nm_supplicant_config_add_no_security; + nm_supplicant_config_add_setting_wireless; + nm_supplicant_config_add_setting_wireless_security; + nm_supplicant_config_new; + nm_supplicant_interface_disconnect; + nm_supplicant_interface_get_ap_support; + nm_supplicant_interface_get_current_bss; + nm_supplicant_interface_get_last_scan_time; + nm_supplicant_interface_get_max_scan_ssids; + nm_supplicant_interface_get_scanning; + nm_supplicant_interface_get_state; + nm_supplicant_interface_request_scan; + nm_supplicant_interface_set_config; + nm_supplicant_interface_state_to_string; + nm_supplicant_manager_create_interface; + nm_supplicant_manager_get; + nm_utils_bin2hexstr; + nm_utils_complete_generic; + nm_utils_enum_from_str; + nm_utils_enum_to_str; + nm_utils_escape_ssid; + nm_utils_file_set_contents; + nm_utils_find_helper; + nm_utils_g_value_set_object_path; + nm_utils_get_ip_config_method; + nm_utils_get_monotonic_timestamp_s; + nm_utils_hexstr2bin; + nm_utils_hw_addr_gen_random_eth; + nm_utils_hwaddr_aton; + nm_utils_hwaddr_matches; + nm_utils_hwaddr_ntoa; + nm_utils_hwaddr_valid; + nm_utils_iface_valid_name; + nm_utils_inet4_ntop; + nm_utils_ip4_get_default_prefix; + nm_utils_ip4_netmask_to_prefix; + nm_utils_ip4_prefix_to_netmask; + nm_utils_ipaddr_valid; + nm_utils_is_empty_ssid; + nm_utils_is_json_object; + nm_utils_kill_child_async; + nm_utils_monotonic_timestamp_as_boottime; + nm_utils_rsa_key_encrypt; + nm_utils_same_ssid; + nm_utils_setpgid; + nm_utils_ssid_to_utf8; + nm_utils_strbuf_append; + nm_utils_strbuf_append_str; + nm_utils_uuid_generate; + nm_utils_uuid_generate_from_string; + nm_utils_wep_key_valid; + nm_utils_wifi_channel_to_freq; + nm_utils_wifi_freq_to_channel; - /* The _IO_stdin_used symbol is used by the GNU libc to determine - which version of the I/O function should be used. Not - exporting it means that the "old" version is used, causing - crashes or other issues on some architectures. */ _IO_stdin_used; local: *; diff --git a/tools/create-exports-NetworkManager.sh b/tools/create-exports-NetworkManager.sh new file mode 100755 index 0000000000..f0cdd419f9 --- /dev/null +++ b/tools/create-exports-NetworkManager.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +set -e + +# generates the linker version script src/NetworkManager.ver +# by looking at the symbols needed by the device and settings +# plugins. Note that this depends on how NetworkManager and +# the plugins are build. For example, compiling without +# --with-more-asserts will yield less symbols. +# +# _build re-builds NetworkManager with relevant compile time +# options to yield the most symbols. +_build() { + git clean -fdx + ./autogen.sh --enable-ld-gc --enable-ifcfg-rh --enable-ifupdown \ + --enable-ifnet --enable-ibft --enable-teamdctl --enable-wifi \ + --with-modem-manager-1 --with-ofono --with-more-asserts \ + --with-more-logging + make -j20 +} + +_sort() { + LANG=C sort -u +} + +call_nm() { + nm "$1" | + sed -n 's/^................ \(.\) \(.*\)$/\1 \2/p' +} + +get_symbols_nm () { + call_nm ./src/NetworkManager | + sed -n 's/^[tTDR] //p' | + _sort +} + +get_symbols_explict() { + cat < ./src/NetworkManager.ver +} + +do_generate() { + cd "$(realpath $(dirname "$0"))/.." + test -f ./src/NetworkManager + + cat < Date: Wed, 12 Oct 2016 11:09:21 +0200 Subject: [PATCH 06/17] settings/build: add linker version script for settings plugins --- Makefile.am | 1 + linker-script-settings.ver | 6 ++++++ src/settings/plugins/ibft/Makefile.am | 3 ++- src/settings/plugins/ifcfg-rh/Makefile.am | 13 ++++++------- src/settings/plugins/ifnet/Makefile.am | 15 ++++++++------- src/settings/plugins/ifupdown/Makefile.am | 15 ++++++++------- 6 files changed, 31 insertions(+), 22 deletions(-) create mode 100644 linker-script-settings.ver diff --git a/Makefile.am b/Makefile.am index a79bddca3d..0d52b008ac 100644 --- a/Makefile.am +++ b/Makefile.am @@ -34,6 +34,7 @@ EXTRA_DIST = \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ + linker-script-settings.ver \ Makefile.glib \ autogen.sh \ valgrind.suppressions diff --git a/linker-script-settings.ver b/linker-script-settings.ver new file mode 100644 index 0000000000..fef67e8775 --- /dev/null +++ b/linker-script-settings.ver @@ -0,0 +1,6 @@ +{ +global: + nm_settings_plugin_factory; +local: + *; +}; diff --git a/src/settings/plugins/ibft/Makefile.am b/src/settings/plugins/ibft/Makefile.am index 369d64443a..ece08dc358 100644 --- a/src/settings/plugins/ibft/Makefile.am +++ b/src/settings/plugins/ibft/Makefile.am @@ -37,7 +37,8 @@ libnm_settings_plugin_ibft_la_SOURCES = \ nms-ibft-connection.h libnm_settings_plugin_ibft_la_LDFLAGS = \ - -module -avoid-version + -module -avoid-version \ + -Wl,--version-script="$(top_srcdir)/linker-script-settings.ver" libnm_settings_plugin_ibft_la_LIBADD = \ libnms-ibft-core.la diff --git a/src/settings/plugins/ifcfg-rh/Makefile.am b/src/settings/plugins/ifcfg-rh/Makefile.am index 37f0716ada..8308f739b8 100644 --- a/src/settings/plugins/ifcfg-rh/Makefile.am +++ b/src/settings/plugins/ifcfg-rh/Makefile.am @@ -11,12 +11,6 @@ noinst_LTLIBRARIES = \ libnmdbus-ifcfg-rh.la \ libnms-ifcfg-rh-core.la -BUILT_SOURCES = \ - nmdbus-ifcfg-rh.h \ - nmdbus-ifcfg-rh.c - -############################################################################### - AM_CPPFLAGS = \ -I$(top_srcdir)/src/ \ -I$(top_srcdir)/src/platform \ @@ -32,6 +26,10 @@ AM_CPPFLAGS = \ -DSYSCONFDIR=\"$(sysconfdir)\" \ -DSBINDIR=\"$(sbindir)\" +BUILT_SOURCES = \ + nmdbus-ifcfg-rh.h \ + nmdbus-ifcfg-rh.c + ############################################################################### nodist_libnmdbus_ifcfg_rh_la_SOURCES = \ @@ -72,7 +70,8 @@ libnm_settings_plugin_ifcfg_rh_la_SOURCES = \ nms-ifcfg-rh-plugin.h libnm_settings_plugin_ifcfg_rh_la_LDFLAGS = \ - -module -avoid-version + -module -avoid-version \ + -Wl,--version-script="$(top_srcdir)/linker-script-settings.ver" libnm_settings_plugin_ifcfg_rh_la_LIBADD = \ libnms-ifcfg-rh-core.la \ diff --git a/src/settings/plugins/ifnet/Makefile.am b/src/settings/plugins/ifnet/Makefile.am index 207c95f8ae..c3e0dee41f 100644 --- a/src/settings/plugins/ifnet/Makefile.am +++ b/src/settings/plugins/ifnet/Makefile.am @@ -4,6 +4,12 @@ SUBDIRS = . tests include $(top_srcdir)/nm.mk +pkglib_LTLIBRARIES = \ + libnm-settings-plugin-ifnet.la + +noinst_LTLIBRARIES = \ + libnms-ifnet-core.la + AM_CPPFLAGS = \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/platform \ @@ -18,12 +24,6 @@ AM_CPPFLAGS = \ -DSYSCONFDIR=\"$(sysconfdir)\" -DSBINDIR=\"$(sbindir)\" -pkglib_LTLIBRARIES = \ - libnm-settings-plugin-ifnet.la - -noinst_LTLIBRARIES = \ - libnms-ifnet-core.la - ############################################################################### libnms_ifnet_core_la_SOURCES = \ @@ -45,7 +45,8 @@ libnm_settings_plugin_ifnet_la_SOURCES = \ nms-ifnet-plugin.h libnm_settings_plugin_ifnet_la_LDFLAGS = \ - -module -avoid-version + -module -avoid-version \ + -Wl,--version-script="$(top_srcdir)/linker-script-settings.ver" libnm_settings_plugin_ifnet_la_LIBADD = \ libnms-ifnet-core.la diff --git a/src/settings/plugins/ifupdown/Makefile.am b/src/settings/plugins/ifupdown/Makefile.am index 0050aa8657..547834ff6a 100644 --- a/src/settings/plugins/ifupdown/Makefile.am +++ b/src/settings/plugins/ifupdown/Makefile.am @@ -4,6 +4,12 @@ SUBDIRS = . tests include $(top_srcdir)/nm.mk +pkglib_LTLIBRARIES = \ + libnm-settings-plugin-ifupdown.la + +noinst_LTLIBRARIES = \ + libnms-ifupdown-core.la + AM_CPPFLAGS = \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/settings \ @@ -17,12 +23,6 @@ AM_CPPFLAGS = \ $(GUDEV_CFLAGS) \ -DSYSCONFDIR=\"$(sysconfdir)\" -pkglib_LTLIBRARIES = \ - libnm-settings-plugin-ifupdown.la - -noinst_LTLIBRARIES = \ - libnms-ifupdown-core.la - ############################################################################### libnms_ifupdown_core_la_SOURCES = \ @@ -40,7 +40,8 @@ libnm_settings_plugin_ifupdown_la_SOURCES = \ nms-ifupdown-plugin.h libnm_settings_plugin_ifupdown_la_LDFLAGS = \ - -module -avoid-version + -module -avoid-version \ + -Wl,--version-script="$(top_srcdir)/linker-script-settings.ver" libnm_settings_plugin_ifupdown_la_LIBADD = \ libnms-ifupdown-core.la From 401f6c2b8c84076a683d72e29f1db57c121c3d74 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 11:16:20 +0200 Subject: [PATCH 07/17] iface-helper/build: add linker version script --- Makefile.am | 1 + linker-script-binary.ver | 6 ++++++ src/Makefile.am | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 linker-script-binary.ver diff --git a/Makefile.am b/Makefile.am index 0d52b008ac..dd818fa812 100644 --- a/Makefile.am +++ b/Makefile.am @@ -34,6 +34,7 @@ EXTRA_DIST = \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ + linker-script-binary.ver \ linker-script-settings.ver \ Makefile.glib \ autogen.sh \ diff --git a/linker-script-binary.ver b/linker-script-binary.ver new file mode 100644 index 0000000000..a2780c0902 --- /dev/null +++ b/linker-script-binary.ver @@ -0,0 +1,6 @@ +{ +global: + _IO_stdin_used; +local: + *; +}; diff --git a/src/Makefile.am b/src/Makefile.am index e1a0510346..e0633d4c2f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -595,7 +595,8 @@ nm_iface_helper_LDADD = \ $(LIBM) nm_iface_helper_LDFLAGS = \ - -rdynamic + -rdynamic \ + -Wl,--version-script="$(top_srcdir)/linker-script-binary.ver" ############################################################################### From 569d28f5737eced246d03c5ff915d27355c9f9d2 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 12:34:14 +0200 Subject: [PATCH 08/17] iface-helper/build: don't link nm-iface-helper with -rdynamic / -export-dynamic Since nm-iface-helper doesn't dlopen any library, it seems not necessary to link with -rdynamic. --- src/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Makefile.am b/src/Makefile.am index e0633d4c2f..aa58ed0018 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -595,7 +595,6 @@ nm_iface_helper_LDADD = \ $(LIBM) nm_iface_helper_LDFLAGS = \ - -rdynamic \ -Wl,--version-script="$(top_srcdir)/linker-script-binary.ver" ############################################################################### From 0e47b327dc6fce511042f6dfee2f473590198ad7 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 11:26:26 +0200 Subject: [PATCH 09/17] libnm: move backported symbols from libnm-core to libnm Backported symbols only make sense for libnm itself, not for libnm-core which is statically linked with NetworkManager and nm-ifcace-helper. Declaring the symbols in libnm-core, means that NetworkManager binary also contains them, although there are not used. Move them to libnm. --- libnm-core/nm-setting-connection.c | 7 ----- libnm-core/nm-setting-ip-config.c | 1 - libnm-core/nm-setting-wired.c | 6 ---- libnm-core/nm-utils.c | 7 ----- libnm/nm-client.c | 47 ++++++++++++++++++++++++++++++ 5 files changed, 47 insertions(+), 21 deletions(-) diff --git a/libnm-core/nm-setting-connection.c b/libnm-core/nm-setting-connection.c index abd8b19e3c..ed1c164a5e 100644 --- a/libnm-core/nm-setting-connection.c +++ b/libnm-core/nm-setting-connection.c @@ -647,9 +647,6 @@ nm_setting_connection_get_autoconnect_slaves (NMSettingConnection *setting) return NM_SETTING_CONNECTION_GET_PRIVATE (setting)->autoconnect_slaves; } -NM_BACKPORT_SYMBOL (libnm_1_0_4, NMSettingConnectionAutoconnectSlaves, nm_setting_connection_get_autoconnect_slaves, (NMSettingConnection *setting), (setting)); - -NM_BACKPORT_SYMBOL (libnm_1_0_4, GType, nm_setting_connection_autoconnect_slaves_get_type, (void), ()); /** * nm_setting_connection_get_num_secondaries: @@ -804,10 +801,6 @@ nm_setting_connection_get_metered (NMSettingConnection *setting) return NM_SETTING_CONNECTION_GET_PRIVATE (setting)->metered; } -NM_BACKPORT_SYMBOL (libnm_1_0_6, NMMetered, nm_setting_connection_get_metered, (NMSettingConnection *setting), (setting)); - -NM_BACKPORT_SYMBOL (libnm_1_0_6, GType, nm_metered_get_type, (void), ()); - /** * nm_setting_connection_get_lldp: * @setting: the #NMSettingConnection diff --git a/libnm-core/nm-setting-ip-config.c b/libnm-core/nm-setting-ip-config.c index 55ad7bb0cc..ca1f9480c6 100644 --- a/libnm-core/nm-setting-ip-config.c +++ b/libnm-core/nm-setting-ip-config.c @@ -1773,7 +1773,6 @@ nm_setting_ip_config_get_dns_priority (NMSettingIPConfig *setting) return NM_SETTING_IP_CONFIG_GET_PRIVATE (setting)->dns_priority; } -NM_BACKPORT_SYMBOL (libnm_1_2_4, gint, nm_setting_ip_config_get_dns_priority, (NMSettingIPConfig *setting), (setting)); /** * nm_setting_ip_config_get_num_addresses: diff --git a/libnm-core/nm-setting-wired.c b/libnm-core/nm-setting-wired.c index d2eea05411..61df4bdfaf 100644 --- a/libnm-core/nm-setting-wired.c +++ b/libnm-core/nm-setting-wired.c @@ -594,8 +594,6 @@ nm_setting_wired_get_wake_on_lan (NMSettingWired *setting) return NM_SETTING_WIRED_GET_PRIVATE (setting)->wol; } -NM_BACKPORT_SYMBOL (libnm_1_0_6, NMSettingWiredWakeOnLan, nm_setting_wired_get_wake_on_lan, - (NMSettingWired *setting), (setting)); /** * nm_setting_wired_get_wake_on_lan_password: @@ -615,10 +613,6 @@ nm_setting_wired_get_wake_on_lan_password (NMSettingWired *setting) return NM_SETTING_WIRED_GET_PRIVATE (setting)->wol_password; } -NM_BACKPORT_SYMBOL (libnm_1_0_6, const char *, nm_setting_wired_get_wake_on_lan_password, - (NMSettingWired *setting), (setting)); - -NM_BACKPORT_SYMBOL (libnm_1_0_6, GType, nm_setting_wired_wake_on_lan_get_type, (void), ()); static gboolean verify (NMSetting *setting, NMConnection *connection, GError **error) diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index f94b217a20..d963323e22 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -2904,7 +2904,6 @@ nm_utils_wifi_2ghz_freqs (void) { return _wifi_freqs (TRUE); } -NM_BACKPORT_SYMBOL (libnm_1_0_6, const guint *, nm_utils_wifi_2ghz_freqs, (void), ()); /** * nm_utils_wifi_5ghz_freqs: @@ -2920,7 +2919,6 @@ nm_utils_wifi_5ghz_freqs (void) { return _wifi_freqs (FALSE); } -NM_BACKPORT_SYMBOL (libnm_1_0_6, const guint *, nm_utils_wifi_5ghz_freqs, (void), ()); /** * nm_utils_wifi_strength_bars: @@ -4277,8 +4275,6 @@ char *nm_utils_enum_to_str (GType type, int value) g_type_class_unref (class); return ret; } -NM_BACKPORT_SYMBOL (libnm_1_0_6, char *, nm_utils_enum_to_str, - (GType type, int value), (type, value)); /** * nm_utils_enum_from_str: @@ -4350,9 +4346,6 @@ gboolean nm_utils_enum_from_str (GType type, const char *str, g_type_class_unref (class); return ret; } -NM_BACKPORT_SYMBOL (libnm_1_0_6, gboolean, nm_utils_enum_from_str, - (GType type, const char *str, int *out_value, char **err_token), - (type, str, out_value, err_token)); /** * nm_utils_enum_get_values: diff --git a/libnm/nm-client.c b/libnm/nm-client.c index 17dc41c6d7..e655dbd43b 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -2419,3 +2419,50 @@ nm_client_async_initable_iface_init (GAsyncInitableIface *iface) iface->init_async = init_async; iface->init_finish = init_finish; } + +/***************************************************************************** + * Backported symbols. Usually, new API is only added in new major versions + * of NetworkManager (that is, on "master" branch). Sometimes however, we might + * have to backport some API to an older stable branch. In that case, we backport + * the symbols with a different version corresponding to the minor API. + * + * To allow upgrading from such a extended minor-release, "master" contains these + * backported symbols too. + * + * For example, 1.2.0 added nm_setting_connection_autoconnect_slaves_get_type. + * This was backported for 1.0.4 as nm_setting_connection_autoconnect_slaves_get_type@libnm_1_0_4 + * To allow an application that was linked against 1.0.4 to seamlessly upgrade to + * a newer major version, the same symbols is also exposed on "master". Note, that + * a user can only seamlessly upgrade to a newer major version, that is released + * *after* 1.0.4 is out. In this example, 1.2.0 was released after 1.4.0, and thus + * a 1.0.4 user can upgrade to 1.2.0 ABI. + *****************************************************************************/ + +NM_BACKPORT_SYMBOL (libnm_1_0_4, NMSettingConnectionAutoconnectSlaves, nm_setting_connection_get_autoconnect_slaves, (NMSettingConnection *setting), (setting)); + +NM_BACKPORT_SYMBOL (libnm_1_0_4, GType, nm_setting_connection_autoconnect_slaves_get_type, (void), ()); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, NMMetered, nm_setting_connection_get_metered, (NMSettingConnection *setting), (setting)); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, GType, nm_metered_get_type, (void), ()); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, NMSettingWiredWakeOnLan, nm_setting_wired_get_wake_on_lan, + (NMSettingWired *setting), (setting)); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, const char *, nm_setting_wired_get_wake_on_lan_password, + (NMSettingWired *setting), (setting)); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, GType, nm_setting_wired_wake_on_lan_get_type, (void), ()); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, const guint *, nm_utils_wifi_2ghz_freqs, (void), ()); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, const guint *, nm_utils_wifi_5ghz_freqs, (void), ()); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, char *, nm_utils_enum_to_str, + (GType type, int value), (type, value)); + +NM_BACKPORT_SYMBOL (libnm_1_0_6, gboolean, nm_utils_enum_from_str, + (GType type, const char *str, int *out_value, char **err_token), + (type, str, out_value, err_token)); + +NM_BACKPORT_SYMBOL (libnm_1_2_4, gint, nm_setting_ip_config_get_dns_priority, (NMSettingIPConfig *setting), (setting)); From 8b660f245667c33e89d883ec71cc3df54b6c655f Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 11:41:35 +0200 Subject: [PATCH 10/17] callouts: cleanup makefile and add linker version script for dispatcher --- callouts/Makefile.am | 62 +++++++++++++++++++------------------- callouts/tests/Makefile.am | 6 ++-- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/callouts/Makefile.am b/callouts/Makefile.am index 82d7e7557c..1f65b47a6a 100644 --- a/callouts/Makefile.am +++ b/callouts/Makefile.am @@ -1,5 +1,12 @@ SUBDIRS = . tests +libexec_PROGRAMS = \ + nm-dispatcher + +noinst_LTLIBRARIES = \ + libnm-dispatcher-core.la \ + libnmdbus-dispatcher.la + AM_CPPFLAGS = \ -I${top_srcdir}/shared \ -I${top_builddir}/shared \ @@ -11,36 +18,39 @@ AM_CPPFLAGS = \ -DSYSCONFDIR=\"$(sysconfdir)\" \ -DLIBEXECDIR=\"$(libexecdir)\" -########################################### -# Test libraries -########################################### - -noinst_LTLIBRARIES = \ - libtest-dispatcher-envp.la - +############################################################################### dbusservicedir = $(DBUS_SYS_DIR) dbusservice_DATA = \ nm-dispatcher.conf -libexec_PROGRAMS = \ - nm-dispatcher +############################################################################### - -nm_dispatcher_SOURCES = \ +libnm_dispatcher_core_la_SOURCES = \ $(top_srcdir)/shared/nm-dispatcher-api.h \ - nm-dispatcher.c \ nm-dispatcher-utils.c \ nm-dispatcher-utils.h +libnm_dispatcher_core_la_LIBADD = \ + $(top_builddir)/libnm/libnm.la \ + $(GLIB_LIBS) + +############################################################################### + +nm_dispatcher_SOURCES = \ + $(top_srcdir)/shared/nm-dispatcher-api.h \ + nm-dispatcher.c + +nm_dispatcher_LDFLAGS = \ + -Wl,--version-script="$(top_srcdir)/linker-script-binary.ver" + nm_dispatcher_LDADD = \ $(top_builddir)/libnm/libnm.la \ + libnm-dispatcher-core.la \ libnmdbus-dispatcher.la \ $(GLIB_LIBS) -# See note about gdbus-codegen in introspection/Makefile.am - -noinst_LTLIBRARIES += libnmdbus-dispatcher.la +############################################################################### nodist_libnmdbus_dispatcher_la_SOURCES = \ nmdbus-dispatcher.c \ @@ -60,21 +70,7 @@ nmdbus-dispatcher.c: nmdbus-dispatcher.h BUILT_SOURCES = nmdbus-dispatcher.h nmdbus-dispatcher.c -########################################### -# dispatcher envp -########################################### - -libtest_dispatcher_envp_la_SOURCES = \ - nm-dispatcher-utils.c \ - nm-dispatcher-utils.h - -libtest_dispatcher_envp_la_CPPFLAGS = \ - $(AM_CPPFLAGS) - -libtest_dispatcher_envp_la_LIBADD = \ - $(top_builddir)/libnm/libnm.la \ - $(GLIB_LIBS) - +############################################################################### dbusactivationdir = $(datadir)/dbus-1/system-services dbusactivation_in_files = org.freedesktop.nm_dispatcher.service.in @@ -96,7 +92,11 @@ install-data-hook: $(mkinstalldirs) -m 0755 $(DESTDIR)$(dispatcherdir)/pre-up.d $(mkinstalldirs) -m 0755 $(DESTDIR)$(dispatcherdir)/no-wait.d -CLEANFILES = $(nodist_libnmdbus_dispatcher_la_SOURCES) $(dbusactivation_DATA) +############################################################################### + +CLEANFILES = \ + $(BUILT_SOURCES) \ + $(dbusactivation_DATA) EXTRA_DIST = \ $(dbusservice_DATA) \ diff --git a/callouts/tests/Makefile.am b/callouts/tests/Makefile.am index 2450f372a9..e85d9f94f5 100644 --- a/callouts/tests/Makefile.am +++ b/callouts/tests/Makefile.am @@ -14,17 +14,17 @@ AM_CPPFLAGS = \ noinst_PROGRAMS = \ test-dispatcher-envp -####### dispatcher envp ####### +############################################################################### test_dispatcher_envp_SOURCES = \ test-dispatcher-envp.c test_dispatcher_envp_LDADD = \ $(top_builddir)/libnm/libnm.la \ - $(top_builddir)/callouts/libtest-dispatcher-envp.la \ + $(top_builddir)/callouts/libnm-dispatcher-core.la \ $(GLIB_LIBS) -########################################### +############################################################################### @VALGRIND_RULES@ TESTS = test-dispatcher-envp From f42466215aa6de79f14a00f256286e49e235914b Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 12 Oct 2016 11:56:33 +0200 Subject: [PATCH 11/17] callouts/dispatcher: rename directory callouts Originally, the "callouts" directory contained various programs that NetworkManager would call, for example the dhcp helper. For a while, it only contains nm-dispatcher. Thus rename the directory to indicate that it's for dispatcher. --- .gitignore | 15 ++++++++++----- Makefile.am | 2 +- configure.ac | 4 ++-- {callouts => dispatcher}/Makefile.am | 0 {callouts => dispatcher}/nm-dispatcher-utils.c | 0 {callouts => dispatcher}/nm-dispatcher-utils.h | 0 {callouts => dispatcher}/nm-dispatcher.c | 0 {callouts => dispatcher}/nm-dispatcher.conf | 0 {callouts => dispatcher}/nm-dispatcher.xml | 0 .../org.freedesktop.nm_dispatcher.service.in | 0 {callouts => dispatcher}/tests/Makefile.am | 6 +++--- .../tests/dispatcher-connectivity-full | 2 +- .../tests/dispatcher-connectivity-unknown | 2 +- {callouts => dispatcher}/tests/dispatcher-down | 2 +- .../tests/dispatcher-external | 2 +- {callouts => dispatcher}/tests/dispatcher-up | 2 +- .../tests/dispatcher-vpn-down | 2 +- {callouts => dispatcher}/tests/dispatcher-vpn-up | 2 +- .../tests/test-dispatcher-envp.c | 2 +- 19 files changed, 24 insertions(+), 19 deletions(-) rename {callouts => dispatcher}/Makefile.am (100%) rename {callouts => dispatcher}/nm-dispatcher-utils.c (100%) rename {callouts => dispatcher}/nm-dispatcher-utils.h (100%) rename {callouts => dispatcher}/nm-dispatcher.c (100%) rename {callouts => dispatcher}/nm-dispatcher.conf (100%) rename {callouts => dispatcher}/nm-dispatcher.xml (100%) rename {callouts => dispatcher}/org.freedesktop.nm_dispatcher.service.in (100%) rename {callouts => dispatcher}/tests/Makefile.am (87%) rename {callouts => dispatcher}/tests/dispatcher-connectivity-full (87%) rename {callouts => dispatcher}/tests/dispatcher-connectivity-unknown (86%) rename {callouts => dispatcher}/tests/dispatcher-down (88%) rename {callouts => dispatcher}/tests/dispatcher-external (93%) rename {callouts => dispatcher}/tests/dispatcher-up (97%) rename {callouts => dispatcher}/tests/dispatcher-vpn-down (96%) rename {callouts => dispatcher}/tests/dispatcher-vpn-up (96%) rename {callouts => dispatcher}/tests/test-dispatcher-envp.c (99%) diff --git a/.gitignore b/.gitignore index ba14639556..ef0055f250 100644 --- a/.gitignore +++ b/.gitignore @@ -49,11 +49,11 @@ test-*.trs /conftest.[ch] /conftest.o.* -/callouts/nm-avahi-autoipd.action -/callouts/nm-dispatcher -/callouts/nmdbus-dispatcher.* -/callouts/org.freedesktop.nm_dispatcher.service -/callouts/tests/test-dispatcher-envp +/dispatcher/nm-avahi-autoipd.action +/dispatcher/nm-dispatcher +/dispatcher/nmdbus-dispatcher.* +/dispatcher/org.freedesktop.nm_dispatcher.service +/dispatcher/tests/test-dispatcher-envp /clients/cli/nmcli /clients/cli/settings-docs.c @@ -276,6 +276,11 @@ test-*.trs # but they were on older versions. Thus keep ignoring them # otherwise when switching branches these untracked files show # up. +/callouts/nm-avahi-autoipd.action +/callouts/nm-dispatcher +/callouts/nmdbus-dispatcher.* +/callouts/org.freedesktop.nm_dispatcher.service +/callouts/tests/test-dispatcher-envp /include/ /initscript/Slackware/rc.networkmanager /initscript/*/[Nn]etwork[Mm]anager diff --git a/Makefile.am b/Makefile.am index dd818fa812..80eade9459 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,7 +7,7 @@ SUBDIRS = \ libnm-core \ libnm \ src \ - callouts \ + dispatcher \ clients \ tools \ policy \ diff --git a/configure.ac b/configure.ac index 7172093101..a19fdf50e2 100644 --- a/configure.ac +++ b/configure.ac @@ -1184,8 +1184,8 @@ libnm-glib/libnm-glib.pc libnm-glib/libnm-glib-vpn.pc libnm-glib/Makefile libnm-glib/tests/Makefile -callouts/Makefile -callouts/tests/Makefile +dispatcher/Makefile +dispatcher/tests/Makefile tools/Makefile clients/Makefile clients/cli/Makefile diff --git a/callouts/Makefile.am b/dispatcher/Makefile.am similarity index 100% rename from callouts/Makefile.am rename to dispatcher/Makefile.am diff --git a/callouts/nm-dispatcher-utils.c b/dispatcher/nm-dispatcher-utils.c similarity index 100% rename from callouts/nm-dispatcher-utils.c rename to dispatcher/nm-dispatcher-utils.c diff --git a/callouts/nm-dispatcher-utils.h b/dispatcher/nm-dispatcher-utils.h similarity index 100% rename from callouts/nm-dispatcher-utils.h rename to dispatcher/nm-dispatcher-utils.h diff --git a/callouts/nm-dispatcher.c b/dispatcher/nm-dispatcher.c similarity index 100% rename from callouts/nm-dispatcher.c rename to dispatcher/nm-dispatcher.c diff --git a/callouts/nm-dispatcher.conf b/dispatcher/nm-dispatcher.conf similarity index 100% rename from callouts/nm-dispatcher.conf rename to dispatcher/nm-dispatcher.conf diff --git a/callouts/nm-dispatcher.xml b/dispatcher/nm-dispatcher.xml similarity index 100% rename from callouts/nm-dispatcher.xml rename to dispatcher/nm-dispatcher.xml diff --git a/callouts/org.freedesktop.nm_dispatcher.service.in b/dispatcher/org.freedesktop.nm_dispatcher.service.in similarity index 100% rename from callouts/org.freedesktop.nm_dispatcher.service.in rename to dispatcher/org.freedesktop.nm_dispatcher.service.in diff --git a/callouts/tests/Makefile.am b/dispatcher/tests/Makefile.am similarity index 87% rename from callouts/tests/Makefile.am rename to dispatcher/tests/Makefile.am index e85d9f94f5..e7e50adc03 100644 --- a/callouts/tests/Makefile.am +++ b/dispatcher/tests/Makefile.am @@ -5,8 +5,8 @@ AM_CPPFLAGS = \ -I$(top_builddir)/shared \ -I$(top_srcdir)/libnm-core \ -I$(top_builddir)/libnm-core \ - -I$(top_srcdir)/callouts \ - -I$(top_builddir)/callouts \ + -I$(top_srcdir)/dispatcher \ + -I$(top_builddir)/dispatcher \ -DNETWORKMANAGER_COMPILATION \ -DSRCDIR=\"$(abs_srcdir)\" \ $(GLIB_CFLAGS) @@ -21,7 +21,7 @@ test_dispatcher_envp_SOURCES = \ test_dispatcher_envp_LDADD = \ $(top_builddir)/libnm/libnm.la \ - $(top_builddir)/callouts/libnm-dispatcher-core.la \ + $(top_builddir)/dispatcher/libnm-dispatcher-core.la \ $(GLIB_LIBS) ############################################################################### diff --git a/callouts/tests/dispatcher-connectivity-full b/dispatcher/tests/dispatcher-connectivity-full similarity index 87% rename from callouts/tests/dispatcher-connectivity-full rename to dispatcher/tests/dispatcher-connectivity-full index c370bc355b..0b2796d12d 100644 --- a/callouts/tests/dispatcher-connectivity-full +++ b/dispatcher/tests/dispatcher-connectivity-full @@ -17,7 +17,7 @@ PATH= CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311 CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5 CONNECTION_ID=Random Connection -CONNECTION_FILENAME=/callouts/tests/dispatcher-connectivity-full +CONNECTION_FILENAME=/dispatcher/tests/dispatcher-connectivity-full DEVICE_IFACE=wlan0 DEVICE_IP_IFACE=wlan0 CONNECTIVITY_STATE=FULL diff --git a/callouts/tests/dispatcher-connectivity-unknown b/dispatcher/tests/dispatcher-connectivity-unknown similarity index 86% rename from callouts/tests/dispatcher-connectivity-unknown rename to dispatcher/tests/dispatcher-connectivity-unknown index 9622d017d9..4d797712a4 100644 --- a/callouts/tests/dispatcher-connectivity-unknown +++ b/dispatcher/tests/dispatcher-connectivity-unknown @@ -17,6 +17,6 @@ PATH= CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311 CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5 CONNECTION_ID=Random Connection -CONNECTION_FILENAME=/callouts/tests/dispatcher-connectivity-unknown +CONNECTION_FILENAME=/dispatcher/tests/dispatcher-connectivity-unknown DEVICE_IFACE=wlan0 DEVICE_IP_IFACE=wlan0 diff --git a/callouts/tests/dispatcher-down b/dispatcher/tests/dispatcher-down similarity index 88% rename from callouts/tests/dispatcher-down rename to dispatcher/tests/dispatcher-down index f766595c1e..e0e44a7234 100644 --- a/callouts/tests/dispatcher-down +++ b/dispatcher/tests/dispatcher-down @@ -16,7 +16,7 @@ PATH= CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311 CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5 CONNECTION_ID=Random Connection -CONNECTION_FILENAME=/callouts/tests/dispatcher-down +CONNECTION_FILENAME=/dispatcher/tests/dispatcher-down DEVICE_IFACE=wlan0 DEVICE_IP_IFACE=wlan0 diff --git a/callouts/tests/dispatcher-external b/dispatcher/tests/dispatcher-external similarity index 93% rename from callouts/tests/dispatcher-external rename to dispatcher/tests/dispatcher-external index a8c129c9e8..41f01d4636 100644 --- a/callouts/tests/dispatcher-external +++ b/dispatcher/tests/dispatcher-external @@ -25,7 +25,7 @@ gateway=0.0.0.0 PATH= CONNECTION_UUID=92bbc2fb-7304-46be-8ebb-6093dbe19a6a CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5 -CONNECTION_FILENAME=/callouts/tests/dispatcher-external +CONNECTION_FILENAME=/dispatcher/tests/dispatcher-external CONNECTION_ID=virbr0 CONNECTION_EXTERNAL=1 DEVICE_IFACE=virbr0 diff --git a/callouts/tests/dispatcher-up b/dispatcher/tests/dispatcher-up similarity index 97% rename from callouts/tests/dispatcher-up rename to dispatcher/tests/dispatcher-up index 44eb9f7c22..ad7e87d3b1 100644 --- a/callouts/tests/dispatcher-up +++ b/dispatcher/tests/dispatcher-up @@ -39,7 +39,7 @@ PATH= CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311 CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5 CONNECTION_ID=Random Connection -CONNECTION_FILENAME=/callouts/tests/dispatcher-up +CONNECTION_FILENAME=/dispatcher/tests/dispatcher-up DEVICE_IFACE=wlan0 DEVICE_IP_IFACE=wlan0 PROXY_PAC_URL=http://networkmanager.com/proxy.pac diff --git a/callouts/tests/dispatcher-vpn-down b/dispatcher/tests/dispatcher-vpn-down similarity index 96% rename from callouts/tests/dispatcher-vpn-down rename to dispatcher/tests/dispatcher-vpn-down index 1de7e233a5..c921f105d5 100644 --- a/callouts/tests/dispatcher-vpn-down +++ b/dispatcher/tests/dispatcher-vpn-down @@ -39,7 +39,7 @@ PATH= CONNECTION_UUID=355653c0-34d3-4777-ad25-f9a498b7ef8e CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5 CONNECTION_ID=Random Connection -CONNECTION_FILENAME=/callouts/tests/dispatcher-vpn-down +CONNECTION_FILENAME=/dispatcher/tests/dispatcher-vpn-down DEVICE_IFACE=wlan0 DEVICE_IP_IFACE=tun0 PROXY_PAC_URL=http://networkmanager.com/proxy.pac diff --git a/callouts/tests/dispatcher-vpn-up b/dispatcher/tests/dispatcher-vpn-up similarity index 96% rename from callouts/tests/dispatcher-vpn-up rename to dispatcher/tests/dispatcher-vpn-up index d16e58234d..cbafc03131 100644 --- a/callouts/tests/dispatcher-vpn-up +++ b/dispatcher/tests/dispatcher-vpn-up @@ -39,7 +39,7 @@ PATH= CONNECTION_UUID=355653c0-34d3-4777-ad25-f9a498b7ef8e CONNECTION_DBUS_PATH=/org/freedesktop/NetworkManager/Connections/5 CONNECTION_ID=Random Connection -CONNECTION_FILENAME=/callouts/tests/dispatcher-vpn-up +CONNECTION_FILENAME=/dispatcher/tests/dispatcher-vpn-up DEVICE_IFACE=wlan0 DEVICE_IP_IFACE=tun0 PROXY_PAC_URL=http://networkmanager.com/proxy.pac diff --git a/callouts/tests/test-dispatcher-envp.c b/dispatcher/tests/test-dispatcher-envp.c similarity index 99% rename from callouts/tests/test-dispatcher-envp.c rename to dispatcher/tests/test-dispatcher-envp.c index 383beaab75..6dd4db07b2 100644 --- a/callouts/tests/test-dispatcher-envp.c +++ b/dispatcher/tests/test-dispatcher-envp.c @@ -87,7 +87,7 @@ parse_main (GKeyFile *kf, g_variant_new_object_path ("/org/freedesktop/NetworkManager/Connections/5")); /* Strip out the non-fixed portion of the filename */ - filename = strstr (filename, "/callouts"); + filename = strstr (filename, "/dispatcher"); g_variant_builder_add (&props, "{sv}", "filename", g_variant_new_string (filename)); From 757d06800e3902da7adb232906e7486cc69ce70d Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 13 Oct 2016 11:47:29 +0200 Subject: [PATCH 12/17] dhcp/build: add linker version script for nm-dhcp-helper binary --- src/dhcp-manager/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/dhcp-manager/Makefile.am b/src/dhcp-manager/Makefile.am index 4295412738..e6fe60c1b7 100644 --- a/src/dhcp-manager/Makefile.am +++ b/src/dhcp-manager/Makefile.am @@ -14,4 +14,7 @@ nm_dhcp_helper_CPPFLAGS = \ -DG_LOG_DOMAIN=\""nm-dhcp-helper"\" \ -DNMRUNDIR=\"$(nmrundir)\" +nm_dhcp_helper_LDFLAGS = \ + -Wl,--version-script="$(top_srcdir)/linker-script-binary.ver" + nm_dhcp_helper_LDADD = $(GLIB_LIBS) From a8284c57f90a27f6b6655d8d1adebc33d53a38a9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 13 Oct 2016 11:54:44 +0200 Subject: [PATCH 13/17] tui,cli/build: add linker version script for nmcli and nmtui --- clients/Makefile.am | 3 +++ clients/cli/Makefile.am | 3 +++ clients/tui/Makefile.am | 3 +++ 3 files changed, 9 insertions(+) diff --git a/clients/Makefile.am b/clients/Makefile.am index 4a526a6598..46cb1d1e01 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -17,6 +17,9 @@ nm_online_CPPFLAGS = \ -DG_LOG_DOMAIN=\""nm-online"\" \ $(AM_CPPFLAGS) +nm_online_LDFLAGS = \ + -Wl,--version-script="$(top_srcdir)/linker-script-binary.ver" + nm_online_LDADD = \ $(top_builddir)/libnm/libnm.la \ $(GLIB_LIBS) diff --git a/clients/cli/Makefile.am b/clients/cli/Makefile.am index 7edbefad37..deb8159cb1 100644 --- a/clients/cli/Makefile.am +++ b/clients/cli/Makefile.am @@ -54,6 +54,9 @@ nmcli_SOURCES += $(srcdir)/../common/nm-polkit-listener.c $(srcdir)/../common/nm nmcli_LDADD += $(POLKIT_LIBS) endif +nmcli_LDFLAGS = \ + -Wl,--version-script="$(top_srcdir)/linker-script-binary.ver" + if BUILD_SETTING_DOCS settings-docs.c: settings-docs.xsl $(top_builddir)/libnm/nm-property-docs.xml $(AM_V_GEN) xsltproc --output $@ $^ diff --git a/clients/tui/Makefile.am b/clients/tui/Makefile.am index 30ed9dde3d..1fe2ec4515 100644 --- a/clients/tui/Makefile.am +++ b/clients/tui/Makefile.am @@ -119,6 +119,9 @@ nmtui_SOURCES = \ $(srcdir)/../common/nm-vpn-helpers.h \ $(NULL) +nmtui_LDFLAGS = \ + -Wl,--version-script="$(top_srcdir)/linker-script-binary.ver" + nmtui_LDADD = \ $(top_builddir)/libnm/libnm.la \ $(builddir)/newt/libnmt-newt.a \ From 92f4185575e8ae86b1d1994c6891f3477806e1a2 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 13 Oct 2016 13:02:49 +0200 Subject: [PATCH 14/17] devices/build: use one linker-script-devices.ver for all device plugins --- Makefile.am | 1 + .../exports.ver => linker-script-devices.ver | 0 src/devices/adsl/Makefile.am | 8 ++------ src/devices/bluetooth/Makefile.am | 7 ++----- src/devices/bluetooth/exports.ver | 6 ------ src/devices/team/Makefile.am | 8 ++------ src/devices/team/exports.ver | 6 ------ src/devices/wifi/Makefile.am | 8 ++------ src/devices/wifi/exports.ver | 6 ------ src/devices/wwan/Makefile.am | 17 +++++++---------- src/devices/wwan/exports.ver | 6 ------ .../wwan/{wwan-exports.ver => libnm-wwan.ver} | 0 12 files changed, 16 insertions(+), 57 deletions(-) rename src/devices/adsl/exports.ver => linker-script-devices.ver (100%) delete mode 100644 src/devices/bluetooth/exports.ver delete mode 100644 src/devices/team/exports.ver delete mode 100644 src/devices/wifi/exports.ver delete mode 100644 src/devices/wwan/exports.ver rename src/devices/wwan/{wwan-exports.ver => libnm-wwan.ver} (100%) diff --git a/Makefile.am b/Makefile.am index 80eade9459..170ca656d7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -35,6 +35,7 @@ EXTRA_DIST = \ intltool-merge.in \ intltool-update.in \ linker-script-binary.ver \ + linker-script-devices.ver \ linker-script-settings.ver \ Makefile.glib \ autogen.sh \ diff --git a/src/devices/adsl/exports.ver b/linker-script-devices.ver similarity index 100% rename from src/devices/adsl/exports.ver rename to linker-script-devices.ver diff --git a/src/devices/adsl/Makefile.am b/src/devices/adsl/Makefile.am index bf7f974275..573f19a8c3 100644 --- a/src/devices/adsl/Makefile.am +++ b/src/devices/adsl/Makefile.am @@ -20,8 +20,6 @@ AM_CPPFLAGS = \ pkglib_LTLIBRARIES = libnm-device-plugin-adsl.la -SYMBOL_VIS_FILE=$(srcdir)/exports.ver - libnm_device_plugin_adsl_la_SOURCES = \ nm-atm-manager.c \ nm-device-adsl.c \ @@ -29,14 +27,12 @@ libnm_device_plugin_adsl_la_SOURCES = \ libnm_device_plugin_adsl_la_LDFLAGS = \ -module -avoid-version \ - -Wl,--version-script=$(SYMBOL_VIS_FILE) + -Wl,--version-script="$(top_srcdir)/linker-script-devices.ver" libnm_device_plugin_adsl_la_LIBADD = \ $(top_builddir)/introspection/libnmdbus.la \ $(GUDEV_LIBS) -EXTRA_DIST = $(SYMBOL_VIS_FILE) - check-local: - $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-adsl.so $(SYMBOL_VIS_FILE) + $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-adsl.so "$(top_srcdir)/linker-script-devices.ver" $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-adsl.so) diff --git a/src/devices/bluetooth/Makefile.am b/src/devices/bluetooth/Makefile.am index d1a833a3c5..79418558fe 100644 --- a/src/devices/bluetooth/Makefile.am +++ b/src/devices/bluetooth/Makefile.am @@ -29,8 +29,6 @@ BUILT_SOURCES = $(GLIB_GENERATED) pkglib_LTLIBRARIES = libnm-device-plugin-bluetooth.la -SYMBOL_VIS_FILE=$(srcdir)/exports.ver - libnm_device_plugin_bluetooth_la_SOURCES = \ nm-bluez-manager.c \ nm-bluez-common.h \ @@ -52,7 +50,7 @@ libnm_device_plugin_bluetooth_la_SOURCES = \ libnm_device_plugin_bluetooth_la_LDFLAGS = \ -module -avoid-version \ - -Wl,--version-script=$(SYMBOL_VIS_FILE) + -Wl,--version-script="$(top_srcdir)/linker-script-devices.ver" libnm_device_plugin_bluetooth_la_LIBADD = \ $(top_builddir)/introspection/libnmdbus.la \ @@ -71,8 +69,7 @@ libnm_device_plugin_bluetooth_la_LIBADD += $(BLUEZ5_LIBS) endif CLEANFILES = $(BUILT_SOURCES) -EXTRA_DIST = $(SYMBOL_VIS_FILE) check-local: - $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-bluetooth.so $(SYMBOL_VIS_FILE) + $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-bluetooth.so "$(top_srcdir)/linker-script-devices.ver" $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-bluetooth.so) diff --git a/src/devices/bluetooth/exports.ver b/src/devices/bluetooth/exports.ver deleted file mode 100644 index 24cd848ce1..0000000000 --- a/src/devices/bluetooth/exports.ver +++ /dev/null @@ -1,6 +0,0 @@ -{ -global: - nm_device_factory_create; -local: - *; -}; diff --git a/src/devices/team/Makefile.am b/src/devices/team/Makefile.am index 350cf0c7c4..2810c494c0 100644 --- a/src/devices/team/Makefile.am +++ b/src/devices/team/Makefile.am @@ -25,8 +25,6 @@ endif pkglib_LTLIBRARIES = libnm-device-plugin-team.la -SYMBOL_VIS_FILE=$(srcdir)/exports.ver - libnm_device_plugin_team_la_SOURCES = \ nm-team-factory.c \ nm-device-team.c \ @@ -34,7 +32,7 @@ libnm_device_plugin_team_la_SOURCES = \ libnm_device_plugin_team_la_LDFLAGS = \ -module -avoid-version \ - -Wl,--version-script=$(SYMBOL_VIS_FILE) + -Wl,--version-script="$(top_srcdir)/linker-script-devices.ver" libnm_device_plugin_team_la_LIBADD = \ $(top_builddir)/introspection/libnmdbus.la \ @@ -45,8 +43,6 @@ if WITH_TEAMDCTL libnm_device_plugin_team_la_LIBADD += $(LIBTEAMDCTL_LIBS) endif -EXTRA_DIST = $(SYMBOL_VIS_FILE) - check-local: - $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-team.so $(SYMBOL_VIS_FILE) + $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-team.so "$(top_srcdir)/linker-script-devices.ver" $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-team.so) diff --git a/src/devices/team/exports.ver b/src/devices/team/exports.ver deleted file mode 100644 index 24cd848ce1..0000000000 --- a/src/devices/team/exports.ver +++ /dev/null @@ -1,6 +0,0 @@ -{ -global: - nm_device_factory_create; -local: - *; -}; diff --git a/src/devices/wifi/Makefile.am b/src/devices/wifi/Makefile.am index 72863bc4a6..45c0ef7399 100644 --- a/src/devices/wifi/Makefile.am +++ b/src/devices/wifi/Makefile.am @@ -35,19 +35,15 @@ libnm_device_plugin_wifi_la_SOURCES = \ nm-device-olpc-mesh.c \ nm-device-olpc-mesh.h -SYMBOL_VIS_FILE=$(srcdir)/exports.ver - libnm_device_plugin_wifi_la_LDFLAGS = \ -module -avoid-version \ - -Wl,--version-script=$(SYMBOL_VIS_FILE) + -Wl,--version-script="$(top_srcdir)/linker-script-devices.ver" libnm_device_plugin_wifi_la_LIBADD = \ $(top_builddir)/introspection/libnmdbus.la \ $(GLIB_LIBS) \ $(GUDEV_LIBS) -EXTRA_DIST = $(SYMBOL_VIS_FILE) - check-local: - $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-wifi.so $(SYMBOL_VIS_FILE) + $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-wifi.so "$(top_srcdir)/linker-script-devices.ver" $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-wifi.so) diff --git a/src/devices/wifi/exports.ver b/src/devices/wifi/exports.ver deleted file mode 100644 index 24cd848ce1..0000000000 --- a/src/devices/wifi/exports.ver +++ /dev/null @@ -1,6 +0,0 @@ -{ -global: - nm_device_factory_create; -local: - *; -}; diff --git a/src/devices/wwan/Makefile.am b/src/devices/wwan/Makefile.am index a118a5545c..8efd9a27d2 100644 --- a/src/devices/wwan/Makefile.am +++ b/src/devices/wwan/Makefile.am @@ -51,11 +51,9 @@ libnm_wwan_la_SOURCES += \ $(NULL) endif -WWAN_SYMBOL_VIS_FILE=$(srcdir)/wwan-exports.ver - libnm_wwan_la_LDFLAGS = \ -avoid-version \ - -Wl,--version-script=$(WWAN_SYMBOL_VIS_FILE) + -Wl,--version-script="$(srcdir)/libnm-wwan.ver" libnm_wwan_la_LIBADD = \ $(top_builddir)/introspection/libnmdbus.la \ $(GLIB_LIBS) \ @@ -64,8 +62,6 @@ libnm_wwan_la_LIBADD = \ ########################################################### -SYMBOL_VIS_FILE=$(srcdir)/exports.ver - libnm_device_plugin_wwan_la_SOURCES = \ nm-wwan-factory.c \ nm-device-modem.c \ @@ -73,7 +69,7 @@ libnm_device_plugin_wwan_la_SOURCES = \ libnm_device_plugin_wwan_la_LDFLAGS = \ -module -avoid-version \ - -Wl,--version-script=$(SYMBOL_VIS_FILE) + -Wl,--version-script="$(top_srcdir)/linker-script-devices.ver" libnm_device_plugin_wwan_la_LIBADD = \ $(top_builddir)/introspection/libnmdbus.la \ @@ -83,11 +79,12 @@ libnm_device_plugin_wwan_la_LIBADD = \ ########################################################### CLEANFILES = $(BUILT_SOURCES) -EXTRA_DIST = $(SYMBOL_VIS_FILE) $(WWAN_SYMBOL_VIS_FILE) + +EXTRA_DIST = \ + libnm-wwan.ver check-local: - $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-wwan.so $(SYMBOL_VIS_FILE) + $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-wwan.so "$(top_srcdir)/linker-script-devices.ver" $(call check_so_symbols,$(builddir)/.libs/libnm-device-plugin-wwan.so) - $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-wwan.so $(WWAN_SYMBOL_VIS_FILE) + $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-wwan.so "$(srcdir)/libnm-wwan.ver" $(call check_so_symbols,$(builddir)/.libs/libnm-wwan.so) - diff --git a/src/devices/wwan/exports.ver b/src/devices/wwan/exports.ver deleted file mode 100644 index 24cd848ce1..0000000000 --- a/src/devices/wwan/exports.ver +++ /dev/null @@ -1,6 +0,0 @@ -{ -global: - nm_device_factory_create; -local: - *; -}; diff --git a/src/devices/wwan/wwan-exports.ver b/src/devices/wwan/libnm-wwan.ver similarity index 100% rename from src/devices/wwan/wwan-exports.ver rename to src/devices/wwan/libnm-wwan.ver From 24f566afa0715162b4e333cf41f7c49a0d62cdfe Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 13 Oct 2016 13:29:35 +0200 Subject: [PATCH 15/17] build: merge shared/Makefile.am into parent Makefile.am --- Makefile.am | 32 +++++++++++++++++++++++++++++--- configure.ac | 1 - shared/Makefile.am | 21 --------------------- 3 files changed, 29 insertions(+), 25 deletions(-) delete mode 100644 shared/Makefile.am diff --git a/Makefile.am b/Makefile.am index 170ca656d7..de32843d8d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,7 +2,6 @@ include $(GLIB_MAKEFILE) SUBDIRS = \ . \ - shared \ introspection \ libnm-core \ libnm \ @@ -39,7 +38,27 @@ EXTRA_DIST = \ linker-script-settings.ver \ Makefile.glib \ autogen.sh \ - valgrind.suppressions + valgrind.suppressions \ + \ + shared/nm-common-macros.h \ + shared/nm-dbus-compat.h \ + shared/nm-default.h \ + shared/nm-dispatcher-api.h \ + shared/nm-test-libnm-utils.h \ + shared/nm-test-utils-impl.c \ + shared/nm-utils/gsystem-local-alloc.h \ + shared/nm-utils/nm-glib.h \ + shared/nm-utils/nm-macros-internal.h \ + shared/nm-utils/nm-shared-utils.c \ + shared/nm-utils/nm-shared-utils.h \ + shared/nm-utils/nm-test-utils.h \ + shared/nm-utils/nm-vpn-editor-plugin-call.h \ + shared/nm-utils/nm-vpn-plugin-macros.h \ + shared/nm-utils/nm-vpn-plugin-utils.c \ + shared/nm-utils/nm-vpn-plugin-utils.h \ + shared/nm-version-macros.h.in \ + \ + $(NULL) DISTCHECK_CONFIGURE_FLAGS = \ --enable-tests=yes \ @@ -67,7 +86,14 @@ DISTCLEANFILES = intltool-extract intltool-merge intltool-update pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = NetworkManager.pc -CLEANFILES = cscope.in.out cscope.out cscope.po.out +CLEANFILES = \ + cscope.in.out \ + cscope.out \ + cscope.po.out \ + \ + shared/nm-version-macros.h \ + \ + $(NULL) cscope: cscope -b -q -R -sshared -ssrc -slibnm-core -slibnm -slibnm-glib -slibnm-util -sclients; diff --git a/configure.ac b/configure.ac index a19fdf50e2..ff0514987e 100644 --- a/configure.ac +++ b/configure.ac @@ -1136,7 +1136,6 @@ AM_CONDITIONAL(SETTING_DOCS_AVAILABLE, test "$build_setting_docs" = "yes" -o "$h AC_CONFIG_FILES([ Makefile -shared/Makefile shared/nm-version-macros.h src/Makefile src/tests/Makefile diff --git a/shared/Makefile.am b/shared/Makefile.am deleted file mode 100644 index adf101bf20..0000000000 --- a/shared/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -EXTRA_DIST = \ - nm-utils/gsystem-local-alloc.h \ - nm-utils/nm-glib.h \ - nm-utils/nm-macros-internal.h \ - nm-utils/nm-shared-utils.c \ - nm-utils/nm-shared-utils.h \ - nm-utils/nm-test-utils.h \ - nm-utils/nm-vpn-editor-plugin-call.h \ - nm-utils/nm-vpn-plugin-macros.h \ - nm-utils/nm-vpn-plugin-utils.c \ - nm-utils/nm-vpn-plugin-utils.h \ - nm-common-macros.h \ - nm-dbus-compat.h \ - nm-default.h \ - nm-dispatcher-api.h \ - nm-test-libnm-utils.h \ - nm-test-utils-impl.c \ - nm-version-macros.h.in \ - $(NULL) - -CLEANFILES=nm-version.h From 88a71515790f1f576edfcecf58ad1f64555e56e2 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 13 Oct 2016 13:39:30 +0200 Subject: [PATCH 16/17] build: reorder toplevel Makefile.am --- Makefile.am | 66 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/Makefile.am b/Makefile.am index de32843d8d..1d522ddbfb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,9 @@ include $(GLIB_MAKEFILE) +@GNOME_CODE_COVERAGE_RULES@ + +############################################################################### + SUBDIRS = \ . \ introspection \ @@ -25,7 +29,37 @@ SUBDIRS += \ docs \ vapi -@GNOME_CODE_COVERAGE_RULES@ +############################################################################### + +DISTCHECK_CONFIGURE_FLAGS = \ + --enable-tests=yes \ + --with-valgrind=no \ + --enable-gtk-doc \ + --enable-more-warnings=error \ + --with-udev-dir=$$dc_install_base/lib/udev \ + --with-wext=no \ + --enable-ifcfg-rh \ + --enable-ifupdown \ + --enable-ifnet + +if BUILD_SETTING_DOCS +dist-check-setting-docs: +else +dist-check-setting-docs: + @echo "*** gobject-introspection and pygobject are needed to run 'make dist'. ***" + @false +endif + +dist: dist-check-setting-docs + +DISTCLEANFILES = intltool-extract intltool-merge intltool-update + +############################################################################### + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = NetworkManager.pc + +############################################################################### EXTRA_DIST = \ CONTRIBUTING \ @@ -60,32 +94,6 @@ EXTRA_DIST = \ \ $(NULL) -DISTCHECK_CONFIGURE_FLAGS = \ - --enable-tests=yes \ - --with-valgrind=no \ - --enable-gtk-doc \ - --enable-more-warnings=error \ - --with-udev-dir=$$dc_install_base/lib/udev \ - --with-wext=no \ - --enable-ifcfg-rh \ - --enable-ifupdown \ - --enable-ifnet - -if BUILD_SETTING_DOCS -dist-check-setting-docs: -else -dist-check-setting-docs: - @echo "*** gobject-introspection and pygobject are needed to run 'make dist'. ***" - @false -endif - -dist: dist-check-setting-docs - -DISTCLEANFILES = intltool-extract intltool-merge intltool-update - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = NetworkManager.pc - CLEANFILES = \ cscope.in.out \ cscope.out \ @@ -95,7 +103,11 @@ CLEANFILES = \ \ $(NULL) +############################################################################### + cscope: cscope -b -q -R -sshared -ssrc -slibnm-core -slibnm -slibnm-glib -slibnm-util -sclients; +############################################################################### + .PHONY: cscope From 17bb165c0573f35ca8f8bccdfdeaa048f5583370 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 13 Oct 2016 13:46:28 +0200 Subject: [PATCH 17/17] build: merge policy/Makefile.am into parent Makefile.am --- Makefile.am | 16 +++++++++++++++- configure.ac | 1 - policy/Makefile.am | 28 ---------------------------- 3 files changed, 15 insertions(+), 30 deletions(-) delete mode 100644 policy/Makefile.am diff --git a/Makefile.am b/Makefile.am index 1d522ddbfb..af2eb0babe 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,7 +13,6 @@ SUBDIRS = \ dispatcher \ clients \ tools \ - policy \ data \ po \ man \ @@ -61,6 +60,19 @@ pkgconfig_DATA = NetworkManager.pc ############################################################################### +polkit_policydir = $(datadir)/polkit-1/actions + +dist_polkit_policy_in_in_files = \ + policy/org.freedesktop.NetworkManager.policy.in.in + +polkit_policy_DATA = $(dist_polkit_policy_in_in_files:.policy.in.in=.policy) + +@INTLTOOL_POLICY_RULE@ + +DISTCLEANFILES += $(polkit_policy_DATA) + +############################################################################### + EXTRA_DIST = \ CONTRIBUTING \ NetworkManager.pc.in \ @@ -101,6 +113,8 @@ CLEANFILES = \ \ shared/nm-version-macros.h \ \ + policy/*~ \ + \ $(NULL) ############################################################################### diff --git a/configure.ac b/configure.ac index ff0514987e..a245d72934 100644 --- a/configure.ac +++ b/configure.ac @@ -1194,7 +1194,6 @@ introspection/Makefile man/Makefile man/common.ent po/Makefile.in -policy/Makefile policy/org.freedesktop.NetworkManager.policy.in data/Makefile docs/Makefile diff --git a/policy/Makefile.am b/policy/Makefile.am deleted file mode 100644 index 37c4344aab..0000000000 --- a/policy/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -polkit_policydir = $(datadir)/polkit-1/actions - -dist_polkit_policy_in_in_files = \ - org.freedesktop.NetworkManager.policy.in.in - -polkit_policy_DATA = $(dist_polkit_policy_in_in_files:.policy.in.in=.policy) - -@INTLTOOL_POLICY_RULE@ - -# polkit >= 0.92 doesn't have an updated polkit-policy-file-validate -#check: -# @for f in $(dist_polkit_policy_DATA); do \ -# echo -n "Validate PolicyKit policy in $$f : "; \ -# $(POLKIT_POLICY_FILE_VALIDATE) $(srcdir)/$$f ; \ -# ret=$$?; \ -# if [ "$$ret" = "0" ]; \ -# then \ -# echo ok; \ -# else \ -# echo failed; \ -# exit 1; \ -# fi; \ -# done; - -clean-local : - rm -f *~ - -DISTCLEANFILES = $(polkit_policy_DATA)