Refresh patches, delete patches backported from upstream. Signed-off-by: Magnus Kroken <mkro...@gmail.com> --- Some BusyBox config symbols have been renamed and/or moved from being global to applet-specific. I have attempted to retain the same behavior as previous config defaults would.
Compile and run-time tested on x86/generic and powerpc/mpc85xx. Size comparison with default build settings: 210075 busybox_1.27.1-1_i386_pentium4.ipk 210107 busybox_1.26.2-7_i386_pentium4.ipk package/utils/busybox/Config-defaults.in | 346 ++++++++++++++------- package/utils/busybox/Makefile | 6 +- package/utils/busybox/config/Config.in | 32 +- .../patches/120-remove_uclibc_rpc_check.patch | 5 +- .../busybox/patches/200-udhcpc_reduce_msgs.patch | 4 +- .../patches/201-udhcpc_changed_ifindex.patch | 2 +- .../patches/203-udhcpc_renew_no_deconfig.patch | 2 +- .../patches/301-ip-link-fix-netlink-msg-size.patch | 2 +- .../302-ip-rule-add-suppress-prefixlength.patch | 145 --------- ...t-touch-file-with-x-when-modified_count-0.patch | 100 ------ ...uching-a-new-file-with-ZZ-when-no-editing.patch | 53 ---- 11 files changed, 264 insertions(+), 433 deletions(-) delete mode 100644 package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch delete mode 100644 package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch delete mode 100644 package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in index 9438cb26e7..dd497f24cf 100644 --- a/package/utils/busybox/Config-defaults.in +++ b/package/utils/busybox/Config-defaults.in @@ -13,9 +13,6 @@ config BUSYBOX_DEFAULT_INCLUDE_SUSv2 config BUSYBOX_DEFAULT_USE_PORTABLE_CODE bool default n -config BUSYBOX_DEFAULT_PLATFORM_LINUX - bool - default y config BUSYBOX_DEFAULT_SHOW_USAGE bool default y @@ -82,6 +79,9 @@ config BUSYBOX_DEFAULT_FEATURE_SYSLOG config BUSYBOX_DEFAULT_FEATURE_HAVE_RPC bool default n +config BUSYBOX_DEFAULT_PLATFORM_LINUX + bool + default y config BUSYBOX_DEFAULT_STATIC bool default n @@ -196,9 +196,6 @@ config BUSYBOX_DEFAULT_FEATURE_FAST_TOP config BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS bool default n -config BUSYBOX_DEFAULT_FEATURE_USE_TERMIOS - bool - default n config BUSYBOX_DEFAULT_FEATURE_EDITING bool default y @@ -355,6 +352,9 @@ config BUSYBOX_DEFAULT_XZ config BUSYBOX_DEFAULT_BZIP2 bool default n +config BUSYBOX_DEFAULT_FEATURE_BZIP2_DECOMPRESS + bool + default y config BUSYBOX_DEFAULT_CPIO bool default n @@ -382,6 +382,9 @@ config BUSYBOX_DEFAULT_GZIP_FAST config BUSYBOX_DEFAULT_FEATURE_GZIP_LEVELS bool default n +config BUSYBOX_DEFAULT_FEATURE_GZIP_DECOMPRESS + bool + default y config BUSYBOX_DEFAULT_LZOP bool default n @@ -403,6 +406,9 @@ config BUSYBOX_DEFAULT_RPM2CPIO config BUSYBOX_DEFAULT_TAR bool default y +config BUSYBOX_DEFAULT_FEATURE_TAR_LONG_OPTIONS + bool + default n config BUSYBOX_DEFAULT_FEATURE_TAR_CREATE bool default y @@ -421,9 +427,6 @@ config BUSYBOX_DEFAULT_FEATURE_TAR_OLDSUN_COMPATIBILITY config BUSYBOX_DEFAULT_FEATURE_TAR_GNU_EXTENSIONS bool default y -config BUSYBOX_DEFAULT_FEATURE_TAR_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_FEATURE_TAR_TO_COMMAND bool default n @@ -439,16 +442,25 @@ config BUSYBOX_DEFAULT_FEATURE_TAR_SELINUX config BUSYBOX_DEFAULT_UNZIP bool default n -config BUSYBOX_DEFAULT_BASENAME +config BUSYBOX_DEFAULT_FEATURE_UNZIP_CDF bool - default y -config BUSYBOX_DEFAULT_CAL + default n +config BUSYBOX_DEFAULT_FEATURE_UNZIP_BZIP2 bool default n +config BUSYBOX_DEFAULT_FEATURE_UNZIP_LZMA + bool + default n +config BUSYBOX_DEFAULT_FEATURE_UNZIP_XZ + bool + default n +config BUSYBOX_DEFAULT_BASENAME + bool + default y config BUSYBOX_DEFAULT_CAT bool default y -config BUSYBOX_DEFAULT_CATV +config BUSYBOX_DEFAULT_FEATURE_CATV bool default n config BUSYBOX_DEFAULT_CHGRP @@ -559,6 +571,9 @@ config BUSYBOX_DEFAULT_EXPR config BUSYBOX_DEFAULT_EXPR_MATH_SUPPORT_64 bool default y +config BUSYBOX_DEFAULT_FACTOR + bool + default n config BUSYBOX_DEFAULT_FALSE bool default y @@ -589,6 +604,9 @@ config BUSYBOX_DEFAULT_INSTALL config BUSYBOX_DEFAULT_FEATURE_INSTALL_LONG_OPTIONS bool default n +config BUSYBOX_DEFAULT_LINK + bool + default n config BUSYBOX_DEFAULT_LN bool default y @@ -607,6 +625,9 @@ config BUSYBOX_DEFAULT_FEATURE_LS_FOLLOWLINKS config BUSYBOX_DEFAULT_FEATURE_LS_RECURSIVE bool default y +config BUSYBOX_DEFAULT_FEATURE_LS_WIDTH + bool + default y config BUSYBOX_DEFAULT_FEATURE_LS_SORTFILES bool default y @@ -652,6 +673,9 @@ config BUSYBOX_DEFAULT_MKFIFO config BUSYBOX_DEFAULT_MKNOD bool default y +config BUSYBOX_DEFAULT_MKTEMP + bool + default y config BUSYBOX_DEFAULT_MV bool default y @@ -661,12 +685,21 @@ config BUSYBOX_DEFAULT_FEATURE_MV_LONG_OPTIONS config BUSYBOX_DEFAULT_NICE bool default y +config BUSYBOX_DEFAULT_NL + bool + default n config BUSYBOX_DEFAULT_NOHUP bool default n +config BUSYBOX_DEFAULT_NPROC + bool + default n config BUSYBOX_DEFAULT_OD bool default n +config BUSYBOX_DEFAULT_PASTE + bool + default n config BUSYBOX_DEFAULT_PRINTENV bool default n @@ -697,6 +730,9 @@ config BUSYBOX_DEFAULT_FEATURE_RMDIR_LONG_OPTIONS config BUSYBOX_DEFAULT_SEQ bool default y +config BUSYBOX_DEFAULT_SHRED + bool + default n config BUSYBOX_DEFAULT_SHUF bool default n @@ -769,6 +805,9 @@ config BUSYBOX_DEFAULT_TEST2 config BUSYBOX_DEFAULT_FEATURE_TEST_64 bool default y +config BUSYBOX_DEFAULT_TIMEOUT + bool + default n config BUSYBOX_DEFAULT_TOUCH bool default y @@ -829,6 +868,9 @@ config BUSYBOX_DEFAULT_FEATURE_WC_LARGE config BUSYBOX_DEFAULT_WHO bool default n +config BUSYBOX_DEFAULT_W + bool + default n config BUSYBOX_DEFAULT_USERS bool default n @@ -844,9 +886,6 @@ config BUSYBOX_DEFAULT_FEATURE_VERBOSE config BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS bool default y -config BUSYBOX_DEFAULT_FEATURE_AUTOWIDTH - bool - default y config BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE bool default y @@ -916,9 +955,6 @@ config BUSYBOX_DEFAULT_SETLOGCONS config BUSYBOX_DEFAULT_SHOWKEY bool default n -config BUSYBOX_DEFAULT_MKTEMP - bool - default y config BUSYBOX_DEFAULT_PIPE_PROGRESS bool default n @@ -934,10 +970,10 @@ config BUSYBOX_DEFAULT_FEATURE_RUN_PARTS_FANCY config BUSYBOX_DEFAULT_START_STOP_DAEMON bool default y -config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_FANCY +config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS bool default n -config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS +config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_FANCY bool default n config BUSYBOX_DEFAULT_WHICH @@ -1174,7 +1210,7 @@ config BUSYBOX_DEFAULT_FEATURE_INIT_SCTTY config BUSYBOX_DEFAULT_FEATURE_INIT_SYSLOG bool default n -config BUSYBOX_DEFAULT_FEATURE_EXTRA_QUIET +config BUSYBOX_DEFAULT_FEATURE_INIT_QUIET bool default n config BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS @@ -1186,12 +1222,6 @@ config BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE config BUSYBOX_DEFAULT_FEATURE_INIT_MODIFY_CMDLINE bool default n -config BUSYBOX_DEFAULT_MESG - bool - default n -config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP - bool - default n config BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS bool default y @@ -1294,6 +1324,9 @@ config BUSYBOX_DEFAULT_FEATURE_SU_SYSLOG config BUSYBOX_DEFAULT_FEATURE_SU_CHECKS_SHELLS bool default n +config BUSYBOX_DEFAULT_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY + bool + default n config BUSYBOX_DEFAULT_SULOGIN bool default n @@ -1330,12 +1363,6 @@ config BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT config BUSYBOX_DEFAULT_MODINFO bool default n -config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE - bool - default n -config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED - bool - default n config BUSYBOX_DEFAULT_MODPROBE bool default n @@ -1345,10 +1372,13 @@ config BUSYBOX_DEFAULT_FEATURE_MODPROBE_BLACKLIST config BUSYBOX_DEFAULT_RMMOD bool default n -config BUSYBOX_DEFAULT_FEATURE_2_4_MODULES +config BUSYBOX_DEFAULT_FEATURE_CMDLINE_MODULE_OPTIONS bool default n -config BUSYBOX_DEFAULT_FEATURE_INSMOD_TRY_MMAP +config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED + bool + default n +config BUSYBOX_DEFAULT_FEATURE_2_4_MODULES bool default n config BUSYBOX_DEFAULT_FEATURE_INSMOD_VERSION_CHECKING @@ -1369,6 +1399,9 @@ config BUSYBOX_DEFAULT_FEATURE_INSMOD_LOAD_MAP_FULL config BUSYBOX_DEFAULT_FEATURE_CHECK_TAINTED_MODULE bool default n +config BUSYBOX_DEFAULT_FEATURE_INSMOD_TRY_MMAP + bool + default n config BUSYBOX_DEFAULT_FEATURE_MODUTILS_ALIAS bool default n @@ -1399,12 +1432,27 @@ config BUSYBOX_DEFAULT_FEATURE_BLKID_TYPE config BUSYBOX_DEFAULT_BLOCKDEV bool default n +config BUSYBOX_DEFAULT_CAL + bool + default n +config BUSYBOX_DEFAULT_CHRT + bool + default n config BUSYBOX_DEFAULT_DMESG bool default y config BUSYBOX_DEFAULT_FEATURE_DMESG_PRETTY bool default y +config BUSYBOX_DEFAULT_EJECT + bool + default n +config BUSYBOX_DEFAULT_FEATURE_EJECT_SCSI + bool + default n +config BUSYBOX_DEFAULT_FALLOCATE + bool + default n config BUSYBOX_DEFAULT_FATATTR bool default n @@ -1462,6 +1510,9 @@ config BUSYBOX_DEFAULT_FREERAMDISK config BUSYBOX_DEFAULT_FSCK_MINIX bool default n +config BUSYBOX_DEFAULT_FSFREEZE + bool + default n config BUSYBOX_DEFAULT_FSTRIM bool default n @@ -1480,6 +1531,9 @@ config BUSYBOX_DEFAULT_FEATURE_HEXDUMP_REVERSE config BUSYBOX_DEFAULT_HD bool default n +config BUSYBOX_DEFAULT_XXD + bool + default n config BUSYBOX_DEFAULT_HWCLOCK bool default y @@ -1489,12 +1543,21 @@ config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_LONG_OPTIONS config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_ADJTIME_FHS bool default n +config BUSYBOX_DEFAULT_IONICE + bool + default n config BUSYBOX_DEFAULT_IPCRM bool default n config BUSYBOX_DEFAULT_IPCS bool default n +config BUSYBOX_DEFAULT_LAST + bool + default n +config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY + bool + default n config BUSYBOX_DEFAULT_LOSETUP bool default n @@ -1522,6 +1585,12 @@ config BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC config BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE bool default n +config BUSYBOX_DEFAULT_MESG + bool + default n +config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP + bool + default n config BUSYBOX_DEFAULT_MKE2FS bool default n @@ -1582,6 +1651,9 @@ config BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB config BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB bool default n +config BUSYBOX_DEFAULT_MOUNTPOINT + bool + default n config BUSYBOX_DEFAULT_NSENTER bool default n @@ -1600,6 +1672,9 @@ config BUSYBOX_DEFAULT_RDEV config BUSYBOX_DEFAULT_READPROFILE bool default n +config BUSYBOX_DEFAULT_RENICE + bool + default n config BUSYBOX_DEFAULT_REV bool default n @@ -1621,6 +1696,12 @@ config BUSYBOX_DEFAULT_LINUX32 config BUSYBOX_DEFAULT_LINUX64 bool default n +config BUSYBOX_DEFAULT_SETPRIV + bool + default n +config BUSYBOX_DEFAULT_SETSID + bool + default n config BUSYBOX_DEFAULT_SWAPON bool default n @@ -1636,6 +1717,12 @@ config BUSYBOX_DEFAULT_SWAPOFF config BUSYBOX_DEFAULT_SWITCH_ROOT bool default y +config BUSYBOX_DEFAULT_TASKSET + bool + default n +config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY + bool + default n config BUSYBOX_DEFAULT_UEVENT bool default n @@ -1648,6 +1735,9 @@ config BUSYBOX_DEFAULT_FEATURE_UMOUNT_ALL config BUSYBOX_DEFAULT_UNSHARE bool default n +config BUSYBOX_DEFAULT_WALL + bool + default n config BUSYBOX_DEFAULT_FEATURE_MOUNT_LOOP bool default y @@ -1771,9 +1861,6 @@ config BUSYBOX_DEFAULT_FEATURE_CHAT_VAR_ABORT_LEN config BUSYBOX_DEFAULT_FEATURE_CHAT_CLR_ABORT bool default n -config BUSYBOX_DEFAULT_CHRT - bool - default n config BUSYBOX_DEFAULT_CONSPY bool default n @@ -1816,12 +1903,6 @@ config BUSYBOX_DEFAULT_FEATURE_DEVFS config BUSYBOX_DEFAULT_DEVMEM bool default n -config BUSYBOX_DEFAULT_EJECT - bool - default n -config BUSYBOX_DEFAULT_FEATURE_EJECT_SCSI - bool - default n config BUSYBOX_DEFAULT_FBSPLASH bool default n @@ -1873,15 +1954,6 @@ config BUSYBOX_DEFAULT_I2CDETECT config BUSYBOX_DEFAULT_INOTIFYD bool default n -config BUSYBOX_DEFAULT_IONICE - bool - default n -config BUSYBOX_DEFAULT_LAST - bool - default n -config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY - bool - default n config BUSYBOX_DEFAULT_LESS bool default y @@ -1918,6 +1990,9 @@ config BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS config BUSYBOX_DEFAULT_LOCK bool default y +config BUSYBOX_DEFAULT_LSSCSI + bool + default n config BUSYBOX_DEFAULT_MAKEDEVS bool default n @@ -1933,9 +2008,6 @@ config BUSYBOX_DEFAULT_MAN config BUSYBOX_DEFAULT_MICROCOM bool default n -config BUSYBOX_DEFAULT_MOUNTPOINT - bool - default n config BUSYBOX_DEFAULT_MT bool default n @@ -1945,6 +2017,9 @@ config BUSYBOX_DEFAULT_NANDWRITE config BUSYBOX_DEFAULT_NANDDUMP bool default n +config BUSYBOX_DEFAULT_PARTPROBE + bool + default n config BUSYBOX_DEFAULT_RAIDAUTORUN bool default n @@ -1963,24 +2038,12 @@ config BUSYBOX_DEFAULT_RX config BUSYBOX_DEFAULT_SETSERIAL bool default n -config BUSYBOX_DEFAULT_SETSID - bool - default n config BUSYBOX_DEFAULT_STRINGS bool default y -config BUSYBOX_DEFAULT_TASKSET - bool - default n -config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY - bool - default n config BUSYBOX_DEFAULT_TIME bool default y -config BUSYBOX_DEFAULT_TIMEOUT - bool - default n config BUSYBOX_DEFAULT_TTYSIZE bool default n @@ -2008,9 +2071,6 @@ config BUSYBOX_DEFAULT_UBIRENAME config BUSYBOX_DEFAULT_VOLNAME bool default n -config BUSYBOX_DEFAULT_WALL - bool - default n config BUSYBOX_DEFAULT_WATCHDOG bool default n @@ -2227,10 +2287,10 @@ config BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS config BUSYBOX_DEFAULT_IPCALC bool default n -config BUSYBOX_DEFAULT_FEATURE_IPCALC_FANCY +config BUSYBOX_DEFAULT_FEATURE_IPCALC_LONG_OPTIONS bool default n -config BUSYBOX_DEFAULT_FEATURE_IPCALC_LONG_OPTIONS +config BUSYBOX_DEFAULT_FEATURE_IPCALC_FANCY bool default n config BUSYBOX_DEFAULT_FAKEIDENTD @@ -2275,6 +2335,9 @@ config BUSYBOX_DEFAULT_NSLOOKUP config BUSYBOX_DEFAULT_NSLOOKUP_LEDE bool default y +config BUSYBOX_DEFAULT_FEATURE_NSLOOKUP_LEDE_LONG_OPTIONS + bool + default n config BUSYBOX_DEFAULT_NTPD bool default y @@ -2302,6 +2365,9 @@ config BUSYBOX_DEFAULT_ROUTE config BUSYBOX_DEFAULT_SLATTACH bool default n +config BUSYBOX_DEFAULT_SSL_CLIENT + bool + default n config BUSYBOX_DEFAULT_TCPSVD bool default n @@ -2317,6 +2383,9 @@ config BUSYBOX_DEFAULT_FEATURE_TELNET_TTYPE config BUSYBOX_DEFAULT_FEATURE_TELNET_AUTOLOGIN bool default n +config BUSYBOX_DEFAULT_FEATURE_TELNET_WIDTH + bool + default n config BUSYBOX_DEFAULT_TELNETD bool default n @@ -2347,6 +2416,9 @@ config BUSYBOX_DEFAULT_FEATURE_TFTP_PROGRESS_BAR config BUSYBOX_DEFAULT_TFTP_DEBUG bool default n +config BUSYBOX_DEFAULT_TLS + bool + default n config BUSYBOX_DEFAULT_TRACEROUTE bool default y @@ -2371,22 +2443,22 @@ config BUSYBOX_DEFAULT_VCONFIG config BUSYBOX_DEFAULT_WGET bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR +config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION +config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS +config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION bool default n config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL +config BUSYBOX_DEFAULT_FEATURE_WGET_HTTPS bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER +config BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL bool default n config BUSYBOX_DEFAULT_WHOIS @@ -2398,13 +2470,16 @@ config BUSYBOX_DEFAULT_ZCIP config BUSYBOX_DEFAULT_UDHCPC6 bool default n -config BUSYBOX_DEFAULT_UDHCPD +config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC3646 bool default n -config BUSYBOX_DEFAULT_DHCPRELAY +config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4704 bool default n -config BUSYBOX_DEFAULT_DUMPLEASES +config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833 + bool + default n +config BUSYBOX_DEFAULT_UDHCPD bool default n config BUSYBOX_DEFAULT_FEATURE_UDHCPD_WRITE_LEASES_EARLY @@ -2416,6 +2491,12 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPD_BASE_IP_ON_MAC config BUSYBOX_DEFAULT_DHCPD_LEASES_FILE string default "" +config BUSYBOX_DEFAULT_DUMPLEASES + bool + default n +config BUSYBOX_DEFAULT_DHCPRELAY + bool + default n config BUSYBOX_DEFAULT_UDHCPC bool default y @@ -2425,6 +2506,9 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPC_ARPING config BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT bool default n +config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT + string + default "/usr/share/udhcpc/default.script" config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT bool default n @@ -2437,9 +2521,6 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCP_RFC3397 config BUSYBOX_DEFAULT_FEATURE_UDHCP_8021Q bool default n -config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT - string - default "/usr/share/udhcpc/default.script" config BUSYBOX_DEFAULT_UDHCPC_SLACK_FOR_BUGGY_SERVERS int default 80 @@ -2524,6 +2605,9 @@ config BUSYBOX_DEFAULT_PMAP config BUSYBOX_DEFAULT_POWERTOP bool default n +config BUSYBOX_DEFAULT_FEATURE_POWERTOP_INTERACTIVE + bool + default n config BUSYBOX_DEFAULT_PS bool default y @@ -2536,10 +2620,10 @@ config BUSYBOX_DEFAULT_FEATURE_PS_LONG config BUSYBOX_DEFAULT_FEATURE_PS_TIME bool default n -config BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS +config BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS bool default n -config BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS +config BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS bool default n config BUSYBOX_DEFAULT_PSTREE @@ -2548,9 +2632,6 @@ config BUSYBOX_DEFAULT_PSTREE config BUSYBOX_DEFAULT_PWDX bool default n -config BUSYBOX_DEFAULT_RENICE - bool - default n config BUSYBOX_DEFAULT_SMEMCAP bool default n @@ -2560,6 +2641,9 @@ config BUSYBOX_DEFAULT_BB_SYSCTL config BUSYBOX_DEFAULT_TOP bool default y +config BUSYBOX_DEFAULT_FEATURE_TOP_INTERACTIVE + bool + default n config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE bool default y @@ -2698,45 +2782,45 @@ config BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE config BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB bool default y -config BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT - bool - default n -config BUSYBOX_DEFAULT_ASH_EXPAND_PRMT - bool - default y config BUSYBOX_DEFAULT_ASH_BASH_COMPAT bool default y -config BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT - bool - default n config BUSYBOX_DEFAULT_ASH_JOB_CONTROL bool default y config BUSYBOX_DEFAULT_ASH_ALIAS bool default y -config BUSYBOX_DEFAULT_ASH_GETOPTS +config BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT + bool + default n +config BUSYBOX_DEFAULT_ASH_EXPAND_PRMT bool default y -config BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO +config BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT + bool + default n +config BUSYBOX_DEFAULT_ASH_MAIL + bool + default n +config BUSYBOX_DEFAULT_ASH_ECHO bool default y -config BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF +config BUSYBOX_DEFAULT_ASH_PRINTF bool default y -config BUSYBOX_DEFAULT_ASH_BUILTIN_TEST +config BUSYBOX_DEFAULT_ASH_TEST bool default y config BUSYBOX_DEFAULT_ASH_HELP bool default n -config BUSYBOX_DEFAULT_ASH_CMDCMD +config BUSYBOX_DEFAULT_ASH_GETOPTS bool default y -config BUSYBOX_DEFAULT_ASH_MAIL +config BUSYBOX_DEFAULT_ASH_CMDCMD bool - default n + default y config BUSYBOX_DEFAULT_CTTYHACK bool default n @@ -2749,9 +2833,6 @@ config BUSYBOX_DEFAULT_HUSH_BASH_COMPAT config BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION bool default n -config BUSYBOX_DEFAULT_HUSH_HELP - bool - default n config BUSYBOX_DEFAULT_HUSH_INTERACTIVE bool default n @@ -2782,10 +2863,55 @@ config BUSYBOX_DEFAULT_HUSH_LOCAL config BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT bool default n +config BUSYBOX_DEFAULT_HUSH_MODE_X + bool + default n +config BUSYBOX_DEFAULT_HUSH_ECHO + bool + default n +config BUSYBOX_DEFAULT_HUSH_PRINTF + bool + default n +config BUSYBOX_DEFAULT_HUSH_TEST + bool + default n +config BUSYBOX_DEFAULT_HUSH_HELP + bool + default n +config BUSYBOX_DEFAULT_HUSH_EXPORT + bool + default n config BUSYBOX_DEFAULT_HUSH_EXPORT_N bool default n -config BUSYBOX_DEFAULT_HUSH_MODE_X +config BUSYBOX_DEFAULT_HUSH_KILL + bool + default n +config BUSYBOX_DEFAULT_HUSH_WAIT + bool + default n +config BUSYBOX_DEFAULT_HUSH_TRAP + bool + default n +config BUSYBOX_DEFAULT_HUSH_TYPE + bool + default n +config BUSYBOX_DEFAULT_HUSH_READ + bool + default n +config BUSYBOX_DEFAULT_HUSH_SET + bool + default n +config BUSYBOX_DEFAULT_HUSH_UNSET + bool + default n +config BUSYBOX_DEFAULT_HUSH_ULIMIT + bool + default n +config BUSYBOX_DEFAULT_HUSH_UMASK + bool + default n +config BUSYBOX_DEFAULT_HUSH_MEMLEAK bool default n config BUSYBOX_DEFAULT_MSH diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile index ebc824e435..653d09ca47 100644 --- a/package/utils/busybox/Makefile +++ b/package/utils/busybox/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=busybox -PKG_VERSION:=1.26.2 -PKG_RELEASE:=7 +PKG_VERSION:=1.27.1 +PKG_RELEASE:=1 PKG_FLAGS:=essential PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://www.busybox.net/downloads \ http://sources.buildroot.net -PKG_HASH:=da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16 +PKG_HASH:=c890ac53fb218eb4c6ad9ed3207a896783b142e6d306f292b8d9bec82af5f936 PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam PKG_BUILD_PARALLEL:=1 diff --git a/package/utils/busybox/config/Config.in b/package/utils/busybox/config/Config.in index 3ee3aa2f47..ebcf526428 100644 --- a/package/utils/busybox/config/Config.in +++ b/package/utils/busybox/config/Config.in @@ -49,17 +49,6 @@ config BUSYBOX_CONFIG_USE_PORTABLE_CODE compiler other than gcc. If you do use gcc, this option may needlessly increase code size. -config BUSYBOX_CONFIG_PLATFORM_LINUX - bool "Enable Linux-specific applets and features" - default BUSYBOX_DEFAULT_PLATFORM_LINUX - help - For the most part, busybox requires only POSIX compatibility - from the target system, but some applets and features use - Linux-specific interfaces. - - Answering 'N' here will disable such applets and hide the - corresponding configuration options. - config BUSYBOX_CONFIG_SHOW_USAGE bool "Show applet usage messages" default BUSYBOX_DEFAULT_SHOW_USAGE @@ -123,14 +112,14 @@ config BUSYBOX_CONFIG_INSTALL_NO_USR never to /usr/bin or /usr/sbin. config BUSYBOX_CONFIG_PAM - bool "Support for PAM (Pluggable Authentication Modules)" + bool "Support PAM (Pluggable Authentication Modules)" default BUSYBOX_DEFAULT_PAM help Use PAM in some busybox applets (currently login and httpd) instead of direct access to password database. config BUSYBOX_CONFIG_LONG_OPTS - bool "Support for --long-options" + bool "Support --long-options" default BUSYBOX_DEFAULT_LONG_OPTS help Enable this if you want busybox applets to use the gnu --long-option @@ -197,7 +186,7 @@ config BUSYBOX_CONFIG_PID_FILE_PATH specify a pidfile path. config BUSYBOX_CONFIG_FEATURE_SUID - bool "Support for SUID/SGID handling" + bool "Support SUID/SGID handling" default BUSYBOX_DEFAULT_FEATURE_SUID help With this option you can install the busybox binary belonging @@ -337,6 +326,17 @@ config BUSYBOX_CONFIG_FEATURE_HAVE_RPC # This is automatically selected if any of enabled applets need it. # You do not need to select it manually. +config BUSYBOX_CONFIG_PLATFORM_LINUX + bool #No description makes it a hidden option + default BUSYBOX_DEFAULT_PLATFORM_LINUX + #help + # For the most part, busybox requires only POSIX compatibility + # from the target system, but some applets and features use + # Linux-specific interfaces. + # + # This is automatically selected if any applet or feature requires + # Linux-specific interfaces. You do not need to select it manually. + comment 'Build Options' config BUSYBOX_CONFIG_STATIC @@ -610,6 +610,8 @@ config BUSYBOX_CONFIG_DEBUG_SANITIZE catch bad memory accesses (e.g. buffer overflows), but will make the executable larger and slow down runtime a bit. + This adds -fsanitize=foo options to gcc command line. + If you aren't developing/testing busybox, say N here. config BUSYBOX_CONFIG_UNIT_TEST @@ -624,7 +626,7 @@ config BUSYBOX_CONFIG_WERROR bool "Abort compilation on any warning" default BUSYBOX_DEFAULT_WERROR help - Selecting this will add -Werror to gcc command line. + This adds -Werror to gcc command line. Most people should answer N. diff --git a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch b/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch index 682a68eebd..1f5b10859b 100644 --- a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch +++ b/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch @@ -1,11 +1,12 @@ --- a/util-linux/mount.c +++ b/util-linux/mount.c -@@ -245,9 +245,6 @@ +@@ -245,10 +245,6 @@ #if ENABLE_FEATURE_MOUNT_NFS /* This is just a warning of a common mistake. Possibly this should be a * uclibc faq entry rather than in busybox... */ -# if defined(__UCLIBC__) && ! defined(__UCLIBC_HAS_RPC__) --# error "You need to build uClibc with UCLIBC_HAS_RPC for NFS support" +-# warning "You probably need to build uClibc with UCLIBC_HAS_RPC for NFS support" +- /* not #error, since user may be using e.g. libtirpc instead */ -# endif # include <rpc/rpc.h> # include <rpc/pmap_prot.h> diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch index 8ef8f2211b..5f64c19d05 100644 --- a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch +++ b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch @@ -1,6 +1,6 @@ --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -704,6 +704,7 @@ static int bcast_or_ucast(struct dhcp_pa +@@ -706,6 +706,7 @@ static int bcast_or_ucast(struct dhcp_pa static NOINLINE int send_discover(uint32_t xid, uint32_t requested) { struct dhcp_packet packet; @@ -8,7 +8,7 @@ /* Fill in: op, htype, hlen, cookie, chaddr fields, * random xid field (we override it below), -@@ -721,6 +722,7 @@ static NOINLINE int send_discover(uint32 +@@ -723,6 +724,7 @@ static NOINLINE int send_discover(uint32 */ add_client_options(&packet); diff --git a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch index f5e3a075ae..727f69409c 100644 --- a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch +++ b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch @@ -1,6 +1,6 @@ --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -1439,6 +1439,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c +@@ -1442,6 +1442,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c /* silence "uninitialized!" warning */ unsigned timestamp_before_wait = timestamp_before_wait; diff --git a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch index 3df8d930b1..7b77d2970b 100644 --- a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch +++ b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch @@ -1,6 +1,6 @@ --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -1110,7 +1110,6 @@ static void perform_renew(void) +@@ -1112,7 +1112,6 @@ static void perform_renew(void) state = RENEW_REQUESTED; break; case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ diff --git a/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch b/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch index 360324bf7c..ca76c44cc8 100644 --- a/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch +++ b/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch @@ -1,6 +1,6 @@ --- a/networking/libiproute/iplink.c +++ b/networking/libiproute/iplink.c -@@ -470,7 +470,7 @@ static int do_add_or_delete(char **argv, +@@ -598,7 +598,7 @@ static int do_add_or_delete(char **argv, } xrtnl_open(&rth); ll_init_map(&rth); diff --git a/package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch b/package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch deleted file mode 100644 index 7b4797505e..0000000000 --- a/package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch +++ /dev/null @@ -1,145 +0,0 @@ -From dbac30c3784c267bbe44a2a3ebed4e827c8fe82a Mon Sep 17 00:00:00 2001 -From: Stefan Tomanek <stefan.toma...@wertarbyte.de> -Date: Tue, 13 Jun 2017 19:06:09 +0200 -Subject: [PATCH] ip rule: add suppress_{prefixlength,ifgroup} options - -(cherry-picked from 192dce4b84fb32346ebc5194de7daa5da3b8d1b4) - -function old new delta -iprule_modify 816 887 +71 -print_rule 610 680 +70 ------------------------------------------------------------------------------- -(add/remove: 0/0 grow/shrink: 2/0 up/down: 141/0) Total: 141 bytes - -Signed-off-by: Stefan Tomanek <stefan.toma...@wertarbyte.de> -Signed-off-by: Denys Vlasenko <vda.li...@googlemail.com> ---- - networking/libiproute/iprule.c | 73 ++++++++++++++++++++++++++---------------- - 1 file changed, 46 insertions(+), 27 deletions(-) - ---- a/networking/libiproute/iprule.c -+++ b/networking/libiproute/iprule.c -@@ -17,25 +17,32 @@ - #include <netinet/ip.h> - #include <arpa/inet.h> - -+/* from <linux/fib_rules.h>: */ -+#define FRA_SUPPRESS_IFGROUP 13 -+#define FRA_SUPPRESS_PREFIXLEN 14 -+ - #include "ip_common.h" /* #include "libbb.h" is inside */ - #include "rt_names.h" - #include "utils.h" - --/* --static void usage(void) __attribute__((noreturn)); -- --static void usage(void) --{ -- fprintf(stderr, "Usage: ip rule [ list | add | del ] SELECTOR ACTION\n"); -- fprintf(stderr, "SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK ]\n"); -- fprintf(stderr, " [ dev STRING ] [ pref NUMBER ]\n"); -- fprintf(stderr, "ACTION := [ table TABLE_ID ] [ nat ADDRESS ]\n"); -- fprintf(stderr, " [ prohibit | reject | unreachable ]\n"); -- fprintf(stderr, " [ realms [SRCREALM/]DSTREALM ]\n"); -- fprintf(stderr, "TABLE_ID := [ local | main | default | NUMBER ]\n"); -- exit(-1); --} --*/ -+/* If you add stuff here, update iprule_full_usage */ -+static const char keywords[] ALIGN1 = -+ "from\0""to\0""preference\0""order\0""priority\0" -+ "tos\0""fwmark\0""realms\0""table\0""lookup\0" -+ "suppress_prefixlength\0""suppress_ifgroup\0" -+ "dev\0""iif\0""nat\0""map-to\0""type\0""help\0" -+ ; -+#define keyword_preference (keywords + sizeof("from") + sizeof("to")) -+#define keyword_fwmark (keyword_preference + sizeof("preference") + sizeof("order") + sizeof("priority") + sizeof("tos")) -+#define keyword_realms (keyword_fwmark + sizeof("fwmark")) -+#define keyword_suppress_prefixlength (keyword_realms + sizeof("realms") + sizeof("table") + sizeof("lookup")) -+#define keyword_suppress_ifgroup (keyword_suppress_prefixlength + sizeof("suppress_prefixlength")) -+enum { -+ ARG_from = 1, ARG_to, ARG_preference, ARG_order, ARG_priority, -+ ARG_tos, ARG_fwmark, ARG_realms, ARG_table, ARG_lookup, -+ ARG_suppress_prefixlength, ARG_suppress_ifgroup, -+ ARG_dev, ARG_iif, ARG_nat, ARG_map_to, ARG_type, ARG_help, -+}; - - static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM, - struct nlmsghdr *n, void *arg UNUSED_PARAM) -@@ -119,6 +126,17 @@ static int FAST_FUNC print_rule(const st - else if (r->rtm_table) - printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table)); - -+ if (tb[FRA_SUPPRESS_PREFIXLEN]) { -+ int pl = *(uint32_t*)RTA_DATA(tb[FRA_SUPPRESS_PREFIXLEN]); -+ if (pl != -1) -+ printf("%s %d ", keyword_suppress_prefixlength, pl); -+ } -+ if (tb[FRA_SUPPRESS_IFGROUP]) { -+ int grp = *(uint32_t*)RTA_DATA(tb[FRA_SUPPRESS_IFGROUP]); -+ if (grp != -1) -+ printf("%s %d ", keyword_suppress_ifgroup, grp); -+ } -+ - if (tb[RTA_FLOW]) { - uint32_t to = *(uint32_t*)RTA_DATA(tb[RTA_FLOW]); - uint32_t from = to>>16; -@@ -174,15 +192,6 @@ static int iprule_list(char **argv) - /* Return value becomes exitcode. It's okay to not return at all */ - static int iprule_modify(int cmd, char **argv) - { -- static const char keywords[] ALIGN1 = -- "from\0""to\0""preference\0""order\0""priority\0" -- "tos\0""fwmark\0""realms\0""table\0""lookup\0""dev\0" -- "iif\0""nat\0""map-to\0""type\0""help\0"; -- enum { -- ARG_from = 1, ARG_to, ARG_preference, ARG_order, ARG_priority, -- ARG_tos, ARG_fwmark, ARG_realms, ARG_table, ARG_lookup, ARG_dev, -- ARG_iif, ARG_nat, ARG_map_to, ARG_type, ARG_help -- }; - bool table_ok = 0; - struct rtnl_handle rth; - struct { -@@ -232,7 +241,7 @@ static int iprule_modify(int cmd, char * - ) { - uint32_t pref; - NEXT_ARG(); -- pref = get_u32(*argv, "preference"); -+ pref = get_u32(*argv, keyword_preference); - addattr32(&req.n, sizeof(req), RTA_PRIORITY, pref); - } else if (key == ARG_tos) { - uint32_t tos; -@@ -243,13 +252,13 @@ static int iprule_modify(int cmd, char * - } else if (key == ARG_fwmark) { - uint32_t fwmark; - NEXT_ARG(); -- fwmark = get_u32(*argv, "fwmark"); -+ fwmark = get_u32(*argv, keyword_fwmark); - addattr32(&req.n, sizeof(req), RTA_PROTOINFO, fwmark); - } else if (key == ARG_realms) { - uint32_t realm; - NEXT_ARG(); - if (get_rt_realms(&realm, *argv)) -- invarg_1_to_2(*argv, "realms"); -+ invarg_1_to_2(*argv, keyword_realms); - addattr32(&req.n, sizeof(req), RTA_FLOW, realm); - } else if (key == ARG_table || - key == ARG_lookup -@@ -265,6 +274,16 @@ static int iprule_modify(int cmd, char * - addattr32(&req.n, sizeof(req), RTA_TABLE, tid); - } - table_ok = 1; -+ } else if (key == ARG_suppress_prefixlength) { -+ int prefix_length; -+ NEXT_ARG(); -+ prefix_length = get_u32(*argv, keyword_suppress_prefixlength); -+ addattr32(&req.n, sizeof(req), FRA_SUPPRESS_PREFIXLEN, prefix_length); -+ } else if (key == ARG_suppress_ifgroup) { -+ int grp; -+ NEXT_ARG(); -+ grp = get_u32(*argv, keyword_suppress_ifgroup); -+ addattr32(&req.n, sizeof(req), FRA_SUPPRESS_IFGROUP, grp); - } else if (key == ARG_dev || - key == ARG_iif - ) { diff --git a/package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch b/package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch deleted file mode 100644 index e83999d303..0000000000 --- a/package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch +++ /dev/null @@ -1,100 +0,0 @@ -From e88608eae24ae5934034e1ecb6c494fefbf1b9ae Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko <vda.li...@googlemail.com> -Date: Mon, 13 Mar 2017 20:50:42 +0100 -Subject: [PATCH 1/2] vi: don't touch file with :x when modified_count == 0 - -Along with it, there are other changes - - - Check for uppercase X is removed as the expression will be always false and - :X itself is another totally different command in standard vim - - The status line will show number of written lines instead of lines requested - by the colon command. This is also how the standard vim is doing, though - the difference is that '!' has to be explicitly specified in vim to allow - partial writes - -Signed-off-by: Yousong Zhou <yszhou4t...@gmail.com> -Signed-off-by: Denys Vlasenko <vda.li...@googlemail.com> ---- - editors/vi.c | 43 ++++++++++++++++++++++++++----------------- - 1 file changed, 26 insertions(+), 17 deletions(-) - ---- a/editors/vi.c -+++ b/editors/vi.c -@@ -1038,7 +1038,9 @@ static void colon(char *buf) - || strncmp(p, "wn", cnt) == 0 - || (p[0] == 'x' && !p[1]) - ) { -- cnt = file_write(current_filename, text, end - 1); -+ if (modified_count != 0 || p[0] != 'x') { -+ cnt = file_write(current_filename, text, end - 1); -+ } - if (cnt < 0) { - if (cnt == -1) - status_line_bold("Write error: %s", strerror(errno)); -@@ -1049,8 +1051,9 @@ static void colon(char *buf) - current_filename, - count_lines(text, end - 1), cnt - ); -- if (p[0] == 'x' || p[1] == 'q' || p[1] == 'n' -- || p[0] == 'X' || p[1] == 'Q' || p[1] == 'N' -+ if (p[0] == 'x' -+ || p[1] == 'q' || p[1] == 'n' -+ || p[1] == 'Q' || p[1] == 'N' - ) { - editing = 0; - } -@@ -1480,16 +1483,19 @@ static void colon(char *buf) - goto ret; - } - #endif -- // how many lines in text[]? -- li = count_lines(q, r); -- size = r - q + 1; - //if (useforce) { - // if "fn" is not write-able, chmod u+w - // sprintf(syscmd, "chmod u+w %s", fn); - // system(syscmd); - // forced = TRUE; - //} -- l = file_write(fn, q, r); -+ if (modified_count != 0 || cmd[0] != 'x') { -+ size = r - q + 1; -+ l = file_write(fn, q, r); -+ } else { -+ size = 0; -+ l = 0; -+ } - //if (useforce && forced) { - // chmod u-w - // sprintf(syscmd, "chmod u-w %s", fn); -@@ -1500,17 +1506,20 @@ static void colon(char *buf) - if (l == -1) - status_line_bold_errno(fn); - } else { -+ // how many lines written -+ li = count_lines(q, q + l - 1); - status_line("'%s' %dL, %dC", fn, li, l); -- if (q == text && r == end - 1 && l == size) { -- modified_count = 0; -- last_modified_count = -1; -- } -- if ((cmd[0] == 'x' || cmd[1] == 'q' || cmd[1] == 'n' -- || cmd[0] == 'X' || cmd[1] == 'Q' || cmd[1] == 'N' -- ) -- && l == size -- ) { -- editing = 0; -+ if (l == size) { -+ if (q == text && q + l == end) { -+ modified_count = 0; -+ last_modified_count = -1; -+ } -+ if (cmd[0] == 'x' -+ || cmd[1] == 'q' || cmd[1] == 'n' -+ || cmd[1] == 'Q' || cmd[1] == 'N' -+ ) { -+ editing = 0; -+ } - } - } - #if ENABLE_FEATURE_VI_YANKMARK diff --git a/package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch b/package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch deleted file mode 100644 index b56cf735c2..0000000000 --- a/package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 8f3bf4f0d3605b50a8e4c48c89aeabc455f04884 Mon Sep 17 00:00:00 2001 -From: Yousong Zhou <yszhou4t...@gmail.com> -Date: Fri, 24 Mar 2017 21:13:10 +0100 -Subject: [PATCH 2/2] vi: avoid touching a new file with ZZ when no editing has - been done - -This is the behaviour observed with standard vim and busybox vi of at -least 1.22.1. It was changed with commit "32afd3a vi: some -simplifications" which happened before 1.23.0. - -Mistyping filename on command line happens fairly often and it's better -we restore the old behaviour to avoid a few unnecessary flash writes and -sometimes efforts of debugging bugs caused by those unneeded stray -files. - -Signed-off-by: Yousong Zhou <yszhou4t...@gmail.com> -Signed-off-by: Denys Vlasenko <vda.li...@googlemail.com> ---- - editors/vi.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - ---- a/editors/vi.c -+++ b/editors/vi.c -@@ -719,14 +719,6 @@ static int init_text_buffer(char *fn) - { - int rc; - -- flush_undo_data(); -- modified_count = 0; -- last_modified_count = -1; --#if ENABLE_FEATURE_VI_YANKMARK -- /* init the marks */ -- memset(mark, 0, sizeof(mark)); --#endif -- - /* allocate/reallocate text buffer */ - free(text); - text_size = 10240; -@@ -741,6 +733,14 @@ static int init_text_buffer(char *fn) - // file doesnt exist. Start empty buf with dummy line - char_insert(text, '\n', NO_UNDO); - } -+ -+ flush_undo_data(); -+ modified_count = 0; -+ last_modified_count = -1; -+#if ENABLE_FEATURE_VI_YANKMARK -+ /* init the marks */ -+ memset(mark, 0, sizeof(mark)); -+#endif - return rc; - } - -- 2.11.0 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev