From 0b8d345e9719cf3df237dc8efab4a3df387e71c18edbc027f6afbdcbffdb4e70 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 7 Mar 2013 20:01:46 +0000 Subject: [PATCH] symbol versions for libteam OBS-URL: https://build.opensuse.org/package/show/security:netfilter/libnl3?expand=0&rev=43 --- 0001-Add-symbol-version-maps-to-libnl.patch | 1665 +++++++++++++++++++ libnl3.changes | 6 + libnl3.spec | 16 +- 3 files changed, 1679 insertions(+), 8 deletions(-) create mode 100644 0001-Add-symbol-version-maps-to-libnl.patch diff --git a/0001-Add-symbol-version-maps-to-libnl.patch b/0001-Add-symbol-version-maps-to-libnl.patch new file mode 100644 index 0000000..ad8f9bc --- /dev/null +++ b/0001-Add-symbol-version-maps-to-libnl.patch @@ -0,0 +1,1665 @@ +From 6680f6db81af41fb14c2059a70b584c87c029f45 Mon Sep 17 00:00:00 2001 +From: Jan Engelhardt +Date: Thu, 7 Mar 2013 20:09:18 +0100 +Subject: [PATCH] Add symbol version maps to libnl + +This ensures that programs linking to a new libnl do not accidentally +get installed (in distributions with prebuilt packages) together with +an old libnl, since the SONAME is the same for both old and new libnl. + +Signed-off-by: Jan Engelhardt +--- + lib/Makefile.am | 8 + + lib/libnl-genl.map | 54 ++++ + lib/libnl-nf.map | 320 ++++++++++++++++++++++ + lib/libnl-route.map | 707 +++++++++++++++++++++++++++++++++++++++++++++++++ + lib/libnl.map | 345 ++++++++++++++++++++++++ + src/lib/Makefile.am | 3 + + src/lib/libnl-cli.map | 133 ++++++++++ + 7 files changed, 1570 insertions(+) + create mode 100644 lib/libnl-genl.map + create mode 100644 lib/libnl-nf.map + create mode 100644 lib/libnl-route.map + create mode 100644 lib/libnl.map + create mode 100644 src/lib/libnl-cli.map + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index 677a89c..74bfd84 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -19,10 +19,14 @@ libnl_3_la_SOURCES = \ + addr.c attr.c cache.c cache_mngr.c cache_mngt.c data.c \ + error.c handlers.c msg.c nl.c object.c socket.c utils.c \ + version.c hash.c hashtable.c ++libnl_3_la_LDFLAGS = ${AM_LDFLAGS} \ ++ -Wl,--version-script=${srcdir}/libnl.map + + libnl_genl_3_la_LIBADD = libnl-3.la + libnl_genl_3_la_SOURCES = \ + genl/ctrl.c genl/family.c genl/genl.c genl/mngt.c ++libnl_genl_3_la_LDFLAGS = ${AM_LDFLAGS} \ ++ -Wl,--version-script=${srcdir}/libnl-genl.map + + libnl_nf_3_la_LIBADD = libnl-route-3.la + libnl_nf_3_la_SOURCES = \ +@@ -31,6 +35,8 @@ libnl_nf_3_la_SOURCES = \ + netfilter/netfilter.c netfilter/nfnl.c netfilter/queue.c \ + netfilter/queue_msg.c netfilter/queue_msg_obj.c netfilter/queue_obj.c \ + netfilter/exp.c netfilter/exp_obj.c ++libnl_nf_3_la_LDFLAGS = ${AM_LDFLAGS} \ ++ -Wl,--version-script=${srcdir}/libnl-nf.map + + CLEANFILES = \ + route/pktloc_grammar.c route/pktloc_grammar.h \ +@@ -79,6 +85,8 @@ libnl_route_3_la_SOURCES = \ + fib_lookup/lookup.c fib_lookup/request.c \ + \ + route/pktloc.c ++libnl_route_3_la_LDFLAGS = ${AM_LDFLAGS} \ ++ -Wl,--version-script=${srcdir}/libnl-route.map + + nodist_libnl_route_3_la_SOURCES = \ + route/pktloc_syntax.c route/pktloc_syntax.h \ +diff --git a/lib/libnl-genl.map b/lib/libnl-genl.map +new file mode 100644 +index 0000000..977d2bb +--- /dev/null ++++ b/lib/libnl-genl.map +@@ -0,0 +1,54 @@ ++LIBNL_3.2.22 { ++global: ++ /* ctrl.h */ ++ genl_ctrl_alloc_cache; ++ genl_ctrl_search; ++ genl_ctrl_search_by_name; ++ genl_ctrl_resolve; ++ genl_ctrl_resolve_grp; ++ ++ /* family.h */ ++ genl_family_alloc; ++ genl_family_put; ++ genl_family_get_id; ++ genl_family_set_id; ++ genl_family_get_name; ++ genl_family_set_name; ++ genl_family_get_version; ++ genl_family_set_version; ++ genl_family_get_hdrsize; ++ genl_family_set_hdrsize; ++ genl_family_get_maxattr; ++ genl_family_set_maxattr; ++ genl_family_add_op; ++ genl_family_add_grp; ++ ++ /* genl.h */ ++ genl_connect; ++ genl_send_simple; ++ genlmsg_put; ++ genlmsg_valid_hdr; ++ genlmsg_validate; ++ genlmsg_parse; ++ genlmsg_hdr; ++ genlmsg_data; ++ genlmsg_user_hdr; ++ genlmsg_user_data; ++ genlmsg_user_datalen; ++ genlmsg_len; ++ genlmsg_attrdata; ++ genlmsg_attrlen; ++ genl_op2name; ++ ++ /* mngt.h */ ++ genl_register_family; ++ genl_unregister_family; ++ genl_handle_msg; ++ genl_register; ++ genl_unregister; ++ genl_ops_resolve; ++ genl_mngt_resolve; ++ ++local: ++ *; ++}; +diff --git a/lib/libnl-nf.map b/lib/libnl-nf.map +new file mode 100644 +index 0000000..02d711d +--- /dev/null ++++ b/lib/libnl-nf.map +@@ -0,0 +1,320 @@ ++LIBNL_3.2.22 { ++global: ++ /* ct.h */ ++ ct_obj_ops; ++ nfnl_ct_alloc; ++ nfnl_ct_alloc_cache; ++ nfnlmsg_ct_group; ++ nfnlmsg_ct_parse; ++ nfnl_ct_get; ++ nfnl_ct_put; ++ nfnl_ct_dump_request; ++ nfnl_ct_build_add_request; ++ nfnl_ct_add; ++ nfnl_ct_build_delete_request; ++ nfnl_ct_del; ++ nfnl_ct_build_query_request; ++ nfnl_ct_query; ++ nfnl_ct_set_family; ++ nfnl_ct_get_family; ++ nfnl_ct_set_proto; ++ nfnl_ct_test_proto; ++ nfnl_ct_get_proto; ++ nfnl_ct_test_tcp_state; ++ nfnl_ct_get_tcp_state; ++ nfnl_ct_set_tcp_state; ++ nfnl_ct_tcp_state2str; ++ nfnl_ct_str2tcp_state; ++ nfnl_ct_set_status; ++ nfnl_ct_unset_status; ++ nfnl_ct_get_status; ++ nfnl_ct_status2str; ++ nfnl_ct_str2status; ++ nfnl_ct_set_timeout; ++ nfnl_ct_test_timeout; ++ nfnl_ct_get_timeout; ++ nfnl_ct_set_mark; ++ nfnl_ct_test_mark; ++ nfnl_ct_get_mark; ++ nfnl_ct_set_use; ++ nfnl_ct_test_use; ++ nfnl_ct_get_use; ++ nfnl_ct_set_id; ++ nfnl_ct_test_id; ++ nfnl_ct_get_id; ++ nfnl_ct_set_src; ++ nfnl_ct_get_src; ++ nfnl_ct_set_dst; ++ nfnl_ct_get_dst; ++ nfnl_ct_set_src_port; ++ nfnl_ct_test_src_port; ++ nfnl_ct_get_src_port; ++ nfnl_ct_set_dst_port; ++ nfnl_ct_test_dst_port; ++ nfnl_ct_get_dst_port; ++ nfnl_ct_set_icmp_id; ++ nfnl_ct_test_icmp_id; ++ nfnl_ct_get_icmp_id; ++ nfnl_ct_set_icmp_type; ++ nfnl_ct_test_icmp_type; ++ nfnl_ct_get_icmp_type; ++ nfnl_ct_set_icmp_code; ++ nfnl_ct_test_icmp_code; ++ nfnl_ct_get_icmp_code; ++ nfnl_ct_set_packets; ++ nfnl_ct_test_packets; ++ nfnl_ct_get_packets; ++ nfnl_ct_set_bytes; ++ nfnl_ct_test_bytes; ++ nfnl_ct_get_bytes; ++ ++ /* exp.h */ ++ exp_obj_ops; ++ nfnl_exp_alloc; ++ nfnl_exp_alloc_cache; ++ nfnlmsg_exp_group; ++ nfnlmsg_exp_parse; ++ nfnl_exp_get; ++ nfnl_exp_put; ++ nfnl_exp_dump_request; ++ nfnl_exp_build_add_request; ++ nfnl_exp_add; ++ nfnl_exp_build_delete_request; ++ nfnl_exp_del; ++ nfnl_exp_build_query_request; ++ nfnl_exp_query; ++ nfnl_exp_set_family; ++ nfnl_exp_get_family; ++ nfnl_exp_set_timeout; ++ nfnl_exp_test_timeout; ++ nfnl_exp_get_timeout; ++ nfnl_exp_set_id; ++ nfnl_exp_test_id; ++ nfnl_exp_get_id; ++ nfnl_exp_set_helper_name; ++ nfnl_exp_test_helper_name; ++ nfnl_exp_get_helper_name; ++ nfnl_exp_set_zone; ++ nfnl_exp_test_zone; ++ nfnl_exp_get_zone; ++ nfnl_exp_set_flags; ++ nfnl_exp_test_flags; ++ nfnl_exp_get_flags; ++ nfnl_exp_set_class; ++ nfnl_exp_test_class; ++ nfnl_exp_get_class; ++ nfnl_exp_set_fn; ++ nfnl_exp_test_fn; ++ nfnl_exp_get_fn; ++ nfnl_exp_set_nat_dir; ++ nfnl_exp_test_nat_dir; ++ nfnl_exp_get_nat_dir; ++ nfnl_exp_set_src; ++ nfnl_exp_test_src; ++ nfnl_exp_get_src; ++ nfnl_exp_set_dst; ++ nfnl_exp_test_dst; ++ nfnl_exp_get_dst; ++ nfnl_exp_set_l4protonum; ++ nfnl_exp_test_l4protonum; ++ nfnl_exp_get_l4protonum; ++ nfnl_exp_set_ports; ++ nfnl_exp_test_ports; ++ nfnl_exp_get_src_port; ++ nfnl_exp_get_dst_port; ++ nfnl_exp_set_icmp; ++ nfnl_exp_test_icmp; ++ nfnl_exp_get_icmp_id; ++ nfnl_exp_get_icmp_type; ++ nfnl_exp_get_icmp_code; ++ ++ /* log.h */ ++ log_obj_ops; ++ nfnl_log_alloc; ++ nfnlmsg_log_parse; ++ nfnl_log_get; ++ nfnl_log_put; ++ nfnl_log_set_group; ++ nfnl_log_test_group; ++ nfnl_log_get_group; ++ nfnl_log_set_copy_mode; ++ nfnl_log_test_copy_mode; ++ nfnl_log_get_copy_mode; ++ nfnl_log_copy_mode2str; ++ nfnl_log_str2copy_mode; ++ nfnl_log_set_copy_range; ++ nfnl_log_test_copy_range; ++ nfnl_log_get_copy_range; ++ nfnl_log_set_flush_timeout; ++ nfnl_log_test_flush_timeout; ++ nfnl_log_get_flush_timeout; ++ nfnl_log_set_alloc_size; ++ nfnl_log_test_alloc_size; ++ nfnl_log_get_alloc_size; ++ nfnl_log_set_queue_threshold; ++ nfnl_log_test_queue_threshold; ++ nfnl_log_get_queue_threshold; ++ nfnl_log_set_flags; ++ nfnl_log_unset_flags; ++ nfnl_log_get_flags; ++ nfnl_log_flags2str; ++ nfnl_log_str2flags; ++ nfnl_log_build_pf_bind; ++ nfnl_log_pf_bind; ++ nfnl_log_build_pf_unbind; ++ nfnl_log_pf_unbind; ++ nfnl_log_build_create_request; ++ nfnl_log_create; ++ nfnl_log_build_change_request; ++ nfnl_log_change; ++ nfnl_log_build_delete_request; ++ nfnl_log_delete; ++ ++ /* log_msg.h */ ++ log_msg_obj_ops; ++ nfnl_log_msg_alloc; ++ nfnlmsg_log_msg_parse; ++ nfnl_log_msg_get; ++ nfnl_log_msg_put; ++ nfnl_log_msg_set_family; ++ nfnl_log_msg_get_family; ++ nfnl_log_msg_set_hwproto; ++ nfnl_log_msg_test_hwproto; ++ nfnl_log_msg_get_hwproto; ++ nfnl_log_msg_set_hook; ++ nfnl_log_msg_test_hook; ++ nfnl_log_msg_get_hook; ++ nfnl_log_msg_set_mark; ++ nfnl_log_msg_test_mark; ++ nfnl_log_msg_get_mark; ++ nfnl_log_msg_set_timestamp; ++ nfnl_log_msg_get_timestamp; ++ nfnl_log_msg_set_indev; ++ nfnl_log_msg_get_indev; ++ nfnl_log_msg_set_outdev; ++ nfnl_log_msg_get_outdev; ++ nfnl_log_msg_set_physindev; ++ nfnl_log_msg_get_physindev; ++ nfnl_log_msg_set_physoutdev; ++ nfnl_log_msg_get_physoutdev; ++ nfnl_log_msg_set_hwaddr; ++ nfnl_log_msg_get_hwaddr; ++ nfnl_log_msg_set_payload; ++ nfnl_log_msg_get_payload; ++ nfnl_log_msg_set_prefix; ++ nfnl_log_msg_get_prefix; ++ nfnl_log_msg_set_uid; ++ nfnl_log_msg_test_uid; ++ nfnl_log_msg_get_uid; ++ nfnl_log_msg_set_gid; ++ nfnl_log_msg_test_gid; ++ nfnl_log_msg_get_gid; ++ nfnl_log_msg_set_seq; ++ nfnl_log_msg_test_seq; ++ nfnl_log_msg_get_seq; ++ nfnl_log_msg_set_seq_global; ++ nfnl_log_msg_test_seq_global; ++ nfnl_log_msg_get_seq_global; ++ ++ /* netfilter.h */ ++ nfnl_verdict2str; ++ nfnl_str2verdict; ++ nfnl_inet_hook2str; ++ nfnl_str2inet_hook; ++ ++ /* nfnl.h */ ++ nfnl_connect; ++ nfnlmsg_subsys; ++ nfnlmsg_subtype; ++ nfnlmsg_family; ++ nfnlmsg_res_id; ++ nfnl_send_simple; ++ nfnlmsg_alloc_simple; ++ nfnlmsg_put; ++ ++ /* queue.h */ ++ queue_obj_ops; ++ nfnl_queue_socket_alloc; ++ nfnl_queue_alloc; ++ nfnl_queue_get; ++ nfnl_queue_put; ++ nfnl_queue_set_group; ++ nfnl_queue_test_group; ++ nfnl_queue_get_group; ++ nfnl_queue_set_maxlen; ++ nfnl_queue_test_maxlen; ++ nfnl_queue_get_maxlen; ++ nfnl_queue_set_copy_mode; ++ nfnl_queue_test_copy_mode; ++ nfnl_queue_get_copy_mode; ++ nfnl_queue_copy_mode2str; ++ nfnl_queue_str2copy_mode; ++ nfnl_queue_set_copy_range; ++ nfnl_queue_test_copy_range; ++ nfnl_queue_get_copy_range; ++ nfnl_queue_build_pf_bind; ++ nfnl_queue_pf_bind; ++ nfnl_queue_build_pf_unbind; ++ nfnl_queue_pf_unbind; ++ nfnl_queue_build_create_request; ++ nfnl_queue_create; ++ nfnl_queue_build_change_request; ++ nfnl_queue_change; ++ nfnl_queue_build_delete_request; ++ nfnl_queue_delete; ++ ++ /* queue_msg.h */ ++ queue_msg_obj_ops; ++ nfnl_queue_msg_alloc; ++ nfnlmsg_queue_msg_parse; ++ nfnl_queue_msg_get; ++ nfnl_queue_msg_put; ++ nfnl_queue_msg_set_group; ++ nfnl_queue_msg_test_group; ++ nfnl_queue_msg_get_group; ++ nfnl_queue_msg_set_family; ++ nfnl_queue_msg_test_family; ++ nfnl_queue_msg_get_family; ++ nfnl_queue_msg_set_packetid; ++ nfnl_queue_msg_test_packetid; ++ nfnl_queue_msg_get_packetid; ++ nfnl_queue_msg_set_hwproto; ++ nfnl_queue_msg_test_hwproto; ++ nfnl_queue_msg_get_hwproto; ++ nfnl_queue_msg_set_hook; ++ nfnl_queue_msg_test_hook; ++ nfnl_queue_msg_get_hook; ++ nfnl_queue_msg_set_mark; ++ nfnl_queue_msg_test_mark; ++ nfnl_queue_msg_get_mark; ++ nfnl_queue_msg_set_timestamp; ++ nfnl_queue_msg_test_timestamp; ++ nfnl_queue_msg_get_timestamp; ++ nfnl_queue_msg_set_indev; ++ nfnl_queue_msg_test_indev; ++ nfnl_queue_msg_get_indev; ++ nfnl_queue_msg_set_outdev; ++ nfnl_queue_msg_test_outdev; ++ nfnl_queue_msg_get_outdev; ++ nfnl_queue_msg_set_physindev; ++ nfnl_queue_msg_test_physindev; ++ nfnl_queue_msg_get_physindev; ++ nfnl_queue_msg_set_physoutdev; ++ nfnl_queue_msg_test_physoutdev; ++ nfnl_queue_msg_get_physoutdev; ++ nfnl_queue_msg_set_hwaddr; ++ nfnl_queue_msg_test_hwaddr; ++ nfnl_queue_msg_get_hwaddr; ++ nfnl_queue_msg_set_payload; ++ nfnl_queue_msg_test_payload; ++ nfnl_queue_msg_get_payload; ++ nfnl_queue_msg_set_verdict; ++ nfnl_queue_msg_test_verdict; ++ nfnl_queue_msg_get_verdict; ++ nfnl_queue_msg_build_verdict; ++ nfnl_queue_msg_send_verdict; ++ nfnl_queue_msg_send_verdict_payload; ++ ++local: ++ *; ++}; +diff --git a/lib/libnl-route.map b/lib/libnl-route.map +new file mode 100644 +index 0000000..4b88edd +--- /dev/null ++++ b/lib/libnl-route.map +@@ -0,0 +1,707 @@ ++LIBNL_3.2.22 { ++global: ++ /* netlink/route/addr.h */ ++ rtnl_addr_alloc; ++ rtnl_addr_put; ++ rtnl_addr_alloc_cache; ++ rtnl_addr_get; ++ rtnl_addr_build_add_request; ++ rtnl_addr_add; ++ rtnl_addr_build_delete_request; ++ rtnl_addr_delete; ++ rtnl_addr_flags2str; ++ rtnl_addr_str2flags; ++ rtnl_addr_set_label; ++ rtnl_addr_get_label; ++ rtnl_addr_set_ifindex; ++ rtnl_addr_get_ifindex; ++ rtnl_addr_set_link; ++ rtnl_addr_get_link; ++ rtnl_addr_set_family; ++ rtnl_addr_get_family; ++ rtnl_addr_set_prefixlen; ++ rtnl_addr_get_prefixlen; ++ rtnl_addr_set_scope; ++ rtnl_addr_get_scope; ++ rtnl_addr_set_flags; ++ rtnl_addr_unset_flags; ++ rtnl_addr_get_flags; ++ rtnl_addr_set_local; ++ rtnl_addr_get_local; ++ rtnl_addr_set_peer; ++ rtnl_addr_get_peer; ++ rtnl_addr_set_broadcast; ++ rtnl_addr_get_broadcast; ++ rtnl_addr_set_multicast; ++ rtnl_addr_get_multicast; ++ rtnl_addr_set_anycast; ++ rtnl_addr_get_anycast; ++ rtnl_addr_get_valid_lifetime; ++ rtnl_addr_set_valid_lifetime; ++ rtnl_addr_get_preferred_lifetime; ++ rtnl_addr_set_preferred_lifetime; ++ rtnl_addr_get_create_time; ++ rtnl_addr_get_last_update_time; ++ ++ /* netlink/route/class.h */ ++ rtnl_class_alloc; ++ rtnl_class_put; ++ rtnl_class_alloc_cache; ++ rtnl_class_get; ++ rtnl_class_leaf_qdisc; ++ rtnl_class_build_add_request; ++ rtnl_class_add; ++ rtnl_class_build_delete_request; ++ rtnl_class_delete; ++ rtnl_class_foreach_child; ++ rtnl_class_foreach_cls; ++ ++ /* netlink/route/classifier.h */ ++ rtnl_cls_alloc; ++ rtnl_cls_put; ++ rtnl_cls_alloc_cache; ++ rtnl_cls_build_add_request; ++ rtnl_cls_add; ++ rtnl_cls_build_change_request; ++ rtnl_cls_build_delete_request; ++ rtnl_cls_delete; ++ rtnl_cls_set_prio; ++ rtnl_cls_get_prio; ++ rtnl_cls_set_protocol; ++ rtnl_cls_get_protocol; ++ ++ /* netlink/route/cls/basic.h */ ++ rtnl_basic_set_target; ++ rtnl_basic_get_target; ++ rtnl_basic_set_ematch; ++ rtnl_basic_get_ematch; ++ ++ /* netlink/route/cls/cgroup.h */ ++ rtnl_cgroup_set_ematch; ++ rtnl_cgroup_get_ematch; ++ ++ /* netlink/route/cls/ematch/cmp.h */ ++ rtnl_ematch_cmp_set; ++ rtnl_ematch_cmp_get; ++ ++ /* netlink/route/cls/ematch/meta.h */ ++ rtnl_meta_value_alloc_int; ++ rtnl_meta_value_alloc_var; ++ rtnl_meta_value_alloc_id; ++ rtnl_meta_value_put; ++ rtnl_ematch_meta_set_lvalue; ++ rtnl_ematch_meta_set_rvalue; ++ rtnl_ematch_meta_set_operand; ++ ++ /* netlink/route/cls/ematch/nbyte.h */ ++ rtnl_ematch_nbyte_set_offset; ++ rtnl_ematch_nbyte_get_offset; ++ rtnl_ematch_nbyte_get_layer; ++ rtnl_ematch_nbyte_set_pattern; ++ rtnl_ematch_nbyte_get_pattern; ++ rtnl_ematch_nbyte_get_len; ++ ++ /* netlink/route/cls/ematch/text.h */ ++ rtnl_ematch_text_set_from; ++ rtnl_ematch_text_get_from_offset; ++ rtnl_ematch_text_get_from_layer; ++ rtnl_ematch_text_set_to; ++ rtnl_ematch_text_get_to_offset; ++ rtnl_ematch_text_get_to_layer; ++ rtnl_ematch_text_set_pattern; ++ rtnl_ematch_text_get_pattern; ++ rtnl_ematch_text_get_len; ++ rtnl_ematch_text_set_algo; ++ rtnl_ematch_text_get_algo; ++ ++ /* netlink/route/cls/ematch.h */ ++ rtnl_ematch_register; ++ rtnl_ematch_lookup_ops; ++ rtnl_ematch_lookup_ops_by_name; ++ rtnl_ematch_alloc; ++ rtnl_ematch_add_child; ++ rtnl_ematch_unlink; ++ rtnl_ematch_free; ++ rtnl_ematch_data; ++ rtnl_ematch_set_flags; ++ rtnl_ematch_unset_flags; ++ rtnl_ematch_get_flags; ++ rtnl_ematch_set_ops; ++ rtnl_ematch_set_kind; ++ rtnl_ematch_set_name; ++ rtnl_ematch_tree_alloc; ++ rtnl_ematch_tree_free; ++ rtnl_ematch_tree_add; ++ rtnl_ematch_parse_attr; ++ rtnl_ematch_fill_attr; ++ rtnl_ematch_tree_dump; ++ rtnl_ematch_parse_expr; ++ rtnl_ematch_offset2txt; ++ rtnl_ematch_opnd2txt; ++ ++ /* netlink/route/cls/fw.h */ ++ rtnl_fw_set_classid; ++ rtnl_fw_set_mask; ++ ++ /* netlink/route/cls/police.h */ ++ nl_police2str; ++ nl_str2police; ++ ++ /* netlink/route/cls/u32.h */ ++ rtnl_u32_set_handle; ++ rtnl_u32_set_classid; ++ rtnl_u32_set_divisor; ++ rtnl_u32_set_link; ++ rtnl_u32_set_hashtable; ++ rtnl_u32_set_hashmask; ++ rtnl_u32_set_cls_terminal; ++ rtnl_u32_set_flags; ++ rtnl_u32_add_key; ++ rtnl_u32_add_key_uint8; ++ rtnl_u32_add_key_uint16; ++ rtnl_u32_add_key_uint32; ++ rtnl_u32_add_key_in_addr; ++ rtnl_u32_add_key_in6_addr; ++ ++ /* netlink/route/link/bonding.h */ ++ rtnl_link_bond_alloc; ++ rtnl_link_bond_add; ++ rtnl_link_bond_enslave_ifindex; ++ rtnl_link_bond_enslave; ++ rtnl_link_bond_release_ifindex; ++ rtnl_link_bond_release; ++ ++ /* netlink/route/link/bridge.h */ ++ rtnl_link_bridge_alloc; ++ rtnl_link_is_bridge; ++ rtnl_link_bridge_has_ext_info; ++ rtnl_link_bridge_set_port_state; ++ rtnl_link_bridge_get_port_state; ++ rtnl_link_bridge_set_priority; ++ rtnl_link_bridge_get_priority; ++ rtnl_link_bridge_set_cost; ++ rtnl_link_bridge_get_cost; ++ rtnl_link_bridge_unset_flags; ++ rtnl_link_bridge_set_flags; ++ rtnl_link_bridge_get_flags; ++ ++ /* netlink/route/link/can.h */ ++ rtnl_link_is_can; ++ rtnl_link_can_ctrlmode2str; ++ rtnl_link_can_str2ctrlmode; ++ rtnl_link_can_restart; ++ rtnl_link_can_freq; ++ rtnl_link_can_state; ++ rtnl_link_can_berr_rx; ++ rtnl_link_can_berr_tx; ++ rtnl_link_can_berr; ++ rtnl_link_can_get_bt_const; ++ rtnl_link_can_get_bittiming; ++ rtnl_link_can_set_bittiming; ++ rtnl_link_can_get_bitrate; ++ rtnl_link_can_set_bitrate; ++ rtnl_link_can_get_sample_point; ++ rtnl_link_can_set_sample_point; ++ rtnl_link_can_get_restart_ms; ++ rtnl_link_can_set_restart_ms; ++ rtnl_link_can_get_ctrlmode; ++ rtnl_link_can_set_ctrlmode; ++ rtnl_link_can_unset_ctrlmode; ++ ++ /* netlink/route/link/inet.h */ ++ rtnl_link_inet_devconf2str; ++ rtnl_link_inet_str2devconf; ++ rtnl_link_inet_get_conf; ++ rtnl_link_inet_set_conf; ++ ++ /* netlink/route/link/vlan.h */ ++ rtnl_link_vlan_alloc; ++ rtnl_link_is_vlan; ++ rtnl_link_vlan_flags2str; ++ rtnl_link_vlan_str2flags; ++ rtnl_link_vlan_set_id; ++ rtnl_link_vlan_get_id; ++ rtnl_link_vlan_set_flags; ++ rtnl_link_vlan_unset_flags; ++ rtnl_link_vlan_get_flags; ++ rtnl_link_vlan_set_ingress_map; ++ rtnl_link_vlan_get_ingress_map; ++ rtnl_link_vlan_set_egress_map; ++ rtnl_link_vlan_get_egress_map; ++ ++ /* netlink/route/link.h */ ++ rtnl_link_alloc; ++ rtnl_link_put; ++ rtnl_link_free; ++ rtnl_link_alloc_cache; ++ rtnl_link_get; ++ rtnl_link_get_by_name; ++ rtnl_link_build_add_request; ++ rtnl_link_add; ++ rtnl_link_build_change_request; ++ rtnl_link_change; ++ rtnl_link_build_delete_request; ++ rtnl_link_delete; ++ rtnl_link_build_get_request; ++ rtnl_link_get_kernel; ++ rtnl_link_i2name; ++ rtnl_link_name2i; ++ rtnl_link_stat2str; ++ rtnl_link_str2stat; ++ rtnl_link_flags2str; ++ rtnl_link_str2flags; ++ rtnl_link_operstate2str; ++ rtnl_link_str2operstate; ++ rtnl_link_mode2str; ++ rtnl_link_str2mode; ++ rtnl_link_carrier2str; ++ rtnl_link_str2carrier; ++ rtnl_link_set_qdisc; ++ rtnl_link_get_qdisc; ++ rtnl_link_set_name; ++ rtnl_link_get_name; ++ rtnl_link_set_group; ++ rtnl_link_get_group; ++ rtnl_link_set_flags; ++ rtnl_link_unset_flags; ++ rtnl_link_get_flags; ++ rtnl_link_set_mtu; ++ rtnl_link_get_mtu; ++ rtnl_link_set_txqlen; ++ rtnl_link_get_txqlen; ++ rtnl_link_set_ifindex; ++ rtnl_link_get_ifindex; ++ rtnl_link_set_family; ++ rtnl_link_get_family; ++ rtnl_link_set_arptype; ++ rtnl_link_get_arptype; ++ rtnl_link_set_addr; ++ rtnl_link_get_addr; ++ rtnl_link_set_broadcast; ++ rtnl_link_get_broadcast; ++ rtnl_link_set_link; ++ rtnl_link_get_link; ++ rtnl_link_set_master; ++ rtnl_link_get_master; ++ rtnl_link_set_carrier; ++ rtnl_link_get_carrier; ++ rtnl_link_set_operstate; ++ rtnl_link_get_operstate; ++ rtnl_link_set_linkmode; ++ rtnl_link_get_linkmode; ++ rtnl_link_get_ifalias; ++ rtnl_link_set_ifalias; ++ rtnl_link_get_num_vf; ++ rtnl_link_get_stat; ++ rtnl_link_set_stat; ++ rtnl_link_set_type; ++ rtnl_link_get_type; ++ rtnl_link_set_promiscuity; ++ rtnl_link_get_promiscuity; ++ rtnl_link_set_num_tx_queues; ++ rtnl_link_get_num_tx_queues; ++ rtnl_link_set_num_rx_queues; ++ rtnl_link_get_num_rx_queues; ++ rtnl_link_enslave_ifindex; ++ rtnl_link_enslave; ++ rtnl_link_release_ifindex; ++ rtnl_link_release; ++ rtnl_link_set_info_type; ++ rtnl_link_get_info_type; ++ rtnl_link_set_weight; ++ rtnl_link_get_weight; ++ ++ /* netlink/route/neighbour.h */ ++ rtnl_neigh_alloc; ++ rtnl_neigh_put; ++ rtnl_neigh_alloc_cache; ++ rtnl_neigh_get; ++ rtnl_neigh_parse; ++ rtnl_neigh_state2str; ++ rtnl_neigh_str2state; ++ rtnl_neigh_flags2str; ++ rtnl_neigh_str2flag; ++ rtnl_neigh_add; ++ rtnl_neigh_build_add_request; ++ rtnl_neigh_delete; ++ rtnl_neigh_build_delete_request; ++ rtnl_neigh_set_state; ++ rtnl_neigh_get_state; ++ rtnl_neigh_unset_state; ++ rtnl_neigh_set_flags; ++ rtnl_neigh_unset_flags; ++ rtnl_neigh_get_flags; ++ rtnl_neigh_set_ifindex; ++ rtnl_neigh_get_ifindex; ++ rtnl_neigh_set_lladdr; ++ rtnl_neigh_get_lladdr; ++ rtnl_neigh_set_dst; ++ rtnl_neigh_get_dst; ++ rtnl_neigh_set_type; ++ rtnl_neigh_get_type; ++ rtnl_neigh_set_family; ++ rtnl_neigh_get_family; ++ ++ /* netlink/route/neightbl.h */ ++ rtnl_neightbl_alloc; ++ rtnl_neightbl_put; ++ rtnl_neightbl_free; ++ rtnl_neightbl_alloc_cache; ++ rtnl_neightbl_get; ++ rtnl_neightbl_dump; ++ rtnl_neightbl_build_change_request; ++ rtnl_neightbl_change; ++ rtnl_neightbl_set_family; ++ rtnl_neightbl_set_gc_tresh1; ++ rtnl_neightbl_set_gc_tresh2; ++ rtnl_neightbl_set_gc_tresh3; ++ rtnl_neightbl_set_name; ++ rtnl_neightbl_set_dev; ++ rtnl_neightbl_set_queue_len; ++ rtnl_neightbl_set_proxy_queue_len; ++ rtnl_neightbl_set_app_probes; ++ rtnl_neightbl_set_ucast_probes; ++ rtnl_neightbl_set_mcast_probes; ++ rtnl_neightbl_set_base_reachable_time; ++ rtnl_neightbl_set_retrans_time; ++ rtnl_neightbl_set_gc_stale_time; ++ rtnl_neightbl_set_delay_probe_time; ++ rtnl_neightbl_set_anycast_delay; ++ rtnl_neightbl_set_proxy_delay; ++ rtnl_neightbl_set_locktime; ++ ++ /* netlink/route/nexthop.h */ ++ rtnl_route_nh_alloc; ++ rtnl_route_nh_clone; ++ rtnl_route_nh_free; ++ rtnl_route_nh_compare; ++ rtnl_route_nh_dump; ++ rtnl_route_nh_set_weight; ++ rtnl_route_nh_get_weight; ++ rtnl_route_nh_set_ifindex; ++ rtnl_route_nh_get_ifindex; ++ rtnl_route_nh_set_gateway; ++ rtnl_route_nh_get_gateway; ++ rtnl_route_nh_set_flags; ++ rtnl_route_nh_unset_flags; ++ rtnl_route_nh_get_flags; ++ rtnl_route_nh_set_realms; ++ rtnl_route_nh_get_realms; ++ rtnl_route_nh_flags2str; ++ rtnl_route_nh_str2flags; ++ ++ /* netlink/route/pktloc.h */ ++ rtnl_pktloc_lookup; ++ rtnl_pktloc_alloc; ++ rtnl_pktloc_put; ++ rtnl_pktloc_add; ++ rtnl_pktloc_foreach; ++ ++ /* netlink/route/qdisc/cbq.h */ ++ nl_ovl_strategy2str; ++ nl_str2ovl_strategy; ++ ++ /* netlink/route/qdisc/dsmark.h */ ++ rtnl_class_dsmark_set_bitmask; ++ rtnl_class_dsmark_get_bitmask; ++ rtnl_class_dsmark_set_value; ++ rtnl_class_dsmark_get_value; ++ rtnl_qdisc_dsmark_set_indices; ++ rtnl_qdisc_dsmark_get_indices; ++ rtnl_qdisc_dsmark_set_default_index; ++ rtnl_qdisc_dsmark_get_default_index; ++ rtnl_qdisc_dsmark_set_set_tc_index; ++ rtnl_qdisc_dsmark_get_set_tc_index; ++ ++ /* netlink/route/qdisc/fifo.h */ ++ rtnl_qdisc_fifo_set_limit; ++ rtnl_qdisc_fifo_get_limit; ++ ++ /* netlink/route/qdisc/htb.h */ ++ rtnl_htb_get_rate2quantum; ++ rtnl_htb_set_rate2quantum; ++ rtnl_htb_get_defcls; ++ rtnl_htb_set_defcls; ++ rtnl_htb_get_prio; ++ rtnl_htb_set_prio; ++ rtnl_htb_get_rate; ++ rtnl_htb_set_rate; ++ rtnl_htb_get_ceil; ++ rtnl_htb_set_ceil; ++ rtnl_htb_get_rbuffer; ++ rtnl_htb_set_rbuffer; ++ rtnl_htb_get_cbuffer; ++ rtnl_htb_set_cbuffer; ++ rtnl_htb_get_quantum; ++ rtnl_htb_set_quantum; ++ rtnl_htb_get_level; ++ ++ /* netlink/route/qdisc/netem.h */ ++ rtnl_netem_set_limit; ++ rtnl_netem_get_limit; ++ rtnl_netem_set_gap; ++ rtnl_netem_get_gap; ++ rtnl_netem_set_reorder_probability; ++ rtnl_netem_get_reorder_probability; ++ rtnl_netem_set_reorder_correlation; ++ rtnl_netem_get_reorder_correlation; ++ rtnl_netem_set_corruption_probability; ++ rtnl_netem_get_corruption_probability; ++ rtnl_netem_set_corruption_correlation; ++ rtnl_netem_get_corruption_correlation; ++ rtnl_netem_set_loss; ++ rtnl_netem_get_loss; ++ rtnl_netem_set_loss_correlation; ++ rtnl_netem_get_loss_correlation; ++ rtnl_netem_set_duplicate; ++ rtnl_netem_get_duplicate; ++ rtnl_netem_set_duplicate_correlation; ++ rtnl_netem_get_duplicate_correlation; ++ rtnl_netem_set_delay; ++ rtnl_netem_get_delay; ++ rtnl_netem_set_jitter; ++ rtnl_netem_get_jitter; ++ rtnl_netem_set_delay_correlation; ++ rtnl_netem_get_delay_correlation; ++ rtnl_netem_set_delay_distribution; ++ rtnl_netem_get_delay_distribution_size; ++ rtnl_netem_get_delay_distribution; ++ ++ /* netlink/route/qdisc/plug.h */ ++ rtnl_qdisc_plug_set_limit; ++ rtnl_qdisc_plug_buffer; ++ rtnl_qdisc_plug_release_one; ++ rtnl_qdisc_plug_release_indefinite; ++ ++ /* netlink/route/qdisc/prio.h */ ++ rtnl_qdisc_prio_set_bands; ++ rtnl_qdisc_prio_get_bands; ++ rtnl_qdisc_prio_set_priomap; ++ rtnl_qdisc_prio_get_priomap; ++ rtnl_prio2str; ++ rtnl_str2prio; ++ ++ /* netlink/route/qdisc/sfq.h */ ++ rtnl_sfq_set_quantum; ++ rtnl_sfq_get_quantum; ++ rtnl_sfq_set_limit; ++ rtnl_sfq_get_limit; ++ rtnl_sfq_set_perturb; ++ rtnl_sfq_get_perturb; ++ rtnl_sfq_get_divisor; ++ ++ /* netlink/route/qdisc/tbf.h */ ++ rtnl_qdisc_tbf_set_limit; ++ rtnl_qdisc_tbf_set_limit_by_latency; ++ rtnl_qdisc_tbf_get_limit; ++ rtnl_qdisc_tbf_set_rate; ++ rtnl_qdisc_tbf_get_rate; ++ rtnl_qdisc_tbf_get_rate_bucket; ++ rtnl_qdisc_tbf_get_rate_cell; ++ rtnl_qdisc_tbf_set_peakrate; ++ rtnl_qdisc_tbf_get_peakrate; ++ rtnl_qdisc_tbf_get_peakrate_bucket; ++ rtnl_qdisc_tbf_get_peakrate_cell; ++ ++ /* netlink/route/qdisc.h */ ++ rtnl_qdisc_alloc; ++ rtnl_qdisc_put; ++ rtnl_qdisc_alloc_cache; ++ rtnl_qdisc_get; ++ rtnl_qdisc_get_by_parent; ++ rtnl_qdisc_build_add_request; ++ rtnl_qdisc_add; ++ rtnl_qdisc_build_update_request; ++ rtnl_qdisc_update; ++ rtnl_qdisc_build_delete_request; ++ rtnl_qdisc_delete; ++ rtnl_qdisc_foreach_child; ++ rtnl_qdisc_foreach_cls; ++ rtnl_qdisc_build_change_request; ++ rtnl_qdisc_change; ++ ++ /* netlink/route/route.h */ ++ route_obj_ops; ++ rtnl_route_alloc; ++ rtnl_route_put; ++ rtnl_route_alloc_cache; ++ rtnl_route_get; ++ rtnl_route_put; ++ rtnl_route_parse; ++ rtnl_route_build_msg; ++ rtnl_route_build_add_request; ++ rtnl_route_add; ++ rtnl_route_build_del_request; ++ rtnl_route_delete; ++ rtnl_route_set_table; ++ rtnl_route_get_table; ++ rtnl_route_set_scope; ++ rtnl_route_get_scope; ++ rtnl_route_set_tos; ++ rtnl_route_get_tos; ++ rtnl_route_set_protocol; ++ rtnl_route_get_protocol; ++ rtnl_route_set_priority; ++ rtnl_route_get_priority; ++ rtnl_route_set_family; ++ rtnl_route_get_family; ++ rtnl_route_set_type; ++ rtnl_route_get_type; ++ rtnl_route_set_flags; ++ rtnl_route_unset_flags; ++ rtnl_route_get_flags; ++ rtnl_route_set_metric; ++ rtnl_route_unset_metric; ++ rtnl_route_get_metric; ++ rtnl_route_set_dst; ++ rtnl_route_get_dst; ++ rtnl_route_set_src; ++ rtnl_route_get_src; ++ rtnl_route_set_pref_src; ++ rtnl_route_get_pref_src; ++ rtnl_route_set_iif; ++ rtnl_route_get_iif; ++ rtnl_route_get_src_len; ++ rtnl_route_add_nexthop; ++ rtnl_route_remove_nexthop; ++ rtnl_route_get_nexthops; ++ rtnl_route_get_nnexthops; ++ rtnl_route_foreach_nexthop; ++ rtnl_route_nexthop_n; ++ rtnl_route_guess_scope; ++ rtnl_route_table2str; ++ rtnl_route_str2table; ++ rtnl_route_read_table_names; ++ rtnl_route_proto2str; ++ rtnl_route_str2proto; ++ rtnl_route_read_protocol_names; ++ rtnl_route_metric2str; ++ rtnl_route_str2metric; ++ ++ /* netlink/route/rtnl.h */ ++ nl_rtgen_request; ++ nl_rtntype2str; ++ nl_str2rtntype; ++ rtnl_scope2str; ++ rtnl_str2scope; ++ rtnl_realms2str; ++ ++ /* netlink/route/rule.h */ ++ rtnl_rule_alloc; ++ rtnl_rule_put; ++ rtnl_rule_alloc_cache; ++ rtnl_rule_dump; ++ rtnl_rule_build_add_request; ++ rtnl_rule_add; ++ rtnl_rule_build_delete_request; ++ rtnl_rule_delete; ++ rtnl_rule_set_family; ++ rtnl_rule_get_family; ++ rtnl_rule_set_prio; ++ rtnl_rule_get_prio; ++ rtnl_rule_set_mark; ++ rtnl_rule_get_mark; ++ rtnl_rule_set_mask; ++ rtnl_rule_get_mask; ++ rtnl_rule_set_table; ++ rtnl_rule_get_table; ++ rtnl_rule_set_dsfield; ++ rtnl_rule_get_dsfield; ++ rtnl_rule_set_src; ++ rtnl_rule_get_src; ++ rtnl_rule_set_dst; ++ rtnl_rule_get_dst; ++ rtnl_rule_set_action; ++ rtnl_rule_get_action; ++ rtnl_rule_set_iif; ++ rtnl_rule_get_iif; ++ rtnl_rule_set_oif; ++ rtnl_rule_get_oif; ++ rtnl_rule_set_realms; ++ rtnl_rule_get_realms; ++ rtnl_rule_set_goto; ++ rtnl_rule_get_goto; ++ ++ /* netlink/route/tc.h */ ++ rtnl_tc_set_ifindex; ++ rtnl_tc_get_ifindex; ++ rtnl_tc_set_link; ++ rtnl_tc_get_link; ++ rtnl_tc_set_mtu; ++ rtnl_tc_get_mtu; ++ rtnl_tc_set_mpu; ++ rtnl_tc_get_mpu; ++ rtnl_tc_set_overhead; ++ rtnl_tc_get_overhead; ++ rtnl_tc_set_linktype; ++ rtnl_tc_get_linktype; ++ rtnl_tc_set_handle; ++ rtnl_tc_get_handle; ++ rtnl_tc_set_parent; ++ rtnl_tc_get_parent; ++ rtnl_tc_set_kind; ++ rtnl_tc_get_kind; ++ rtnl_tc_get_stat; ++ rtnl_tc_calc_txtime; ++ rtnl_tc_calc_bufsize; ++ rtnl_tc_calc_cell_log; ++ rtnl_tc_read_classid_file; ++ rtnl_tc_handle2str; ++ rtnl_tc_str2handle; ++ rtnl_classid_generate; ++ ++ /* netlink-private/route/tc-api.h */ ++ rtnl_tc_msg_parse; ++ rtnl_tc_msg_build; ++ rtnl_tc_free_data; ++ rtnl_tc_clone; ++ rtnl_tc_dump_line; ++ rtnl_tc_dump_details; ++ rtnl_tc_dump_stats; ++ rtnl_tc_compare; ++ rtnl_tc_data; ++ rtnl_tc_data_check; ++ rtnl_tc_lookup_ops; ++ rtnl_tc_get_ops; ++ rtnl_tc_register; ++ rtnl_tc_unregister; ++ rtnl_tc_type_register; ++ rtnl_tc_type_unregister; ++ ++ /* netlink-private/route/link/api.h */ ++ rtnl_link_info_ops_lookup; ++ rtnl_link_info_ops_put; ++ rtnl_link_register_info; ++ rtnl_link_unregister_info; ++ rtnl_link_af_ops_lookup; ++ rtnl_link_af_ops_put; ++ rtnl_link_af_alloc; ++ rtnl_link_af_data; ++ rtnl_link_af_register; ++ rtnl_link_af_unregister; ++ rtnl_link_af_data_compare; ++ ++ /* netlink/fib_lookup/fib_lookup.h */ ++ flnl_result_alloc; ++ flnl_result_put; ++ flnl_result_alloc_cache; ++ flnl_lookup_build_request; ++ flnl_lookup; ++ ++ /* netlink/fib_lookup/request.h */ ++ flnl_request_alloc; ++ flnl_request_set_fwmark; ++ flnl_request_get_fwmark; ++ flnl_request_set_tos; ++ flnl_request_get_tos; ++ flnl_request_set_scope; ++ flnl_request_get_scope; ++ flnl_request_set_table; ++ flnl_request_get_table; ++ flnl_request_set_addr; ++ flnl_request_get_addr; ++ flnl_request_cmp; ++ ++local: ++ *; ++}; +diff --git a/lib/libnl.map b/lib/libnl.map +new file mode 100644 +index 0000000..44e855c +--- /dev/null ++++ b/lib/libnl.map +@@ -0,0 +1,345 @@ ++LIBNL_3.2.22 { ++global: ++ /* netlink/addr.h */ ++ nl_addr_alloc; ++ nl_addr_alloc_attr; ++ nl_addr_build; ++ nl_addr_parse; ++ nl_addr_clone; ++ nl_addr_get; ++ nl_addr_put; ++ nl_addr_shared; ++ nl_addr_cmp; ++ nl_addr_cmp_prefix; ++ nl_addr_iszero; ++ nl_addr_valid; ++ nl_addr_guess_family; ++ nl_addr_fill_sockaddr; ++ nl_addr_info; ++ nl_addr_resolve; ++ nl_addr_set_family; ++ nl_addr_get_family; ++ nl_addr_set_binary_addr; ++ nl_addr_get_binary_addr; ++ nl_addr_get_len; ++ nl_addr_set_prefixlen; ++ nl_addr_get_prefixlen; ++ nl_af2str; ++ nl_str2af; ++ nl_addr2str; ++ ++ /* netlink/attr.h */ ++ nla_attr_size; ++ nla_total_size; ++ nla_padlen; ++ nla_type; ++ nla_data; ++ nla_len; ++ nla_ok; ++ nla_next; ++ nla_parse; ++ nla_validate; ++ nla_find; ++ nla_memcpy; ++ nla_strlcpy; ++ nla_memcmp; ++ nla_strcmp; ++ nla_reserve; ++ nla_put; ++ nla_put_data; ++ nla_put_addr; ++ nla_get_u8; ++ nla_put_u8; ++ nla_get_u16; ++ nla_put_u16; ++ nla_get_u32; ++ nla_put_u32; ++ nla_get_u64; ++ nla_put_u64; ++ nla_get_string; ++ nla_strdup; ++ nla_put_string; ++ nla_get_flag; ++ nla_put_flag; ++ nla_get_msecs; ++ nla_put_msecs; ++ nla_put_nested; ++ nla_nest_start; ++ nla_nest_end; ++ nla_parse_nested; ++ nla_is_nested; ++ ++ /* netlink/cache.h */ ++ nl_cache_nitems; ++ nl_cache_nitems_filter; ++ nl_cache_get_ops; ++ nl_cache_get_first; ++ nl_cache_get_last; ++ nl_cache_get_next; ++ nl_cache_get_prev; ++ nl_cache_alloc; ++ nl_cache_alloc_and_fill; ++ nl_cache_alloc_name; ++ nl_cache_subset; ++ nl_cache_clone; ++ nl_cache_clear; ++ nl_cache_get; ++ nl_cache_free; ++ nl_cache_put; ++ nl_cache_add; ++ nl_cache_parse_and_add; ++ nl_cache_remove; ++ nl_cache_refill; ++ nl_cache_pickup; ++ nl_cache_resync; ++ nl_cache_include; ++ nl_cache_set_arg1; ++ nl_cache_set_arg2; ++ nl_cache_set_flags; ++ nl_cache_is_empty; ++ nl_cache_search; ++ nl_cache_lookup; ++ nl_cache_mark_all; ++ nl_cache_dump; ++ nl_cache_dump_filter; ++ nl_cache_foreach; ++ nl_cache_foreach_filter; ++ nl_cache_ops_lookup; ++ nl_cache_ops_lookup_safe; ++ nl_cache_ops_associate; ++ nl_cache_ops_associate_safe; ++ nl_msgtype_lookup; ++ nl_cache_ops_foreach; ++ nl_cache_mngt_register; ++ nl_cache_mngt_unregister; ++ nl_cache_mngt_provide; ++ nl_cache_mngt_unprovide; ++ nl_cache_mngt_require; ++ nl_cache_mngt_require_safe; ++ __nl_cache_mngt_require; ++ nl_cache_mngr_alloc; ++ nl_cache_mngr_add; ++ nl_cache_mngr_add_cache; ++ nl_cache_mngr_get_fd; ++ nl_cache_mngr_poll; ++ nl_cache_mngr_data_ready; ++ nl_cache_mngr_info; ++ nl_cache_mngr_free; ++ nl_cache_ops_get; ++ nl_cache_ops_put; ++ ++ /* netlink/data.h */ ++ nl_data_alloc; ++ nl_data_alloc_attr; ++ nl_data_clone; ++ nl_data_append; ++ nl_data_free; ++ nl_data_get; ++ nl_data_get_size; ++ nl_data_cmp; ++ ++ /* netlink/error.h */ ++ nl_geterror; ++ nl_perror; ++ nl_syserr2nlerr; ++ ++ /* netlink/handlers.h */ ++ nl_cb_alloc; ++ nl_cb_clone; ++ nl_cb_get; ++ nl_cb_put; ++ nl_cb_set; ++ nl_cb_set_all; ++ nl_cb_err; ++ nl_cb_overwrite_recvmsgs; ++ nl_cb_overwrite_recv; ++ nl_cb_overwrite_send; ++ ++ /* netlink/hash.h */ ++ nl_hash_any; ++ ++ /* netlink/hashtable.h */ ++ nl_hash_table_alloc; ++ nl_hash_table_free; ++ nl_hash_table_add; ++ nl_hash_table_del; ++ nl_hash_table_lookup; ++ nl_hash; ++ ++ /* netlink/msg.h */ ++ nlmsg_size; ++ nlmsg_total_size; ++ nlmsg_padlen; ++ nlmsg_data; ++ nlmsg_datalen; ++ nlmsg_tail; ++ nlmsg_attrdata; ++ nlmsg_attrlen; ++ nlmsg_valid_hdr; ++ nlmsg_ok; ++ nlmsg_next; ++ nlmsg_parse; ++ nlmsg_find_attr; ++ nlmsg_validate; ++ nlmsg_alloc; ++ nlmsg_alloc_size; ++ nlmsg_alloc_simple; ++ nlmsg_set_default_size; ++ nlmsg_inherit; ++ nlmsg_convert; ++ nlmsg_reserve; ++ nlmsg_append; ++ nlmsg_expand; ++ nlmsg_put; ++ nlmsg_hdr; ++ nlmsg_get; ++ nlmsg_free; ++ nlmsg_set_proto; ++ nlmsg_get_proto; ++ nlmsg_get_max_size; ++ nlmsg_set_src; ++ nlmsg_get_src; ++ nlmsg_set_dst; ++ nlmsg_get_dst; ++ nlmsg_set_creds; ++ nlmsg_get_creds; ++ nl_nlmsgtype2str; ++ nl_str2nlmsgtype; ++ nl_nlmsg_flags2str; ++ nl_msg_parse; ++ nl_msg_dump; ++ ++ /* netlink/netlink.h */ ++ nl_debug; ++ nl_debug_dp; ++ nl_connect; ++ nl_close; ++ nl_sendto; ++ nl_sendmsg; ++ nl_send; ++ nl_send_iovec; ++ nl_complete_msg; ++ nl_auto_complete; ++ nl_send_auto; ++ nl_send_auto_complete; ++ nl_send_sync; ++ nl_send_simple; ++ nl_recv; ++ nl_recvmsgs; ++ nl_recvmsgs_report; ++ nl_recvmsgs_default; ++ nl_wait_for_ack; ++ nl_pickup; ++ nl_nlfamily2str; ++ nl_str2nlfamily; ++ ++ /* netlink/object.h */ ++ nl_object_alloc; ++ nl_object_alloc_name; ++ nl_object_free; ++ nl_object_clone; ++ nl_object_update; ++ nl_object_get; ++ nl_object_put; ++ nl_object_shared; ++ nl_object_dump; ++ nl_object_dump_buf; ++ nl_object_identical; ++ nl_object_diff; ++ nl_object_match_filter; ++ nl_object_attrs2str; ++ nl_object_attr_list; ++ nl_object_keygen; ++ nl_object_mark; ++ nl_object_unmark; ++ nl_object_is_marked; ++ nl_object_get_refcnt; ++ nl_object_get_cache; ++ nl_object_get_type; ++ nl_object_get_msgtype; ++ nl_object_get_ops; ++ nl_object_get_id_attrs; ++ ++ /* netlink/socket.h */ ++ nl_socket_alloc; ++ nl_socket_alloc_cb; ++ nl_socket_free; ++ nl_socket_get_local_port; ++ nl_socket_set_local_port; ++ nl_socket_add_memberships; ++ nl_socket_add_membership; ++ nl_socket_drop_memberships; ++ nl_socket_drop_membership; ++ nl_join_groups; ++ nl_socket_get_peer_port; ++ nl_socket_set_peer_port; ++ nl_socket_get_peer_groups; ++ nl_socket_set_peer_groups; ++ nl_socket_get_cb; ++ nl_socket_set_cb; ++ nl_socket_modify_cb; ++ nl_socket_modify_err_cb; ++ nl_socket_set_buffer_size; ++ nl_socket_set_msg_buf_size; ++ nl_socket_get_msg_buf_size; ++ nl_socket_set_passcred; ++ nl_socket_recv_pktinfo; ++ nl_socket_disable_seq_check; ++ nl_socket_use_seq; ++ nl_socket_disable_auto_ack; ++ nl_socket_enable_auto_ack; ++ nl_socket_get_fd; ++ nl_socket_set_nonblocking; ++ nl_socket_enable_msg_peek; ++ nl_socket_disable_msg_peek; ++ ++ /* netlink/utils.h */ ++ nl_cancel_down_bytes; ++ nl_cancel_down_bits; ++ nl_rate2str; ++ nl_cancel_down_us; ++ nl_size2int; ++ nl_size2str; ++ nl_prob2int; ++ nl_get_user_hz; ++ nl_get_psched_hz; ++ nl_us2ticks; ++ nl_ticks2us; ++ nl_str2msec; ++ nl_msec2str; ++ nl_llproto2str; ++ nl_str2llproto; ++ nl_ether_proto2str; ++ nl_str2ether_proto; ++ nl_ip_proto2str; ++ nl_str2ip_proto; ++ nl_new_line; ++ nl_dump; ++ nl_dump_line; ++ ++ /* netlink/version.h */ ++ nl_ver_num; ++ nl_ver_maj; ++ nl_ver_min; ++ nl_ver_mic; ++ ++ /* netlink-private/netlink.h */ ++ __nl_read_num_str_file; ++ __trans_list_add; ++ __trans_list_clear; ++ __type2str; ++ __str2type; ++ __list_type2str; ++ __list_str2type; ++ __flags2str; ++ __str2flags; ++ dump_from_ops; ++ nl_cache_parse; ++ ++ /* netlink-private/tc.h */ ++ tca_parse; ++ rtnl_tc_build_rate_table; ++ ++local: ++ *; ++}; +diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am +index 6688e7c..5fb220d 100644 +--- a/src/lib/Makefile.am ++++ b/src/lib/Makefile.am +@@ -41,3 +41,6 @@ libnl_cli_3_la_SOURCES = \ + tc.c qdisc.c class.c cls.c exp.c + # cls/ematch_syntax.c cls/ematch_grammar.c cls/ematch.c + # cls/pktloc_syntax.c cls/pktloc_grammar.c cls/utils.c ++ ++libnl_cli_3_la_LDFLAGS = ${AM_LDFLAGS} \ ++ -Wl,--version-script=${srcdir}/libnl-cli.map +diff --git a/src/lib/libnl-cli.map b/src/lib/libnl-cli.map +new file mode 100644 +index 0000000..d03e367 +--- /dev/null ++++ b/src/lib/libnl-cli.map +@@ -0,0 +1,133 @@ ++LIBNL_3.2.22 { ++global: ++ /* netlink/cli/addr.h */ ++ nl_cli_addr_alloc; ++ nl_cli_addr_parse; ++ nl_cli_addr_parse_family; ++ nl_cli_addr_parse_local; ++ nl_cli_addr_parse_dev; ++ nl_cli_addr_parse_label; ++ nl_cli_addr_parse_peer; ++ nl_cli_addr_parse_scope; ++ nl_cli_addr_parse_broadcast; ++ nl_cli_addr_parse_preferred; ++ nl_cli_addr_parse_valid; ++ ++ /* netlink/cli/class.h */ ++ nl_cli_class_alloc; ++ nl_cli_class_alloc_cache; ++ ++ /* netlink/cli/cls.h */ ++ nl_cli_cls_alloc; ++ nl_cli_cls_alloc_cache; ++ nl_cli_cls_parse_ematch; ++ nl_cli_cls_parse_proto; ++ ++ /* netlink/cli/ct.h */ ++ nl_cli_ct_alloc; ++ nl_cli_ct_alloc_cache; ++ nl_cli_ct_parse_dst; ++ nl_cli_ct_parse_dst_port; ++ nl_cli_ct_parse_family; ++ nl_cli_ct_parse_id; ++ nl_cli_ct_parse_mark; ++ nl_cli_ct_parse_protocol; ++ nl_cli_ct_parse_src; ++ nl_cli_ct_parse_src_port; ++ nl_cli_ct_parse_status; ++ nl_cli_ct_parse_tcp_state; ++ nl_cli_ct_parse_timeout; ++ nl_cli_ct_parse_use; ++ ++ /* netlink/cli/exp.h */ ++ nl_cli_exp_alloc; ++ nl_cli_exp_alloc_cache; ++ nl_cli_exp_parse_class; ++ nl_cli_exp_parse_dst; ++ nl_cli_exp_parse_dst_port; ++ nl_cli_exp_parse_family; ++ nl_cli_exp_parse_flags; ++ nl_cli_exp_parse_fn; ++ nl_cli_exp_parse_helper_name; ++ nl_cli_exp_parse_icmp_code; ++ nl_cli_exp_parse_icmp_id; ++ nl_cli_exp_parse_icmp_type; ++ nl_cli_exp_parse_id; ++ nl_cli_exp_parse_l4protonum; ++ nl_cli_exp_parse_nat_dir; ++ nl_cli_exp_parse_src; ++ nl_cli_exp_parse_src_port; ++ nl_cli_exp_parse_timeout; ++ nl_cli_exp_parse_zone; ++ ++ /* netlink/cli/link.h */ ++ nl_cli_link_alloc; ++ nl_cli_link_alloc_cache; ++ nl_cli_link_alloc_cache_family; ++ nl_cli_link_parse_family; ++ nl_cli_link_parse_ifalias; ++ nl_cli_link_parse_ifindex; ++ nl_cli_link_parse_mtu; ++ nl_cli_link_parse_name; ++ nl_cli_link_parse_txqlen; ++ nl_cli_link_parse_weight; ++ ++ /* netlink/cli/neigh.h */ ++ nl_cli_neigh_alloc; ++ nl_cli_neigh_parse_dev; ++ nl_cli_neigh_parse_dst; ++ nl_cli_neigh_parse_family; ++ nl_cli_neigh_parse_lladdr; ++ nl_cli_neigh_parse_state; ++ ++ /* netlink/cli/qdisc.h */ ++ nl_cli_qdisc_alloc; ++ ++ /* netlink/cli/route.h */ ++ nl_cli_route_alloc; ++ nl_cli_route_alloc_cache; ++ nl_cli_route_parse_dst; ++ nl_cli_route_parse_family; ++ nl_cli_route_parse_iif; ++ nl_cli_route_parse_metric; ++ nl_cli_route_parse_nexthop; ++ nl_cli_route_parse_pref_src; ++ nl_cli_route_parse_prio; ++ nl_cli_route_parse_protocol; ++ nl_cli_route_parse_scope; ++ nl_cli_route_parse_src; ++ nl_cli_route_parse_table; ++ nl_cli_route_parse_type; ++ ++ /* netlink/cli/rule.h */ ++ nl_cli_rule_alloc; ++ nl_cli_rule_alloc_cache; ++ nl_cli_rule_parse_family; ++ ++ /* netlink/cli/tc.h */ ++ nl_cli_tc_lookup; ++ nl_cli_tc_parse_dev; ++ nl_cli_tc_parse_handle; ++ nl_cli_tc_parse_kind; ++ nl_cli_tc_parse_linktype; ++ nl_cli_tc_parse_mpu; ++ nl_cli_tc_parse_mtu; ++ nl_cli_tc_parse_overhead; ++ nl_cli_tc_parse_parent; ++ nl_cli_tc_register; ++ nl_cli_tc_unregister; ++ ++ /* netlink/cli/utils.h */ ++ nl_cli_alloc_cache; ++ nl_cli_alloc_socket; ++ nl_cli_confirm; ++ nl_cli_connect; ++ nl_cli_fatal; ++ nl_cli_load_module; ++ nl_cli_parse_dumptype; ++ nl_cli_parse_u32; ++ nl_cli_print_version; ++ ++local: ++ *; ++}; +-- +1.7.10.4 + diff --git a/libnl3.changes b/libnl3.changes index 56f6e13..5ee3722 100644 --- a/libnl3.changes +++ b/libnl3.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Mar 7 19:59:56 UTC 2013 - jengelh@inai.de + +- Add preliminary symbol versioning for libnl + (0001-Add-symbol-version-maps-to-libnl.patch) + ------------------------------------------------------------------- Fri Jan 25 04:04:58 UTC 2013 - jengelh@inai.de diff --git a/libnl3.spec b/libnl3.spec index 7212005..692fd6a 100644 --- a/libnl3.spec +++ b/libnl3.spec @@ -29,10 +29,13 @@ Url: http://people.suug.ch/~tgr/libnl/ #Git-Clone: git://git.infradead.org/users/tgr/libnl Source: http://www.infradead.org/~tgr/libnl/files/libnl-%version.tar.gz Source2: baselibs.conf +Patch1: 0001-Add-symbol-version-maps-to-libnl.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build -#git#BuildRequires: autoconf, automake, libtool +BuildRequires: autoconf +BuildRequires: automake BuildRequires: bison BuildRequires: flex >= 2.5.19 +BuildRequires: libtool BuildRequires: pkgconfig >= 0.21 BuildRequires: python-devel >= 2.6 %if 0%{?suse_version} @@ -97,14 +100,12 @@ demonstrated. %prep %setup -qn libnl-%version +%patch -P 1 -p1 %build -if [ ! -e configure ]; then - autoreconf -fi; -fi; +autoreconf -fi; %configure --disable-static -# Remove LEX= workaround in 3.2.17 -make %{?_smp_mflags} LEX=flex pkglibdir="%_libdir/%lname" V=1; +make %{?_smp_mflags} pkglibdir="%_libdir/%lname" %install b="%buildroot"; @@ -118,8 +119,7 @@ rm -Rf "$b/%_sbindir" "$b/%_mandir/man8"; %fdupes %buildroot/%_prefix %endif -%post -n %lname -p /sbin/ldconfig - +%post -n %lname -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig %files -n %lname