2015-03-13 08:38:56 +00:00
|
|
|
#
|
2016-02-12 19:46:31 +00:00
|
|
|
# Copyright (C) 2006-2016 OpenWrt.org
|
2006-06-27 00:35:46 +00:00
|
|
|
#
|
|
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
|
|
# See /LICENSE for more information.
|
|
|
|
#
|
2005-03-31 22:25:58 +00:00
|
|
|
|
2005-03-06 03:34:52 +00:00
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
|
2005-03-31 22:25:58 +00:00
|
|
|
PKG_NAME:=busybox
|
2018-04-04 05:22:10 +00:00
|
|
|
PKG_VERSION:=1.28.3
|
busybox: udhcpc: no MSG_DONTROUTE when sending packet
This reverts a change made in Sep 2017 [1] which introduced
MSG_DONTROUTE flag to prevent udhcpc from reaching out to servers on a
different subnet. That change violates RFC2131 by forcing fully
configured clients, who got their configurations through an offer
relayed by a DHCP relay, from renewing through a unicast request
directly to the DHCP server, resulting in the client resorting to
boradcasting lease extension requests instead of unicasting them,
further breaking RFC2131.
The problem with MSG_DONTROUTE appears when talking to a properly
configured DHCP server that rejects non-compliant requests. Such server
will reject lease extension attempts sent via broadcast rather than
unicast, as is the case with Finnish ISPs Telia and DNA as well as
Estonian ISP Starman. Once the lease expires without renewal, udhcpc
enters init mode, taking down the interfaces with it, and thus causing
interruption on every lease expiry. On some ISPs (such as the ones
mentioned above) that can be once every 10-20 minutes. The interruptions
appear in the logs as such:
----
udhcpc: sending renew to x.x.x.x
udhcpc: send: Network unreachable
udhcpc: sending renew to 0.0.0.0
udhcpc: sending renew to 0.0.0.0
...
udhcpc: lease lost, entering init state
Interface 'wan' has lost the connection
Interface 'wan' is now down
Network alias 'eth0' link is down
udhcpc: sending select for y.y.y.y
udhcpc: lease of y.y.y.y obtained, lease time 1200
Network alias 'eth0' link is up
Interface 'wan' is now up
----
During lease extension, a fully configured client should be able to
reach out to the server from which it recieved the lease for extension,
regardless in which network it is; that's up to the gateway to find. [2]
This patch ensures that.
[1]
http://lists.busybox.net/pipermail/busybox-cvs/2017-September/037402.html
[2]
https://www.netmanias.com/en/post/techdocs/6000/dhcp-network-protocol/
understanding-dhcp-relay-agents
Signed-off-by: Adi Shammout <adi.shammout@outlook.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase]
2018-06-06 19:53:24 +00:00
|
|
|
PKG_RELEASE:=3
|
2010-11-11 16:23:16 +00:00
|
|
|
PKG_FLAGS:=essential
|
2005-03-31 22:25:58 +00:00
|
|
|
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
2016-10-14 08:09:47 +00:00
|
|
|
PKG_SOURCE_URL:=https://www.busybox.net/downloads \
|
|
|
|
http://sources.buildroot.net
|
2018-04-04 05:22:10 +00:00
|
|
|
PKG_HASH:=ad0d22033f23e696f9a71a4c2f9210194dda39b024a79151f4ac278995332a6e
|
2005-03-31 22:25:58 +00:00
|
|
|
|
2014-08-18 13:10:08 +00:00
|
|
|
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
|
2010-09-07 10:00:34 +00:00
|
|
|
PKG_BUILD_PARALLEL:=1
|
2014-06-30 08:19:48 +00:00
|
|
|
PKG_CHECK_FORMAT_SECURITY:=0
|
2017-12-10 17:01:42 +00:00
|
|
|
PKG_INSTALL:=1
|
2010-09-07 10:00:34 +00:00
|
|
|
|
2018-01-08 22:47:06 +00:00
|
|
|
#Busybox use it's own PIE config flag and LDFLAGS are used with ld, not gcc.
|
|
|
|
PKG_ASLR_PIE:=0
|
|
|
|
|
2014-11-03 09:56:44 +00:00
|
|
|
PKG_LICENSE:=GPL-2.0
|
2012-10-19 15:34:28 +00:00
|
|
|
PKG_LICENSE_FILES:=LICENSE archival/libarchive/bz/LICENSE
|
2017-09-28 02:55:46 +00:00
|
|
|
PKG_CPE_ID:=cpe:/a:busybox:busybox
|
2012-10-19 15:34:28 +00:00
|
|
|
|
2006-06-21 02:32:39 +00:00
|
|
|
include $(INCLUDE_DIR)/package.mk
|
2005-03-31 22:25:58 +00:00
|
|
|
|
2014-01-31 13:50:16 +00:00
|
|
|
ifeq ($(DUMP),)
|
2016-12-25 15:40:05 +00:00
|
|
|
STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep '^CONFIG_BUSYBOX_' $(TOPDIR)/.config | mkhash md5)
|
2014-01-31 13:50:16 +00:00
|
|
|
endif
|
|
|
|
|
2017-05-03 09:32:40 +00:00
|
|
|
BUSYBOX_SYM=$(if $(CONFIG_BUSYBOX_CUSTOM),CONFIG,DEFAULT)
|
|
|
|
BUSYBOX_IF_ENABLED=$(if $(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_$(1)),$(2))
|
|
|
|
|
2006-04-14 01:22:55 +00:00
|
|
|
define Package/busybox
|
2006-09-24 20:49:31 +00:00
|
|
|
SECTION:=base
|
|
|
|
CATEGORY:=Base system
|
2016-06-07 06:58:31 +00:00
|
|
|
MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
2006-09-24 20:49:31 +00:00
|
|
|
TITLE:=Core utilities for embedded Linux
|
|
|
|
URL:=http://busybox.net/
|
2016-05-23 12:30:57 +00:00
|
|
|
DEPENDS:=+BUSYBOX_USE_LIBRPC:librpc +BUSYBOX_CONFIG_PAM:libpam +BUSYBOX_CONFIG_NTPD:jsonfilter
|
2006-09-24 20:49:31 +00:00
|
|
|
MENU:=1
|
2017-05-02 16:52:53 +00:00
|
|
|
ALTERNATIVES:=\
|
2018-05-04 08:47:28 +00:00
|
|
|
$(call BUSYBOX_IF_ENABLED,FLOCK, 100:/usr/bin/flock:/bin/busybox) \
|
2017-05-03 09:32:40 +00:00
|
|
|
$(call BUSYBOX_IF_ENABLED,FREE, 100:/usr/bin/free:/bin/busybox) \
|
2018-05-04 08:43:12 +00:00
|
|
|
$(call BUSYBOX_IF_ENABLED,IP, 100:/sbin/ip:/bin/busybox) \
|
|
|
|
$(call BUSYBOX_IF_ENABLED,KILL, 100:/bin/kill:/bin/busybox) \
|
2017-05-03 09:32:40 +00:00
|
|
|
$(call BUSYBOX_IF_ENABLED,PGREP, 100:/usr/bin/pgrep:/bin/busybox) \
|
|
|
|
$(call BUSYBOX_IF_ENABLED,PKILL, 100:/usr/bin/pkill:/bin/busybox) \
|
|
|
|
$(call BUSYBOX_IF_ENABLED,PMAP, 100:/usr/bin/pmap:/bin/busybox) \
|
2018-05-04 08:43:12 +00:00
|
|
|
$(call BUSYBOX_IF_ENABLED,PS, 100:/bin/ps:/bin/busybox) \
|
2017-05-03 09:32:40 +00:00
|
|
|
$(call BUSYBOX_IF_ENABLED,PWDX, 100:/usr/bin/pwdx:/bin/busybox) \
|
|
|
|
$(call BUSYBOX_IF_ENABLED,TOP, 100:/usr/bin/top:/bin/busybox) \
|
|
|
|
$(call BUSYBOX_IF_ENABLED,UPTIME, 100:/usr/bin/uptime:/bin/busybox) \
|
2018-05-04 08:43:12 +00:00
|
|
|
$(call BUSYBOX_IF_ENABLED,WATCH, 100:/bin/watch:/bin/busybox) \
|
2017-05-02 16:52:53 +00:00
|
|
|
|
2006-10-10 15:30:50 +00:00
|
|
|
endef
|
|
|
|
|
2006-10-10 15:45:36 +00:00
|
|
|
define Package/busybox/description
|
2007-09-07 08:34:51 +00:00
|
|
|
The Swiss Army Knife of embedded Linux.
|
|
|
|
It slices, it dices, it makes Julian Fries.
|
2006-10-10 15:45:36 +00:00
|
|
|
endef
|
|
|
|
|
2006-10-10 15:30:50 +00:00
|
|
|
define Package/busybox/config
|
2010-04-16 10:42:10 +00:00
|
|
|
source "$(SOURCE)/Config.in"
|
2006-04-14 01:22:55 +00:00
|
|
|
endef
|
2005-03-31 22:25:58 +00:00
|
|
|
|
2016-01-28 22:42:25 +00:00
|
|
|
# don't create a version string containing the actual timestamp
|
|
|
|
export KCONFIG_NOTIMESTAMP=1
|
|
|
|
|
2005-03-31 22:25:58 +00:00
|
|
|
|
2014-01-31 13:50:16 +00:00
|
|
|
LDLIBS:=m crypt
|
2017-12-10 17:01:42 +00:00
|
|
|
LDLIBS += $(call BUSYBOX_IF_ENABLED,PAM,pam pam_misc pthread)
|
2014-01-31 13:50:16 +00:00
|
|
|
ifdef CONFIG_BUSYBOX_USE_LIBRPC
|
|
|
|
LDLIBS += rpc
|
|
|
|
endif
|
2017-12-10 17:01:42 +00:00
|
|
|
ifeq ($(CONFIG_USE_GLIBC),y)
|
|
|
|
LDLIBS += $(call BUSYBOX_IF_ENABLED,NSLOOKUP_OPENWRT,resolv)
|
2014-08-18 13:10:08 +00:00
|
|
|
endif
|
|
|
|
|
2017-12-10 17:01:42 +00:00
|
|
|
MAKE_VARS :=
|
|
|
|
MAKE_FLAGS += \
|
2017-12-10 17:04:53 +00:00
|
|
|
EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
|
|
|
|
EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
|
2017-12-10 17:01:42 +00:00
|
|
|
LDLIBS="$(LDLIBS)" \
|
|
|
|
SKIP_STRIP=y
|
|
|
|
ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
|
|
|
|
MAKE_FLAGS += V=1
|
2017-04-12 16:02:30 +00:00
|
|
|
endif
|
|
|
|
|
2017-12-10 17:01:42 +00:00
|
|
|
MAKE_INSTALL_FLAGS += CONFIG_PREFIX="$(PKG_INSTALL_DIR)"
|
|
|
|
|
|
|
|
|
|
|
|
define Build/Configure
|
|
|
|
grep 'CONFIG_BUSYBOX_$(BUSYBOX_SYM)' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_BUSYBOX_$(BUSYBOX_SYM)_\\(.*\\),\\1CONFIG_\\2,g" > $(PKG_BUILD_DIR)/.config
|
|
|
|
yes 'n' | $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) oldconfig
|
2009-03-22 20:18:19 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
define Package/busybox/install
|
2007-01-08 00:53:24 +00:00
|
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
2009-03-22 20:18:19 +00:00
|
|
|
$(CP) $(PKG_INSTALL_DIR)/* $(1)/
|
2017-04-04 13:05:11 +00:00
|
|
|
ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_CROND),)
|
2013-12-17 17:17:00 +00:00
|
|
|
$(INSTALL_BIN) ./files/cron $(1)/etc/init.d/cron
|
2017-02-06 22:26:49 +00:00
|
|
|
endif
|
2017-04-04 13:05:11 +00:00
|
|
|
ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_NTPD),)
|
2013-12-17 17:17:00 +00:00
|
|
|
$(INSTALL_BIN) ./files/sysntpd $(1)/etc/init.d/sysntpd
|
2014-11-28 11:41:25 +00:00
|
|
|
$(INSTALL_BIN) ./files/ntpd-hotplug $(1)/usr/sbin/ntpd-hotplug
|
2017-02-06 22:26:49 +00:00
|
|
|
endif
|
2006-05-31 23:36:37 +00:00
|
|
|
-rm -rf $(1)/lib64
|
2006-04-14 03:03:32 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
$(eval $(call BuildPackage,busybox))
|