1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# iputils 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun# The original upstream was forked to the github repository in 2014 to 8*4882a593Smuzhiyun# pull fixes from other distribution and centralize the changes after 9*4882a593Smuzhiyun# the upstream seemed to have gone dormant. The fork contains the 10*4882a593Smuzhiyun# latest changes including musl support, removing a libsysfs dependency 11*4882a593Smuzhiyun# and IPv6 updates. 12*4882a593Smuzhiyun# http://www.spinics.net/lists/netdev/msg279881.html 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunIPUTILS_VERSION = 20210722 15*4882a593SmuzhiyunIPUTILS_SITE = $(call github,iputils,iputils,$(IPUTILS_VERSION)) 16*4882a593SmuzhiyunIPUTILS_LICENSE = GPL-2.0+, BSD-3-Clause 17*4882a593SmuzhiyunIPUTILS_LICENSE_FILES = LICENSE Documentation/LICENSE.BSD3 Documentation/LICENSE.GPL2 18*4882a593SmuzhiyunIPUTILS_CPE_ID_VENDOR = iputils_project 19*4882a593SmuzhiyunIPUTILS_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun# Selectively build binaries 22*4882a593SmuzhiyunIPUTILS_CONF_OPTS += \ 23*4882a593Smuzhiyun -DBUILD_CLOCKDIFF=$(if $(BR2_PACKAGE_IPUTILS_CLOCKDIFF),true,false) \ 24*4882a593Smuzhiyun -DBUILD_RARPD=$(if $(BR2_PACKAGE_IPUTILS_RARPD),true,false) \ 25*4882a593Smuzhiyun -DBUILD_RDISC=$(if $(BR2_PACKAGE_IPUTILS_RDISC),true,false) \ 26*4882a593Smuzhiyun -DENABLE_RDISC_SERVER=$(if $(BR2_PACKAGE_IPUTILS_RDISC_SERVER),true,false) \ 27*4882a593Smuzhiyun -DBUILD_TRACEPATH=$(if $(BR2_PACKAGE_IPUTILS_TRACEPATH),true,false) \ 28*4882a593Smuzhiyun -DBUILD_TRACEROUTE6=$(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),true,false) \ 29*4882a593Smuzhiyun -DBUILD_NINFOD=$(if $(BR2_PACKAGE_IPUTILS_NINFOD),true,false) \ 30*4882a593Smuzhiyun -DSKIP_TESTS=true 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun# Selectively select the appropriate SELinux refpolicy modules 33*4882a593SmuzhiyunIPUTILS_SELINUX_MODULES = \ 34*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_ARPING),netutils) \ 35*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_PING),netutils) \ 36*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_TRACEPATH),netutils) \ 37*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),netutils) \ 38*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_RDISC),rdisc) \ 39*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_TFTPD),tftp) 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun# 42*4882a593Smuzhiyun# arping 43*4882a593Smuzhiyun# 44*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_IPUTILS_ARPING),y) 45*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DBUILD_ARPING=true 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun# move some binaries to the same location as where Busybox installs 48*4882a593Smuzhiyun# the corresponding applets, so that we have a single version of the 49*4882a593Smuzhiyun# tools (from iputils) 50*4882a593Smuzhiyundefine IPUTILS_MOVE_ARPING_BINARY 51*4882a593Smuzhiyun mv $(TARGET_DIR)/usr/bin/arping $(TARGET_DIR)/usr/sbin/arping 52*4882a593Smuzhiyunendef 53*4882a593SmuzhiyunIPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_MOVE_ARPING_BINARY 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunelse 56*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DBUILD_ARPING=false 57*4882a593Smuzhiyunendif 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun# 60*4882a593Smuzhiyun# ping 61*4882a593Smuzhiyun# 62*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_IPUTILS_PING),y) 63*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DBUILD_PING=true 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun# same reason to move the ping binary as for arping 66*4882a593Smuzhiyunifeq ($(BR2_ROOTFS_MERGED_USR),) 67*4882a593Smuzhiyundefine IPUTILS_MOVE_PING_BINARY 68*4882a593Smuzhiyun mv $(TARGET_DIR)/usr/bin/ping $(TARGET_DIR)/bin/ping 69*4882a593Smuzhiyunendef 70*4882a593SmuzhiyunIPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_MOVE_PING_BINARY 71*4882a593Smuzhiyunendif 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun# upstream requires distros to create symlink 74*4882a593Smuzhiyundefine IPUTILS_CREATE_PING6_SYMLINK 75*4882a593Smuzhiyun ln -sf ping $(TARGET_DIR)/bin/ping6 76*4882a593Smuzhiyunendef 77*4882a593SmuzhiyunIPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_CREATE_PING6_SYMLINK 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunelse 80*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DBUILD_PING=false 81*4882a593Smuzhiyunendif 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun# 84*4882a593Smuzhiyun# tftpd 85*4882a593Smuzhiyun# 86*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_IPUTILS_TFTPD),y) 87*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DBUILD_TFTPD=true 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunelse 90*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DBUILD_TFTPD=false 91*4882a593Smuzhiyunendif 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun# Handle libraries 94*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCAP),y) 95*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DUSE_CAP=true 96*4882a593SmuzhiyunIPUTILS_DEPENDENCIES += libcap 97*4882a593Smuzhiyunelse 98*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DUSE_CAP=false 99*4882a593Smuzhiyunendif 100*4882a593Smuzhiyun 101*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBIDN2),y) 102*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DUSE_IDN=true 103*4882a593SmuzhiyunIPUTILS_DEPENDENCIES += libidn2 104*4882a593Smuzhiyunelse 105*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DUSE_IDN=false 106*4882a593Smuzhiyunendif 107*4882a593Smuzhiyun 108*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SYSTEMD),y) 109*4882a593SmuzhiyunIPUTILS_DEPENDENCIES += systemd 110*4882a593Smuzhiyunendif 111*4882a593Smuzhiyun 112*4882a593Smuzhiyunifeq ($(BR2_SYSTEM_ENABLE_NLS),y) 113*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DUSE_GETTEXT=true 114*4882a593Smuzhiyunelse 115*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DUSE_GETTEXT=false 116*4882a593Smuzhiyunendif 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun# XSL Stylesheets for DocBook 5 not packaged for buildroot 119*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DBUILD_MANS=false -DBUILD_HTML_MANS=false 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun# handle permissions ourselves 122*4882a593SmuzhiyunIPUTILS_CONF_OPTS += -DNO_SETCAP_OR_SUID=true 123*4882a593Smuzhiyunifeq ($(BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES),y) 124*4882a593Smuzhiyundefine IPUTILS_PERMISSIONS 125*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_ARPING),\ 126*4882a593Smuzhiyun /usr/sbin/arping f 755 0 0 - - - - -,) 127*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_CLOCKDIFF),\ 128*4882a593Smuzhiyun /usr/bin/clockdiff f 755 0 0 - - - - - 129*4882a593Smuzhiyun |xattr cap_net_raw+p,) 130*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_PING),\ 131*4882a593Smuzhiyun /bin/ping f 755 0 0 - - - - - 132*4882a593Smuzhiyun |xattr cap_net_raw+p,) 133*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),\ 134*4882a593Smuzhiyun /usr/bin/traceroute6 f 755 0 0 - - - - - 135*4882a593Smuzhiyun |xattr cap_net_raw+p,) 136*4882a593Smuzhiyunendef 137*4882a593Smuzhiyunelse 138*4882a593Smuzhiyundefine IPUTILS_PERMISSIONS 139*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_ARPING),\ 140*4882a593Smuzhiyun /usr/sbin/arping f 755 0 0 - - - - -,) 141*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_CLOCKDIFF),\ 142*4882a593Smuzhiyun /usr/bin/clockdiff f 4755 0 0 - - - - -,) 143*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_PING),\ 144*4882a593Smuzhiyun /bin/ping f 4755 0 0 - - - - -,) 145*4882a593Smuzhiyun $(if $(BR2_PACKAGE_IPUTILS_TRACEROUTE6),\ 146*4882a593Smuzhiyun /usr/bin/traceroute6 f 4755 0 0 - - - - -,) 147*4882a593Smuzhiyunendef 148*4882a593Smuzhiyunendif 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun$(eval $(meson-package)) 151