iputils.mk 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. ################################################################################
  2. #
  3. # iputils
  4. #
  5. ################################################################################
  6. # The original upstream was forked to the github repository in 2014 to
  7. # pull fixes from other distribution and centralize the changes after
  8. # the upstream seemed to have gone dormant. The fork contains the
  9. # latest changes including musl support, removing a libsysfs dependency
  10. # and IPv6 updates.
  11. # http://www.spinics.net/lists/netdev/msg279881.html
  12. IPUTILS_VERSION = 20190709
  13. IPUTILS_SITE = $(call github,iputils,iputils,s$(IPUTILS_VERSION))
  14. IPUTILS_LICENSE = GPL-2.0+, BSD-3-Clause
  15. IPUTILS_LICENSE_FILES = LICENSE Documentation/LICENSE.BSD3 Documentation/LICENSE.GPL2
  16. IPUTILS_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES)
  17. ifeq ($(BR2_PACKAGE_LIBCAP),y)
  18. IPUTILS_CONF_OPTS += -DUSE_CAP=true
  19. IPUTILS_DEPENDENCIES += libcap
  20. else
  21. IPUTILS_CONF_OPTS += -DUSE_CAP=false
  22. endif
  23. ifeq ($(BR2_PACKAGE_LIBIDN2),y)
  24. IPUTILS_CONF_OPTS += -DUSE_IDN=true
  25. IPUTILS_DEPENDENCIES += libidn2
  26. else
  27. IPUTILS_CONF_OPTS += -DUSE_IDN=false
  28. endif
  29. ifeq ($(BR2_PACKAGE_NETTLE),y)
  30. IPUTILS_CONF_OPTS += -DUSE_CRYPTO=nettle
  31. IPUTILS_DEPENDENCIES += nettle
  32. else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
  33. IPUTILS_CONF_OPTS += -DUSE_CRYPTO=gcrypt
  34. IPUTILS_DEPENDENCIES += libgcrypt
  35. else ifeq ($(BR2_PACKAGE_OPENSSL),y)
  36. IPUTILS_CONF_OPTS += -DUSE_CRYPTO=openssl
  37. IPUTILS_DEPENDENCIES += openssl
  38. else ifeq ($(BR2_PACKAGE_LINUX_HEADERS),y)
  39. IPUTILS_CONF_OPTS += -DUSE_CRYPTO=kernel
  40. IPUTILS_DEPENDENCIES += linux-headers
  41. else
  42. IPUTILS_CONF_OPTS += -DUSE_CRYPTO=none
  43. # BUILD_NINFOD=true and USE_CRYPTO=none cannot be combined
  44. IPUTILS_CONF_OPTS += -DBUILD_NINFOD=false
  45. endif
  46. # ninfod requires <pthread.h>
  47. ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
  48. IPUTILS_CONF_OPTS += -DBUILD_NINFOD=false
  49. endif
  50. ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
  51. IPUTILS_CONF_OPTS += -DUSE_GETTEXT=true
  52. else
  53. IPUTILS_CONF_OPTS += -DUSE_GETTEXT=false
  54. endif
  55. IPUTILS_CONF_OPTS += -DBUILD_TRACEROUTE6=true
  56. # XSL Stylesheets for DocBook 5 not packaged for buildroot
  57. IPUTILS_CONF_OPTS += -DBUILD_MANS=false -DBUILD_HTML_MANS=false
  58. # move iputils binaries to the same location as where Busybox installs
  59. # the corresponding applets, so that we have a single version of the
  60. # tools (from iputils)
  61. define IPUTILS_MOVE_BINARIES
  62. mv $(TARGET_DIR)/usr/bin/arping $(TARGET_DIR)/usr/sbin/arping
  63. $(if $(BR2_ROOTFS_MERGED_USR),,\
  64. mv $(TARGET_DIR)/usr/bin/ping $(TARGET_DIR)/bin/ping)
  65. mv $(TARGET_DIR)/usr/bin/tftpd $(TARGET_DIR)/usr/sbin/tftpd
  66. endef
  67. IPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_MOVE_BINARIES
  68. # upstream requires distros to create symlink
  69. define IPUTILS_CREATE_PING6_SYMLINK
  70. ln -sf $(TARGET_DIR)/bin/ping $(TARGET_DIR)/bin/ping6
  71. endef
  72. IPUTILS_POST_INSTALL_TARGET_HOOKS += IPUTILS_CREATE_PING6_SYMLINK
  73. # handle permissions ourselves
  74. IPUTILS_CONF_OPTS += -DNO_SETCAP_OR_SUID=true
  75. ifeq ($(BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES),y)
  76. define IPUTILS_PERMISSIONS
  77. /usr/sbin/arping f 755 0 0 - - - - -
  78. /usr/bin/clockdiff f 755 0 0 - - - - -
  79. |xattr cap_net_raw+p
  80. /bin/ping f 755 0 0 - - - - -
  81. |xattr cap_net_raw+p
  82. /usr/bin/traceroute6 f 755 0 0 - - - - -
  83. |xattr cap_net_raw+p
  84. endef
  85. else
  86. define IPUTILS_PERMISSIONS
  87. /usr/sbin/arping f 755 0 0 - - - - -
  88. /usr/bin/clockdiff f 4755 0 0 - - - - -
  89. /bin/ping f 4755 0 0 - - - - -
  90. /usr/bin/traceroute6 f 4755 0 0 - - - - -
  91. endef
  92. endif
  93. $(eval $(meson-package))