buildrootschalter/package/net-tools/net-tools.mk
Andrew Ruder 643baa1872 hostname: fix conflicting installs of /bin/hostname
Surprisingly long-standing issue with conflicting /bin/hostname
installs.  Reported as early as November 2005 by Joseph Dupre.

All together at one point or another there are at least 4 possible
sources of /bin/hostname:

        busybox
        util-linux
        coreutils
        net-tools

Buildroot depends on the -F flag being available in the default
/etc/inittab.  Out of the 4 listed projects only net-tools and buildroot
for sure support the -F flag.  I'm a little unclear on util-linux as it
has been removed entirely (in favor of net-tools) for some time.

As of coreutils 6.9.90 (2007-12-01), coreutils does not install its
/bin/hostname by default.  The following commit reenabled its build:

d6e58cb coreutils: fixed missing hostname (Sep 2010)

This was done to fix a build error in coreutils regarding help2man.  A
later patch:

30c5105 coreutils: bump to version 8.21

disabled the help2man functionality entirely but left hostname being
installed.

On a very related note, net-tools now contains an obsolete check to add
util-linux as a dependency to force it to build first (so that net-tools
ends up with /bin/hostname).

This patch fixes both of these issues so that hostname always comes from
one of two places:

    busybox
    net-tools

Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Co-authored-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-15 00:43:41 +02:00

54 lines
1.6 KiB
Makefile

################################################################################
#
# net-tools
#
################################################################################
NET_TOOLS_VERSION = 3eb367aedf1280f35105ede465c350a39b55fa91
NET_TOOLS_SITE = git://git.code.sf.net/p/net-tools/code
NET_TOOLS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
NET_TOOLS_LDFLAGS = $(TARGET_LDFLAGS) \
$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl)
NET_TOOLS_LICENSE = GPLv2+
NET_TOOLS_LICENSE_FILES = COPYING
# Install after busybox for the full-blown versions
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
NET_TOOLS_DEPENDENCIES += busybox
endif
define NET_TOOLS_CONFIGURE_CMDS
(cd $(@D); yes "" | ./configure.sh config.in )
endef
# Enable I18N when appropiate
ifeq ($(BR2_ENABLE_LOCALE),y)
define NET_TOOLS_ENABLE_I18N
$(SED) 's:I18N 0:I18N 1:' $(@D)/config.h
endef
endif
# Enable IPv6 when appropiate
ifeq ($(BR2_INET_IPV6),y)
define NET_TOOLS_ENABLE_IPV6
$(SED) 's:_AFINET6 0:_AFINET6 1:' $(@D)/config.h
endef
endif
NET_TOOLS_POST_CONFIGURE_HOOKS += NET_TOOLS_ENABLE_I18N NET_TOOLS_ENABLE_IPV6
define NET_TOOLS_BUILD_CMDS
$(TARGET_MAKE_ENV) AR="$(TARGET_AR)" CC="$(TARGET_CC)" \
LDFLAGS="$(NET_TOOLS_LDFLAGS)" $(MAKE) -C $(@D)
endef
# install renames conflicting binaries, update does not
# ifconfig & route reside in /sbin for busybox
define NET_TOOLS_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) update
mv -f $(TARGET_DIR)/bin/ifconfig $(TARGET_DIR)/sbin/ifconfig
mv -f $(TARGET_DIR)/bin/route $(TARGET_DIR)/sbin/route
endef
$(eval $(generic-package))