RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [email protected] Module: rpm Date: 10-May-2017 18:57:56 Branch: rpm-5_4 Handle: 2017051016575501 Modified files: (Branch: rpm-5_4) rpm CHANGES INSTALL configure.ac rpm/rpmio librpmio.vers rpmcap.c rpmcap.h rpmrpc.c Log: - capng: stub in process capabilities support. Summary: Revision Changes Path 1.3501.2.546+1 -0 rpm/CHANGES 2.134.2.32 +2 -0 rpm/INSTALL 2.472.2.168 +1180 -124 rpm/configure.ac 2.199.2.72 +6 -0 rpm/rpmio/librpmio.vers 1.1.2.2 +199 -10 rpm/rpmio/rpmcap.c 1.1.2.2 +22 -0 rpm/rpmio/rpmcap.h 2.99.2.12 +0 -24 rpm/rpmio/rpmrpc.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3501.2.545 -r1.3501.2.546 CHANGES --- rpm/CHANGES 10 May 2017 16:24:03 -0000 1.3501.2.545 +++ rpm/CHANGES 10 May 2017 16:57:55 -0000 1.3501.2.546 @@ -1,4 +1,5 @@ 5.4.17 -> 5.4.18: + - jbj: capng: stub in process capabilities support. - jbj: use setproctitle from glibc -lbsd (if possible). - jbj: cap: verify RPMTAG_FILECAPS if present and not disabled. - jbj: cap: attach RPMTAG_FILECAPS if present and not disabled. @@ . patch -p0 <<'@@ .' Index: rpm/INSTALL ============================================================================ $ cvs diff -u -r2.134.2.31 -r2.134.2.32 INSTALL --- rpm/INSTALL 16 Jan 2017 18:58:06 -0000 2.134.2.31 +++ rpm/INSTALL 10 May 2017 16:57:56 -0000 2.134.2.32 @@ -54,6 +54,8 @@ OSSP uuid optional 1.6.0 1.6.2 http://www.ossp.org/pkg/lib/uuid/ XAR [5] optional 1.5.2 1.5.2 http://code.google.com/p/xar/ Linux KeyUtils optional 1.2 1.5.9 http://people.redhat.com/~dhowells/keyutils/ +Linux libcap2 optional 2.25 2.25 https://sites.google.com/site/fullycapable/ +Linux libcap-ng optional 0.7.8 0.7.8 http://people.redhat.com/sgrubb/libcap-ng System libelf optional - - e.g. http://www.mr511.de/software/english.html CPUInfo optional r143 r143 https://launchpad.net/cpuinfo Python optional 2.7.10 2.7.12 http://python.org @@ . patch -p0 <<'@@ .' Index: rpm/configure.ac ============================================================================ $ cvs diff -u -r2.472.2.167 -r2.472.2.168 configure.ac --- rpm/configure.ac 8 May 2017 21:17:54 -0000 2.472.2.167 +++ rpm/configure.ac 10 May 2017 16:57:56 -0000 2.472.2.168 @@ -1291,9 +1291,9 @@ dnl # standard headers (generic) AC_CHECK_HEADERS([dnl - arpa/inet.h err.h fcntl.h float.h getopt.h glob.h grp.h dnl + arpa/inet.h endian.h err.h fcntl.h float.h getopt.h glob.h grp.h dnl inttypes.h langinfo.h libgen.h libintl.h limits.h dnl - mach/mach.h malloc.h machine/types.h mcheck.h memory.h dnl + mach/mach.h malloc.h machine/types.h math.h mcheck.h memory.h dnl mntent.h mnttab.h netdb.h netinet/in.h netinet/in_systm.h dnl paths.h poll.h pwd.h signal.h stdbool.h shadow.h dnl stddef.h stdint.h stdlib.h string.h strings.h dnl @@ -1380,24 +1380,16 @@ AC_CHECK_FUNCS(splice tee vmsplice) AC_CHECK_FUNCS(sendfile) -AC_CHECK_HEADERS(sys/memfd.h) +AC_CHECK_HEADERS(linux/memfd.h) AC_CHECK_FUNCS(memfd_create) -AC_CHECK_HEADERS(sched.h linux/kcmp.h) -AC_CHECK_FUNCS(clone kcmp setns unshare) - -AC_CHECK_HEADERS(sys/mman.h) -AC_CHECK_FUNCS(mincore mprotect mremap msync munmap) -AC_CHECK_FUNCS(mlock munlock mlockall) +AC_CHECK_HEADERS(sched.h) +AC_CHECK_FUNCS(clone setns unshare) +AC_CHECK_HEADERS(linux/kcmp.h) +AC_CHECK_FUNCS(kcmp) AC_CHECK_FUNCS(fadvise posix_fadvise) AC_CHECK_FUNCS(fallocate posix_fallocate) -AC_CHECK_FUNCS(madvise posix_madvise) -AC_CHECK_FUNCS(memalign posix_memalign) -AC_CHECK_FUNCS(aligned_alloc valloc pvalloc) -AC_CHECK_FUNCS(posix_mem_offset) -AC_CHECK_FUNCS(posix_typed_mem_open) -AC_CHECK_FUNCS(remap_file_pages) AC_CHECK_FUNCS(syncfs) # Find the best function to set timestamps. @@ -1434,8 +1426,8 @@ AC_CHECK_HEADERS(cpuid.h) dnl # <sys/auxv.h> API -AC_CHECK_HEADERS(elf.h sys/procfs.h sys/cdefs.h sys/auxv.h sys/getauxv.h) -AC_CHECK_FUNCS(getauxval getauxv) +AC_CHECK_HEADERS(elf.h sys/procfs.h sys/cdefs.h sys/auxv.h) +AC_CHECK_FUNCS(getauxval) dnl # <beecrypt/api.h> tries to retrofit an assert(x) macro AC_CHECK_HEADERS(assert.h) @@ -1645,7 +1637,6 @@ truncate ftruncate dnl getrlimit setrlimit prlimit dnl realpath dnl - floor pow sqrt dnl dnl statvfs fstavfs dnl dnl @@ -1664,7 +1655,9 @@ tkill tgkill dnl pause dnl raise dnl - sigaction sigpending sigreturn sigsuspend sigtimedwait dnl + sigaction sigpending dnl + sigreturn dnl + sigsuspend sigtimedwait dnl sigprocmask pthread_sigmask dnl sigpause dnl sigqueue pthread_sigqueue dnl @@ -1672,7 +1665,8 @@ sigemptyset sigfillset sigaddset sigdelset sigismember dnl sigisemptyset sigorset sigandset dnl sigset sighold sigrelse sigignore dnl - sigvec sigmask sigblock siggetmask sigsetmask dnl + sigvec dnl + sigmask sigblock siggetmask sigsetmask dnl dnl socket dnl dnl @@ -1681,11 +1675,11 @@ getaddrinfo freeaddrinfo gai_strerror dnl getnameinfo dnl inet_aton inet_ntoa dnl - inet_pton inet_ntop inet_net_pton dnl + inet_pton inet_ntop dnl + inet_net_pton dnl inet_addr inet_network inet_makeaddr inet_lnaof inet_netof dnl dnl syslog vsyslog openlog closelog setlogmask dnl - getmode setmode strmode dnl dnl setproctitle setproctitle_init dnl getrusage getpriority setpriority nice dnl dnl @@ -1737,9 +1731,29 @@ time dnl ]) -dnl # glibc malloc tracing. -AC_CHECK_HEADERS(mcheck.h) -AC_CHECK_FUNCS(mtrace muntrace) +dnl # glibc malloc info/check/tracing. +AC_CHECK_HEADERS(malloc.h) +AC_CHECK_FUNCS(malloc calloc realloc free cfree memalign valloc pvalloc) +AC_CHECK_FUNCS(mallopt malloc_trim malloc_usable_size malloc_stats) +AC_CHECK_MEMBERS([ + struct mallinfo.arena, + struct mallinfo.ordblks, + struct mallinfo.smblks, + struct mallinfo.hblks, + struct mallinfo.hblkhd, + struct mallinfo.usmblks, + struct mallinfo.fsmblks, + struct mallinfo.uordblks, + struct mallinfo.fordblks, + struct mallinfo.keepcost], + [ AC_DEFINE(HAVE_STRUCT_MALLINFO, 1, [Define as 1 if you have "struct mallinfo" (only glibc?)]) + ], [], + [#include <malloc.h>]) +AC_CHECK_FUNCS(mallinfo) +AC_CHECK_FUNCS(malloc_get_state malloc_set_state) +AC_CHECK_FUNCS(__default_morecore __malloc_check_init) +AC_CHECK_FUNCS(posix_memalign) +AC_CHECK_FUNCS(aligned_alloc) dnl # check for getmntent and alternatives AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT, 1, [Define if you have the getmntent() function]), [ @@ -1769,8 +1783,11 @@ AC_CHECK_HEADERS(bsd/unistd.h) # getmode is not in the default libraries. See if it's in some other. for lib in bsd; do - AC_CHECK_LIB(bsd, getmode, [AC_DEFINE(HAVE_SYSLOG) - LIBS="$LIBS -l$lib"; break]) + AC_CHECK_LIB(bsd, getmode, + [ AC_DEFINE(HAVE_GETMODE) + AC_DEFINE(HAVE_SETMODE) + AC_DEFINE(HAVE_STRMODE) + LIBS="$LIBS -l$lib"; break]) done fi @@ -2213,9 +2230,10 @@ dnl # BeeCrypt RPM_CHECK_LIB( [BeeCrypt], [beecrypt], - [beecrypt], [mpfprintln], [beecrypt/api.h], + [beecrypt], [mpfprintln], [beecrypt/mp.h], [yes,internal:external], [beecrypt:include], - [], [ AC_MSG_ERROR([mandatory BeeCrypt library not found]) ]) + [ + ], [ AC_MSG_ERROR([mandatory BeeCrypt library not found]) ]) if test ".$WITH_BEECRYPT" = .no; then AC_MSG_ERROR([BEECRYPT is mandatory]) fi @@ -2367,6 +2385,240 @@ AC_CHECK_LIB([selinux], [rpm_execcon], [ AC_DEFINE(HAVE_SELINUX_RPM_EXECCON, 1, [Define to 1 if you have the rpm_execcon() function.]) ]) + AC_CHECK_FUNCS(avc_add_callback) + AC_CHECK_FUNCS(avc_audit) + AC_CHECK_FUNCS(avc_av_stats) + AC_CHECK_FUNCS(avc_cache_stats) + AC_CHECK_FUNCS(avc_cleanup) + AC_CHECK_FUNCS(avc_compute_create) + AC_CHECK_FUNCS(avc_compute_member) + AC_CHECK_FUNCS(avc_context_to_sid) + AC_CHECK_FUNCS(avc_context_to_sid_raw) + AC_CHECK_FUNCS(avc_destroy) + AC_CHECK_FUNCS(avc_get_initial_sid) + AC_CHECK_FUNCS(avc_has_perm) + AC_CHECK_FUNCS(avc_has_perm_noaudit) + AC_CHECK_FUNCS(avc_init) + AC_CHECK_FUNCS(avc_netlink_acquire_fd) + AC_CHECK_FUNCS(avc_netlink_check_nb) + AC_CHECK_FUNCS(avc_netlink_close) + AC_CHECK_FUNCS(avc_netlink_loop) + AC_CHECK_FUNCS(avc_netlink_open) + AC_CHECK_FUNCS(avc_netlink_release_fd) + AC_CHECK_FUNCS(avc_open) + AC_CHECK_FUNCS(avc_reset) + AC_CHECK_FUNCS(avc_sid_stats) + AC_CHECK_FUNCS(avc_sid_to_context) + AC_CHECK_FUNCS(avc_sid_to_context_raw) + AC_CHECK_FUNCS(checkPasswdAccess) + AC_CHECK_FUNCS(context_free) + AC_CHECK_FUNCS(context_new) + AC_CHECK_FUNCS(context_range_get) + AC_CHECK_FUNCS(context_range_set) + AC_CHECK_FUNCS(context_role_get) + AC_CHECK_FUNCS(context_role_set) + AC_CHECK_FUNCS(context_str) + AC_CHECK_FUNCS(context_type_get) + AC_CHECK_FUNCS(context_type_set) + AC_CHECK_FUNCS(context_user_get) + AC_CHECK_FUNCS(context_user_set) + AC_CHECK_FUNCS(fgetfilecon) + AC_CHECK_FUNCS(fgetfilecon_raw) + AC_CHECK_FUNCS(_fini) + AC_CHECK_FUNCS(fini_selinuxmnt) + AC_CHECK_FUNCS(freecon) + AC_CHECK_FUNCS(freeconary) + AC_CHECK_FUNCS(fsetfilecon) + AC_CHECK_FUNCS(fsetfilecon_raw) + AC_CHECK_FUNCS(getcon) + AC_CHECK_FUNCS(getcon_raw) + AC_CHECK_FUNCS(get_default_context) + AC_CHECK_FUNCS(get_default_context_with_level) + AC_CHECK_FUNCS(get_default_context_with_role) + AC_CHECK_FUNCS(get_default_context_with_rolelevel) + AC_CHECK_FUNCS(get_default_type) + AC_CHECK_FUNCS(getexeccon) + AC_CHECK_FUNCS(getexeccon_raw) + AC_CHECK_FUNCS(getfilecon) + AC_CHECK_FUNCS(getfilecon_raw) + AC_CHECK_FUNCS(getfscreatecon) + AC_CHECK_FUNCS(getfscreatecon_raw) + AC_CHECK_FUNCS(getkeycreatecon) + AC_CHECK_FUNCS(getkeycreatecon_raw) + AC_CHECK_FUNCS(get_ordered_context_list) + AC_CHECK_FUNCS(get_ordered_context_list_with_level) + AC_CHECK_FUNCS(getpeercon) + AC_CHECK_FUNCS(getpeercon_raw) + AC_CHECK_FUNCS(getpidcon) + AC_CHECK_FUNCS(getpidcon_raw) + AC_CHECK_FUNCS(getprevcon) + AC_CHECK_FUNCS(getprevcon_raw) + AC_CHECK_FUNCS(getseuser) + AC_CHECK_FUNCS(getseuserbyname) + AC_CHECK_FUNCS(getsockcreatecon) + AC_CHECK_FUNCS(getsockcreatecon_raw) + AC_CHECK_FUNCS(_init) + AC_CHECK_FUNCS(is_context_customizable) + AC_CHECK_FUNCS(is_selinux_enabled) + AC_CHECK_FUNCS(is_selinux_mls_enabled) + AC_CHECK_FUNCS(lgetfilecon) + AC_CHECK_FUNCS(lgetfilecon_raw) + AC_CHECK_FUNCS(lsetfilecon) + AC_CHECK_FUNCS(lsetfilecon_raw) + AC_CHECK_FUNCS(manual_user_enter_context) + AC_CHECK_FUNCS(map_class) + AC_CHECK_FUNCS(map_decision) + AC_CHECK_FUNCS(map_perm) + AC_CHECK_FUNCS(matchmediacon) + AC_CHECK_FUNCS(matchpathcon) + AC_CHECK_FUNCS(matchpathcon_checkmatches) + AC_CHECK_FUNCS(matchpathcon_filespec_add) + AC_CHECK_FUNCS(matchpathcon_filespec_destroy) + AC_CHECK_FUNCS(matchpathcon_filespec_eval) + AC_CHECK_FUNCS(matchpathcon_fini) + AC_CHECK_FUNCS(matchpathcon_index) + AC_CHECK_FUNCS(matchpathcon_init) + AC_CHECK_FUNCS(matchpathcon_init_prefix) + AC_CHECK_FUNCS(mode_to_security_class) + AC_CHECK_FUNCS(print_access_vector) + AC_CHECK_FUNCS(query_user_context) + AC_CHECK_FUNCS(realpath_not_final) + AC_CHECK_FUNCS(security_av_perm_to_string) + AC_CHECK_FUNCS(security_av_string) + AC_CHECK_FUNCS(security_canonicalize_context) + AC_CHECK_FUNCS(security_canonicalize_context_raw) + AC_CHECK_FUNCS(security_check_context) + AC_CHECK_FUNCS(security_check_context_raw) + AC_CHECK_FUNCS(security_class_to_string) + AC_CHECK_FUNCS(security_commit_booleans) + AC_CHECK_FUNCS(security_compute_av) + AC_CHECK_FUNCS(security_compute_av_flags) + AC_CHECK_FUNCS(security_compute_av_flags_raw) + AC_CHECK_FUNCS(security_compute_av_raw) + AC_CHECK_FUNCS(security_compute_create) + AC_CHECK_FUNCS(security_compute_create_name) + AC_CHECK_FUNCS(security_compute_create_name_raw) + AC_CHECK_FUNCS(security_compute_create_raw) + AC_CHECK_FUNCS(security_compute_member) + AC_CHECK_FUNCS(security_compute_member_raw) + AC_CHECK_FUNCS(security_compute_relabel) + AC_CHECK_FUNCS(security_compute_relabel_raw) + AC_CHECK_FUNCS(security_compute_user) + AC_CHECK_FUNCS(security_compute_user_raw) + AC_CHECK_FUNCS(security_deny_unknown) + AC_CHECK_FUNCS(security_disable) + AC_CHECK_FUNCS(security_get_boolean_active) + AC_CHECK_FUNCS(security_get_boolean_names) + AC_CHECK_FUNCS(security_get_boolean_pending) + AC_CHECK_FUNCS(security_getenforce) + AC_CHECK_FUNCS(security_get_initial_context) + AC_CHECK_FUNCS(security_get_initial_context_raw) + AC_CHECK_FUNCS(security_load_booleans) + AC_CHECK_FUNCS(security_load_policy) + AC_CHECK_FUNCS(security_policyvers) + AC_CHECK_FUNCS(security_set_boolean) + AC_CHECK_FUNCS(security_set_boolean_list) + AC_CHECK_FUNCS(security_setenforce) + AC_CHECK_FUNCS(selabel_close) + AC_CHECK_FUNCS(selabel_cmp) + AC_CHECK_FUNCS(selabel_digest) + AC_CHECK_FUNCS(selabel_lookup) + AC_CHECK_FUNCS(selabel_lookup_best_match) + AC_CHECK_FUNCS(selabel_lookup_best_match_raw) + AC_CHECK_FUNCS(selabel_lookup_raw) + AC_CHECK_FUNCS(selabel_open) + AC_CHECK_FUNCS(selabel_partial_match) + AC_CHECK_FUNCS(selabel_stats) + AC_CHECK_FUNCS(selabel_subs_init) + AC_CHECK_FUNCS(selinux_binary_policy_path) + AC_CHECK_FUNCS(selinux_booleans_path) + AC_CHECK_FUNCS(selinux_booleans_subs_path) + AC_CHECK_FUNCS(selinux_boolean_sub) + AC_CHECK_FUNCS(selinux_check_access) + AC_CHECK_FUNCS(selinux_check_passwd_access) + AC_CHECK_FUNCS(selinux_check_securetty_context) + AC_CHECK_FUNCS(selinux_colors_path) + AC_CHECK_FUNCS(selinux_contexts_path) + AC_CHECK_FUNCS(selinux_current_policy_path) + AC_CHECK_FUNCS(selinux_customizable_types_path) + AC_CHECK_FUNCS(selinux_default_context_path) + AC_CHECK_FUNCS(selinux_default_type_path) + AC_CHECK_FUNCS(selinux_failsafe_context_path) + AC_CHECK_FUNCS(selinux_file_context_cmp) + AC_CHECK_FUNCS(selinux_file_context_homedir_path) + AC_CHECK_FUNCS(selinux_file_context_local_path) + AC_CHECK_FUNCS(selinux_file_context_path) + AC_CHECK_FUNCS(selinux_file_context_subs_dist_path) + AC_CHECK_FUNCS(selinux_file_context_subs_path) + AC_CHECK_FUNCS(selinux_file_context_verify) + AC_CHECK_FUNCS(selinuxfs_exists) + AC_CHECK_FUNCS(selinux_get_callback) + AC_CHECK_FUNCS(selinux_getenforcemode) + AC_CHECK_FUNCS(selinux_getpolicytype) + AC_CHECK_FUNCS(selinux_homedir_context_path) + AC_CHECK_FUNCS(selinux_init_load_policy) + AC_CHECK_FUNCS(selinux_lsetfilecon_default) + AC_CHECK_FUNCS(selinux_lxc_contexts_path) + AC_CHECK_FUNCS(selinux_media_context_path) + AC_CHECK_FUNCS(selinux_mkload_policy) + AC_CHECK_FUNCS(selinux_netfilter_context_path) + AC_CHECK_FUNCS(selinux_openrc_contexts_path) + AC_CHECK_FUNCS(selinux_openssh_contexts_path) + AC_CHECK_FUNCS(selinux_path) + AC_CHECK_FUNCS(selinux_policy_root) + AC_CHECK_FUNCS(selinux_raw_context_to_color) + AC_CHECK_FUNCS(selinux_raw_to_trans_context) + AC_CHECK_FUNCS(selinux_removable_context_path) + AC_CHECK_FUNCS(selinux_reset_config) + AC_CHECK_FUNCS(selinux_restorecon) + AC_CHECK_FUNCS(selinux_restorecon_default_handle) + AC_CHECK_FUNCS(selinux_restorecon_set_exclude_list) + AC_CHECK_FUNCS(selinux_restorecon_set_sehandle) + AC_CHECK_FUNCS(selinux_securetty_types_path) + AC_CHECK_FUNCS(selinux_sepgsql_context_path) + AC_CHECK_FUNCS(selinux_set_callback) + AC_CHECK_FUNCS(selinux_set_mapping) + AC_CHECK_FUNCS(selinux_set_policy_root) + AC_CHECK_FUNCS(selinux_snapperd_contexts_path) + AC_CHECK_FUNCS(selinux_status_close) + AC_CHECK_FUNCS(selinux_status_deny_unknown) + AC_CHECK_FUNCS(selinux_status_getenforce) + AC_CHECK_FUNCS(selinux_status_open) + AC_CHECK_FUNCS(selinux_status_policyload) + AC_CHECK_FUNCS(selinux_status_updated) + AC_CHECK_FUNCS(selinux_systemd_contexts_path) + AC_CHECK_FUNCS(selinux_translations_path) + AC_CHECK_FUNCS(selinux_trans_to_raw_context) + AC_CHECK_FUNCS(selinux_user_contexts_path) + AC_CHECK_FUNCS(selinux_usersconf_path) + AC_CHECK_FUNCS(selinux_users_path) + AC_CHECK_FUNCS(selinux_virtual_domain_context_path) + AC_CHECK_FUNCS(selinux_virtual_image_context_path) + AC_CHECK_FUNCS(selinux_x_context_path) + AC_CHECK_FUNCS(setcon) + AC_CHECK_FUNCS(setcon_raw) + AC_CHECK_FUNCS(setexeccon) + AC_CHECK_FUNCS(setexeccon_raw) + AC_CHECK_FUNCS(setexecfilecon) + AC_CHECK_FUNCS(setfilecon) + AC_CHECK_FUNCS(setfilecon_raw) + AC_CHECK_FUNCS(setfscreatecon) + AC_CHECK_FUNCS(setfscreatecon_raw) + AC_CHECK_FUNCS(setkeycreatecon) + AC_CHECK_FUNCS(setkeycreatecon_raw) + AC_CHECK_FUNCS(set_matchpathcon_canoncon) + AC_CHECK_FUNCS(set_matchpathcon_flags) + AC_CHECK_FUNCS(set_matchpathcon_invalidcon) + AC_CHECK_FUNCS(set_matchpathcon_printf) + AC_CHECK_FUNCS(set_selinuxmnt) + AC_CHECK_FUNCS(setsockcreatecon) + AC_CHECK_FUNCS(setsockcreatecon_raw) + AC_CHECK_FUNCS(sidget) + AC_CHECK_FUNCS(sidput) + AC_CHECK_FUNCS(string_to_av_perm) + AC_CHECK_FUNCS(string_to_security_class) + AC_CHECK_FUNCS(unmap_class) + AC_CHECK_FUNCS(unmap_perm) ], []) dnl # Libsepol @@ -2375,6 +2627,221 @@ [sepol], [sepol_policydb_create], [sepol/sepol.h], [no,external:none], [], [ AC_DEFINE(WITH_SEPOL, 1, [Define if building with Libsepol]) + AC_CHECK_FUNCS(cil_add_file) + AC_CHECK_FUNCS(cil_build_policydb) + AC_CHECK_FUNCS(cil_build_policydb) + AC_CHECK_FUNCS(cil_compile) + AC_CHECK_FUNCS(cil_compile) + AC_CHECK_FUNCS(cil_db_destroy) + AC_CHECK_FUNCS(cil_db_init) + AC_CHECK_FUNCS(cil_filecons_to_string) + AC_CHECK_FUNCS(cil_filecons_to_string) + AC_CHECK_FUNCS(cil_selinuxusers_to_string) + AC_CHECK_FUNCS(cil_selinuxusers_to_string) + AC_CHECK_FUNCS(cil_set_disable_dontaudit) + AC_CHECK_FUNCS(cil_set_disable_neverallow) + AC_CHECK_FUNCS(cil_set_handle_unknown) + AC_CHECK_FUNCS(cil_set_log_handler) + AC_CHECK_FUNCS(cil_set_log_level) + AC_CHECK_FUNCS(cil_set_mls) + AC_CHECK_FUNCS(cil_set_policy_version) + AC_CHECK_FUNCS(cil_set_preserve_tunables) + AC_CHECK_FUNCS(cil_set_target_platform) + AC_CHECK_FUNCS(cil_userprefixes_to_string) + AC_CHECK_FUNCS(cil_userprefixes_to_string) + AC_CHECK_FUNCS(expand_module_avrules) + AC_CHECK_FUNCS(sepol_bool_clone) + AC_CHECK_FUNCS(sepol_bool_compare) + AC_CHECK_FUNCS(sepol_bool_compare2) + AC_CHECK_FUNCS(sepol_bool_count) + AC_CHECK_FUNCS(sepol_bool_create) + AC_CHECK_FUNCS(sepol_bool_exists) + AC_CHECK_FUNCS(sepol_bool_free) + AC_CHECK_FUNCS(sepol_bool_get_name) + AC_CHECK_FUNCS(sepol_bool_get_value) + AC_CHECK_FUNCS(sepol_bool_iterate) + AC_CHECK_FUNCS(sepol_bool_key_create) + AC_CHECK_FUNCS(sepol_bool_key_extract) + AC_CHECK_FUNCS(sepol_bool_key_free) + AC_CHECK_FUNCS(sepol_bool_key_unpack) + AC_CHECK_FUNCS(sepol_bool_query) + AC_CHECK_FUNCS(sepol_bool_set) + AC_CHECK_FUNCS(sepol_bool_set_name) + AC_CHECK_FUNCS(sepol_bool_set_value) + AC_CHECK_FUNCS(sepol_check_context) + AC_CHECK_FUNCS(sepol_context_check) + AC_CHECK_FUNCS(sepol_context_clone) + AC_CHECK_FUNCS(sepol_context_create) + AC_CHECK_FUNCS(sepol_context_free) + AC_CHECK_FUNCS(sepol_context_from_string) + AC_CHECK_FUNCS(sepol_context_get_mls) + AC_CHECK_FUNCS(sepol_context_get_role) + AC_CHECK_FUNCS(sepol_context_get_type) + AC_CHECK_FUNCS(sepol_context_get_user) + AC_CHECK_FUNCS(sepol_context_set_mls) + AC_CHECK_FUNCS(sepol_context_set_role) + AC_CHECK_FUNCS(sepol_context_set_type) + AC_CHECK_FUNCS(sepol_context_set_user) + AC_CHECK_FUNCS(sepol_context_to_string) + AC_CHECK_FUNCS(sepol_debug) + AC_CHECK_FUNCS(sepol_expand_module) + AC_CHECK_FUNCS(sepol_genbools) + AC_CHECK_FUNCS(sepol_genbools_array) + AC_CHECK_FUNCS(sepol_genusers) + AC_CHECK_FUNCS(sepol_get_disable_dontaudit) + AC_CHECK_FUNCS(sepol_get_preserve_tunables) + AC_CHECK_FUNCS(sepol_handle_create) + AC_CHECK_FUNCS(sepol_handle_destroy) + AC_CHECK_FUNCS(sepol_iface_clone) + AC_CHECK_FUNCS(sepol_iface_compare) + AC_CHECK_FUNCS(sepol_iface_compare2) + AC_CHECK_FUNCS(sepol_iface_count) + AC_CHECK_FUNCS(sepol_iface_create) + AC_CHECK_FUNCS(sepol_iface_exists) + AC_CHECK_FUNCS(sepol_iface_free) + AC_CHECK_FUNCS(sepol_iface_get_ifcon) + AC_CHECK_FUNCS(sepol_iface_get_msgcon) + AC_CHECK_FUNCS(sepol_iface_get_name) + AC_CHECK_FUNCS(sepol_iface_iterate) + AC_CHECK_FUNCS(sepol_iface_key_create) + AC_CHECK_FUNCS(sepol_iface_key_extract) + AC_CHECK_FUNCS(sepol_iface_key_free) + AC_CHECK_FUNCS(sepol_iface_key_unpack) + AC_CHECK_FUNCS(sepol_iface_modify) + AC_CHECK_FUNCS(sepol_iface_query) + AC_CHECK_FUNCS(sepol_iface_set_ifcon) + AC_CHECK_FUNCS(sepol_iface_set_msgcon) + AC_CHECK_FUNCS(sepol_iface_set_name) + AC_CHECK_FUNCS(sepol_link_modules) + AC_CHECK_FUNCS(sepol_link_packages) + AC_CHECK_FUNCS(sepol_mls_check) + AC_CHECK_FUNCS(sepol_mls_contains) + AC_CHECK_FUNCS(sepol_module_package_create) + AC_CHECK_FUNCS(sepol_module_package_free) + AC_CHECK_FUNCS(sepol_module_package_get_file_contexts) + AC_CHECK_FUNCS(sepol_module_package_get_file_contexts_len) + AC_CHECK_FUNCS(sepol_module_package_get_netfilter_contexts) + AC_CHECK_FUNCS(sepol_module_package_get_netfilter_contexts_len) + AC_CHECK_FUNCS(sepol_module_package_get_policy) + AC_CHECK_FUNCS(sepol_module_package_get_seusers) + AC_CHECK_FUNCS(sepol_module_package_get_seusers_len) + AC_CHECK_FUNCS(sepol_module_package_get_user_extra) + AC_CHECK_FUNCS(sepol_module_package_get_user_extra_len) + AC_CHECK_FUNCS(sepol_module_package_info) + AC_CHECK_FUNCS(sepol_module_package_read) + AC_CHECK_FUNCS(sepol_module_package_set_file_contexts) + AC_CHECK_FUNCS(sepol_module_package_set_netfilter_contexts) + AC_CHECK_FUNCS(sepol_module_package_set_seusers) + AC_CHECK_FUNCS(sepol_module_package_set_user_extra) + AC_CHECK_FUNCS(sepol_module_package_to_cil) + AC_CHECK_FUNCS(sepol_module_package_write) + AC_CHECK_FUNCS(sepol_module_policydb_to_cil) + AC_CHECK_FUNCS(sepol_msg_get_channel) + AC_CHECK_FUNCS(sepol_msg_get_fname) + AC_CHECK_FUNCS(sepol_msg_get_level) + AC_CHECK_FUNCS(sepol_msg_set_callback) + AC_CHECK_FUNCS(sepol_node_clone) + AC_CHECK_FUNCS(sepol_node_compare) + AC_CHECK_FUNCS(sepol_node_compare2) + AC_CHECK_FUNCS(sepol_node_count) + AC_CHECK_FUNCS(sepol_node_create) + AC_CHECK_FUNCS(sepol_node_exists) + AC_CHECK_FUNCS(sepol_node_free) + AC_CHECK_FUNCS(sepol_node_get_addr) + AC_CHECK_FUNCS(sepol_node_get_addr_bytes) + AC_CHECK_FUNCS(sepol_node_get_con) + AC_CHECK_FUNCS(sepol_node_get_mask) + AC_CHECK_FUNCS(sepol_node_get_mask_bytes) + AC_CHECK_FUNCS(sepol_node_get_proto) + AC_CHECK_FUNCS(sepol_node_get_proto_str) + AC_CHECK_FUNCS(sepol_node_iterate) + AC_CHECK_FUNCS(sepol_node_key_create) + AC_CHECK_FUNCS(sepol_node_key_extract) + AC_CHECK_FUNCS(sepol_node_key_free) + AC_CHECK_FUNCS(sepol_node_key_unpack) + AC_CHECK_FUNCS(sepol_node_modify) + AC_CHECK_FUNCS(sepol_node_query) + AC_CHECK_FUNCS(sepol_node_set_addr) + AC_CHECK_FUNCS(sepol_node_set_addr_bytes) + AC_CHECK_FUNCS(sepol_node_set_con) + AC_CHECK_FUNCS(sepol_node_set_mask) + AC_CHECK_FUNCS(sepol_node_set_mask_bytes) + AC_CHECK_FUNCS(sepol_node_set_proto) + AC_CHECK_FUNCS(sepol_policydb_compat_net) + AC_CHECK_FUNCS(sepol_policydb_create) + AC_CHECK_FUNCS(sepol_policydb_free) + AC_CHECK_FUNCS(sepol_policydb_from_image) + AC_CHECK_FUNCS(sepol_policydb_mls_enabled) + AC_CHECK_FUNCS(sepol_policydb_read) + AC_CHECK_FUNCS(sepol_policydb_set_handle_unknown) + AC_CHECK_FUNCS(sepol_policydb_set_target_platform) + AC_CHECK_FUNCS(sepol_policydb_set_typevers) + AC_CHECK_FUNCS(sepol_policydb_set_vers) + AC_CHECK_FUNCS(sepol_policydb_to_image) + AC_CHECK_FUNCS(sepol_policydb_write) + AC_CHECK_FUNCS(sepol_policy_file_create) + AC_CHECK_FUNCS(sepol_policy_file_free) + AC_CHECK_FUNCS(sepol_policy_file_get_len) + AC_CHECK_FUNCS(sepol_policy_file_set_fp) + AC_CHECK_FUNCS(sepol_policy_file_set_handle) + AC_CHECK_FUNCS(sepol_policy_file_set_mem) + AC_CHECK_FUNCS(sepol_policy_kern_vers_max) + AC_CHECK_FUNCS(sepol_policy_kern_vers_min) + AC_CHECK_FUNCS(sepol_port_clone) + AC_CHECK_FUNCS(sepol_port_compare) + AC_CHECK_FUNCS(sepol_port_compare2) + AC_CHECK_FUNCS(sepol_port_count) + AC_CHECK_FUNCS(sepol_port_create) + AC_CHECK_FUNCS(sepol_port_exists) + AC_CHECK_FUNCS(sepol_port_free) + AC_CHECK_FUNCS(sepol_port_get_con) + AC_CHECK_FUNCS(sepol_port_get_high) + AC_CHECK_FUNCS(sepol_port_get_low) + AC_CHECK_FUNCS(sepol_port_get_proto) + AC_CHECK_FUNCS(sepol_port_get_proto_str) + AC_CHECK_FUNCS(sepol_port_iterate) + AC_CHECK_FUNCS(sepol_port_key_create) + AC_CHECK_FUNCS(sepol_port_key_extract) + AC_CHECK_FUNCS(sepol_port_key_free) + AC_CHECK_FUNCS(sepol_port_key_unpack) + AC_CHECK_FUNCS(sepol_port_modify) + AC_CHECK_FUNCS(sepol_port_query) + AC_CHECK_FUNCS(sepol_port_set_con) + AC_CHECK_FUNCS(sepol_port_set_port) + AC_CHECK_FUNCS(sepol_port_set_proto) + AC_CHECK_FUNCS(sepol_port_set_range) + AC_CHECK_FUNCS(sepol_ppfile_to_module_package) + AC_CHECK_FUNCS(sepol_set_delusers) + AC_CHECK_FUNCS(sepol_set_disable_dontaudit) + AC_CHECK_FUNCS(sepol_set_expand_consume_base) + AC_CHECK_FUNCS(sepol_set_policydb_from_file) + AC_CHECK_FUNCS(sepol_set_preserve_tunables) + AC_CHECK_FUNCS(sepol_user_add_role) + AC_CHECK_FUNCS(sepol_user_clone) + AC_CHECK_FUNCS(sepol_user_compare) + AC_CHECK_FUNCS(sepol_user_compare2) + AC_CHECK_FUNCS(sepol_user_count) + AC_CHECK_FUNCS(sepol_user_create) + AC_CHECK_FUNCS(sepol_user_del_role) + AC_CHECK_FUNCS(sepol_user_exists) + AC_CHECK_FUNCS(sepol_user_free) + AC_CHECK_FUNCS(sepol_user_get_mlslevel) + AC_CHECK_FUNCS(sepol_user_get_mlsrange) + AC_CHECK_FUNCS(sepol_user_get_name) + AC_CHECK_FUNCS(sepol_user_get_num_roles) + AC_CHECK_FUNCS(sepol_user_get_roles) + AC_CHECK_FUNCS(sepol_user_has_role) + AC_CHECK_FUNCS(sepol_user_iterate) + AC_CHECK_FUNCS(sepol_user_key_create) + AC_CHECK_FUNCS(sepol_user_key_extract) + AC_CHECK_FUNCS(sepol_user_key_free) + AC_CHECK_FUNCS(sepol_user_key_unpack) + AC_CHECK_FUNCS(sepol_user_modify) + AC_CHECK_FUNCS(sepol_user_query) + AC_CHECK_FUNCS(sepol_user_set_mlslevel) + AC_CHECK_FUNCS(sepol_user_set_mlsrange) + AC_CHECK_FUNCS(sepol_user_set_name) + AC_CHECK_FUNCS(sepol_user_set_roles) ], []) dnl # Libsemanage @@ -2385,6 +2852,295 @@ [no,external:none], [], [ AC_DEFINE(WITH_SEMANAGE, 1, [Define if building with Libsemanage]) WITH_SEMANAGE_SEMODULE="semodule spooktool" + AC_CHECK_FUNCS(semanage_access_check) + AC_CHECK_FUNCS(semanage_begin_transaction) + AC_CHECK_FUNCS(semanage_bool_clone) + AC_CHECK_FUNCS(semanage_bool_compare) + AC_CHECK_FUNCS(semanage_bool_compare2) + AC_CHECK_FUNCS(semanage_bool_count) + AC_CHECK_FUNCS(semanage_bool_count_active) + AC_CHECK_FUNCS(semanage_bool_count_local) + AC_CHECK_FUNCS(semanage_bool_create) + AC_CHECK_FUNCS(semanage_bool_del_local) + AC_CHECK_FUNCS(semanage_bool_exists) + AC_CHECK_FUNCS(semanage_bool_exists_active) + AC_CHECK_FUNCS(semanage_bool_exists_local) + AC_CHECK_FUNCS(semanage_bool_free) + AC_CHECK_FUNCS(semanage_bool_get_name) + AC_CHECK_FUNCS(semanage_bool_get_value) + AC_CHECK_FUNCS(semanage_bool_iterate) + AC_CHECK_FUNCS(semanage_bool_iterate_active) + AC_CHECK_FUNCS(semanage_bool_iterate_local) + AC_CHECK_FUNCS(semanage_bool_key_create) + AC_CHECK_FUNCS(semanage_bool_key_extract) + AC_CHECK_FUNCS(semanage_bool_key_free) + AC_CHECK_FUNCS(semanage_bool_list) + AC_CHECK_FUNCS(semanage_bool_list_active) + AC_CHECK_FUNCS(semanage_bool_list_local) + AC_CHECK_FUNCS(semanage_bool_modify_local) + AC_CHECK_FUNCS(semanage_bool_query) + AC_CHECK_FUNCS(semanage_bool_query_active) + AC_CHECK_FUNCS(semanage_bool_query_local) + AC_CHECK_FUNCS(semanage_bool_set_active) + AC_CHECK_FUNCS(semanage_bool_set_name) + AC_CHECK_FUNCS(semanage_bool_set_value) + AC_CHECK_FUNCS(semanage_commit) + AC_CHECK_FUNCS(semanage_connect) + AC_CHECK_FUNCS(semanage_context_clone) + AC_CHECK_FUNCS(semanage_context_create) + AC_CHECK_FUNCS(semanage_context_free) + AC_CHECK_FUNCS(semanage_context_from_string) + AC_CHECK_FUNCS(semanage_context_get_mls) + AC_CHECK_FUNCS(semanage_context_get_role) + AC_CHECK_FUNCS(semanage_context_get_type) + AC_CHECK_FUNCS(semanage_context_get_user) + AC_CHECK_FUNCS(semanage_context_set_mls) + AC_CHECK_FUNCS(semanage_context_set_role) + AC_CHECK_FUNCS(semanage_context_set_type) + AC_CHECK_FUNCS(semanage_context_set_user) + AC_CHECK_FUNCS(semanage_context_to_string) + AC_CHECK_FUNCS(semanage_disconnect) + AC_CHECK_FUNCS(semanage_fcontext_clone) + AC_CHECK_FUNCS(semanage_fcontext_compare) + AC_CHECK_FUNCS(semanage_fcontext_compare2) + AC_CHECK_FUNCS(semanage_fcontext_count) + AC_CHECK_FUNCS(semanage_fcontext_count_local) + AC_CHECK_FUNCS(semanage_fcontext_create) + AC_CHECK_FUNCS(semanage_fcontext_del_local) + AC_CHECK_FUNCS(semanage_fcontext_exists) + AC_CHECK_FUNCS(semanage_fcontext_exists_local) + AC_CHECK_FUNCS(semanage_fcontext_free) + AC_CHECK_FUNCS(semanage_fcontext_get_con) + AC_CHECK_FUNCS(semanage_fcontext_get_expr) + AC_CHECK_FUNCS(semanage_fcontext_get_type) + AC_CHECK_FUNCS(semanage_fcontext_get_type_str) + AC_CHECK_FUNCS(semanage_fcontext_iterate) + AC_CHECK_FUNCS(semanage_fcontext_iterate_local) + AC_CHECK_FUNCS(semanage_fcontext_key_create) + AC_CHECK_FUNCS(semanage_fcontext_key_extract) + AC_CHECK_FUNCS(semanage_fcontext_key_free) + AC_CHECK_FUNCS(semanage_fcontext_list) + AC_CHECK_FUNCS(semanage_fcontext_list_local) + AC_CHECK_FUNCS(semanage_fcontext_modify_local) + AC_CHECK_FUNCS(semanage_fcontext_query) + AC_CHECK_FUNCS(semanage_fcontext_query_local) + AC_CHECK_FUNCS(semanage_fcontext_set_con) + AC_CHECK_FUNCS(semanage_fcontext_set_expr) + AC_CHECK_FUNCS(semanage_fcontext_set_type) + AC_CHECK_FUNCS(semanage_get_default_priority) + AC_CHECK_FUNCS(semanage_get_disable_dontaudit) + AC_CHECK_FUNCS(semanage_get_hll_compiler_path) + AC_CHECK_FUNCS(semanage_get_ignore_module_cache) + AC_CHECK_FUNCS(semanage_get_preserve_tunables) + AC_CHECK_FUNCS(semanage_handle_create) + AC_CHECK_FUNCS(semanage_handle_destroy) + AC_CHECK_FUNCS(semanage_iface_clone) + AC_CHECK_FUNCS(semanage_iface_compare) + AC_CHECK_FUNCS(semanage_iface_compare2) + AC_CHECK_FUNCS(semanage_iface_count) + AC_CHECK_FUNCS(semanage_iface_count_local) + AC_CHECK_FUNCS(semanage_iface_create) + AC_CHECK_FUNCS(semanage_iface_del_local) + AC_CHECK_FUNCS(semanage_iface_exists) + AC_CHECK_FUNCS(semanage_iface_exists_local) + AC_CHECK_FUNCS(semanage_iface_free) + AC_CHECK_FUNCS(semanage_iface_get_ifcon) + AC_CHECK_FUNCS(semanage_iface_get_msgcon) + AC_CHECK_FUNCS(semanage_iface_get_name) + AC_CHECK_FUNCS(semanage_iface_iterate) + AC_CHECK_FUNCS(semanage_iface_iterate_local) + AC_CHECK_FUNCS(semanage_iface_key_create) + AC_CHECK_FUNCS(semanage_iface_key_extract) + AC_CHECK_FUNCS(semanage_iface_key_free) + AC_CHECK_FUNCS(semanage_iface_list) + AC_CHECK_FUNCS(semanage_iface_list_local) + AC_CHECK_FUNCS(semanage_iface_modify_local) + AC_CHECK_FUNCS(semanage_iface_query) + AC_CHECK_FUNCS(semanage_iface_query_local) + AC_CHECK_FUNCS(semanage_iface_set_ifcon) + AC_CHECK_FUNCS(semanage_iface_set_msgcon) + AC_CHECK_FUNCS(semanage_iface_set_name) + AC_CHECK_FUNCS(semanage_is_connected) + AC_CHECK_FUNCS(semanage_is_managed) + AC_CHECK_FUNCS(semanage_mls_enabled) + AC_CHECK_FUNCS(semanage_module_disable) + AC_CHECK_FUNCS(semanage_module_enable) + AC_CHECK_FUNCS(semanage_module_extract) + AC_CHECK_FUNCS(semanage_module_get_enabled) + AC_CHECK_FUNCS(semanage_module_get_enabled) + AC_CHECK_FUNCS(semanage_module_get_module_info) + AC_CHECK_FUNCS(semanage_module_get_name) + AC_CHECK_FUNCS(semanage_module_get_version) + AC_CHECK_FUNCS(semanage_module_info_create) + AC_CHECK_FUNCS(semanage_module_info_datum_destroy) + AC_CHECK_FUNCS(semanage_module_info_destroy) + AC_CHECK_FUNCS(semanage_module_info_get_enabled) + AC_CHECK_FUNCS(semanage_module_info_get_lang_ext) + AC_CHECK_FUNCS(semanage_module_info_get_name) + AC_CHECK_FUNCS(semanage_module_info_get_priority) + AC_CHECK_FUNCS(semanage_module_info_set_enabled) + AC_CHECK_FUNCS(semanage_module_info_set_lang_ext) + AC_CHECK_FUNCS(semanage_module_info_set_name) + AC_CHECK_FUNCS(semanage_module_info_set_priority) + AC_CHECK_FUNCS(semanage_module_install) + AC_CHECK_FUNCS(semanage_module_install) + AC_CHECK_FUNCS(semanage_module_install_base) + AC_CHECK_FUNCS(semanage_module_install_base_file) + AC_CHECK_FUNCS(semanage_module_install_file) + AC_CHECK_FUNCS(semanage_module_install_info) + AC_CHECK_FUNCS(semanage_module_key_create) + AC_CHECK_FUNCS(semanage_module_key_destroy) + AC_CHECK_FUNCS(semanage_module_key_get_name) + AC_CHECK_FUNCS(semanage_module_key_get_priority) + AC_CHECK_FUNCS(semanage_module_key_set_name) + AC_CHECK_FUNCS(semanage_module_key_set_priority) + AC_CHECK_FUNCS(semanage_module_list) + AC_CHECK_FUNCS(semanage_module_list_all) + AC_CHECK_FUNCS(semanage_module_list_nth) + AC_CHECK_FUNCS(semanage_module_remove) + AC_CHECK_FUNCS(semanage_module_remove_key) + AC_CHECK_FUNCS(semanage_module_set_enabled) + AC_CHECK_FUNCS(semanage_module_upgrade) + AC_CHECK_FUNCS(semanage_module_upgrade_file) + AC_CHECK_FUNCS(semanage_msg_get_channel) + AC_CHECK_FUNCS(semanage_msg_get_fname) + AC_CHECK_FUNCS(semanage_msg_get_level) + AC_CHECK_FUNCS(semanage_msg_set_callback) + AC_CHECK_FUNCS(semanage_node_clone) + AC_CHECK_FUNCS(semanage_node_compare) + AC_CHECK_FUNCS(semanage_node_compare2) + AC_CHECK_FUNCS(semanage_node_count) + AC_CHECK_FUNCS(semanage_node_count_local) + AC_CHECK_FUNCS(semanage_node_create) + AC_CHECK_FUNCS(semanage_node_del_local) + AC_CHECK_FUNCS(semanage_node_exists) + AC_CHECK_FUNCS(semanage_node_exists_local) + AC_CHECK_FUNCS(semanage_node_free) + AC_CHECK_FUNCS(semanage_node_get_addr) + AC_CHECK_FUNCS(semanage_node_get_addr_bytes) + AC_CHECK_FUNCS(semanage_node_get_con) + AC_CHECK_FUNCS(semanage_node_get_mask) + AC_CHECK_FUNCS(semanage_node_get_mask_bytes) + AC_CHECK_FUNCS(semanage_node_get_proto) + AC_CHECK_FUNCS(semanage_node_get_proto_str) + AC_CHECK_FUNCS(semanage_node_iterate) + AC_CHECK_FUNCS(semanage_node_iterate_local) + AC_CHECK_FUNCS(semanage_node_key_create) + AC_CHECK_FUNCS(semanage_node_key_extract) + AC_CHECK_FUNCS(semanage_node_key_free) + AC_CHECK_FUNCS(semanage_node_list) + AC_CHECK_FUNCS(semanage_node_list_local) + AC_CHECK_FUNCS(semanage_node_modify_local) + AC_CHECK_FUNCS(semanage_node_query) + AC_CHECK_FUNCS(semanage_node_query_local) + AC_CHECK_FUNCS(semanage_node_set_addr) + AC_CHECK_FUNCS(semanage_node_set_addr_bytes) + AC_CHECK_FUNCS(semanage_node_set_con) + AC_CHECK_FUNCS(semanage_node_set_mask) + AC_CHECK_FUNCS(semanage_node_set_mask_bytes) + AC_CHECK_FUNCS(semanage_node_set_proto) + AC_CHECK_FUNCS(semanage_port_clone) + AC_CHECK_FUNCS(semanage_port_compare) + AC_CHECK_FUNCS(semanage_port_compare2) + AC_CHECK_FUNCS(semanage_port_count) + AC_CHECK_FUNCS(semanage_port_count_local) + AC_CHECK_FUNCS(semanage_port_create) + AC_CHECK_FUNCS(semanage_port_del_local) + AC_CHECK_FUNCS(semanage_port_exists) + AC_CHECK_FUNCS(semanage_port_exists_local) + AC_CHECK_FUNCS(semanage_port_free) + AC_CHECK_FUNCS(semanage_port_get_con) + AC_CHECK_FUNCS(semanage_port_get_high) + AC_CHECK_FUNCS(semanage_port_get_low) + AC_CHECK_FUNCS(semanage_port_get_proto) + AC_CHECK_FUNCS(semanage_port_get_proto_str) + AC_CHECK_FUNCS(semanage_port_iterate) + AC_CHECK_FUNCS(semanage_port_iterate_local) + AC_CHECK_FUNCS(semanage_port_key_create) + AC_CHECK_FUNCS(semanage_port_key_extract) + AC_CHECK_FUNCS(semanage_port_key_free) + AC_CHECK_FUNCS(semanage_port_list) + AC_CHECK_FUNCS(semanage_port_list_local) + AC_CHECK_FUNCS(semanage_port_modify_local) + AC_CHECK_FUNCS(semanage_port_query) + AC_CHECK_FUNCS(semanage_port_query_local) + AC_CHECK_FUNCS(semanage_port_set_con) + AC_CHECK_FUNCS(semanage_port_set_port) + AC_CHECK_FUNCS(semanage_port_set_proto) + AC_CHECK_FUNCS(semanage_port_set_range) + AC_CHECK_FUNCS(semanage_reload_policy) + AC_CHECK_FUNCS(semanage_root) + AC_CHECK_FUNCS(semanage_select_store) + AC_CHECK_FUNCS(semanage_set_check_contexts) + AC_CHECK_FUNCS(semanage_set_create_store) + AC_CHECK_FUNCS(semanage_set_default_priority) + AC_CHECK_FUNCS(semanage_set_disable_dontaudit) + AC_CHECK_FUNCS(semanage_set_ignore_module_cache) + AC_CHECK_FUNCS(semanage_set_preserve_tunables) + AC_CHECK_FUNCS(semanage_set_rebuild) + AC_CHECK_FUNCS(semanage_set_reload) + AC_CHECK_FUNCS(semanage_set_root) + AC_CHECK_FUNCS(semanage_set_store_root) + AC_CHECK_FUNCS(semanage_seuser_clone) + AC_CHECK_FUNCS(semanage_seuser_compare) + AC_CHECK_FUNCS(semanage_seuser_compare2) + AC_CHECK_FUNCS(semanage_seuser_count) + AC_CHECK_FUNCS(semanage_seuser_count_local) + AC_CHECK_FUNCS(semanage_seuser_create) + AC_CHECK_FUNCS(semanage_seuser_del_local) + AC_CHECK_FUNCS(semanage_seuser_exists) + AC_CHECK_FUNCS(semanage_seuser_exists_local) + AC_CHECK_FUNCS(semanage_seuser_free) + AC_CHECK_FUNCS(semanage_seuser_get_mlsrange) + AC_CHECK_FUNCS(semanage_seuser_get_name) + AC_CHECK_FUNCS(semanage_seuser_get_sename) + AC_CHECK_FUNCS(semanage_seuser_iterate) + AC_CHECK_FUNCS(semanage_seuser_iterate_local) + AC_CHECK_FUNCS(semanage_seuser_key_create) + AC_CHECK_FUNCS(semanage_seuser_key_extract) + AC_CHECK_FUNCS(semanage_seuser_key_free) + AC_CHECK_FUNCS(semanage_seuser_list) + AC_CHECK_FUNCS(semanage_seuser_list_local) + AC_CHECK_FUNCS(semanage_seuser_modify_local) + AC_CHECK_FUNCS(semanage_seuser_query) + AC_CHECK_FUNCS(semanage_seuser_query_local) + AC_CHECK_FUNCS(semanage_seuser_set_mlsrange) + AC_CHECK_FUNCS(semanage_seuser_set_name) + AC_CHECK_FUNCS(semanage_seuser_set_sename) + AC_CHECK_FUNCS(semanage_user_add_role) + AC_CHECK_FUNCS(semanage_user_clone) + AC_CHECK_FUNCS(semanage_user_compare) + AC_CHECK_FUNCS(semanage_user_compare2) + AC_CHECK_FUNCS(semanage_user_count) + AC_CHECK_FUNCS(semanage_user_count_local) + AC_CHECK_FUNCS(semanage_user_create) + AC_CHECK_FUNCS(semanage_user_del_local) + AC_CHECK_FUNCS(semanage_user_del_role) + AC_CHECK_FUNCS(semanage_user_exists) + AC_CHECK_FUNCS(semanage_user_exists_local) + AC_CHECK_FUNCS(semanage_user_free) + AC_CHECK_FUNCS(semanage_user_get_mlslevel) + AC_CHECK_FUNCS(semanage_user_get_mlsrange) + AC_CHECK_FUNCS(semanage_user_get_name) + AC_CHECK_FUNCS(semanage_user_get_num_roles) + AC_CHECK_FUNCS(semanage_user_get_prefix) + AC_CHECK_FUNCS(semanage_user_get_roles) + AC_CHECK_FUNCS(semanage_user_has_role) + AC_CHECK_FUNCS(semanage_user_iterate) + AC_CHECK_FUNCS(semanage_user_iterate_local) + AC_CHECK_FUNCS(semanage_user_key_create) + AC_CHECK_FUNCS(semanage_user_key_extract) + AC_CHECK_FUNCS(semanage_user_key_free) + AC_CHECK_FUNCS(semanage_user_list) + AC_CHECK_FUNCS(semanage_user_list_local) + AC_CHECK_FUNCS(semanage_user_modify_local) + AC_CHECK_FUNCS(semanage_user_query) + AC_CHECK_FUNCS(semanage_user_query_local) + AC_CHECK_FUNCS(semanage_user_set_mlslevel) + AC_CHECK_FUNCS(semanage_user_set_mlsrange) + AC_CHECK_FUNCS(semanage_user_set_name) + AC_CHECK_FUNCS(semanage_user_set_prefix) + AC_CHECK_FUNCS(semanage_user_set_roles) ], []) AC_SUBST(WITH_SEMANAGE_SEMODULE) @@ -3029,11 +3785,10 @@ dnl # Glibc AIO OLIBS="$LIBS" RPM_CHECK_LIB( - [AIO], [aio], + [Glibc AIO], [aio], [rt], [aio_init], [aio.h], [no,external:none], [], - [ - $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" + [ $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" AC_CHECK_FUNC(aio_cancel) AC_CHECK_FUNC(aio_error) AC_CHECK_FUNC(aio_fsync) @@ -3045,30 +3800,185 @@ AC_CHECK_FUNC(lio_listio) ], []) -dnl # Glibc CLOCK +dnl # Glibc ARGZ OLIBS="$LIBS" RPM_CHECK_LIB( - [CLOCK], [clock], - [rt], [clock_gettime], [time.h], + [ARGZ], [argz], + [c], [argz_create], [argz.h], [no,external:none], [], - [ - $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" + [ LIBS="$OLIBS" + AC_CHECK_FUNCS(argz_add) + AC_CHECK_FUNCS(argz_add_sep) + AC_CHECK_FUNCS(argz_append) + AC_CHECK_FUNCS(argz_count) + AC_CHECK_FUNCS(argz_create) + AC_CHECK_FUNCS(argz_create_sep) + AC_CHECK_FUNCS(argz_delete) + AC_CHECK_FUNCS(argz_extract) + AC_CHECK_FUNCS(argz_insert) + AC_CHECK_FUNCS(argz_next) + AC_CHECK_FUNCS(argz_replace) + AC_CHECK_FUNCS(argz_stringify) + + AC_CHECK_HEADERS(envz.h) + AC_CHECK_FUNCS(envz_add) + AC_CHECK_FUNCS(envz_entry) + AC_CHECK_FUNCS(envz_get) + AC_CHECK_FUNCS(envz_merge) + AC_CHECK_FUNCS(envz_remove) + AC_CHECK_FUNCS(envz_strip) + ], []) + +dnl # Glibc BSD +OLIBS="$LIBS" +RPM_CHECK_LIB( + [Glibc BSD], [bsd], + [bsd], [setproctitle_init], [bsd/unistd.h], + [yes,external:none], [], + [ $(echo "$OLIBS" | grep -- ' -lbsd' > /dev/null) && LIBS="$OLIBS" + + AC_CHECK_HEADERS(bsd/bsd.h) + AC_CHECK_HEADERS(bsd/bitstring.h) + AC_CHECK_HEADERS(bsd/netinet/ip_icmp.h) + AC_CHECK_HEADERS(bsd/sys/bitstring.h) + AC_CHECK_HEADERS(bsd/sys/cdefs.h) + AC_CHECK_HEADERS(bsd/sys/endian.h) + AC_CHECK_HEADERS(bsd/sys/poll.h) + AC_CHECK_HEADERS(bsd/sys/queue.h) + AC_CHECK_HEADERS(bsd/sys/tree.h) + + AC_CHECK_HEADERS(bsd/err.h) + AC_CHECK_FUNCS(errc) + AC_CHECK_FUNCS(vwarnc) + AC_CHECK_FUNCS(warnc) + AC_CHECK_FUNCS(verrc) + + AC_CHECK_HEADERS(bsd/getopt.h) + AC_CHECK_HEADERS(bsd/unistd.h) + AC_CHECK_FUNCS(bsd_getopt) + AC_CHECK_FUNCS(closefrom) + AC_CHECK_FUNCS(getmode) dnl used in tools/rpmmtree.c + AC_CHECK_FUNCS(getpeereid) + AC_CHECK_FUNCS(setmode) dnl used in tools/rpmmtree.c + AC_CHECK_FUNCS(setproctitle) dnl used in misc/setproctitle.c + AC_CHECK_FUNCS(setproctitle_init) dnl used in rpmqv.c + + AC_CHECK_HEADERS(bsd/libutil.h) + AC_CHECK_FUNCS(expand_number) + AC_CHECK_FUNCS(flopen) + AC_CHECK_FUNCS(fparseln) + AC_CHECK_FUNCS(humanize_number) + AC_CHECK_FUNCS(pidfile_close) + AC_CHECK_FUNCS(pidfile_open) + AC_CHECK_FUNCS(pidfile_remove) + AC_CHECK_FUNCS(pidfile_write) + + AC_CHECK_HEADERS(bsd/md5.h) + AC_CHECK_FUNCS(MD5Data) + AC_CHECK_FUNCS(MD5End) + AC_CHECK_FUNCS(MD5File) + AC_CHECK_FUNCS(MD5FileChunk) + AC_CHECK_FUNCS(MD5Final) + AC_CHECK_FUNCS(MD5Init) + AC_CHECK_FUNCS(MD5Pad) + AC_CHECK_FUNCS(MD5Transform) + AC_CHECK_FUNCS(MD5Update) + + AC_CHECK_HEADERS(bsd/nlist.h) + AC_CHECK_FUNCS(nlist) + + AC_CHECK_HEADERS(bsd/readpassphrase.h) + AC_CHECK_FUNCS(readpassphrase) + + AC_CHECK_HEADERS(bsd/stdio.h) + AC_CHECK_FUNCS(fgetln) dnl XXX deprecated + AC_CHECK_FUNCS(fmtcheck) + AC_CHECK_FUNCS(funopen) + AC_CHECK_FUNCS(fpurge) + + AC_CHECK_HEADERS(bsd/stdlib.h) + AC_CHECK_FUNCS(arc4random) + AC_CHECK_FUNCS(arc4random_addrandom) + AC_CHECK_FUNCS(arc4random_buf) + AC_CHECK_FUNCS(arc4random_stir) + AC_CHECK_FUNCS(arc4random_uniform) + AC_CHECK_FUNCS(dehumanize_number) + AC_CHECK_FUNCS(getbsize) + AC_CHECK_FUNCS(getprogname) + AC_CHECK_FUNCS(heapsort) + AC_CHECK_FUNCS(mergesort) + AC_CHECK_FUNCS(radixsort) + AC_CHECK_FUNCS(reallocarray) + AC_CHECK_FUNCS(reallocf) + AC_CHECK_FUNCS(setprogname) + AC_CHECK_FUNCS(sradixsort) + AC_CHECK_FUNCS(strtonum) + + AC_CHECK_HEADERS(bsd/string.h) + AC_CHECK_FUNCS(explicit_bzero) + AC_CHECK_FUNCS(strlcat) + AC_CHECK_FUNCS(strlcpy) + AC_CHECK_FUNCS(strmode) dnl used in tools/rpmfind.c + AC_CHECK_FUNCS(strnstr) + + AC_CHECK_HEADERS(bsd/stringlist.h) + AC_CHECK_FUNCS(sl_add) + AC_CHECK_FUNCS(sl_find) + AC_CHECK_FUNCS(sl_free) + AC_CHECK_FUNCS(sl_init) + + AC_CHECK_HEADERS(bsd/timeconv.h) + AC_CHECK_FUNCS(_int_to_time) + AC_CHECK_FUNCS(_long_to_time) + AC_CHECK_FUNCS(_time32_to_time) + AC_CHECK_FUNCS(_time64_to_time) + AC_CHECK_FUNCS(_time_to_int) + AC_CHECK_FUNCS(_time_to_long) + AC_CHECK_FUNCS(_time_to_time32) + AC_CHECK_FUNCS(_time_to_time64) + + AC_CHECK_HEADERS(bsd/vis.h) + AC_CHECK_FUNCS(strnunvis) + AC_CHECK_FUNCS(strnvis) dnl used in tools/rpmmtree.c + AC_CHECK_FUNCS(strunvis) dnl used in tools/rpmmtree.c + AC_CHECK_FUNCS(strunvisx) + AC_CHECK_FUNCS(strvis) dnl used in tools/rpmmtree.c + AC_CHECK_FUNCS(strvisx) dnl used in tools/rpmmtree.c + AC_CHECK_FUNCS(unvis) dnl used in tools/rpmmtree.c + AC_CHECK_FUNCS(vis) dnl used in tools/rpmmtree.c + + AC_CHECK_HEADERS(bsd/wchar.h) + AC_CHECK_FUNCS(fgetwln) + AC_CHECK_FUNCS(wcslcat) + AC_CHECK_FUNCS(wcslcpy) + + AC_CHECK_FUNCS(__fdnlist) + AC_CHECK_FUNCS(inet_net_pton) + + ], []) + +dnl # POSIX CLOCK +OLIBS="$LIBS" +RPM_CHECK_LIB( + [POSIX CLOCK], [clock], + [rt], [clock_gettime], [time.h], + [yes,external:none], [], + [ $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" AC_CHECK_FUNCS(clock_adjtime) AC_CHECK_FUNCS(clock_getcpuclockid) AC_CHECK_FUNCS(clock_getres) - AC_CHECK_FUNCS(clock_gettime) + AC_CHECK_FUNCS(clock_gettime) dnl used in build/files.c lib/rpmts.c AC_CHECK_FUNCS(clock_nanosleep) AC_CHECK_FUNCS(clock_settime) ], []) -dnl # Glibc EPOLL +dnl # Linux EPOLL OLIBS="$LIBS" RPM_CHECK_LIB( - [EPOLL], [epoll], + [Linux EPOLL], [epoll], [c], [epoll_create], [sys/epoll.h], [no,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(epoll_create) AC_CHECK_FUNCS(epoll_create1) AC_CHECK_FUNCS(epoll_ctl) @@ -3076,67 +3986,94 @@ AC_CHECK_FUNCS(epoll_pwait) ], []) -dnl # Glibc EVENTFD +dnl # Linux EVENTFD OLIBS="$LIBS" RPM_CHECK_LIB( - [EVENTFD], [eventfd], + [Linux EVENTFD], [eventfd], [c], [eventfd], [sys/eventfd.h], [no,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(eventfd) AC_CHECK_FUNCS(eventfd_read) AC_CHECK_FUNCS(eventfd_write) ], []) -dnl # Glibc FANOTIFY +dnl # Linux FANOTIFY OLIBS="$LIBS" RPM_CHECK_LIB( - [FANOTIFY], [fanotify], + [Linux FANOTIFY], [fanotify], [c], [fanotify_init], [sys/fanotify.h], [no,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(fanotify_init) AC_CHECK_FUNCS(fanotify_mark) ], []) -dnl # Glibc INOTIFY +dnl # Linux INOTIFY OLIBS="$LIBS" RPM_CHECK_LIB( - [INOTIFY], [inotify], + [Linux INOTIFY], [inotify], [c], [inotify_init], [sys/inotify.h], [no,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(inotify_init) AC_CHECK_FUNCS(inotify_init1) AC_CHECK_FUNCS(inotify_add_watch) AC_CHECK_FUNCS(inotify_rm_watch) ], []) -dnl # Glibc IPC +dnl # SysV IPC OLIBS="$LIBS" RPM_CHECK_LIB( - [IPC], [ipc], + [SysV IPC], [ipc], [c], [ftok], [sys/ipc.h], [yes,external:none], [], - [ - LIBS="$OLIBS" - AC_CHECK_FUNCS(ftok) + [ LIBS="$OLIBS" + AC_CHECK_FUNCS(ftok) dnl used in rpmdb/db3.c ], []) -dnl # Glibc MOUNT +dnl # MATH OLIBS="$LIBS" RPM_CHECK_LIB( - [MOUNT], [mount], - [c], [mount], [sys/mount.h], - [no,external:none], [], - [ - LIBS="$OLIBS" - AC_CHECK_FUNCS(mount) - AC_CHECK_FUNCS(umount) - AC_CHECK_FUNCS(umount2) + [MATH], [math], + [m], [sqrt], [math.h], + [yes,external:none], [], + [ $(echo "$OLIBS" | grep -- ' -lm' > /dev/null) && LIBS="$OLIBS" + AC_CHECK_FUNCS(acos) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(acosh) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(asin) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(asinh) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(atan) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(atan2) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(atanh) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(ceil) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(cos) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(cosh) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(exp) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(floor) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(log) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(log10) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(pow) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(sin) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(sinh) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(sqrt) + AC_CHECK_FUNCS(tan) dnl used in rpmio/rpmsql.c + AC_CHECK_FUNCS(tanh) dnl used in rpmio/rpmsql.c + ], []) + +dnl # Glibc MCHECK +OLIBS="$LIBS" +RPM_CHECK_LIB( + [Glibc MEMCHECK], [mcheck], + [c], [mcheck], [mcheck.h], + [yes,external:none], [], + [ LIBS="$OLIBS" + AC_CHECK_FUNCS(mcheck) dnl used in rpmqv.c + AC_CHECK_FUNCS(mcheck_pedantic) + AC_CHECK_FUNCS(mcheck_check_all) + AC_CHECK_FUNCS(mprobe) + AC_CHECK_FUNCS(mtrace) + AC_CHECK_FUNCS(muntrace) ], []) dnl # POSIX Message Queues @@ -3145,8 +4082,7 @@ [POSIX Message Queues], [mq], [rt], [mq_open], [mqueue.h], [no,external:none], [], - [ - $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" + [ $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" AC_CHECK_FUNCS(mq_close) AC_CHECK_FUNCS(mq_getattr) AC_CHECK_FUNCS(mq_notify) @@ -3159,45 +4095,90 @@ AC_CHECK_FUNCS(mq_unlink) ], []) -dnl # Glibc PERSONALITY +dnl # MOUNT +OLIBS="$LIBS" +RPM_CHECK_LIB( + [MOUNT], [mount], + [c], [mount], [sys/mount.h], + [yes,external:none], [], + [ LIBS="$OLIBS" + AC_CHECK_FUNCS(mount) dnl used in rpmio/mount.c + AC_CHECK_FUNCS(umount) + AC_CHECK_FUNCS(umount2) + ], []) + +dnl # Glibc OBSTACK OLIBS="$LIBS" RPM_CHECK_LIB( - [PERSONALITY], [personality], + [Glibc OBSTACK], [obstack], + [c], [_obstack_allocated_p], [obstack.h], + [no,external:none], [], + [ LIBS="$OLIBS" + AC_CHECK_FUNCS(__obstack_printf_chk) + AC_CHECK_FUNCS(__obstack_vprintf_chk) + AC_CHECK_FUNCS(_obstack_allocated_p) + AC_CHECK_FUNCS(_obstack_begin) + AC_CHECK_FUNCS(_obstack_begin_1) + AC_CHECK_FUNCS(_obstack_free) + AC_CHECK_FUNCS(_obstack_memory_used) + AC_CHECK_FUNCS(_obstack_newchunk) + AC_CHECK_FUNCS(obstack_free) + AC_CHECK_FUNCS(obstack_printf) + AC_CHECK_FUNCS(obstack_vprintf) + ], []) + +dnl # Linux PERSONALITY +OLIBS="$LIBS" +RPM_CHECK_LIB( + [Linux PERSONALITY], [personality], [c], [personality], [sys/personality.h], [no,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(personality) ], []) -dnl # Glibc PRCTL +dnl # Linux PRCTL OLIBS="$LIBS" RPM_CHECK_LIB( - [PRCTL], [prctl], + [Linux PRCTL], [prctl], [c], [prctl], [sys/prctl.h], + [yes,external:none], [], + [ LIBS="$OLIBS" + AC_CHECK_FUNCS(prctl) dnl used in misc/setproctitle.c + ], []) + +dnl # Glibc PRINTF +OLIBS="$LIBS" +RPM_CHECK_LIB( + [Glibc PRINTF], [printf], + [c], [register_printf_specifier], [printf.h], [no,external:none], [], - [ - LIBS="$OLIBS" - AC_CHECK_FUNCS(prctl) + [ LIBS="$OLIBS" + AC_CHECK_HEADERS(printf.h) + AC_CHECK_FUNCS(parse_printf_format) + AC_CHECK_FUNCS(printf_size) + AC_CHECK_FUNCS(printf_size_info) + AC_CHECK_FUNCS(register_printf_specifier) + AC_CHECK_FUNCS(register_printf_modifier) + AC_CHECK_FUNCS(register_printf_type) ], []) dnl # POSIX Scheduler OLIBS="$LIBS" RPM_CHECK_LIB( - [SCHED], [sched], + [POSIX SCHED], [sched], [c], [sched_yield], [sched.h], - [no,external:none], [], - [ - LIBS="$OLIBS" + [yes,external:none], [], + [ LIBS="$OLIBS" AC_CHECK_FUNCS(sched_getaffinity) AC_CHECK_FUNCS(sched_setaffinity) AC_CHECK_FUNCS(sched_getparam) AC_CHECK_FUNCS(sched_setparam) AC_CHECK_FUNCS(sched_getscheduler) AC_CHECK_FUNCS(sched_setscheduler) - AC_CHECK_FUNCS(sched_getattr) - AC_CHECK_FUNCS(sched_setattr) - AC_CHECK_FUNCS(sched_getcpu) + AC_CHECK_FUNCS(sched_getattr) dnl needs wrapping + AC_CHECK_FUNCS(sched_setattr) dnl needs wrapping + AC_CHECK_FUNCS(sched_getcpu) dnl used in rpmio/macro.c AC_CHECK_FUNCS(sched_get_priority_max) AC_CHECK_FUNCS(sched_get_priority_min) AC_CHECK_FUNCS(sched_rr_get_interval) @@ -3210,8 +4191,7 @@ [SEARCH], [search], [c], [insque], [search.h], [no,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(insque) AC_CHECK_FUNCS(remque) AC_CHECK_FUNCS(hcreate) @@ -3235,8 +4215,7 @@ [POSIX Semaphores], [sem], [pthread c], [sem_init], [semaphore.h], [no,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(sem_close) AC_CHECK_FUNCS(sem_destroy) AC_CHECK_FUNCS(sem_getvalue) @@ -3247,44 +4226,52 @@ AC_CHECK_FUNCS(sem_wait) ], []) -dnl # Glibc SHM +dnl # POSIX SHM (and mmap et al) OLIBS="$LIBS" RPM_CHECK_LIB( - [SHM], [shm], + [POSIX SHM], [shm], [rt], [shm_open], [sys/mman.h], - [no,external:none], [], - [ - $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" + [yes,external:none], [], + [ $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" + AC_CHECK_FUNCS(madvise) + AC_CHECK_FUNCS(mincore) + AC_CHECK_FUNCS(mlock) + AC_CHECK_FUNCS(mlockall) + AC_CHECK_FUNCS(mprotect) + AC_CHECK_FUNCS(mremap) + AC_CHECK_FUNCS(msync) + AC_CHECK_FUNCS(munmap) + AC_CHECK_FUNCS(munlock) + AC_CHECK_FUNCS(munlockall) + AC_CHECK_FUNCS(posix_madvise) + AC_CHECK_FUNCS(posix_mem_offset) + AC_CHECK_FUNCS(posix_typed_mem_open) + AC_CHECK_FUNCS(remap_file_pages) AC_CHECK_FUNCS(shm_open) AC_CHECK_FUNCS(shm_unlink) ], []) -dnl # Glibc TIMER +dnl # POSIX TIMER OLIBS="$LIBS" RPM_CHECK_LIB( - [TIMER], [timer], + [POSIX TIMER], [timer], [rt], [timer_create], [time.h], [no,external:none], [], - [ - $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" + [ $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" AC_CHECK_FUNCS(timer_create) AC_CHECK_FUNCS(timer_delete) AC_CHECK_FUNCS(timer_gettime) AC_CHECK_FUNCS(timer_getoverrun) AC_CHECK_FUNCS(timer_settime) - AC_CHECK_FUNCS(timerfd_create) - AC_CHECK_FUNCS(timerfd_gettime) - AC_CHECK_FUNCS(timerfd_settime) ], []) -dnl # Glibc TIMERFD +dnl # Linux TIMERFD OLIBS="$LIBS" RPM_CHECK_LIB( - [TIMERFD], [timerfd], + [Linux TIMERFD], [timerfd], [rt], [timerfd_create], [sys/timerfd.h], [no,external:none], [], - [ - $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" + [ $(echo "$OLIBS" | grep -- ' -lrt' > /dev/null) && LIBS="$OLIBS" AC_CHECK_FUNCS(timerfd_create) AC_CHECK_FUNCS(timerfd_gettime) AC_CHECK_FUNCS(timerfd_settime) @@ -3296,8 +4283,7 @@ [XATTR], [xattr], [c], [getxattr], [sys/xattr.h], [yes,external:none], [], - [ - LIBS="$OLIBS" + [ LIBS="$OLIBS" AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr) AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr) AC_CHECK_FUNCS(listxattr llistxattr flistxattr) @@ -3305,6 +4291,7 @@ ], []) dnl # FIXME: AutoFu tests for <sys/acl.h> and -lacl are needed w/o --with-xar +dnl # ATTR RPM_CHECK_LIB( [ATTR], [attr], [attr], [attr_get], [attr/attributes.h], @@ -3323,7 +4310,6 @@ [cap], [cap_init], [sys/capability.h], [no,external:none], [], [ - AC_CHECK_HEADERS(linux/securebits.h) AC_CHECK_FUNCS(cap_dup cap_free cap_init) AC_CHECK_FUNCS(cap_get_flag cap_set_flag cap_clear cap_clear_flag) AC_CHECK_FUNCS(cap_get_fd cap_get_file cap_set_fd cap_set_file) @@ -3340,8 +4326,9 @@ [cap-ng], [capng_clear], [cap-ng.h], [no,external:none], [], [ + AC_CHECK_HEADERS(linux/securebits.h) AC_CHECK_FUNCS(capng_clear capng_fill capng_setpid) - AC_CHECK_FUNCS(capng_get_caps_process capng_update capng_updateev) + AC_CHECK_FUNCS(capng_get_caps_process capng_update capng_updatev) AC_CHECK_FUNCS(capng_apply capng_lock capng_change_id) AC_CHECK_FUNCS(capng_get_caps_fd capng_apply_caps_fd) AC_CHECK_FUNCS(capng_have_capabilities capng_have_capability) @@ -3350,24 +4337,93 @@ AC_CHECK_FUNCS(capng_save_state capng_restore_state) ], []) +dnl # Linux libseccomp +RPM_CHECK_LIB( + [Linux libseccomp], [seccomp], + [seccomp], [seccomp_init], [seccomp.h], + [no,external:none], [], + [ + AC_CHECK_HEADERS(linux/audit.h) + AC_CHECK_FUNCS(seccomp_arch_add) + AC_CHECK_FUNCS(seccomp_arch_exist) + AC_CHECK_FUNCS(seccomp_arch_native) + AC_CHECK_FUNCS(seccomp_arch_remove) + AC_CHECK_FUNCS(seccomp_arch_resolve_name) + AC_CHECK_FUNCS(seccomp_attr_get) + AC_CHECK_FUNCS(seccomp_attr_set) + AC_CHECK_FUNCS(seccomp_export_bpf) + AC_CHECK_FUNCS(seccomp_export_pfc) + AC_CHECK_FUNCS(seccomp_init) + AC_CHECK_FUNCS(seccomp_load) + AC_CHECK_FUNCS(seccomp_merge) + AC_CHECK_FUNCS(seccomp_release) + AC_CHECK_FUNCS(seccomp_reset) + AC_CHECK_FUNCS(seccomp_rule_add) + AC_CHECK_FUNCS(seccomp_rule_add_array) + AC_CHECK_FUNCS(seccomp_rule_add_exact) + AC_CHECK_FUNCS(seccomp_rule_add_exact_array) + AC_CHECK_FUNCS(seccomp_syscall_priority) + AC_CHECK_FUNCS(seccomp_syscall_resolve_name) + AC_CHECK_FUNCS(seccomp_syscall_resolve_name_arch) + AC_CHECK_FUNCS(seccomp_syscall_resolve_name_rewrite) + AC_CHECK_FUNCS(seccomp_syscall_resolve_num_arch) + AC_CHECK_FUNCS(seccomp_version) + ], []) -dnl # ACL API +dnl # ACL RPM_CHECK_LIB( [ACL], [acl], - [acl], [acl_free], [acl/libacl.h], + [acl], [acl_init], [acl/libacl.h], [no,external:none], [], [ - AC_CHECK_FUNCS(acl_t acl_init acl_t acl_dup acl_free acl_valid) - AC_CHECK_FUNCS(acl_copy_entry acl_create_entry) - AC_CHECK_FUNCS(acl_delete_entry acl_get_entry) - AC_CHECK_FUNCS(acl_add_perm acl_calc_mask acl_clear_perms) - AC_CHECK_FUNCS(acl_delete_perm acl_get_permset acl_set_permset) - AC_CHECK_FUNCS(acl_get_qualifier acl_get_tag_type) - AC_CHECK_FUNCS(acl_set_qualifier acl_set_tag_type) - AC_CHECK_FUNCS(acl_copy_ext acl_copy_int acl_from_text) - AC_CHECK_FUNCS(acl_size acl_to_text) - AC_CHECK_FUNCS(acl_delete_def_file acl_get_fd acl_get_file) - AC_CHECK_FUNCS(acl_set_fd acl_set_file) + AC_CHECK_HEADERS(sys/acl.h) + AC_CHECK_FUNCS(acl_add_perm) + AC_CHECK_FUNCS(acl_calc_mask) + AC_CHECK_FUNCS(acl_check) + AC_CHECK_FUNCS(acl_clear_perms) + AC_CHECK_FUNCS(acl_cmp) + AC_CHECK_FUNCS(acl_copy_entry) + AC_CHECK_FUNCS(acl_copy_ext) + AC_CHECK_FUNCS(acl_copy_int) + AC_CHECK_FUNCS(acl_create_entry) + AC_CHECK_FUNCS(acl_delete_def_file) + AC_CHECK_FUNCS(acl_delete_entry) + AC_CHECK_FUNCS(acl_delete_perm) + AC_CHECK_FUNCS(acl_dup) + AC_CHECK_FUNCS(acl_entries) + AC_CHECK_FUNCS(acl_equiv_mode) + AC_CHECK_FUNCS(acl_error) + AC_CHECK_FUNCS(acl_extended_fd) + AC_CHECK_FUNCS(__acl_extended_file) + AC_CHECK_FUNCS(acl_extended_file) + AC_CHECK_FUNCS(acl_extended_file_nofollow) + AC_CHECK_FUNCS(acl_free) + AC_CHECK_FUNCS(acl_from_mode) + AC_CHECK_FUNCS(acl_from_text) + AC_CHECK_FUNCS(__acl_from_xattr) + AC_CHECK_FUNCS(acl_get_entry) + AC_CHECK_FUNCS(acl_get_fd) + AC_CHECK_FUNCS(acl_get_file) + AC_CHECK_FUNCS(acl_get_perm) + AC_CHECK_FUNCS(acl_get_permset) + AC_CHECK_FUNCS(acl_get_qualifier) + AC_CHECK_FUNCS(acl_get_tag_type) + AC_CHECK_FUNCS(acl_init) + AC_CHECK_FUNCS(acl_set_fd) + AC_CHECK_FUNCS(acl_set_file) + AC_CHECK_FUNCS(acl_set_permset) + AC_CHECK_FUNCS(acl_set_qualifier) + AC_CHECK_FUNCS(acl_set_tag_type) + AC_CHECK_FUNCS(acl_size) + AC_CHECK_FUNCS(acl_to_any_text) + AC_CHECK_FUNCS(acl_to_text) + AC_CHECK_FUNCS(__acl_to_xattr) + AC_CHECK_FUNCS(acl_valid) + AC_CHECK_FUNCS(high_water_alloc) + AC_CHECK_FUNCS(next_line) + AC_CHECK_FUNCS(perm_copy_fd) + AC_CHECK_FUNCS(perm_copy_file) + AC_CHECK_FUNCS(walk_tree) ], []) dnl # XAR @@ -3436,10 +4492,10 @@ AC_CHECK_FUNCS(keyctl_instantiate_iov) AC_CHECK_FUNCS(keyctl_invalidate) AC_CHECK_FUNCS(keyctl_get_persistent) - AC_CHECK_FUNCS(keyctl_dh_compute) AC_CHECK_FUNCS(keyctl_describe_alloc) AC_CHECK_FUNCS(keyctl_read_alloc) AC_CHECK_FUNCS(keyctl_get_security_alloc) + AC_CHECK_FUNCS(keyctl_dh_compute) AC_CHECK_FUNCS(keyctl_dh_compute_alloc) AC_CHECK_FUNCS(recursive_key_scan) AC_CHECK_FUNCS(recursive_session_key_scan) @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/librpmio.vers ============================================================================ $ cvs diff -u -r2.199.2.71 -r2.199.2.72 librpmio.vers --- rpm/rpmio/librpmio.vers 4 May 2017 20:57:43 -0000 2.199.2.71 +++ rpm/rpmio/librpmio.vers 10 May 2017 16:57:56 -0000 2.199.2.72 @@ -349,6 +349,7 @@ pgpSubTypeTbl; pgpSymkeyTbl; pgpTagTbl; + Prctl; print_expand_trace; print_macro_trace; __progname; @@ -411,10 +412,15 @@ rpmbfParams; rpmbfUnion; _rpmcap_debug; + rpmcapDrop; + rpmcapDump; rpmcapGetFD; rpmcapGetFN; + rpmcapGetP; rpmcapSetFD; rpmcapSetFN; + rpmcapSetP; + rpmcapTest; rpmcapValidate; rpmcapVerifyFD; rpmcapVerifyFN; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmcap.c ============================================================================ $ cvs diff -u -r1.1.2.1 -r1.1.2.2 rpmcap.c --- rpm/rpmio/rpmcap.c 4 May 2017 20:55:39 -0000 1.1.2.1 +++ rpm/rpmio/rpmcap.c 10 May 2017 16:57:56 -0000 1.1.2.2 @@ -10,13 +10,31 @@ #endif #if defined(HAVE_SYS_CAPABILITY_H) -#include <sys/capability.h> +# include <sys/capability.h> #endif +#if defined(WITH_CAPNG) && defined(HAVE_CAP_NG_H) +#include <cap-ng.h> +#endif + +#if defined(HAVE_SYS_PRCTL_H) +# include <sys/prctl.h> +#endif +#if defined(HAVE_SYS_SYSCALL_H) +# include <sys/syscall.h> +#endif +#if defined(HAVE_LINUX_SECUREBITS_H) +#include <linux/securebits.h> +#endif + +#include <rpmlog.h> +#include <rpmmacro.h> +#include <argv.h> + #include <rpmcap.h> #include "debug.h" -int _rpmcap_debug = 0; +int _rpmcap_debug = -1; /* Retrofit cap_compare() if not available. */ #if defined(WITH_CAP) && !defined(HAVE_CAP_COMPARE) @@ -39,7 +57,7 @@ } return rc; } -#endif +#endif /* WITH_CAP */ char * rpmcapValidate(const char *s) { @@ -53,7 +71,7 @@ cap_free(fcaps); } else text = xstrdup(""); -#endif +#endif /* WITH_CAP */ if (_rpmcap_debug) fprintf(stderr, "<-- %s(%s) text %s\n", __FUNCTION__, s, text); return text; @@ -70,7 +88,7 @@ cap_free(t); cap_free(fcaps); } -#endif +#endif /* WITH_CAP */ if (_rpmcap_debug) fprintf(stderr, "<-- %s(%d) text %s\n", __FUNCTION__, fdno, text); return text; @@ -87,7 +105,7 @@ cap_free(t); cap_free(fcaps); } -#endif +#endif /* WITH_CAP */ if (_rpmcap_debug) fprintf(stderr, "<-- %s(%s) text %s\n", __FUNCTION__, fn, text); return text; @@ -108,7 +126,7 @@ exit: if (fcaps) cap_free(fcaps); -#endif +#endif /* WITH_CAP */ if (_rpmcap_debug) fprintf(stderr, "<-- %s(%d,%s) rc %d\n", __FUNCTION__, fdno, s, rc); return rc; @@ -129,7 +147,7 @@ exit: if (fcaps) cap_free(fcaps); -#endif +#endif /* WITH_CAP */ if (_rpmcap_debug) fprintf(stderr, "<-- %s(%s,%s) rc %d\n", __FUNCTION__, fn, s, rc); return rc; @@ -154,7 +172,7 @@ cap_free(fcap); cap_free(cap); -#endif +#endif /* WITH_CAP */ if (_rpmcap_debug) fprintf(stderr, "<-- %s(%d,%s) rc %d\n", __FUNCTION__, fdno, s, rc); return rc; @@ -179,8 +197,179 @@ cap_free(fcap); cap_free(cap); -#endif +#endif /* WITH_CAP */ if (_rpmcap_debug) fprintf(stderr, "<-- %s(%s,%s) rc %d\n", __FUNCTION__, fn, s, rc); return rc; } + +char * rpmcapGetP(pid_t pid) +{ + char * text = NULL; +#if defined(WITH_CAP) + cap_t pcaps = (pid > 0 ? cap_get_pid(pid) : cap_get_proc()); + if (pcaps) { + char *t = cap_to_text(pcaps, NULL); + text = xstrdup(t); + cap_free(t); + cap_free(pcaps); + } +#endif /* WITH_CAP */ +if (_rpmcap_debug) +fprintf(stderr, "<-- %s(%d) text %s\n", __FUNCTION__, pid, text); + return text; +} + +int rpmcapSetP(pid_t pid, const char *s) +{ + int rc = -1; /* assume failure */ +#if defined(WITH_CAP) + cap_t pcaps = NULL; + if (pid <= 0) /* XXX use capsetp() ? */ + goto exit; + if (s && *s != '\0') { + pcaps = cap_from_text(s); + if (pcaps == NULL + || cap_set_proc(pcaps) != 0) + goto exit; + } + rc = 0; +exit: + if (pcaps) + cap_free(pcaps); +#endif /* WITH_CAP */ +if (_rpmcap_debug) +fprintf(stderr, "<-- %s(%d,%s) rc %d\n", __FUNCTION__, pid, s, rc); + return rc; +} + +int Prctl(int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5) +{ + int rc = -2; +#if defined(HAVE_PRCTL) + rc = prctl(option, arg2, arg3, arg4, arg5); +#elif defined(__linux__) && defined(SYS_prctl) + rc = syscall(SYS_prctl, option, arg2, arg3, arg4, arg5); +#else +#error No prctl(2) avaliable. + errno = ENOSYS; +#endif + if (rc < 0) + rpmlog(RPMLOG_ERR, _("%s(%d,%lu,%lu,%lu,%lu) failed: %m\n"), + __FUNCTION__, option, arg2, arg3, arg4, arg5); +if (_rpmio_debug) +fprintf(stderr, _("<-- %s(%d,%lu,%lu,%lu,%lu) rc %d\n"), __FUNCTION__, option, arg2, arg3, arg4, arg5, rc); + return rc; +} + +int rpmcapDump(const char * msg) +{ + int rc = -1; +#if defined(WITH_CAPNG) + if (msg) + printf("--- %s\n", msg); + + if (capng_get_caps_process()) + goto exit; + + uid_t uid, euid, suid; + gid_t gid, egid, sgid; + getresuid(&uid, &euid, &suid); + getresgid(&gid, &egid, &sgid); + printf("User credentials uid:%d euid:%d suid:%d\n", uid, euid, suid); + printf("Group credentials gid:%d egid:%d sgid:%d\n", gid, egid, sgid); + if (uid != euid || gid != egid) + printf("Note: app has mismatching credentials!!\n"); + + if (capng_have_capabilities(CAPNG_SELECT_CAPS) == CAPNG_NONE) + printf("Current capabilities: none\n"); + else + capng_print_caps_numeric(CAPNG_PRINT_STDOUT, CAPNG_SELECT_BOTH); + +#ifdef PR_SET_SECUREBITS + const char *ncomma = ""; + + printf("securebits flags: "); + rc = prctl(PR_GET_SECUREBITS, 1 << SECURE_NOROOT); + if (rc & (1 << SECURE_NOROOT)) { + printf("%sNOROOT", ncomma); + ncomma = ", "; + } + rc = prctl(PR_GET_SECUREBITS, 1 << SECURE_NOROOT_LOCKED); + if (rc & (1 << SECURE_NOROOT_LOCKED)) { + printf("%sNOROOT_LOCKED", ncomma); + ncomma = ", "; + } + rc = prctl(PR_GET_SECUREBITS, 1 << SECURE_NO_SETUID_FIXUP); + if (rc & (1 << SECURE_NO_SETUID_FIXUP)) { + printf("%sNO_SETUID_FIXUP", ncomma); + ncomma = ", "; + } + rc = prctl(PR_GET_SECUREBITS, 1 << SECURE_NO_SETUID_FIXUP_LOCKED); + if (rc & (1 << SECURE_NO_SETUID_FIXUP_LOCKED)) { + printf("%sNO_SETUID_FIXUP_LOCKED", ncomma); + ncomma = ", "; + } + if (*ncomma != ',') + printf("none"); + printf("\n"); +#endif + rc = 0; +exit: + fflush(stdout); +#endif /* WITH_CAPNG */ + return rc; +} + +int rpmcapTest(const char * s) +{ + int rc = -1; +#if defined(WITH_CAP) + cap_value_t pcap = 0; + if (cap_from_name(s, &pcap) != -1) + rc = cap_get_bound(pcap); +#endif /* WITH_CAP */ +#if defined(WITH_CAPNG) + const char *name = s; + if (!strncasecmp(name, "CAP_", sizeof("CAP_")-1)) + name += sizeof("CAP_")-1; + int cap = capng_name_to_capability(name); + if (cap >= 0) { + rpmcapDump("rpmcapTest"); + } +#endif /* WITH_CAPNG */ +if (_rpmcap_debug) +fprintf(stderr, "<-- %s(%s) rc %d\n", __FUNCTION__, s, rc); + return rc; +} + +int rpmcapDrop(const char * s) +{ + int rc = -1; +#if defined(WITH_CAP_XXX) + cap_value_t pcap = 0; + if (cap_from_name(s, &pcap) != -1) + rc = cap_drop_bound(pcap); +#endif /* WITH_CAP */ +#if defined(WITH_CAPNG) + const char *name = s; + if (!strncasecmp(name, "CAP_", sizeof("CAP_")-1)) + name += sizeof("CAP_")-1; + int cap = capng_name_to_capability(name); + if (cap >= 0) { + + rpmcapDump("rpmcapDrop before"); + + capng_clear(CAPNG_SELECT_BOTH); + capng_type_t type = CAPNG_EFFECTIVE|CAPNG_PERMITTED; + rc = capng_update(CAPNG_DROP, type, cap); + rc = capng_apply(CAPNG_SELECT_BOTH); + + rpmcapDump("rpmcapDrop after"); + } +#endif /* WITH_CAP */ +if (_rpmcap_debug) +fprintf(stderr, "<-- %s(%s) rc %d\n", __FUNCTION__, s, rc); + return rc; +} @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmcap.h ============================================================================ $ cvs diff -u -r1.1.2.1 -r1.1.2.2 rpmcap.h --- rpm/rpmio/rpmcap.h 4 May 2017 20:55:39 -0000 1.1.2.1 +++ rpm/rpmio/rpmcap.h 10 May 2017 16:57:56 -0000 1.1.2.2 @@ -67,6 +67,28 @@ */ int rpmcapVerifyFN(const char *fn, const char *s); +/** + * Get process capabity from pid. + * @param pid process id + * @return capability string (malloc'd) + */ +char * rpmcapGetP(pid_t pid); + +/** + * Set process capabity on pid. + * @param pid process id + * @param s capability string + * @return 0 on success + */ +int rpmcapSetP(pid_t pid, const char * s); + +int rpmcapDump(const char * msg); +int rpmcapTest(const char *s); +int rpmcapDrop(const char *s); + +int Prctl(int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5); + #ifdef __cplusplus } #endif @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmrpc.c ============================================================================ $ cvs diff -u -r2.99.2.11 -r2.99.2.12 rpmrpc.c --- rpm/rpmio/rpmrpc.c 3 May 2017 15:03:53 -0000 2.99.2.11 +++ rpm/rpmio/rpmrpc.c 10 May 2017 16:57:56 -0000 2.99.2.12 @@ -1807,30 +1807,6 @@ return rc; } -#if defined(HAVE_SYS_PRCTL_H) -#include <sys/prctl.h> -#endif -int Prctl(int option, unsigned long arg2, unsigned long arg3, - unsigned long arg4, unsigned long arg5); -int Prctl(int option, unsigned long arg2, unsigned long arg3, - unsigned long arg4, unsigned long arg5) -{ - int rc = -2; -#if defined(HAVE_PRCTL) - rc = prctl(option, arg2, arg3, arg4, arg5); -#elif defined(__linux__) && defined(SYS_prctl) - rc = syscall(SYS_prctl, option, arg2, arg3, arg4, arg5); -#else - errno = ENOSYS; -#endif - if (rc < 0) - rpmlog(RPMLOG_ERR, _("%s(%d,%lu,%lu,%lu,%lu) failed: %m\n"), - __FUNCTION__, option, arg2, arg3, arg4, arg5); -if (_rpmio_debug) -fprintf(stderr, _("<-- %s(%d,%lu,%lu,%lu,%lu) rc %d\n"), __FUNCTION__, option, arg2, arg3, arg4, arg5, rc); - return rc; -} - int Chown(const char * path, uid_t owner, gid_t group) { int rc = -2; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
