From vda.linux at googlemail.com Mon Oct 2 11:57:11 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Mon, 2 Oct 2023 13:57:11 +0200 Subject: `sleep` fails if called with an end-of-options delimiter `--` In-Reply-To: References: Message-ID: Fixed in git. Thank you. On Sun, Jun 25, 2023 at 4:19?PM Lucas Larson wrote: > > package: busybox > version: 1.36.1 > > Bug description: > When using the `sleep` command with the end-of-options delimiter `--` (that is, `sleep -- 1` or `busybox sleep -- 1`), the command fails to execute properly. However, both `sleep 1` and `busybox sleep 1` commands work as expected. According to the POSIX standard, both constructions should be permitted. > > Minimal steps to reproduce: > $ docker pull alpine > $ docker run -it alpine > $ busybox --help | head -1 > BusyBox v1.36.1 (2023-06-02 00:42:02 UTC) multi-call binary. > $ cat /etc/os-release > NAME="Alpine Linux" > ID=alpine > VERSION_ID=3.18.2 > PRETTY_NAME="Alpine Linux v3.18" > HOME_URL="https://alpinelinux.org/" > BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" > > $ sleep 1 # sleeps for a second > $ sleep -- 1 > sh: invalid number '--' # and container exits > $ busybox sleep 1 # sleeps for a second > $ busybox sleep -- 1 > sleep: invalid number '--' # container does not exit > > $ apk add coreutils # install coreutils on Alpine Linux > $ coreutils --coreutils-prog=sleep 1 # sleeps for a second > $ coreutils --coreutils-prog=sleep -- 1 # also sleeps for a second > > Thank you, > > Lucas Larson > _______________________________________________ > busybox mailing list > busybox at busybox.net > http://lists.busybox.net/mailman/listinfo/busybox From vda.linux at googlemail.com Mon Oct 2 12:27:18 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Mon, 2 Oct 2023 14:27:18 +0200 Subject: [PATCH] install: Fix chown resetting suid/sgid bits from chmod In-Reply-To: References: Message-ID: Applied, thank you. On Sat, Sep 23, 2023 at 1:57?PM Nero wrote: > > Since Linux 2.2.13, chown(2) resets the suid/gid bits for all users. > This patch changes the ordering so that chmod gets called after chown. > > This behavior follows GNU coreutils. > > Signed-off-by: Nero > --- > coreutils/install.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/coreutils/install.c b/coreutils/install.c > index c0f1c538a..a81a5a1ef 100644 > --- a/coreutils/install.c > +++ b/coreutils/install.c > @@ -244,6 +244,14 @@ int install_main(int argc, char **argv) > } > } > > + /* Set the user and group id */ > + if ((opts & (OPT_OWNER|OPT_GROUP)) > + && lchown(dest, uid, gid) == -1 > + ) { > + bb_perror_msg("can't change %s of %s", "ownership", dest); > + ret = EXIT_FAILURE; > + } > + > /* Set the file mode (always, not only with -m). > * GNU coreutils 6.10 is not affected by umask. */ > if (chmod(dest, mode) == -1) { > @@ -254,13 +262,6 @@ int install_main(int argc, char **argv) > if (use_default_selinux_context) > setdefaultfilecon(dest); > #endif > - /* Set the user and group id */ > - if ((opts & (OPT_OWNER|OPT_GROUP)) > - && lchown(dest, uid, gid) == -1 > - ) { > - bb_perror_msg("can't change %s of %s", "ownership", dest); > - ret = EXIT_FAILURE; > - } > next: > if (ENABLE_FEATURE_CLEAN_UP && isdir) > free(dest); > -- > 2.42.0 > > > _______________________________________________ > busybox mailing list > busybox at busybox.net > http://lists.busybox.net/mailman/listinfo/busybox From vda.linux at googlemail.com Mon Oct 2 13:24:49 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Mon, 2 Oct 2023 15:24:49 +0200 Subject: Support -E in awk In-Reply-To: References: Message-ID: Pushed to git. Can you review and test? On Thu, Sep 21, 2023 at 5:13?PM Philip Prindeville wrote: > > Hi, > > We have some scripts written in awk that we'd like to have take flags, but when the script is embedded in a hashbang file (#!/usr/bin/awk -f), then awk ends up consuming any arguments that look like flags, so we're limited in the compatibility we can provide. > > Looking at editors/awk.c there's a comment about adding -E being "easy-ish". > > Glad to hear it. > > We have an urgent need for this, and we're hoping it can be in the next release. > > We've opened a bug: https://bugs.busybox.net/show_bug.cgi?id=15781 > > How realistic is it to get this out for the next cycle? > > Thanks, > > -Philip > > _______________________________________________ > busybox mailing list > busybox at busybox.net > http://lists.busybox.net/mailman/listinfo/busybox From russ.dill at gmail.com Mon Oct 2 19:34:50 2023 From: russ.dill at gmail.com (Russ Dill) Date: Mon, 2 Oct 2023 12:34:50 -0700 Subject: [PATCH] udhcp: Avoid leaking uninitialized/stale data Message-ID: <20231002193450.447586-1-Russ.Dill@gmail.com> I noticed a commit in connman: "gdhcp: Avoid leaking stack data via unitiialized variable" [1] Since gdhcp is just BusyBox udhcp with the serial numbers filed off, I checked if BusyBox udhcp has a related issue. The issue is that the get_option logic assumes any data within the memory area of the buffer is "valid". This reduces the complexity of the function at the cost of reading past the end of the actually received data in the case of specially crafted packets. This is not a problem for the udhcp_recv_kernel_packet data path as the entire memory area is zeroed. However, d4/d6_recv_raw_packet does not zero the memory. Note that a related commit [2] is not required as we are zeroing any data that can be read by the get_option function. [1] https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=a74524b3e3fad81b0fd1084ffdf9f2ea469cd9b1 [2] https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=58d397ba74873384aee449690a9070bacd5676fa Signed-off-by: Russ Dill Cc: Colin Wee Cc: Denys Vlasenko --- networking/udhcp/d6_dhcpc.c | 1 + networking/udhcp/dhcpc.c | 1 + 2 files changed, 2 insertions(+) diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c index cdd06188e..a72fd31bd 100644 --- a/networking/udhcp/d6_dhcpc.c +++ b/networking/udhcp/d6_dhcpc.c @@ -961,6 +961,7 @@ static NOINLINE int d6_recv_raw_packet(struct in6_addr *peer_ipv6, struct d6_pac d6_dump_packet(&packet.data); bytes -= sizeof(packet.ip6) + sizeof(packet.udp); + memset(d6_pkt, 0, sizeof(*d6_pkt)); memcpy(d6_pkt, &packet.data, bytes); return bytes; } diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 200a2fb8a..fc86b1607 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -981,6 +981,7 @@ static NOINLINE int d4_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd) udhcp_dump_packet(&packet.data); bytes -= sizeof(packet.ip) + sizeof(packet.udp); + memset(dhcp_pkt, 0, sizeof(*dhcp_pkt)); memcpy(dhcp_pkt, &packet.data, bytes); return bytes; } -- 2.40.1 From philipp_subx at redfish-solutions.com Tue Oct 3 03:50:18 2023 From: philipp_subx at redfish-solutions.com (Philip Prindeville) Date: Mon, 2 Oct 2023 22:50:18 -0500 Subject: Support -E in awk In-Reply-To: References: Message-ID: <76790553-F500-4385-9C8C-8DD58688366C@redfish-solutions.com> Thanks... I'll need to figure out how to backport it to 1.36.1 before I can try it. > On Oct 2, 2023, at 8:24 AM, Denys Vlasenko wrote: > > Pushed to git. Can you review and test? > > On Thu, Sep 21, 2023 at 5:13?PM Philip Prindeville > wrote: >> >> Hi, >> >> We have some scripts written in awk that we'd like to have take flags, but when the script is embedded in a hashbang file (#!/usr/bin/awk -f), then awk ends up consuming any arguments that look like flags, so we're limited in the compatibility we can provide. >> >> Looking at editors/awk.c there's a comment about adding -E being "easy-ish". >> >> Glad to hear it. >> >> We have an urgent need for this, and we're hoping it can be in the next release. >> >> We've opened a bug: https://bugs.busybox.net/show_bug.cgi?id=15781 >> >> How realistic is it to get this out for the next cycle? >> >> Thanks, >> >> -Philip >> >> _______________________________________________ >> busybox mailing list >> busybox at busybox.net >> http://lists.busybox.net/mailman/listinfo/busybox From vda.linux at googlemail.com Tue Oct 3 17:16:47 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Tue, 3 Oct 2023 19:16:47 +0200 Subject: [PATCH] syslogd: fork after init on a regular system, not before In-Reply-To: <10d0860e-f526-e218-5ae4-e69e84df2a8d@tls.msk.ru> References: <1686213830.992290.841889.nullmailer@tls.msk.ru> <9dd00d60-2bb3-9bb5-1639-5274bcd3ccd9@tls.msk.ru> <1e45f338-fdb2-3c0f-2237-9f7812e8a50a@tls.msk.ru> <10d0860e-f526-e218-5ae4-e69e84df2a8d@tls.msk.ru> Message-ID: Pushed to git, thank you. On Sun, Jun 18, 2023 at 9:24?AM Michael Tokarev wrote: > > 14.06.2023 23:58, Michael Tokarev wrote: > > 14.06.2023 23:52, Michael Tokarev wrote: > >> Actually it doesn't work on regular system too, the fd#0 is redirected > >> from /dev/null somewhere down the line and enters a tight loop > > > > Attached is the fix. Not touching daemonize_or_reexec(). > > > > Signed-off-by: Michael Tokarev > > Ping? > syslogd is completely broken in master now. > > Thanks, > > /mjt From vda.linux at googlemail.com Wed Oct 4 14:21:37 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Wed, 4 Oct 2023 16:21:37 +0200 Subject: [PATCH] udhcp: Avoid leaking uninitialized/stale data In-Reply-To: <20231002193450.447586-1-Russ.Dill@gmail.com> References: <20231002193450.447586-1-Russ.Dill@gmail.com> Message-ID: Applied, thank you On Mon, Oct 2, 2023 at 9:34?PM Russ Dill wrote: > > I noticed a commit in connman: > > "gdhcp: Avoid leaking stack data via unitiialized variable" [1] > > Since gdhcp is just BusyBox udhcp with the serial numbers filed off, I > checked if BusyBox udhcp has a related issue. > > The issue is that the get_option logic assumes any data within the > memory area of the buffer is "valid". This reduces the complexity of the > function at the cost of reading past the end of the actually received > data in the case of specially crafted packets. This is not a problem > for the udhcp_recv_kernel_packet data path as the entire memory > area is zeroed. However, d4/d6_recv_raw_packet does not zero the > memory. > > Note that a related commit [2] is not required as we are zeroing > any data that can be read by the get_option function. > > [1] https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=a74524b3e3fad81b0fd1084ffdf9f2ea469cd9b1 > [2] https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=58d397ba74873384aee449690a9070bacd5676fa > > Signed-off-by: Russ Dill > Cc: Colin Wee > Cc: Denys Vlasenko > --- > networking/udhcp/d6_dhcpc.c | 1 + > networking/udhcp/dhcpc.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c > index cdd06188e..a72fd31bd 100644 > --- a/networking/udhcp/d6_dhcpc.c > +++ b/networking/udhcp/d6_dhcpc.c > @@ -961,6 +961,7 @@ static NOINLINE int d6_recv_raw_packet(struct in6_addr *peer_ipv6, struct d6_pac > d6_dump_packet(&packet.data); > > bytes -= sizeof(packet.ip6) + sizeof(packet.udp); > + memset(d6_pkt, 0, sizeof(*d6_pkt)); > memcpy(d6_pkt, &packet.data, bytes); > return bytes; > } > diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c > index 200a2fb8a..fc86b1607 100644 > --- a/networking/udhcp/dhcpc.c > +++ b/networking/udhcp/dhcpc.c > @@ -981,6 +981,7 @@ static NOINLINE int d4_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd) > udhcp_dump_packet(&packet.data); > > bytes -= sizeof(packet.ip) + sizeof(packet.udp); > + memset(dhcp_pkt, 0, sizeof(*dhcp_pkt)); > memcpy(dhcp_pkt, &packet.data, bytes); > return bytes; > } > -- > 2.40.1 > From mjt at tls.msk.ru Thu Oct 5 09:57:29 2023 From: mjt at tls.msk.ru (Michael Tokarev) Date: Thu, 5 Oct 2023 12:57:29 +0300 Subject: [PATCH] syslogd: fork after init on a regular system, not before In-Reply-To: References: <1686213830.992290.841889.nullmailer@tls.msk.ru> <9dd00d60-2bb3-9bb5-1639-5274bcd3ccd9@tls.msk.ru> <1e45f338-fdb2-3c0f-2237-9f7812e8a50a@tls.msk.ru> <10d0860e-f526-e218-5ae4-e69e84df2a8d@tls.msk.ru> Message-ID: <198e0cc2-10d3-4261-a51a-1a1f30a33246@tls.msk.ru> 03.10.2023 20:16, Denys Vlasenko: > Pushed to git, thank you. Thank you for that. There's one more issue in there with remote logging, see this message for the patch: http://lists.busybox.net/pipermail/busybox/2023-September/090499.html /mjt > On Sun, Jun 18, 2023 at 9:24?AM Michael Tokarev wrote: >> >> 14.06.2023 23:58, Michael Tokarev wrote: >>> 14.06.2023 23:52, Michael Tokarev wrote: >>>> Actually it doesn't work on regular system too, the fd#0 is redirected >>>> from /dev/null somewhere down the line and enters a tight loop >>> >>> Attached is the fix. Not touching daemonize_or_reexec(). >>> >>> Signed-off-by: Michael Tokarev >> >> Ping? >> syslogd is completely broken in master now. From Mustafa.Albayati at axis.com Fri Oct 6 08:34:14 2023 From: Mustafa.Albayati at axis.com (Mustafa Albayati) Date: Fri, 6 Oct 2023 08:34:14 +0000 Subject: /networking/udhcp/dhcpc.c is not comletely RFC-3442 complaint Message-ID: package: busybox version: 1.36.1 Busybox DHCP client is RFC-3442 (option 121) compliant according to the documentations. However, it's stated under section "DHCP Client Behavior" that " DHCP clients that support this option and send a parameter request list MAY also request the Static Routes option, for compatibility with older servers that don't support Classless Static Routes. The Classless Static Routes option code MUST appear in the parameter request list prior to both the Router option code and the Static Routes option code, if present. "This requirement is currently not fulfilled. Instead, the "add_client_options" function pulls the options from the struct in common.c, in the same order as they are defined. Placing option 121 further down. The patch attached to this email solves this issue by modifying the placement of the option while generating the request section in the "add_client_options" function. As this ordering requirement is only true when option 121 is selected, I choose to not modify the order in the struct. Aside from the risk of breaking other functionality. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rfc3442-compliant-option-list-ordering.patch Type: text/x-patch Size: 911 bytes Desc: rfc3442-compliant-option-list-ordering.patch URL: From ncopa at alpinelinux.org Fri Oct 6 15:07:13 2023 From: ncopa at alpinelinux.org (Natanael Copa) Date: Fri, 6 Oct 2023 17:07:13 +0200 Subject: [PATCH] find: fix -xdev -depth (and -delete) In-Reply-To: <20230919081747.3136748-1-asmadeus@codewreck.org> References: <20230919081747.3136748-1-asmadeus@codewreck.org> Message-ID: <20231006170713.6231bde7@ncopa-desktop.lan> Hi! I think this bug looks pretty bad, as it deletes stuff unintentionally. And appears to reduce size, so I'd think this would be nice! Denys, what do you think? Thanks! -nc On Tue, 19 Sep 2023 17:17:47 +0900 Dominique Martinet wrote: > From: Dominique Martinet > > find -xdev with -depth would check for same_fs after the subdirectory > has been processed (because the check is done in the file/dir action, > which is evaluated too late in the -depth case) > This renders `find -xdev -delete` useless, as reported in 2012 here: > https://bugs.busybox.net/show_bug.cgi?id=5756 > > The bug report suggested adding an extra hook, which would be required > if we were to keep the current xdev approach that allows all filesystems > given in argument, but GNU findutils and OpenBSD find actually stop on > the first filesystem boundary e.g. for the following tree: > > $ find test -exec stat --format "%d %n" {} + > 27 test > 27 test/file > 59 test/tmpfs > 27 test/tmpfs/bind > 27 test/tmpfs/bind/file > 59 test/tmpfs/file > (Where 'test/tmpfs' is a tmpfs, and 'test/tmpfs/bind' is a bind mount > to a neighboring directory in the same filesystem as 'test' -- also > tested with a symlink and -follow for openbsd which has no bind mount) > > Then `find test test/tmpfs -xdev` does not print test/tmpfs/bind/file. > > This makes the implementation much simpler (although it's a bit ugly to > carry the parent st_dev as an argument to the function) and smaller > code, and would allow for easy addition of rm/cp --one-file-system if > we want to do that later. > > function old new delta > recursive_action1 398 425 +27 > parse_params 1660 1670 +10 > recursive_action 70 72 +2 > fileAction 216 127 -89 > find_main 540 442 -98 > ------------------------------------------------------------------------------ > (add/remove: 0/0 grow/shrink: 3/2 up/down: 39/-187) Total: -148 bytes > text data bss dec hex filename > 75774 2510 1552 79836 137dc busybox_old > 75626 2510 1552 79688 13748 busybox_unstripped > --- > This has biten me recently and seems to be a known issue for a while. > > I don't recall seeing any patch for this since I've been on the list so > I took a quick stab, please take a look when you have time. > > file system loops aside, this can be tested on linux with the following > "script": > ++++++++++++++ > cd $(mktemp -d bb-find-xdev.XXXXXX) || exit > mkdir tmpfs > mount -t tmpfs tmpfs tmpfs > mkdir -p a/b/c > touch file tmpfs/file a/b/c/file > find $PWD -xdev -delete > # ^ errors about tmpfs busy and pwd not empty, > # but tmpfs/file is left intact and everyting else is gone > umount tmpfs > find $PWD -xdev -delete > +++++++++++++ > > findutils/find.c | 44 ++-------------------------------------- > include/libbb.h | 1 + > libbb/recursive_action.c | 13 +++++++++--- > 3 files changed, 13 insertions(+), 45 deletions(-) > > diff --git a/findutils/find.c b/findutils/find.c > index 31c9969886f6..a4a6bbc2df91 100644 > --- a/findutils/find.c > +++ b/findutils/find.c > @@ -501,7 +501,6 @@ struct globals { > #endif > action ***actions; > smallint need_print; > - smallint xdev_on; > smalluint exitstatus; > recurse_flags_t recurse_flags; > IF_FEATURE_FIND_EXEC_PLUS(unsigned max_argv_len;) > @@ -1015,26 +1014,10 @@ static int FAST_FUNC fileAction( > struct stat *statbuf) > { > int r; > - int same_fs = 1; > - > -#if ENABLE_FEATURE_FIND_XDEV > - if (S_ISDIR(statbuf->st_mode) && G.xdev_count) { > - int i; > - for (i = 0; i < G.xdev_count; i++) { > - if (G.xdev_dev[i] == statbuf->st_dev) > - goto found; > - } > - //bb_error_msg("'%s': not same fs", fileName); > - same_fs = 0; > - found: ; > - } > -#endif > > #if ENABLE_FEATURE_FIND_MAXDEPTH > if (state->depth < G.minmaxdepth[0]) { > - if (same_fs) > - return TRUE; /* skip this, continue recursing */ > - return SKIP; /* stop recursing */ > + return TRUE; /* skip this, continue recursing */ > } > if (state->depth > G.minmaxdepth[1]) > return SKIP; /* stop recursing */ > @@ -1051,11 +1034,6 @@ static int FAST_FUNC fileAction( > return SKIP; > } > #endif > - /* -xdev stops on mountpoints, but AFTER mountpoit itself > - * is processed as usual */ > - if (!same_fs) { > - return SKIP; > - } > > /* Cannot return 0: our caller, recursive_action(), > * will perror() and skip dirs (if called on dir) */ > @@ -1295,7 +1273,7 @@ static action*** parse_params(char **argv) > #if ENABLE_FEATURE_FIND_XDEV > else if (parm == OPT_XDEV) { > dbg("%d", __LINE__); > - G.xdev_on = 1; > + G.recurse_flags |= ACTION_XDEV; > } > #endif > #if ENABLE_FEATURE_FIND_MAXDEPTH > @@ -1718,24 +1696,6 @@ int find_main(int argc UNUSED_PARAM, char **argv) > G.actions = parse_params(&argv[firstopt]); > argv[firstopt] = NULL; > > -#if ENABLE_FEATURE_FIND_XDEV > - if (G.xdev_on) { > - struct stat stbuf; > - > - G.xdev_count = firstopt; > - G.xdev_dev = xzalloc(G.xdev_count * sizeof(G.xdev_dev[0])); > - for (i = 0; argv[i]; i++) { > - /* not xstat(): shouldn't bomb out on > - * "find not_exist exist -xdev" */ > - if (stat(argv[i], &stbuf) == 0) > - G.xdev_dev[i] = stbuf.st_dev; > - /* else G.xdev_dev[i] stays 0 and > - * won't match any real device dev_t > - */ > - } > - } > -#endif > - > for (i = 0; argv[i]; i++) { > if (!recursive_action(argv[i], > G.recurse_flags,/* flags */ > diff --git a/include/libbb.h b/include/libbb.h > index eb97a988045d..e8a7b449aef6 100644 > --- a/include/libbb.h > +++ b/include/libbb.h > @@ -514,6 +514,7 @@ enum { > ACTION_DEPTHFIRST = (1 << 3), > ACTION_QUIET = (1 << 4), > ACTION_DANGLING_OK = (1 << 5), > + ACTION_XDEV = (1 << 6), > }; > typedef uint8_t recurse_flags_t; > typedef struct recursive_state { > diff --git a/libbb/recursive_action.c b/libbb/recursive_action.c > index b1c4bfad7ccf..76dd664369a2 100644 > --- a/libbb/recursive_action.c > +++ b/libbb/recursive_action.c > @@ -62,9 +62,11 @@ static int FAST_FUNC true_action(struct recursive_state *state UNUSED_PARAM, > * ACTION_FOLLOWLINKS mainly controls handling of links to dirs. > * 0: lstat(statbuf). Calls fileAction on link name even if points to dir. > * 1: stat(statbuf). Calls dirAction and optionally recurse on link to dir. > + * > + * If ACTION_XDEV, stop on different filesystem _after_ it has been processed > */ > > -static int recursive_action1(recursive_state_t *state, const char *fileName) > +static int recursive_action1(recursive_state_t *state, const char *fileName, dev_t parentDev) > { > struct stat statbuf; > unsigned follow; > @@ -114,6 +116,10 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) > return TRUE; > } > > + /* skip cross devices -- we still need to process action */ > + if ((state->flags & ACTION_XDEV) && parentDev != 0 && statbuf.st_dev != parentDev) > + goto skip_recurse; > + > dir = opendir(fileName); > if (!dir) { > /* findutils-4.1.20 reports this */ > @@ -132,7 +138,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) > > /* process every file (NB: ACTION_RECURSE is set in flags) */ > state->depth++; > - s = recursive_action1(state, nextFile); > + s = recursive_action1(state, nextFile, statbuf.st_dev); > if (s == FALSE) > status = FALSE; > free(nextFile); > @@ -146,6 +152,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) > } > closedir(dir); > > +skip_recurse: > if (state->flags & ACTION_DEPTHFIRST) { > if (!state->dirAction(state, fileName, &statbuf)) > goto done_nak_warn; > @@ -177,5 +184,5 @@ int FAST_FUNC recursive_action(const char *fileName, > state.fileAction = fileAction ? fileAction : true_action; > state.dirAction = dirAction ? dirAction : true_action; > > - return recursive_action1(&state, fileName); > + return recursive_action1(&state, fileName, 0); > } From ncopa at alpinelinux.org Fri Oct 6 15:11:43 2023 From: ncopa at alpinelinux.org (Natanael Copa) Date: Fri, 6 Oct 2023 17:11:43 +0200 Subject: [PATCH resend] sed: check errors writing file with sed -i In-Reply-To: <20230919081102.3136547-1-asmadeus@codewreck.org> References: <20230919081102.3136547-1-asmadeus@codewreck.org> Message-ID: <20231006171143.6b995af8@ncopa-desktop.lan> Hi! Any change to get this merged? We have used it in alpine for a while, and so far no issues. Thanks! -nc On Tue, 19 Sep 2023 17:11:02 +0900 Dominique Martinet wrote: > From: Dominique Martinet > > sed would currently not error if write failed when modifying a file. > > This can be reproduced with the following 'script': > $ sudo mount -t tmpfs tmpfs -o size=1M /tmp/m > $ sudo chmod 777 /tmp/m > $ echo foo > /tmp/m/foo > $ dd if=/dev/zero of=/tmp/m/fill bs=4k > dd: error writing '/tmp/m/fill': No space left on device > 256+0 records in > 255+0 records out > 1044480 bytes (1.0 MB, 1020 KiB) copied, 0.00234567 s, 445 MB/s > $ busybox sed -i -e 's/.*/bar/' /tmp/m/foo > $ echo $? > 0 > $ cat /tmp/m/foo > > > new behaviour: > $ echo foo > /tmp/m/foo > $ ./busybox sed -i -e 's/.*/bar/' /tmp/m/foo > sed: write error > $ echo $? > 4 > $ cat /tmp/m/foo > foo > > function old new delta > sed_main 754 801 +47 > ------------------------------------------------------------------------------ > (add/remove: 0/0 grow/shrink: 1/0 up/down: 47/0) Total: 47 bytes > text data bss dec hex filename > 75727 2510 1552 79789 137ad busybox_old > 75774 2510 1552 79836 137dc busybox_unstripped > > Signed-off-by: Dominique Martinet > --- > Resending this patch again as it doesn't seem to have been applied. > > FWIW it's still applied on alpine builds (since Nov last year); would be > great to see this merged so I can forget about it :) > > editors/sed.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/editors/sed.c b/editors/sed.c > index 00dde60be329..6179c5e80958 100644 > --- a/editors/sed.c > +++ b/editors/sed.c > @@ -1648,6 +1648,11 @@ int sed_main(int argc UNUSED_PARAM, char **argv) > fchown(nonstdoutfd, statbuf.st_uid, statbuf.st_gid); > > process_files(); > + fflush(G.nonstdout); > + if (ferror(G.nonstdout)) { > + xfunc_error_retval = 4; /* It's what gnu sed exits with... */ > + bb_simple_error_msg_and_die(bb_msg_write_error); > + } > fclose(G.nonstdout); > G.nonstdout = stdout; > From mjt at tls.msk.ru Sat Oct 7 08:29:11 2023 From: mjt at tls.msk.ru (Michael Tokarev) Date: Sat, 7 Oct 2023 11:29:11 +0300 Subject: [PATCH] buildsys: resurrect PLATFORM_LINUX and depend on it for linux-specific applets In-Reply-To: <20221104164927.95804-1-mjt@msgid.tls.msk.ru> References: <20221104164927.95804-1-mjt@msgid.tls.msk.ru> Message-ID: Another ping 1.5 hours later? Thanks, /mjt From Christian.Franke at t-online.de Mon Oct 9 16:59:05 2023 From: Christian.Franke at t-online.de (Christian Franke) Date: Mon, 9 Oct 2023 18:59:05 +0200 Subject: [PATCH 1/3] Cygwin: regenerate defconfig Message-ID: This patch should make PATCH 2/3 easier to review. -------------- next part -------------- From baf0b558ac85905a80a95d4ef4e8a49a3ddff8b4 Mon Sep 17 00:00:00 2001 From: Christian Franke Date: Mon, 9 Oct 2023 11:12:35 +0200 Subject: [PATCH 1/3] Cygwin: regenerate defconfig Signed-off-by: Christian Franke --- configs/cygwin_defconfig | 792 +++++++++++++++++++++++++-------------- 1 file changed, 515 insertions(+), 277 deletions(-) diff --git a/configs/cygwin_defconfig b/configs/cygwin_defconfig index c09bc9281..61e2c2463 100644 --- a/configs/cygwin_defconfig +++ b/configs/cygwin_defconfig @@ -1,52 +1,41 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.19.0.git -# Sun Jul 10 12:48:50 2011 +# Busybox version: 1.37.0.git +# Mon Oct 9 11:08:46 2023 # CONFIG_HAVE_DOT_CONFIG=y # -# Busybox Settings -# - -# -# General Configuration +# Settings # CONFIG_DESKTOP=y # CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set CONFIG_INCLUDE_SUSv2=y -# CONFIG_USE_PORTABLE_CODE is not set -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y CONFIG_FEATURE_COMPRESS_USAGE=y -CONFIG_FEATURE_INSTALLER=y -# CONFIG_INSTALL_NO_USR is not set -# CONFIG_LOCALE_SUPPORT is not set -CONFIG_UNICODE_SUPPORT=y -# CONFIG_UNICODE_USING_LOCALE is not set -# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set -CONFIG_SUBST_WCHAR=65533 -CONFIG_LAST_SUPPORTED_WCHAR=0 -# CONFIG_UNICODE_COMBINING_WCHARS is not set -# CONFIG_UNICODE_WIDE_WCHARS is not set -# CONFIG_UNICODE_BIDI_SUPPORT is not set -# CONFIG_UNICODE_NEUTRAL_TABLE is not set -# CONFIG_UNICODE_PRESERVE_BROKEN is not set -CONFIG_LONG_OPTS=y +CONFIG_LFS=y +CONFIG_TIME64=y +# CONFIG_PAM is not set CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_UTMP is not set # CONFIG_FEATURE_WTMP is not set CONFIG_FEATURE_PIDFILE=y +CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set -# CONFIG_SELINUX is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y # @@ -56,21 +45,17 @@ CONFIG_FEATURE_SYSLOG=y # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -85,29 +70,66 @@ CONFIG_INSTALL_APPLET_SYMLINKS=y CONFIG_PREFIX="./_install" # -# Busybox Library Tuning +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +# CONFIG_WARN_SIMPLE_MSG is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning # +# CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_SHA1_SMALL=3 +CONFIG_SHA1_HWACCEL=y +CONFIG_SHA256_HWACCEL=y +CONFIG_SHA3_SMALL=1 +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_MONOTONIC_SYSCALL is not set +CONFIG_IOCTL_HEX2STR_ERROR=y CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set CONFIG_FEATURE_EDITING_HISTORY=255 CONFIG_FEATURE_EDITING_SAVEHISTORY=y +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +CONFIG_FEATURE_REVERSE_SEARCH=y CONFIG_FEATURE_TAB_COMPLETION=y # CONFIG_FEATURE_USERNAME_COMPLETION is not set CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_WINCH=y # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set -CONFIG_FEATURE_NON_POSIX_CP=y -# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -# CONFIG_MONOTONIC_SYSCALL is not set -CONFIG_IOCTL_HEX2STR_ERROR=y -CONFIG_FEATURE_HWIB=y +# CONFIG_LOCALE_SUPPORT is not set +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=65533 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y # # Applets @@ -124,76 +146,106 @@ CONFIG_FEATURE_SEAMLESS_GZ=y # CONFIG_AR is not set # CONFIG_FEATURE_AR_LONG_FILENAMES is not set # CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y +CONFIG_ZCAT=y +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y CONFIG_BUNZIP2=y +CONFIG_BZCAT=y +CONFIG_UNLZMA=y +CONFIG_LZCAT=y +CONFIG_LZMA=y +CONFIG_UNXZ=y +CONFIG_XZCAT=y +CONFIG_XZ=y CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y CONFIG_FEATURE_CPIO_O=y CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y +CONFIG_FEATURE_CPIO_RENUMBER_INODES=y # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set -CONFIG_GUNZIP=y CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y +CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set +CONFIG_FEATURE_GZIP_DECOMPRESS=y CONFIG_LZOP=y +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set # CONFIG_LZOP_COMPR_HIGH is not set -CONFIG_RPM2CPIO=y CONFIG_RPM=y +CONFIG_RPM2CPIO=y CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_CREATE=y CONFIG_FEATURE_TAR_AUTODETECT=y CONFIG_FEATURE_TAR_FROM=y CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_TO_COMMAND=y CONFIG_FEATURE_TAR_UNAME_GNAME=y CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y # CONFIG_FEATURE_TAR_SELINUX is not set -# CONFIG_UNCOMPRESS is not set -CONFIG_UNLZMA=y -CONFIG_FEATURE_LZMA_FAST=y -CONFIG_LZMA=y -CONFIG_UNXZ=y -CONFIG_XZ=y CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +CONFIG_FEATURE_UNZIP_BZIP2=y +CONFIG_FEATURE_UNZIP_LZMA=y +CONFIG_FEATURE_UNZIP_XZ=y +CONFIG_FEATURE_LZMA_FAST=y # # Coreutils # +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for date and touch +# +CONFIG_FEATURE_TIMEZONE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y CONFIG_BASENAME=y CONFIG_CAT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -# CONFIG_FEATURE_DATE_NANO is not set -CONFIG_FEATURE_DATE_COMPAT=y -CONFIG_ID=y -CONFIG_GROUPS=y -CONFIG_TEST=y -CONFIG_FEATURE_TEST_64=y -CONFIG_TOUCH=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -CONFIG_BASE64=y -CONFIG_CAL=y -CONFIG_CATV=y +CONFIG_FEATURE_CATN=y +CONFIG_FEATURE_CATV=y CONFIG_CHGRP=y CONFIG_CHMOD=y CONFIG_CHOWN=y CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y CONFIG_CHROOT=y CONFIG_CKSUM=y +CONFIG_CRC32=y CONFIG_COMM=y CONFIG_CP=y CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y CONFIG_DD=y CONFIG_FEATURE_DD_SIGNAL_HANDLING=y CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y CONFIG_DF=y CONFIG_FEATURE_DF_FANCY=y +CONFIG_FEATURE_SKIP_ROOTFS=y CONFIG_DIRNAME=y CONFIG_DOS2UNIX=y CONFIG_UNIX2DOS=y @@ -202,40 +254,54 @@ CONFIG_DU=y CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y CONFIG_EXPAND=y -CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_UNEXPAND=y CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y -CONFIG_FSYNC=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y CONFIG_LN=y CONFIG_LOGNAME=y CONFIG_LS=y CONFIG_FEATURE_LS_FILETYPES=y CONFIG_FEATURE_LS_FOLLOWLINKS=y CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y CONFIG_FEATURE_LS_SORTFILES=y CONFIG_FEATURE_LS_TIMESTAMPS=y CONFIG_FEATURE_LS_USERNAME=y CONFIG_FEATURE_LS_COLOR=y CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y CONFIG_MKFIFO=y CONFIG_MKNOD=y +CONFIG_MKTEMP=y CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y CONFIG_NICE=y +CONFIG_NL=y CONFIG_NOHUP=y +CONFIG_NPROC=y CONFIG_OD=y +CONFIG_PASTE=y CONFIG_PRINTENV=y CONFIG_PRINTF=y CONFIG_PWD=y @@ -244,68 +310,76 @@ CONFIG_FEATURE_READLINK_FOLLOW=y CONFIG_REALPATH=y CONFIG_RM=y CONFIG_RMDIR=y -CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y CONFIG_SEQ=y -CONFIG_SHA1SUM=y -CONFIG_SHA256SUM=y -CONFIG_SHA512SUM=y +CONFIG_SHRED=y +CONFIG_SHUF=y CONFIG_SLEEP=y CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_FEATURE_FLOAT_SLEEP=y CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set CONFIG_SPLIT=y CONFIG_FEATURE_SPLIT_FANCY=y # CONFIG_STAT is not set # CONFIG_FEATURE_STAT_FORMAT is not set +# CONFIG_FEATURE_STAT_FILESYSTEM is not set CONFIG_STTY=y CONFIG_SUM=y CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y +CONFIG_FSYNC=y CONFIG_TAC=y CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TIMEOUT=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y CONFIG_TRUE=y +CONFIG_TRUNCATE=y +CONFIG_TSORT=y CONFIG_TTY=y CONFIG_UNAME=y -CONFIG_UNEXPAND=y -CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNAME_OSNAME="GNU/Linux" +CONFIG_BB_ARCH=y CONFIG_UNIQ=y +CONFIG_UNLINK=y CONFIG_USLEEP=y CONFIG_UUDECODE=y +CONFIG_BASE32=y +CONFIG_BASE64=y CONFIG_UUENCODE=y CONFIG_WC=y CONFIG_FEATURE_WC_LARGE=y # CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set CONFIG_WHOAMI=y CONFIG_YES=y -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum, sha256sum, sha512sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - # # Console Utilities # # CONFIG_CHVT is not set -# CONFIG_FGCONSOLE is not set CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set +# CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set # CONFIG_LOADFONT is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set # CONFIG_LOADKMAP is not set # CONFIG_OPENVT is not set CONFIG_RESET=y @@ -313,36 +387,48 @@ CONFIG_RESIZE=y CONFIG_FEATURE_RESIZE_PRINT=y # CONFIG_SETCONSOLE is not set # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -# CONFIG_SETFONT is not set -# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set -CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_SETKEYCODES is not set # CONFIG_SETLOGCONS is not set # CONFIG_SHOWKEY is not set -# CONFIG_FEATURE_LOADFONT_PSF2 is not set -# CONFIG_FEATURE_LOADFONT_RAW is not set # # Debian Utilities # -CONFIG_MKTEMP=y CONFIG_PIPE_PROGRESS=y CONFIG_RUN_PARTS=y CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y CONFIG_FEATURE_RUN_PARTS_FANCY=y CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_WHICH=y +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +CONFIG_RESUME=y +CONFIG_RUN_INIT=y + # # Editors # +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_ED=y CONFIG_PATCH=y +CONFIG_SED=y CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 # CONFIG_FEATURE_VI_8BIT is not set CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -353,14 +439,10 @@ CONFIG_FEATURE_VI_SETOPTS=y CONFIG_FEATURE_VI_SET=y CONFIG_FEATURE_VI_WIN_RESIZE=y CONFIG_FEATURE_VI_ASK_TERMINAL=y -CONFIG_AWK=y -CONFIG_FEATURE_AWK_LIBM=y -CONFIG_CMP=y -CONFIG_DIFF=y -CONFIG_FEATURE_DIFF_LONG_OPTIONS=y -CONFIG_FEATURE_DIFF_DIR=y -CONFIG_ED=y -CONFIG_SED=y +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # @@ -369,14 +451,22 @@ CONFIG_FEATURE_ALLOW_EXEC=y CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_SAMEFILE=y CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_EXEC_OK=y CONFIG_FEATURE_FIND_USER=y CONFIG_FEATURE_FIND_GROUP=y CONFIG_FEATURE_FIND_NOT=y @@ -384,20 +474,25 @@ CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_EMPTY=y CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y # CONFIG_FEATURE_FIND_CONTEXT is not set CONFIG_FEATURE_FIND_LINKS=y CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_EGREP=y +CONFIG_FGREP=y CONFIG_FEATURE_GREP_CONTEXT=y CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y # # Init Utilities @@ -406,9 +501,13 @@ CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set # CONFIG_HALT is not set +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +CONFIG_FEATURE_WAIT_FOR_INIT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" # CONFIG_INIT is not set +# CONFIG_LINUXRC is not set # CONFIG_FEATURE_USE_INITTAB is not set # CONFIG_FEATURE_KILL_REMOVED is not set CONFIG_FEATURE_KILL_DELAY=0 @@ -416,45 +515,45 @@ CONFIG_FEATURE_KILL_DELAY=0 # CONFIG_FEATURE_INIT_SYSLOG is not set # CONFIG_FEATURE_INIT_QUIET is not set # CONFIG_FEATURE_INIT_COREDUMPS is not set -# CONFIG_LINUXRC is not set CONFIG_INIT_TERMINAL_TYPE="" -CONFIG_MESG=y -CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set # # Login/Password Management Utilities # -CONFIG_ADD_SHELL=y -CONFIG_REMOVE_SHELL=y CONFIG_FEATURE_SHADOWPASSWDS=y CONFIG_USE_BB_PWD_GRP=y CONFIG_USE_BB_SHADOW=y CONFIG_USE_BB_CRYPT=y CONFIG_USE_BB_CRYPT_SHA=y +CONFIG_ADD_SHELL=y +CONFIG_REMOVE_SHELL=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y CONFIG_ADDUSER=y -CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y # CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_LAST_ID=60000 CONFIG_FIRST_SYSTEM_ID=100 CONFIG_LAST_SYSTEM_ID=999 -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_CHPASSWD=y +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" +CONFIG_CRYPTPW=y +CONFIG_MKPASSWD=y CONFIG_DELUSER=y CONFIG_DELGROUP=y CONFIG_FEATURE_DEL_USER_FROM_GROUP=y # CONFIG_GETTY is not set CONFIG_LOGIN=y -# CONFIG_PAM is not set +# CONFIG_LOGIN_SESSION_AS_CHILD is not set CONFIG_LOGIN_SCRIPTS=y CONFIG_FEATURE_NOLOGIN=y CONFIG_FEATURE_SECURETTY=y CONFIG_PASSWD=y CONFIG_FEATURE_PASSWD_WEAK_CHECK=y -CONFIG_CRYPTPW=y -CONFIG_CHPASSWD=y CONFIG_SU=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set CONFIG_SULOGIN=y CONFIG_VLOCK=y @@ -469,29 +568,29 @@ CONFIG_CHATTR=y # # Linux Module Utilities # -# CONFIG_MODINFO is not set # CONFIG_MODPROBE_SMALL is not set -# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set -# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +# CONFIG_DEPMOD is not set # CONFIG_INSMOD is not set -# CONFIG_RMMOD is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +# CONFIG_MODINFO is not set # CONFIG_MODPROBE is not set # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set -# CONFIG_DEPMOD is not set +# CONFIG_RMMOD is not set # # Options common to multiple modutils # +# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES is not set -# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_MODUTILS_ALIAS is not set # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set CONFIG_DEFAULT_MODULES_DIR="" @@ -500,18 +599,23 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # # Linux System Utilities # -# CONFIG_BLOCKDEV is not set -CONFIG_REV=y # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set +CONFIG_BLKDISCARD=y # CONFIG_BLKID is not set # CONFIG_FEATURE_BLKID_TYPE is not set +# CONFIG_BLOCKDEV is not set +CONFIG_CAL=y +CONFIG_CHRT=y # CONFIG_DMESG is not set # CONFIG_FEATURE_DMESG_PRETTY is not set +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +CONFIG_FALLOCATE=y +CONFIG_FATATTR=y # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set # CONFIG_FDFORMAT is not set # CONFIG_FDISK is not set # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set @@ -524,23 +628,23 @@ CONFIG_REV=y # CONFIG_FEATURE_FDISK_ADVANCED is not set # CONFIG_FINDFS is not set CONFIG_FLOCK=y +# CONFIG_FDFLUSH is not set # CONFIG_FREERAMDISK is not set CONFIG_FSCK_MINIX=y -# CONFIG_MKFS_EXT2 is not set -# CONFIG_MKFS_MINIX is not set -CONFIG_FEATURE_MINIX2=y -# CONFIG_MKFS_REISER is not set -# CONFIG_MKFS_VFAT is not set +CONFIG_FSFREEZE=y +CONFIG_FSTRIM=y CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y -CONFIG_FEATURE_HEXDUMP_REVERSE=y CONFIG_HD=y +CONFIG_XXD=y # CONFIG_HWCLOCK is not set -# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +# CONFIG_IONICE is not set CONFIG_IPCRM=y # CONFIG_IPCS is not set +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set # CONFIG_LOSETUP is not set # CONFIG_LSPCI is not set # CONFIG_LSUSB is not set @@ -550,6 +654,16 @@ CONFIG_IPCRM=y # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set # CONFIG_FEATURE_MDEV_EXEC is not set # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +# CONFIG_FEATURE_MDEV_DAEMON is not set +CONFIG_MESG=y +CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y +CONFIG_MKE2FS=y +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +CONFIG_FEATURE_MINIX2=y +# CONFIG_MKFS_REISER is not set +CONFIG_MKDOSFS=y +# CONFIG_MKFS_VFAT is not set CONFIG_MKSWAP=y CONFIG_FEATURE_MKSWAP_UUID=y CONFIG_MORE=y @@ -562,57 +676,90 @@ CONFIG_MORE=y # CONFIG_FEATURE_MOUNT_CIFS is not set # CONFIG_FEATURE_MOUNT_FLAGS is not set # CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +# CONFIG_MOUNTPOINT is not set +CONFIG_NOLOGIN=y +# CONFIG_NOLOGIN_DEPENDENCIES is not set +CONFIG_NSENTER=y # CONFIG_PIVOT_ROOT is not set # CONFIG_RDATE is not set CONFIG_RDEV=y CONFIG_READPROFILE=y +CONFIG_RENICE=y +CONFIG_REV=y # CONFIG_RTCWAKE is not set CONFIG_SCRIPT=y CONFIG_SCRIPTREPLAY=y # CONFIG_SETARCH is not set -# CONFIG_SWAPONOFF is not set +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y +CONFIG_FEATURE_SWAPON_DISCARD=y # CONFIG_FEATURE_SWAPON_PRI is not set +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y # CONFIG_SWITCH_ROOT is not set +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set +CONFIG_UEVENT=y # CONFIG_UMOUNT is not set # CONFIG_FEATURE_UMOUNT_ALL is not set +CONFIG_UNSHARE=y +# CONFIG_WALL is not set # CONFIG_FEATURE_MOUNT_LOOP is not set # CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set # CONFIG_FEATURE_MTAB_SUPPORT is not set -# CONFIG_VOLUMEID is not set -# CONFIG_FEATURE_VOLUMEID_EXT is not set +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +CONFIG_FEATURE_VOLUMEID_BCACHE=y # CONFIG_FEATURE_VOLUMEID_BTRFS is not set -# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +CONFIG_FEATURE_VOLUMEID_EROFS=y +CONFIG_FEATURE_VOLUMEID_EXFAT=y +# CONFIG_FEATURE_VOLUMEID_EXT is not set +CONFIG_FEATURE_VOLUMEID_F2FS=y # CONFIG_FEATURE_VOLUMEID_FAT is not set # CONFIG_FEATURE_VOLUMEID_HFS is not set -# CONFIG_FEATURE_VOLUMEID_JFS is not set -# CONFIG_FEATURE_VOLUMEID_XFS is not set -# CONFIG_FEATURE_VOLUMEID_NTFS is not set # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set -# CONFIG_FEATURE_VOLUMEID_UDF is not set -# CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_LFS is not set +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set # CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set -# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_LUKS is not set +CONFIG_FEATURE_VOLUMEID_MINIX=y +CONFIG_FEATURE_VOLUMEID_NILFS=y +# CONFIG_FEATURE_VOLUMEID_NTFS is not set +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set # CONFIG_FEATURE_VOLUMEID_ROMFS is not set +# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set # CONFIG_FEATURE_VOLUMEID_SYSV is not set -# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set -# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +CONFIG_FEATURE_VOLUMEID_UBIFS=y +# CONFIG_FEATURE_VOLUMEID_UDF is not set +# CONFIG_FEATURE_VOLUMEID_XFS is not set # # Miscellaneous Utilities # -# CONFIG_CONSPY is not set -# CONFIG_NANDWRITE is not set -# CONFIG_NANDDUMP is not set -# CONFIG_SETSERIAL is not set -# CONFIG_UBIATTACH is not set -# CONFIG_UBIDETACH is not set -# CONFIG_UBIMKVOL is not set -# CONFIG_UBIRMVOL is not set -# CONFIG_UBIRSVOL is not set -# CONFIG_UBIUPDATEVOL is not set # CONFIG_ADJTIMEX is not set +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +CONFIG_BC=y +CONFIG_DC=y +CONFIG_FEATURE_DC_BIG=y +# CONFIG_FEATURE_DC_LIBM is not set +CONFIG_FEATURE_BC_INTERACTIVE=y +CONFIG_FEATURE_BC_LONG_OPTIONS=y # CONFIG_BEEP is not set CONFIG_FEATURE_BEEP_FREQ=0 CONFIG_FEATURE_BEEP_LENGTH_MS=0 @@ -624,89 +771,98 @@ CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y CONFIG_FEATURE_CHAT_SEND_ESCAPES=y CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y CONFIG_FEATURE_CHAT_CLR_ABORT=y -CONFIG_CHRT=y +# CONFIG_CONSPY is not set CONFIG_CROND=y CONFIG_FEATURE_CROND_D=y CONFIG_FEATURE_CROND_CALL_SENDMAIL=y +CONFIG_FEATURE_CROND_SPECIAL_TIMES=y CONFIG_FEATURE_CROND_DIR="/var/spool/cron" CONFIG_CRONTAB=y -CONFIG_DC=y -CONFIG_FEATURE_DC_LIBM=y # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set # CONFIG_FEATURE_DEVFS is not set CONFIG_DEVMEM=y -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set # CONFIG_FBSPLASH is not set -# CONFIG_FLASHCP is not set +# CONFIG_FLASH_ERASEALL is not set # CONFIG_FLASH_LOCK is not set # CONFIG_FLASH_UNLOCK is not set -# CONFIG_FLASH_ERASEALL is not set -# CONFIG_IONICE is not set +# CONFIG_FLASHCP is not set +CONFIG_GETFATTR=y +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_HEXEDIT=y +CONFIG_I2CGET=y +CONFIG_I2CSET=y +CONFIG_I2CDUMP=y +CONFIG_I2CDETECT=y +CONFIG_I2CTRANSFER=y # CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_SMALL is not set -# CONFIG_FEATURE_LAST_FANCY is not set CONFIG_LESS=y CONFIG_FEATURE_LESS_MAXLINES=9999999 CONFIG_FEATURE_LESS_BRACKETS=y CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y CONFIG_FEATURE_LESS_MARKS=y CONFIG_FEATURE_LESS_REGEXP=y CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y CONFIG_FEATURE_LESS_DASHCMD=y CONFIG_FEATURE_LESS_LINENUMS=y -# CONFIG_HDPARM is not set -# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set -# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +CONFIG_LSSCSI=y # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set CONFIG_MAN=y # CONFIG_MICROCOM is not set -# CONFIG_MOUNTPOINT is not set +CONFIG_MIM=y CONFIG_MT=y +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +CONFIG_PARTPROBE=y # CONFIG_RAIDAUTORUN is not set # CONFIG_READAHEAD is not set # CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set -CONFIG_SETSID=y +CONFIG_SEEDRNG=y +CONFIG_SETFATTR=y +# CONFIG_SETSERIAL is not set CONFIG_STRINGS=y -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set CONFIG_TIME=y -CONFIG_TIMEOUT=y +CONFIG_TREE=y +CONFIG_TS=y CONFIG_TTYSIZE=y +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +CONFIG_UBIRENAME=y CONFIG_VOLNAME=y -# CONFIG_WALL is not set # CONFIG_WATCHDOG is not set +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # # Networking Utilities # -# CONFIG_NAMEIF is not set -# CONFIG_FEATURE_NAMEIF_EXTENDED is not set -# CONFIG_NBDCLIENT is not set -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -# CONFIG_NC_110_COMPAT is not set -# CONFIG_PING is not set -# CONFIG_PING6 is not set -# CONFIG_FEATURE_FANCY_PING is not set -CONFIG_WHOIS=y CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +CONFIG_FEATURE_HWIB=y +# CONFIG_FEATURE_TLS_SHA1 is not set # CONFIG_ARP is not set # CONFIG_ARPING is not set # CONFIG_BRCTL is not set @@ -714,17 +870,18 @@ CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_FEATURE_BRCTL_SHOW is not set CONFIG_DNSD=y # CONFIG_ETHER_WAKE is not set -CONFIG_FAKEIDENTD=y CONFIG_FTPD=y -CONFIG_FEATURE_FTP_WRITE=y +CONFIG_FEATURE_FTPD_WRITE=y CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y +CONFIG_FEATURE_FTPD_AUTHENTICATION=y CONFIG_FTPGET=y CONFIG_FTPPUT=y CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y CONFIG_HTTPD=y +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80 CONFIG_FEATURE_HTTPD_RANGES=y -# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set CONFIG_FEATURE_HTTPD_SETUID=y CONFIG_FEATURE_HTTPD_BASIC_AUTH=y CONFIG_FEATURE_HTTPD_AUTH_MD5=y @@ -735,6 +892,10 @@ CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y CONFIG_FEATURE_HTTPD_ERROR_PAGES=y CONFIG_FEATURE_HTTPD_PROXY=y CONFIG_FEATURE_HTTPD_GZIP=y +CONFIG_FEATURE_HTTPD_ETAG=y +CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y +CONFIG_FEATURE_HTTPD_DATE=y +CONFIG_FEATURE_HTTPD_ACL_IP=y # CONFIG_IFCONFIG is not set # CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set @@ -743,11 +904,10 @@ CONFIG_FEATURE_HTTPD_GZIP=y # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFENSLAVE is not set # CONFIG_IFPLUGD is not set -# CONFIG_IFUPDOWN is not set +CONFIG_IFUP=y +CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="" # CONFIG_FEATURE_IFUPDOWN_IP is not set -# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set @@ -760,77 +920,115 @@ CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y # CONFIG_FEATURE_INETD_RPC is not set # CONFIG_IP is not set +# CONFIG_IPADDR is not set +# CONFIG_IPLINK is not set +# CONFIG_IPROUTE is not set +# CONFIG_IPTUNNEL is not set +# CONFIG_IPRULE is not set +CONFIG_IPNEIGH=y # CONFIG_FEATURE_IP_ADDRESS is not set # CONFIG_FEATURE_IP_LINK is not set # CONFIG_FEATURE_IP_ROUTE is not set +CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_FEATURE_IP_RULE is not set -# CONFIG_FEATURE_IP_SHORT_FORMS is not set +CONFIG_FEATURE_IP_NEIGH=y # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -# CONFIG_IPADDR is not set -# CONFIG_IPLINK is not set -# CONFIG_IPROUTE is not set -# CONFIG_IPTUNNEL is not set -# CONFIG_IPRULE is not set CONFIG_IPCALC=y -CONFIG_FEATURE_IPCALC_FANCY=y CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FAKEIDENTD=y +# CONFIG_NAMEIF is not set +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +# CONFIG_NBDCLIENT is not set +CONFIG_NC=y +# CONFIG_NETCAT is not set +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +# CONFIG_NC_110_COMPAT is not set # CONFIG_NETSTAT is not set # CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_PRG is not set # CONFIG_NSLOOKUP is not set +# CONFIG_FEATURE_NSLOOKUP_BIG is not set +# CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set +# CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set +# CONFIG_PING is not set +# CONFIG_PING6 is not set +# CONFIG_FEATURE_FANCY_PING is not set CONFIG_PSCAN=y # CONFIG_ROUTE is not set # CONFIG_SLATTACH is not set +CONFIG_SSL_CLIENT=y +CONFIG_TC=y +CONFIG_FEATURE_TC_INGRESS=y CONFIG_TCPSVD=y +CONFIG_UDPSVD=y CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y CONFIG_TELNETD=y CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 CONFIG_FEATURE_TELNETD_INETD_WAIT=y CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +CONFIG_FEATURE_TFTP_HPA_COMPAT=y CONFIG_TFTPD=y - -# -# Common options for tftp/tftpd -# CONFIG_FEATURE_TFTP_GET=y CONFIG_FEATURE_TFTP_PUT=y CONFIG_FEATURE_TFTP_BLOCKSIZE=y -CONFIG_FEATURE_TFTP_PROGRESS_BAR=y # CONFIG_TFTP_DEBUG is not set +CONFIG_TLS=y # CONFIG_TRACEROUTE is not set # CONFIG_TRACEROUTE6 is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set # CONFIG_TUNCTL is not set # CONFIG_FEATURE_TUNCTL_UG is not set +# CONFIG_VCONFIG is not set +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_FTP=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_WHOIS=y +# CONFIG_ZCIP is not set # CONFIG_UDHCPD is not set -# CONFIG_DHCPRELAY is not set -# CONFIG_DUMPLEASES is not set -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BOOTP is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set # CONFIG_UDHCPC is not set # CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" +CONFIG_UDHCPC6=y +CONFIG_FEATURE_UDHCPC6_RFC3646=y +CONFIG_FEATURE_UDHCPC6_RFC4704=y +CONFIG_FEATURE_UDHCPC6_RFC4833=y +CONFIG_FEATURE_UDHCPC6_RFC5970=y + +# +# Common options for DHCP applets +# +CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 # CONFIG_FEATURE_UDHCP_RFC3397 is not set # CONFIG_FEATURE_UDHCP_8021Q is not set -CONFIG_UDHCPC_DEFAULT_SCRIPT="" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" -CONFIG_UDPSVD=y -# CONFIG_VCONFIG is not set -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_TIMEOUT=y -# CONFIG_ZCIP is not set # # Print Utilities @@ -842,8 +1040,8 @@ CONFIG_LPQ=y # # Mail Utilities # -CONFIG_MAKEMIME=y CONFIG_FEATURE_MIME_CHARSET="us-ascii" +CONFIG_MAKEMIME=y CONFIG_POPMAILDIR=y CONFIG_FEATURE_POPMAILDIR_DELIVERY=y CONFIG_REFORMIME=y @@ -853,94 +1051,112 @@ CONFIG_SENDMAIL=y # # Process Utilities # -CONFIG_IOSTAT=y -CONFIG_MPSTAT=y -CONFIG_NMETER=y -# CONFIG_PMAP is not set -# CONFIG_POWERTOP is not set -CONFIG_PSTREE=y -CONFIG_PWDX=y -CONFIG_SMEMCAP=y +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_SHOW_THREADS is not set # CONFIG_FREE is not set CONFIG_FUSER=y +CONFIG_IOSTAT=y CONFIG_KILL=y CONFIG_KILLALL=y CONFIG_KILLALL5=y +CONFIG_LSOF=y +CONFIG_MPSTAT=y +CONFIG_NMETER=y CONFIG_PGREP=y +CONFIG_PKILL=y CONFIG_PIDOF=y CONFIG_FEATURE_PIDOF_SINGLE=y CONFIG_FEATURE_PIDOF_OMIT=y -CONFIG_PKILL=y +# CONFIG_PMAP is not set +# CONFIG_POWERTOP is not set +# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set # CONFIG_FEATURE_PS_TIME is not set -CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_RENICE=y +CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +CONFIG_PSTREE=y +CONFIG_PWDX=y +CONFIG_SMEMCAP=y CONFIG_BB_SYSCTL=y CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_FEATURE_TOP_SMP_CPU=y CONFIG_FEATURE_TOP_DECIMALS=y CONFIG_FEATURE_TOP_SMP_PROCESS=y CONFIG_FEATURE_TOPMEM=y -# CONFIG_FEATURE_SHOW_THREADS is not set # CONFIG_UPTIME is not set +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set CONFIG_WATCH=y # # Runit Utilities # +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y CONFIG_RUNSV=y CONFIG_RUNSVDIR=y # CONFIG_FEATURE_RUNSVDIR_LOG is not set CONFIG_SV=y CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" +CONFIG_SVC=y +CONFIG_SVOK=y CONFIG_SVLOGD=y -CONFIG_CHPST=y -CONFIG_SETUIDGID=y -CONFIG_ENVUIDGID=y -CONFIG_ENVDIR=y -CONFIG_SOFTLIMIT=y # CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set # CONFIG_GETENFORCE is not set # CONFIG_GETSEBOOL is not set # CONFIG_LOAD_POLICY is not set # CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set # CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set # CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set # # Shells # +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_BASH_COMPAT=y -# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y -CONFIG_ASH_GETOPTS=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_MAIL is not set CONFIG_ASH_ECHO=y CONFIG_ASH_PRINTF=y CONFIG_ASH_TEST=y +CONFIG_ASH_HELP=y +CONFIG_ASH_GETOPTS=y CONFIG_ASH_CMDCMD=y -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y -CONFIG_ASH_RANDOM_SUPPORT=y -CONFIG_ASH_EXPAND_PRMT=y # CONFIG_CTTYHACK is not set CONFIG_HUSH=y +CONFIG_SHELL_HUSH=y CONFIG_HUSH_BASH_COMPAT=y CONFIG_HUSH_BRACE_EXPANSION=y -CONFIG_HUSH_HELP=y +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +CONFIG_HUSH_LINENO_VAR=y CONFIG_HUSH_INTERACTIVE=y CONFIG_HUSH_SAVEHISTORY=y CONFIG_HUSH_JOB=y @@ -951,34 +1167,56 @@ CONFIG_HUSH_CASE=y CONFIG_HUSH_FUNCTIONS=y CONFIG_HUSH_LOCAL=y CONFIG_HUSH_RANDOM_SUPPORT=y -CONFIG_HUSH_EXPORT_N=y CONFIG_HUSH_MODE_X=y -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -# CONFIG_FEATURE_BASH_IS_ASH is not set -# CONFIG_FEATURE_BASH_IS_HUSH is not set -CONFIG_FEATURE_BASH_IS_NONE=y -CONFIG_SH_MATH_SUPPORT=y -CONFIG_SH_MATH_SUPPORT_64=y +CONFIG_HUSH_ECHO=y +CONFIG_HUSH_PRINTF=y +CONFIG_HUSH_TEST=y +CONFIG_HUSH_HELP=y +CONFIG_HUSH_EXPORT=y +CONFIG_HUSH_EXPORT_N=y +CONFIG_HUSH_READONLY=y +CONFIG_HUSH_KILL=y +CONFIG_HUSH_WAIT=y +CONFIG_HUSH_COMMAND=y +CONFIG_HUSH_TRAP=y +CONFIG_HUSH_TYPE=y +CONFIG_HUSH_TIMES=y +CONFIG_HUSH_READ=y +CONFIG_HUSH_SET=y +CONFIG_HUSH_UNSET=y +CONFIG_HUSH_ULIMIT=y +CONFIG_HUSH_UMASK=y +CONFIG_HUSH_GETOPTS=y +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_READ_FRAC=y CONFIG_FEATURE_SH_HISTFILESIZE=y +CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y # # System Logging Utilities # +# CONFIG_KLOGD is not set +# CONFIG_FEATURE_KLOGD_KLOGCTL is not set +CONFIG_LOGGER=y +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y CONFIG_SYSLOGD=y CONFIG_FEATURE_ROTATE_LOGFILE=y CONFIG_FEATURE_REMOTE_LOG=y CONFIG_FEATURE_SYSLOGD_DUP=y CONFIG_FEATURE_SYSLOGD_CFG=y +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 CONFIG_FEATURE_IPC_SYSLOG=y CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 -CONFIG_LOGREAD=y -CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y -# CONFIG_KLOGD is not set -# CONFIG_FEATURE_KLOGD_KLOGCTL is not set -CONFIG_LOGGER=y +CONFIG_FEATURE_KMSG_SYSLOG=y -- 2.39.0 From Christian.Franke at t-online.de Mon Oct 9 17:01:02 2023 From: Christian.Franke at t-online.de (Christian Franke) Date: Mon, 9 Oct 2023 19:01:02 +0200 Subject: [PATCH 2/3] Cygwin: re-enable build Message-ID: The file cygwin_defconfig exists since 2011 but the actual build is likely broken since 2014. Unfortunately the ugly hack in libbb.h is required to fix this or busybox itoa/utoa would need to be renamed. See also: http://lists.busybox.net/pipermail/busybox/2023-September/090462.html https://cplusplus.com/reference/cstdlib/itoa/ -------------- next part -------------- From 0e3f65f81b1f089340619ae3e77cf1fd52499ed3 Mon Sep 17 00:00:00 2001 From: Christian Franke Date: Mon, 9 Oct 2023 13:57:17 +0200 Subject: [PATCH 2/3] Cygwin: re-enable build libbb.h: Add workaround to avoid conflict with incompatible non-standard newlib library functions itoa(), utoa(). cygwin_defconfig: Disable all applets and features which do not compile without further code changes or are not useful on Cygwin. Set correct OSNAME. Signed-off-by: Christian Franke --- configs/cygwin_defconfig | 308 +++++++++++++++++++-------------------- include/libbb.h | 10 ++ 2 files changed, 160 insertions(+), 158 deletions(-) diff --git a/configs/cygwin_defconfig b/configs/cygwin_defconfig index 61e2c2463..2fcf45012 100644 --- a/configs/cygwin_defconfig +++ b/configs/cygwin_defconfig @@ -28,7 +28,7 @@ CONFIG_BUSYBOX=y CONFIG_FEATURE_SHOW_SCRIPT=y CONFIG_FEATURE_INSTALLER=y # CONFIG_INSTALL_NO_USR is not set -CONFIG_FEATURE_SUID=y +# CONFIG_FEATURE_SUID is not set # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_FEATURE_PREFER_APPLETS is not set @@ -95,12 +95,12 @@ CONFIG_FEATURE_BUFFERS_USE_MALLOC=y CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 CONFIG_SHA1_SMALL=3 -CONFIG_SHA1_HWACCEL=y -CONFIG_SHA256_HWACCEL=y +# CONFIG_SHA1_HWACCEL is not set +# CONFIG_SHA256_HWACCEL is not set CONFIG_SHA3_SMALL=1 CONFIG_FEATURE_NON_POSIX_CP=y # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set -CONFIG_FEATURE_USE_SENDFILE=y +# CONFIG_FEATURE_USE_SENDFILE is not set CONFIG_FEATURE_COPYBUF_KB=4 # CONFIG_MONOTONIC_SYSCALL is not set CONFIG_IOCTL_HEX2STR_ERROR=y @@ -326,7 +326,7 @@ CONFIG_FEATURE_SPLIT_FANCY=y CONFIG_STTY=y CONFIG_SUM=y CONFIG_SYNC=y -CONFIG_FEATURE_SYNC_FANCY=y +# CONFIG_FEATURE_SYNC_FANCY is not set CONFIG_FSYNC=y CONFIG_TAC=y CONFIG_TAIL=y @@ -348,7 +348,7 @@ CONFIG_TRUNCATE=y CONFIG_TSORT=y CONFIG_TTY=y CONFIG_UNAME=y -CONFIG_UNAME_OSNAME="GNU/Linux" +CONFIG_UNAME_OSNAME="Cygwin" CONFIG_BB_ARCH=y CONFIG_UNIQ=y CONFIG_UNLINK=y @@ -408,8 +408,8 @@ CONFIG_WHICH=y # # CONFIG_MINIPS is not set # CONFIG_NUKE is not set -CONFIG_RESUME=y -CONFIG_RUN_INIT=y +# CONFIG_RESUME is not set +# CONFIG_RUN_INIT is not set # # Editors @@ -501,9 +501,9 @@ CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set # CONFIG_HALT is not set -CONFIG_POWEROFF=y -CONFIG_REBOOT=y -CONFIG_FEATURE_WAIT_FOR_INIT=y +# CONFIG_POWEROFF is not set +# CONFIG_REBOOT is not set +# CONFIG_FEATURE_WAIT_FOR_INIT is not set # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" # CONFIG_INIT is not set @@ -521,46 +521,46 @@ CONFIG_INIT_TERMINAL_TYPE="" # # Login/Password Management Utilities # -CONFIG_FEATURE_SHADOWPASSWDS=y -CONFIG_USE_BB_PWD_GRP=y -CONFIG_USE_BB_SHADOW=y +# CONFIG_FEATURE_SHADOWPASSWDS is not set +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set CONFIG_USE_BB_CRYPT=y CONFIG_USE_BB_CRYPT_SHA=y CONFIG_ADD_SHELL=y CONFIG_REMOVE_SHELL=y -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y -CONFIG_ADDUSER=y +# CONFIG_ADDGROUP is not set +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +# CONFIG_ADDUSER is not set # CONFIG_FEATURE_CHECK_NAMES is not set -CONFIG_LAST_ID=60000 -CONFIG_FIRST_SYSTEM_ID=100 -CONFIG_LAST_SYSTEM_ID=999 -CONFIG_CHPASSWD=y +CONFIG_LAST_ID=0 +CONFIG_FIRST_SYSTEM_ID=0 +CONFIG_LAST_SYSTEM_ID=0 +# CONFIG_CHPASSWD is not set CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" CONFIG_CRYPTPW=y -CONFIG_MKPASSWD=y -CONFIG_DELUSER=y -CONFIG_DELGROUP=y -CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +# CONFIG_MKPASSWD is not set +# CONFIG_DELUSER is not set +# CONFIG_DELGROUP is not set +# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set # CONFIG_GETTY is not set CONFIG_LOGIN=y # CONFIG_LOGIN_SESSION_AS_CHILD is not set -CONFIG_LOGIN_SCRIPTS=y -CONFIG_FEATURE_NOLOGIN=y -CONFIG_FEATURE_SECURETTY=y -CONFIG_PASSWD=y -CONFIG_FEATURE_PASSWD_WEAK_CHECK=y -CONFIG_SU=y -CONFIG_FEATURE_SU_SYSLOG=y -CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_LOGIN_SCRIPTS is not set +# CONFIG_FEATURE_NOLOGIN is not set +# CONFIG_FEATURE_SECURETTY is not set +# CONFIG_PASSWD is not set +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set +# CONFIG_SU is not set +# CONFIG_FEATURE_SU_SYSLOG is not set +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set # CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set -CONFIG_SULOGIN=y -CONFIG_VLOCK=y +# CONFIG_SULOGIN is not set +# CONFIG_VLOCK is not set # # Linux Ext2 FS Progs # -CONFIG_CHATTR=y +# CONFIG_CHATTR is not set # CONFIG_FSCK is not set # CONFIG_LSATTR is not set # CONFIG_TUNE2FS is not set @@ -601,18 +601,18 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set -CONFIG_BLKDISCARD=y +# CONFIG_BLKDISCARD is not set # CONFIG_BLKID is not set # CONFIG_FEATURE_BLKID_TYPE is not set # CONFIG_BLOCKDEV is not set CONFIG_CAL=y -CONFIG_CHRT=y +# CONFIG_CHRT is not set # CONFIG_DMESG is not set # CONFIG_FEATURE_DMESG_PRETTY is not set # CONFIG_EJECT is not set # CONFIG_FEATURE_EJECT_SCSI is not set CONFIG_FALLOCATE=y -CONFIG_FATATTR=y +# CONFIG_FATATTR is not set # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE is not set @@ -630,9 +630,9 @@ CONFIG_FATATTR=y CONFIG_FLOCK=y # CONFIG_FDFLUSH is not set # CONFIG_FREERAMDISK is not set -CONFIG_FSCK_MINIX=y -CONFIG_FSFREEZE=y -CONFIG_FSTRIM=y +# CONFIG_FSCK_MINIX is not set +# CONFIG_FSFREEZE is not set +# CONFIG_FSTRIM is not set CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y @@ -657,15 +657,15 @@ CONFIG_IPCRM=y # CONFIG_FEATURE_MDEV_DAEMON is not set CONFIG_MESG=y CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y -CONFIG_MKE2FS=y +# CONFIG_MKE2FS is not set # CONFIG_MKFS_EXT2 is not set # CONFIG_MKFS_MINIX is not set -CONFIG_FEATURE_MINIX2=y +# CONFIG_FEATURE_MINIX2 is not set # CONFIG_MKFS_REISER is not set -CONFIG_MKDOSFS=y +# CONFIG_MKDOSFS is not set # CONFIG_MKFS_VFAT is not set -CONFIG_MKSWAP=y -CONFIG_FEATURE_MKSWAP_UUID=y +# CONFIG_MKSWAP is not set +# CONFIG_FEATURE_MKSWAP_UUID is not set CONFIG_MORE=y # CONFIG_MOUNT is not set # CONFIG_FEATURE_MOUNT_FAKE is not set @@ -678,55 +678,51 @@ CONFIG_MORE=y # CONFIG_FEATURE_MOUNT_FSTAB is not set # CONFIG_FEATURE_MOUNT_OTHERTAB is not set # CONFIG_MOUNTPOINT is not set -CONFIG_NOLOGIN=y +# CONFIG_NOLOGIN is not set # CONFIG_NOLOGIN_DEPENDENCIES is not set -CONFIG_NSENTER=y +# CONFIG_NSENTER is not set # CONFIG_PIVOT_ROOT is not set # CONFIG_RDATE is not set -CONFIG_RDEV=y -CONFIG_READPROFILE=y +# CONFIG_RDEV is not set +# CONFIG_READPROFILE is not set CONFIG_RENICE=y CONFIG_REV=y # CONFIG_RTCWAKE is not set CONFIG_SCRIPT=y CONFIG_SCRIPTREPLAY=y # CONFIG_SETARCH is not set -CONFIG_LINUX32=y -CONFIG_LINUX64=y -CONFIG_SETPRIV=y -CONFIG_FEATURE_SETPRIV_DUMP=y -CONFIG_FEATURE_SETPRIV_CAPABILITIES=y -CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +# CONFIG_LINUX32 is not set +# CONFIG_LINUX64 is not set +# CONFIG_SETPRIV is not set +# CONFIG_FEATURE_SETPRIV_DUMP is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set CONFIG_SETSID=y -CONFIG_SWAPON=y -CONFIG_FEATURE_SWAPON_DISCARD=y +# CONFIG_SWAPON is not set +# CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_PRI is not set -CONFIG_SWAPOFF=y -CONFIG_FEATURE_SWAPONOFF_LABEL=y +# CONFIG_SWAPOFF is not set +# CONFIG_FEATURE_SWAPONOFF_LABEL is not set # CONFIG_SWITCH_ROOT is not set # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set # CONFIG_FEATURE_TASKSET_CPULIST is not set -CONFIG_UEVENT=y +# CONFIG_UEVENT is not set # CONFIG_UMOUNT is not set # CONFIG_FEATURE_UMOUNT_ALL is not set -CONFIG_UNSHARE=y +# CONFIG_UNSHARE is not set # CONFIG_WALL is not set # CONFIG_FEATURE_MOUNT_LOOP is not set # CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set # CONFIG_FEATURE_MTAB_SUPPORT is not set -CONFIG_VOLUMEID=y - -# -# Filesystem/Volume identification -# -CONFIG_FEATURE_VOLUMEID_BCACHE=y +# CONFIG_VOLUMEID is not set +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set # CONFIG_FEATURE_VOLUMEID_BTRFS is not set # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set -CONFIG_FEATURE_VOLUMEID_EROFS=y -CONFIG_FEATURE_VOLUMEID_EXFAT=y +# CONFIG_FEATURE_VOLUMEID_EROFS is not set +# CONFIG_FEATURE_VOLUMEID_EXFAT is not set # CONFIG_FEATURE_VOLUMEID_EXT is not set -CONFIG_FEATURE_VOLUMEID_F2FS=y +# CONFIG_FEATURE_VOLUMEID_F2FS is not set # CONFIG_FEATURE_VOLUMEID_FAT is not set # CONFIG_FEATURE_VOLUMEID_HFS is not set # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set @@ -735,15 +731,15 @@ CONFIG_FEATURE_VOLUMEID_F2FS=y # CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set # CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set # CONFIG_FEATURE_VOLUMEID_LUKS is not set -CONFIG_FEATURE_VOLUMEID_MINIX=y -CONFIG_FEATURE_VOLUMEID_NILFS=y +# CONFIG_FEATURE_VOLUMEID_MINIX is not set +# CONFIG_FEATURE_VOLUMEID_NILFS is not set # CONFIG_FEATURE_VOLUMEID_NTFS is not set # CONFIG_FEATURE_VOLUMEID_OCFS2 is not set # CONFIG_FEATURE_VOLUMEID_REISERFS is not set # CONFIG_FEATURE_VOLUMEID_ROMFS is not set # CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set # CONFIG_FEATURE_VOLUMEID_SYSV is not set -CONFIG_FEATURE_VOLUMEID_UBIFS=y +# CONFIG_FEATURE_VOLUMEID_UBIFS is not set # CONFIG_FEATURE_VOLUMEID_UDF is not set # CONFIG_FEATURE_VOLUMEID_XFS is not set @@ -783,7 +779,7 @@ CONFIG_CRONTAB=y # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set # CONFIG_FEATURE_DEVFS is not set -CONFIG_DEVMEM=y +# CONFIG_DEVMEM is not set # CONFIG_FBSPLASH is not set # CONFIG_FLASH_ERASEALL is not set # CONFIG_FLASH_LOCK is not set @@ -798,11 +794,11 @@ CONFIG_GETFATTR=y # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set CONFIG_HEXEDIT=y -CONFIG_I2CGET=y -CONFIG_I2CSET=y -CONFIG_I2CDUMP=y -CONFIG_I2CDETECT=y -CONFIG_I2CTRANSFER=y +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +# CONFIG_I2CTRANSFER is not set # CONFIG_INOTIFYD is not set CONFIG_LESS=y CONFIG_FEATURE_LESS_MAXLINES=9999999 @@ -817,7 +813,7 @@ CONFIG_FEATURE_LESS_DASHCMD=y CONFIG_FEATURE_LESS_LINENUMS=y CONFIG_FEATURE_LESS_RAW=y CONFIG_FEATURE_LESS_ENV=y -CONFIG_LSSCSI=y +# CONFIG_LSSCSI is not set # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set @@ -827,13 +823,13 @@ CONFIG_MIM=y CONFIG_MT=y # CONFIG_NANDWRITE is not set # CONFIG_NANDDUMP is not set -CONFIG_PARTPROBE=y +# CONFIG_PARTPROBE is not set # CONFIG_RAIDAUTORUN is not set # CONFIG_READAHEAD is not set # CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set -CONFIG_SEEDRNG=y +# CONFIG_SEEDRNG is not set CONFIG_SETFATTR=y # CONFIG_SETSERIAL is not set CONFIG_STRINGS=y @@ -847,7 +843,7 @@ CONFIG_TTYSIZE=y # CONFIG_UBIRMVOL is not set # CONFIG_UBIRSVOL is not set # CONFIG_UBIUPDATEVOL is not set -CONFIG_UBIRENAME=y +# CONFIG_UBIRENAME is not set CONFIG_VOLNAME=y # CONFIG_WATCHDOG is not set # CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set @@ -868,7 +864,7 @@ CONFIG_FEATURE_HWIB=y # CONFIG_BRCTL is not set # CONFIG_FEATURE_BRCTL_FANCY is not set # CONFIG_FEATURE_BRCTL_SHOW is not set -CONFIG_DNSD=y +# CONFIG_DNSD is not set # CONFIG_ETHER_WAKE is not set CONFIG_FTPD=y CONFIG_FEATURE_FTPD_WRITE=y @@ -904,8 +900,8 @@ CONFIG_FEATURE_HTTPD_ACL_IP=y # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFENSLAVE is not set # CONFIG_IFPLUGD is not set -CONFIG_IFUP=y -CONFIG_IFDOWN=y +# CONFIG_IFUP is not set +# CONFIG_IFDOWN is not set CONFIG_IFUPDOWN_IFSTATE_PATH="" # CONFIG_FEATURE_IFUPDOWN_IP is not set # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set @@ -925,14 +921,14 @@ CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y # CONFIG_IPROUTE is not set # CONFIG_IPTUNNEL is not set # CONFIG_IPRULE is not set -CONFIG_IPNEIGH=y +# CONFIG_IPNEIGH is not set # CONFIG_FEATURE_IP_ADDRESS is not set # CONFIG_FEATURE_IP_LINK is not set # CONFIG_FEATURE_IP_ROUTE is not set CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_FEATURE_IP_RULE is not set -CONFIG_FEATURE_IP_NEIGH=y +# CONFIG_FEATURE_IP_NEIGH is not set # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set CONFIG_IPCALC=y CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y @@ -941,10 +937,10 @@ CONFIG_FAKEIDENTD=y # CONFIG_NAMEIF is not set # CONFIG_FEATURE_NAMEIF_EXTENDED is not set # CONFIG_NBDCLIENT is not set -CONFIG_NC=y +# CONFIG_NC is not set # CONFIG_NETCAT is not set -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y +# CONFIG_NC_SERVER is not set +# CONFIG_NC_EXTRA is not set # CONFIG_NC_110_COMPAT is not set # CONFIG_NETSTAT is not set # CONFIG_FEATURE_NETSTAT_WIDE is not set @@ -963,10 +959,10 @@ CONFIG_PSCAN=y # CONFIG_ROUTE is not set # CONFIG_SLATTACH is not set CONFIG_SSL_CLIENT=y -CONFIG_TC=y -CONFIG_FEATURE_TC_INGRESS=y -CONFIG_TCPSVD=y -CONFIG_UDPSVD=y +# CONFIG_TC is not set +# CONFIG_FEATURE_TC_INGRESS is not set +# CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y @@ -975,13 +971,13 @@ CONFIG_TELNETD=y CONFIG_FEATURE_TELNETD_STANDALONE=y CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 CONFIG_FEATURE_TELNETD_INETD_WAIT=y -CONFIG_TFTP=y -CONFIG_FEATURE_TFTP_PROGRESS_BAR=y -CONFIG_FEATURE_TFTP_HPA_COMPAT=y -CONFIG_TFTPD=y -CONFIG_FEATURE_TFTP_GET=y -CONFIG_FEATURE_TFTP_PUT=y -CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_TFTP is not set +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +# CONFIG_FEATURE_TFTP_HPA_COMPAT is not set +# CONFIG_TFTPD is not set +# CONFIG_FEATURE_TFTP_GET is not set +# CONFIG_FEATURE_TFTP_PUT is not set +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set # CONFIG_TFTP_DEBUG is not set CONFIG_TLS=y # CONFIG_TRACEROUTE is not set @@ -998,7 +994,7 @@ CONFIG_FEATURE_WGET_FTP=y CONFIG_FEATURE_WGET_AUTHENTICATION=y CONFIG_FEATURE_WGET_TIMEOUT=y CONFIG_FEATURE_WGET_HTTPS=y -CONFIG_FEATURE_WGET_OPENSSL=y +# CONFIG_FEATURE_WGET_OPENSSL is not set CONFIG_WHOIS=y # CONFIG_ZCIP is not set # CONFIG_UDHCPD is not set @@ -1012,17 +1008,13 @@ CONFIG_DHCPD_LEASES_FILE="" # CONFIG_FEATURE_UDHCPC_ARPING is not set # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set CONFIG_UDHCPC_DEFAULT_SCRIPT="" -CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" -CONFIG_UDHCPC6=y -CONFIG_FEATURE_UDHCPC6_RFC3646=y -CONFIG_FEATURE_UDHCPC6_RFC4704=y -CONFIG_FEATURE_UDHCPC6_RFC4833=y -CONFIG_FEATURE_UDHCPC6_RFC5970=y - -# -# Common options for DHCP applets -# -CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="" +# CONFIG_UDHCPC6 is not set +# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set +# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +CONFIG_UDHCPC_DEFAULT_INTERFACE="" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 @@ -1051,11 +1043,11 @@ CONFIG_SENDMAIL=y # # Process Utilities # -CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_FAST_TOP is not set # CONFIG_FEATURE_SHOW_THREADS is not set # CONFIG_FREE is not set CONFIG_FUSER=y -CONFIG_IOSTAT=y +# CONFIG_IOSTAT is not set CONFIG_KILL=y CONFIG_KILLALL=y CONFIG_KILLALL5=y @@ -1078,16 +1070,16 @@ CONFIG_PS=y CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y CONFIG_PSTREE=y CONFIG_PWDX=y -CONFIG_SMEMCAP=y -CONFIG_BB_SYSCTL=y +# CONFIG_SMEMCAP is not set +# CONFIG_BB_SYSCTL is not set CONFIG_TOP=y CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_FEATURE_TOP_SMP_CPU=y CONFIG_FEATURE_TOP_DECIMALS=y -CONFIG_FEATURE_TOP_SMP_PROCESS=y -CONFIG_FEATURE_TOPMEM=y +# CONFIG_FEATURE_TOP_SMP_PROCESS is not set +# CONFIG_FEATURE_TOPMEM is not set # CONFIG_UPTIME is not set # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set CONFIG_WATCH=y @@ -1151,42 +1143,42 @@ CONFIG_ASH_HELP=y CONFIG_ASH_GETOPTS=y CONFIG_ASH_CMDCMD=y # CONFIG_CTTYHACK is not set -CONFIG_HUSH=y -CONFIG_SHELL_HUSH=y -CONFIG_HUSH_BASH_COMPAT=y -CONFIG_HUSH_BRACE_EXPANSION=y +# CONFIG_HUSH is not set +# CONFIG_SHELL_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set -CONFIG_HUSH_LINENO_VAR=y -CONFIG_HUSH_INTERACTIVE=y -CONFIG_HUSH_SAVEHISTORY=y -CONFIG_HUSH_JOB=y -CONFIG_HUSH_TICK=y -CONFIG_HUSH_IF=y -CONFIG_HUSH_LOOPS=y -CONFIG_HUSH_CASE=y -CONFIG_HUSH_FUNCTIONS=y -CONFIG_HUSH_LOCAL=y -CONFIG_HUSH_RANDOM_SUPPORT=y -CONFIG_HUSH_MODE_X=y -CONFIG_HUSH_ECHO=y -CONFIG_HUSH_PRINTF=y -CONFIG_HUSH_TEST=y -CONFIG_HUSH_HELP=y -CONFIG_HUSH_EXPORT=y -CONFIG_HUSH_EXPORT_N=y -CONFIG_HUSH_READONLY=y -CONFIG_HUSH_KILL=y -CONFIG_HUSH_WAIT=y -CONFIG_HUSH_COMMAND=y -CONFIG_HUSH_TRAP=y -CONFIG_HUSH_TYPE=y -CONFIG_HUSH_TIMES=y -CONFIG_HUSH_READ=y -CONFIG_HUSH_SET=y -CONFIG_HUSH_UNSET=y -CONFIG_HUSH_ULIMIT=y -CONFIG_HUSH_UMASK=y -CONFIG_HUSH_GETOPTS=y +# CONFIG_HUSH_LINENO_VAR is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_HUSH_ECHO is not set +# CONFIG_HUSH_PRINTF is not set +# CONFIG_HUSH_TEST is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_EXPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set +# CONFIG_HUSH_KILL is not set +# CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set +# CONFIG_HUSH_TRAP is not set +# CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set +# CONFIG_HUSH_READ is not set +# CONFIG_HUSH_SET is not set +# CONFIG_HUSH_UNSET is not set +# CONFIG_HUSH_ULIMIT is not set +# CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set # CONFIG_HUSH_MEMLEAK is not set # @@ -1219,4 +1211,4 @@ CONFIG_FEATURE_SYSLOGD_CFG=y CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 CONFIG_FEATURE_IPC_SYSLOG=y CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 -CONFIG_FEATURE_KMSG_SYSLOG=y +# CONFIG_FEATURE_KMSG_SYSLOG is not set diff --git a/include/libbb.h b/include/libbb.h index 0883fb565..8a3d88bfd 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -12,6 +12,16 @@ #include "platform.h" +#ifdef __CYGWIN__ +/* Avoid conflict with these non-standard functions from : + * char * itoa(int value, char * str, int base); + * char * utoa(unsigned value, char * str, int base); + */ +# include +# define itoa bb_itoa +# define utoa bb_utoa +#endif + #include #include #include -- 2.39.0 From Christian.Franke at t-online.de Mon Oct 9 17:02:55 2023 From: Christian.Franke at t-online.de (Christian Franke) Date: Mon, 9 Oct 2023 19:02:55 +0200 Subject: [PATCH 3/3] Cygwin: enable more applets and features Message-ID: <71941f94-5f13-c052-e186-80e61fa51f8c@t-online.de> Last one for now. This series is part of the full patch from the recent Cygwin busybox package: https://cygwin.com/packages/summary/busybox-src.html -- Regards, Christian -------------- next part -------------- From 6e5f18402510778d52d95457e330df2fff5003b4 Mon Sep 17 00:00:00 2001 From: Christian Franke Date: Mon, 9 Oct 2023 17:39:10 +0200 Subject: [PATCH 3/3] Cygwin: enable more applets and features cygwin_defconfig: Enable more applets and features which compile without further code changes and could be useful on Cygwin. Adjust some settings. Signed-off-by: Christian Franke --- configs/cygwin_defconfig | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/configs/cygwin_defconfig b/configs/cygwin_defconfig index 2fcf45012..4f6f3750b 100644 --- a/configs/cygwin_defconfig +++ b/configs/cygwin_defconfig @@ -27,14 +27,14 @@ CONFIG_PID_FILE_PATH="/var/run" CONFIG_BUSYBOX=y CONFIG_FEATURE_SHOW_SCRIPT=y CONFIG_FEATURE_INSTALLER=y -# CONFIG_INSTALL_NO_USR is not set +CONFIG_INSTALL_NO_USR=y # CONFIG_FEATURE_SUID is not set # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" # CONFIG_SELINUX is not set -# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_CLEAN_UP=y CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y @@ -99,14 +99,14 @@ CONFIG_SHA1_SMALL=3 # CONFIG_SHA256_HWACCEL is not set CONFIG_SHA3_SMALL=1 CONFIG_FEATURE_NON_POSIX_CP=y -# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y # CONFIG_FEATURE_USE_SENDFILE is not set CONFIG_FEATURE_COPYBUF_KB=4 # CONFIG_MONOTONIC_SYSCALL is not set CONFIG_IOCTL_HEX2STR_ERROR=y CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 -# CONFIG_FEATURE_EDITING_VI is not set +CONFIG_FEATURE_EDITING_VI=y CONFIG_FEATURE_EDITING_HISTORY=255 CONFIG_FEATURE_EDITING_SAVEHISTORY=y # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set @@ -115,11 +115,11 @@ CONFIG_FEATURE_TAB_COMPLETION=y # CONFIG_FEATURE_USERNAME_COMPLETION is not set CONFIG_FEATURE_EDITING_FANCY_PROMPT=y CONFIG_FEATURE_EDITING_WINCH=y -# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set -# CONFIG_LOCALE_SUPPORT is not set +CONFIG_FEATURE_EDITING_ASK_TERMINAL=y +CONFIG_LOCALE_SUPPORT=y CONFIG_UNICODE_SUPPORT=y # CONFIG_UNICODE_USING_LOCALE is not set -# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y CONFIG_SUBST_WCHAR=65533 CONFIG_LAST_SUPPORTED_WCHAR=0 # CONFIG_UNICODE_COMBINING_WCHARS is not set @@ -143,10 +143,10 @@ CONFIG_FEATURE_SEAMLESS_LZMA=y CONFIG_FEATURE_SEAMLESS_BZ2=y CONFIG_FEATURE_SEAMLESS_GZ=y # CONFIG_FEATURE_SEAMLESS_Z is not set -# CONFIG_AR is not set -# CONFIG_FEATURE_AR_LONG_FILENAMES is not set -# CONFIG_FEATURE_AR_CREATE is not set -# CONFIG_UNCOMPRESS is not set +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_FEATURE_AR_CREATE=y +CONFIG_UNCOMPRESS=y CONFIG_GUNZIP=y CONFIG_ZCAT=y CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y @@ -170,13 +170,13 @@ CONFIG_FEATURE_CPIO_RENUMBER_INODES=y # CONFIG_DPKG_DEB is not set CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y -CONFIG_GZIP_FAST=0 +CONFIG_GZIP_FAST=1 # CONFIG_FEATURE_GZIP_LEVELS is not set CONFIG_FEATURE_GZIP_DECOMPRESS=y CONFIG_LZOP=y -# CONFIG_UNLZOP is not set -# CONFIG_LZOPCAT is not set -# CONFIG_LZOP_COMPR_HIGH is not set +CONFIG_UNLZOP=y +CONFIG_LZOPCAT=y +CONFIG_LZOP_COMPR_HIGH=y CONFIG_RPM=y CONFIG_RPM2CPIO=y CONFIG_TAR=y @@ -250,7 +250,7 @@ CONFIG_DIRNAME=y CONFIG_DOS2UNIX=y CONFIG_UNIX2DOS=y CONFIG_DU=y -# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y CONFIG_ENV=y @@ -320,9 +320,9 @@ CONFIG_FEATURE_SORT_BIG=y # CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set CONFIG_SPLIT=y CONFIG_FEATURE_SPLIT_FANCY=y -# CONFIG_STAT is not set -# CONFIG_FEATURE_STAT_FORMAT is not set -# CONFIG_FEATURE_STAT_FILESYSTEM is not set +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y CONFIG_STTY=y CONFIG_SUM=y CONFIG_SYNC=y @@ -426,7 +426,7 @@ CONFIG_PATCH=y CONFIG_SED=y CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 -# CONFIG_FEATURE_VI_8BIT is not set +CONFIG_FEATURE_VI_8BIT=y CONFIG_FEATURE_VI_COLON=y CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y @@ -677,7 +677,7 @@ CONFIG_MORE=y # CONFIG_FEATURE_MOUNT_FLAGS is not set # CONFIG_FEATURE_MOUNT_FSTAB is not set # CONFIG_FEATURE_MOUNT_OTHERTAB is not set -# CONFIG_MOUNTPOINT is not set +CONFIG_MOUNTPOINT=y # CONFIG_NOLOGIN is not set # CONFIG_NOLOGIN_DEPENDENCIES is not set # CONFIG_NSENTER is not set @@ -748,8 +748,8 @@ CONFIG_SETSID=y # # CONFIG_ADJTIMEX is not set CONFIG_ASCII=y -# CONFIG_BBCONFIG is not set -# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +CONFIG_BBCONFIG=y +CONFIG_FEATURE_COMPRESS_BBCONFIG=y CONFIG_BC=y CONFIG_DC=y CONFIG_FEATURE_DC_BIG=y @@ -814,11 +814,11 @@ CONFIG_FEATURE_LESS_LINENUMS=y CONFIG_FEATURE_LESS_RAW=y CONFIG_FEATURE_LESS_ENV=y # CONFIG_LSSCSI is not set -# CONFIG_MAKEDEVS is not set +CONFIG_MAKEDEVS=y # CONFIG_FEATURE_MAKEDEVS_LEAF is not set -# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y CONFIG_MAN=y -# CONFIG_MICROCOM is not set +CONFIG_MICROCOM=y CONFIG_MIM=y CONFIG_MT=y # CONFIG_NANDWRITE is not set @@ -828,7 +828,7 @@ CONFIG_MT=y # CONFIG_READAHEAD is not set # CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set -# CONFIG_RX is not set +CONFIG_RX=y # CONFIG_SEEDRNG is not set CONFIG_SETFATTR=y # CONFIG_SETSERIAL is not set @@ -854,7 +854,7 @@ CONFIG_VOLNAME=y CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y -# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_VERBOSE_RESOLUTION_ERRORS=y # CONFIG_FEATURE_ETC_NETWORKS is not set # CONFIG_FEATURE_ETC_SERVICES is not set CONFIG_FEATURE_HWIB=y @@ -1065,7 +1065,7 @@ CONFIG_FEATURE_PIDOF_OMIT=y CONFIG_PS=y # CONFIG_FEATURE_PS_WIDE is not set # CONFIG_FEATURE_PS_LONG is not set -# CONFIG_FEATURE_PS_TIME is not set +CONFIG_FEATURE_PS_TIME=y # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y CONFIG_PSTREE=y @@ -1120,9 +1120,9 @@ CONFIG_SVLOGD=y CONFIG_SH_IS_ASH=y # CONFIG_SH_IS_HUSH is not set # CONFIG_SH_IS_NONE is not set -# CONFIG_BASH_IS_ASH is not set +CONFIG_BASH_IS_ASH=y # CONFIG_BASH_IS_HUSH is not set -CONFIG_BASH_IS_NONE=y +# CONFIG_BASH_IS_NONE is not set CONFIG_SHELL_ASH=y CONFIG_ASH=y CONFIG_ASH_OPTIMIZE_FOR_SIZE=y @@ -1134,7 +1134,7 @@ CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y CONFIG_ASH_RANDOM_SUPPORT=y CONFIG_ASH_EXPAND_PRMT=y -# CONFIG_ASH_IDLE_TIMEOUT is not set +CONFIG_ASH_IDLE_TIMEOUT=y # CONFIG_ASH_MAIL is not set CONFIG_ASH_ECHO=y CONFIG_ASH_PRINTF=y -- 2.39.0 From chunhui_r at foxmail.com Thu Oct 12 00:29:28 2023 From: chunhui_r at foxmail.com (=?utf-8?B?SVRjeGs=?=) Date: Thu, 12 Oct 2023 08:29:28 +0800 Subject: [PATCH] chattr: Fix the problem that the chattr cannot add -s attributes to the file. Message-ID: The chattr command cannot add the -s attribute to the file normally. When you enter "chattr +s testfile", the content of --help will be displayed directly. The reason is that commit 83dff7f43154cd41e4d2e5831060a2d2ddc6596e ("lsattr: support more ext2 flags") changed the enumeration variable order, resulting in an error in the offset obtained in e2fs_lib.h. Solution 1: Change the offset The chattr command cannot add the -s attribute to the file normally. Fixes: 83dff7f43154cd41e4d2e5831060a2d2ddc6596e ("lsattr: support more ext2 flags") Signed-off-by: ITcxk From AnkitKantilalSiddhapura at eaton.com Fri Oct 13 06:11:39 2023 From: AnkitKantilalSiddhapura at eaton.com (Siddhapura, Ankit Kantilal) Date: Fri, 13 Oct 2023 06:11:39 +0000 Subject: util-linux version update in Busybox packages Message-ID: Hello, Could you please help us to know how "util-linux" source version is maintained in Busybox package? Please provide information of below question : 1. What version of util-linux is provided in Busybox version 1.34.1? 2. util-linux CVEs addressed in current Busybox version, is Busybox fixing it in its upcoming releases? Thanks & regards, Ankit Siddhapura -------------- next part -------------- An HTML attachment was scrubbed... URL: From ceggers at arri.de Fri Oct 13 06:44:40 2023 From: ceggers at arri.de (Christian Eggers) Date: Fri, 13 Oct 2023 08:44:40 +0200 Subject: util-linux version update in Busybox packages In-Reply-To: References: Message-ID: <5983797.lOV4Wx5bFT@n95hx1g2> Hi Ankit, the Busybox project is a complete re-implementation of some popular Unix packages (including util-linux). So there is no specific source version of utils-linux included into Busybox. regards, Christian On Friday, 13 October 2023, 08:11:39 CEST, Siddhapura, Ankit Kantilal wrote: > Hello, > > Could you please help us to know how "util-linux" source version is maintained in Busybox package? > > Please provide information of below question : > > 1. What version of util-linux is provided in Busybox version 1.34.1? > 2. util-linux CVEs addressed in current Busybox version, is Busybox fixing it in its upcoming releases? > > > > Thanks & regards, > > Ankit Siddhapura > > _______________________________________________________ Christian Eggers Software Engineer ? ARRI Arnold & Richter Cine Technik GmbH & Co. Betriebs KG Arriweg 17, 83071 Stephanskirchen www.arri.com +49 8036 3009-3118 CEggers at arri.de ? Get all the latest information from www.arri.com, Facebook, Twitter, Instagram, LinkedIn and YouTube. Arnold & Richter Cine Technik GmbH & Co. Betriebs KG Sitz: M?nchen - Registergericht: Amtsgericht M?nchen - Handelsregisternummer: HRA 57918 Pers?nlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH Sitz: M?nchen - Registergericht: Amtsgericht M?nchen - Handelsregisternummer: HRB 54477 Gesch?ftsf?hrer: Dr. Matthias Erb (Chairman); Lars Weyer; Stephan Schenk; Walter Trauninger ? -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image449261.png Type: image/png Size: 528 bytes Desc: image449261.png URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image903822.png Type: image/png Size: 824 bytes Desc: image903822.png URL: From mailinglist at loomy.li Tue Oct 17 09:32:55 2023 From: mailinglist at loomy.li (matze) Date: Tue, 17 Oct 2023 11:32:55 +0200 Subject: Report: udhcpc6 segfaults when renew/releasing prefix only client Message-ID: <20231017113255.63e45328@matze-20xf006hge> Hi, I am using udhcpc6 to get a prefix from a Provider. The Provider only delivers the prefix when requesting prefix without IP. So I use udhcpc6 like udhcpc6 -d -r no ... I discovered when sending USR1 or USR2 to renew the lease, busybox segfaults because it tries to use the nonexistent IP Address when building the release packet. From Christian.Franke at t-online.de Sat Oct 21 14:55:20 2023 From: Christian.Franke at t-online.de (Christian Franke) Date: Sat, 21 Oct 2023 16:55:20 +0200 Subject: ash: is %builtin in PATH still expected to work? Message-ID: <1a93879f-3be5-c91f-3e35-06868410e5d9@t-online.de> Hi, the file shell/ash.c still contains code to handle '%builtin' (and '%func') in PATH. Is this still expected to work? Testcase (same with busybox 1.35.0 on Debian 12 and 1.36.1 on Cygwin): $ dash -c 'type echo' echo is a shell builtin $ busybox ash -c 'type echo' echo is a shell builtin $ PATH="$PATH:%builtin" dash -c 'type echo' echo is /usr/bin/echo $ PATH="$PATH:%builtin" busybox ash -c 'type echo' echo is a shell builtin AFAICS the last related commit was "ash: exec: Stricter pathopt parsing" (6c4f87e, Feb 17 2020). Sorry if I missed something. -- Thanks, Christian From rmy at pobox.com Sun Oct 22 06:37:38 2023 From: rmy at pobox.com (Ron Yorston) Date: Sun, 22 Oct 2023 07:37:38 +0100 Subject: ash: is %builtin in PATH still expected to work? In-Reply-To: <1a93879f-3be5-c91f-3e35-06868410e5d9@t-online.de> References: <1a93879f-3be5-c91f-3e35-06868410e5d9@t-online.de> Message-ID: <6534c332.OAESKJR5A4LQn0PR%rmy@pobox.com> There was a discussion on the dash mailing list earlier this year: https://www.spinics.net/lists/dash/msg02429.html Cheers, Ron From esa.jaaskela at suomi24.fi Wed Oct 25 14:36:21 2023 From: esa.jaaskela at suomi24.fi (=?UTF-8?Q?Esa_J=C3=A4=C3=A4skel=C3=A4?=) Date: Wed, 25 Oct 2023 16:36:21 +0200 (CEST) Subject: [PATCH] start-stop-daemon: add chdir option In-Reply-To: <993765347.100429.1697960685286@office.mailbox.org> References: <993765347.100429.1697960685286@office.mailbox.org> Message-ID: <773993398.39073.1698244581973@office.mailbox.org> Add option to change the running directory before starting the process. This can be done using -d or --chdir options. Add also test cases to start-stop-daemon to test out the directory change option. Signed-off-by: ejaaskel --- TODO | 2 -- debianutils/start_stop_daemon.c | 21 ++++++++++++++------- testsuite/start-stop-daemon.tests | 20 ++++++++++++++++++++ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/TODO b/TODO index 72ae0f88d..6c7415a81 100644 --- a/TODO +++ b/TODO @@ -222,8 +222,6 @@ Minor stuff: --- unify progress_meter. wget, flash_eraseall, pipe_progress, fbsplash, setfiles. --- - support start-stop-daemon -d ---- (TODO list after discussion 11.05.2009) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 3e5dd9faa..88c2be11c 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -105,6 +105,7 @@ Misc options: //usage: "\n -N N Change nice level" //usage: ) //usage: "\n -c USER[:[GRP]] Change user/group" +//usage: "\n -d PATH Change path" //usage: "\n -m Write PID to pidfile specified by -p" //usage: "\n-K only:" //usage: "\n -s SIG Signal to send" @@ -138,11 +139,12 @@ enum { OPT_s = (1 << 8), // -s OPT_u = (1 << 9), // -u OPT_c = (1 << 10), // -c - OPT_x = (1 << 11), // -x - OPT_p = (1 << 12), // -p - OPT_OKNODO = (1 << 13) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -o - OPT_VERBOSE = (1 << 14) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -v - OPT_NICELEVEL = (1 << 15) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -N + OPT_d = (1 << 11), // -d + OPT_x = (1 << 12), // -x + OPT_p = (1 << 13), // -p + OPT_OKNODO = (1 << 14) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -o + OPT_VERBOSE = (1 << 15) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -v + OPT_NICELEVEL = (1 << 16) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -N }; #define QUIET (option_mask32 & OPT_QUIET) #define TEST (option_mask32 & OPT_TEST) @@ -391,6 +393,7 @@ static const char start_stop_daemon_longopts[] ALIGN1 = "signal\0" Required_argument "s" "user\0" Required_argument "u" "chuid\0" Required_argument "c" + "chdir\0" Required_argument "d" "exec\0" Required_argument "x" "pidfile\0" Required_argument "p" # if ENABLE_FEATURE_START_STOP_DAEMON_FANCY @@ -411,6 +414,7 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) char *signame; char *startas = NULL; char *chuid; + char *chdir; #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY // char *retry_arg = NULL; // int retries = -1; @@ -420,7 +424,7 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) INIT_G(); opt = GETOPT32(argv, "^" - "KSbqtma:n:s:u:c:x:p:" + "KSbqtma:n:s:u:c:d:x:p:" IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:R:") /* -K or -S is required; they are mutually exclusive */ /* -p is required if -m is given */ @@ -432,7 +436,7 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) "K:S:K--S:S--K:m?p:K?xpun" IF_FEATURE_START_STOP_DAEMON_FANCY("q-v"), LONGOPTS - &startas, &cmdname, &signame, &userspec, &chuid, &execname, &pidfile + &startas, &cmdname, &signame, &userspec, &chuid, &chdir, &execname, &pidfile IF_FEATURE_START_STOP_DAEMON_FANCY(,&opt_N) /* We accept and ignore -R / --retry */ IF_FEATURE_START_STOP_DAEMON_FANCY(,NULL) @@ -560,6 +564,9 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) setgroups(1, &ugid.gid); } } + if (opt & OPT_d) { + xchdir(chdir); + } /* Try: * strace -oLOG start-stop-daemon -S -x /bin/usleep -a qwerty 500000 * should exec "/bin/usleep", but argv[0] should be "qwerty": diff --git a/testsuite/start-stop-daemon.tests b/testsuite/start-stop-daemon.tests index 0757b1288..e1e49ab5f 100755 --- a/testsuite/start-stop-daemon.tests +++ b/testsuite/start-stop-daemon.tests @@ -11,6 +11,21 @@ testing "start-stop-daemon -x without -a" \ "0\n" \ "" "" +testing "start-stop-daemon -x with -d on existing directory" \ + 'start-stop-daemon -S -d /tmp -x true 2>&1; echo $?' \ + "0\n" \ + "" "" + +testing "start-stop-daemon -x with -d on existing and check dir" \ + 'output=$(start-stop-daemon -S -d /tmp -x pwd); echo $output' \ + "/tmp\n" \ + "" "" + +testing "start-stop-daemon -x with --chdir on existing and check dir" \ + 'output=$(start-stop-daemon -S --chdir /tmp -x pwd); echo $output' \ + "/tmp\n" \ + "" "" + testing "start-stop-daemon -a without -x" \ 'start-stop-daemon -S -a false 2>&1; echo $?' \ "1\n" \ @@ -21,6 +36,11 @@ testing "start-stop-daemon without -x and -a" \ "1\n" \ "" "" +testing "start-stop-daemon -x with -d on non-existing directory" \ + 'start-stop-daemon -S -d /non-existent -x true > /dev/null 2>&1; echo $?' \ + "1\n" \ + "" "" + # This runs /bin/false with argv[0..2] of { "qwerty", "false", NULL }. # # Unfortunately, this does not actually check argv[0] correctness, -- 2.34.1 From asmadeus at codewreck.org Thu Oct 26 21:42:35 2023 From: asmadeus at codewreck.org (Dominique Martinet) Date: Fri, 27 Oct 2023 06:42:35 +0900 Subject: [PATCH v2] find: fix -xdev -depth (and -delete) Message-ID: <20231026214235.1318715-1-asmadeus@codewreck.org> From: Dominique Martinet find -xdev with -depth would check for same_fs after the subdirectory has been processed (because the check is done in the file/dir action, which is evaluated too late in the -depth case) This renders `find -xdev -delete` useless, as reported in 2012 here: https://bugs.busybox.net/show_bug.cgi?id=5756 The bug report suggested adding an extra hook, which would be required if we were to keep the current xdev approach that allows all filesystems given in argument, but GNU findutils and OpenBSD find actually stop on the first filesystem boundary e.g. for the following tree: $ find test -exec stat --format "%d %n" {} + 27 test 27 test/file 59 test/tmpfs 27 test/tmpfs/bind 27 test/tmpfs/bind/file 59 test/tmpfs/file (Where 'test/tmpfs' is a tmpfs, and 'test/tmpfs/bind' is a bind mount to a neighboring directory in the same filesystem as 'test' -- also tested with a symlink and -follow for openbsd which has no bind mount) Then `find test test/tmpfs -xdev` does not print test/tmpfs/bind/file. This makes the implementation much simpler (although it's a bit ugly to carry the parent st_dev as an argument to the function) and smaller code, and would allow for easy addition of rm/cp --one-file-system if we want to do that later. Note: this also no longer stores the stat result in 'status' in recursive_action1 as that was not used and doing this saves 10 bytes function old new delta recursive_action1 361 385 +24 parse_params 1503 1510 +7 recursive_action 63 65 +2 fileAction 206 127 -79 find_main 520 417 -103 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/2 up/down: 33/-182) Total: -149 bytes text data bss dec hex filename 78267 1582 1552 81401 13df9 busybox_old 78118 1582 1552 81252 13d64 busybox_unstripped --- v1->v2: properly initializes 'status' in recursive_action1 to avoid incorrectly returing failure code with find -xdev -depth, as was reported on alpine: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/52406#note_348411 This isn't exactly the same patch I sent to alpine as this saves a few bytes; my first version of the fix was just setting 'status' before the goto in the xdev if branch. findutils/find.c | 44 ++-------------------------------------- include/libbb.h | 1 + libbb/recursive_action.c | 19 ++++++++++------- 3 files changed, 15 insertions(+), 49 deletions(-) diff --git a/findutils/find.c b/findutils/find.c index 31c9969886f6..a4a6bbc2df91 100644 --- a/findutils/find.c +++ b/findutils/find.c @@ -501,7 +501,6 @@ struct globals { #endif action ***actions; smallint need_print; - smallint xdev_on; smalluint exitstatus; recurse_flags_t recurse_flags; IF_FEATURE_FIND_EXEC_PLUS(unsigned max_argv_len;) @@ -1015,26 +1014,10 @@ static int FAST_FUNC fileAction( struct stat *statbuf) { int r; - int same_fs = 1; - -#if ENABLE_FEATURE_FIND_XDEV - if (S_ISDIR(statbuf->st_mode) && G.xdev_count) { - int i; - for (i = 0; i < G.xdev_count; i++) { - if (G.xdev_dev[i] == statbuf->st_dev) - goto found; - } - //bb_error_msg("'%s': not same fs", fileName); - same_fs = 0; - found: ; - } -#endif #if ENABLE_FEATURE_FIND_MAXDEPTH if (state->depth < G.minmaxdepth[0]) { - if (same_fs) - return TRUE; /* skip this, continue recursing */ - return SKIP; /* stop recursing */ + return TRUE; /* skip this, continue recursing */ } if (state->depth > G.minmaxdepth[1]) return SKIP; /* stop recursing */ @@ -1051,11 +1034,6 @@ static int FAST_FUNC fileAction( return SKIP; } #endif - /* -xdev stops on mountpoints, but AFTER mountpoit itself - * is processed as usual */ - if (!same_fs) { - return SKIP; - } /* Cannot return 0: our caller, recursive_action(), * will perror() and skip dirs (if called on dir) */ @@ -1295,7 +1273,7 @@ static action*** parse_params(char **argv) #if ENABLE_FEATURE_FIND_XDEV else if (parm == OPT_XDEV) { dbg("%d", __LINE__); - G.xdev_on = 1; + G.recurse_flags |= ACTION_XDEV; } #endif #if ENABLE_FEATURE_FIND_MAXDEPTH @@ -1718,24 +1696,6 @@ int find_main(int argc UNUSED_PARAM, char **argv) G.actions = parse_params(&argv[firstopt]); argv[firstopt] = NULL; -#if ENABLE_FEATURE_FIND_XDEV - if (G.xdev_on) { - struct stat stbuf; - - G.xdev_count = firstopt; - G.xdev_dev = xzalloc(G.xdev_count * sizeof(G.xdev_dev[0])); - for (i = 0; argv[i]; i++) { - /* not xstat(): shouldn't bomb out on - * "find not_exist exist -xdev" */ - if (stat(argv[i], &stbuf) == 0) - G.xdev_dev[i] = stbuf.st_dev; - /* else G.xdev_dev[i] stays 0 and - * won't match any real device dev_t - */ - } - } -#endif - for (i = 0; argv[i]; i++) { if (!recursive_action(argv[i], G.recurse_flags,/* flags */ diff --git a/include/libbb.h b/include/libbb.h index 0883fb565fa9..a206f5e884f4 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -514,6 +514,7 @@ enum { ACTION_DEPTHFIRST = (1 << 3), ACTION_QUIET = (1 << 4), ACTION_DANGLING_OK = (1 << 5), + ACTION_XDEV = (1 << 6), }; typedef uint8_t recurse_flags_t; typedef struct recursive_state { diff --git a/libbb/recursive_action.c b/libbb/recursive_action.c index b1c4bfad7ccf..d4b40afdead3 100644 --- a/libbb/recursive_action.c +++ b/libbb/recursive_action.c @@ -62,13 +62,15 @@ static int FAST_FUNC true_action(struct recursive_state *state UNUSED_PARAM, * ACTION_FOLLOWLINKS mainly controls handling of links to dirs. * 0: lstat(statbuf). Calls fileAction on link name even if points to dir. * 1: stat(statbuf). Calls dirAction and optionally recurse on link to dir. + * + * If ACTION_XDEV, stop on different filesystem _after_ it has been processed */ -static int recursive_action1(recursive_state_t *state, const char *fileName) +static int recursive_action1(recursive_state_t *state, const char *fileName, dev_t parentDev) { struct stat statbuf; unsigned follow; - int status; + int status = TRUE; DIR *dir; struct dirent *next; @@ -76,8 +78,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) if (state->depth == 0) follow = ACTION_FOLLOWLINKS | ACTION_FOLLOWLINKS_L0; follow &= state->flags; - status = (follow ? stat : lstat)(fileName, &statbuf); - if (status < 0) { + if ((follow ? stat : lstat)(fileName, &statbuf) < 0) { #ifdef DEBUG_RECURS_ACTION bb_error_msg("status=%d flags=%x", status, state->flags); #endif @@ -114,6 +115,10 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) return TRUE; } + /* skip cross devices -- we still need to process action */ + if ((state->flags & ACTION_XDEV) && parentDev != 0 && statbuf.st_dev != parentDev) + goto skip_recurse; + dir = opendir(fileName); if (!dir) { /* findutils-4.1.20 reports this */ @@ -121,7 +126,6 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) /* To trigger: "find -exec rm -rf {} \;" */ goto done_nak_warn; } - status = TRUE; while ((next = readdir(dir)) != NULL) { char *nextFile; int s; @@ -132,7 +136,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) /* process every file (NB: ACTION_RECURSE is set in flags) */ state->depth++; - s = recursive_action1(state, nextFile); + s = recursive_action1(state, nextFile, statbuf.st_dev); if (s == FALSE) status = FALSE; free(nextFile); @@ -146,6 +150,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName) } closedir(dir); +skip_recurse: if (state->flags & ACTION_DEPTHFIRST) { if (!state->dirAction(state, fileName, &statbuf)) goto done_nak_warn; @@ -177,5 +182,5 @@ int FAST_FUNC recursive_action(const char *fileName, state.fileAction = fileAction ? fileAction : true_action; state.dirAction = dirAction ? dirAction : true_action; - return recursive_action1(&state, fileName); + return recursive_action1(&state, fileName, 0); } -- 2.41.0 From oguzismailuysal at gmail.com Mon Oct 30 06:38:17 2023 From: oguzismailuysal at gmail.com (=?UTF-8?B?T8SfdXo=?=) Date: Mon, 30 Oct 2023 09:38:17 +0300 Subject: busybox awk doesn't allow print statements in for loop head Message-ID: Reproduce by: busybox awk 'BEGIN{for(print 5;0;);}' POSIX allows a print statement on both sides of the loop condition, so this should print 5 (and does so with GNU awk). But it fails with this error message instead: awk: cmd. line:1: Unexpected token From steffen at sdaoden.eu Mon Oct 30 18:29:10 2023 From: steffen at sdaoden.eu (Steffen Nurpmeso) Date: Mon, 30 Oct 2023 19:29:10 +0100 Subject: busybox awk doesn't allow print statements in for loop head In-Reply-To: References: Message-ID: <20231030182910.UyQgO%steffen@sdaoden.eu> O?uz wrote in : |Reproduce by: | | busybox awk 'BEGIN{for(print 5;0;);}' | |POSIX allows a print statement on both sides of the loop condition, so |this should print 5 (and does so with GNU awk). But it fails with this |error message instead: | | awk: cmd. line:1: Unexpected token Have you reported this for mawk, too? $ mawk 'BEGIN{for(print 5;0;);}' mawk: line 1: syntax error at or near print mawk: line 1: extra ')' Send bug reports, comments, questions, etc. to Thomas E. Dickey https://invisible-island.net/mawk/ --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt) From oguzismailuysal at gmail.com Mon Oct 30 18:38:06 2023 From: oguzismailuysal at gmail.com (=?UTF-8?B?T8SfdXo=?=) Date: Mon, 30 Oct 2023 20:38:06 +0200 Subject: busybox awk doesn't allow print statements in for loop head In-Reply-To: <20231030182910.UyQgO%steffen@sdaoden.eu> References: <20231030182910.UyQgO%steffen@sdaoden.eu> Message-ID: On Monday, October 30, 2023, Steffen Nurpmeso wrote: > > Have you reported this for mawk, too? > On it, didn't know it was still maintained. Thanks -- O?uz -------------- next part -------------- An HTML attachment was scrubbed... URL: