mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge branch 'master' into openelec-pvr
This commit is contained in:
commit
d5e3206843
@ -19,7 +19,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="busybox"
|
PKG_NAME="busybox"
|
||||||
PKG_VERSION="1.18.2"
|
PKG_VERSION="1.18.3"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
--- busybox-1.18.2/loginutils/Config.src
|
|
||||||
+++ busybox-1.18.2-buildsys/loginutils/Config.src
|
|
||||||
@@ -186,7 +186,6 @@ config GETTY
|
|
||||||
config LOGIN
|
|
||||||
bool "login"
|
|
||||||
default y
|
|
||||||
- select FEATURE_SUID
|
|
||||||
select FEATURE_SYSLOG
|
|
||||||
help
|
|
||||||
login is used when signing onto a system.
|
|
||||||
@@ -229,7 +228,6 @@ config FEATURE_SECURETTY
|
|
||||||
config PASSWD
|
|
||||||
bool "passwd"
|
|
||||||
default y
|
|
||||||
- select FEATURE_SUID
|
|
||||||
select FEATURE_SYSLOG
|
|
||||||
help
|
|
||||||
passwd changes passwords for user and group accounts. A normal user
|
|
||||||
@@ -265,7 +263,6 @@ config CHPASSWD
|
|
||||||
config SU
|
|
||||||
bool "su"
|
|
||||||
default y
|
|
||||||
- select FEATURE_SUID
|
|
||||||
select FEATURE_SYSLOG
|
|
||||||
help
|
|
||||||
su is used to become another user during a login session.
|
|
||||||
@@ -295,7 +292,6 @@ config SULOGIN
|
|
||||||
config VLOCK
|
|
||||||
bool "vlock"
|
|
||||||
default y
|
|
||||||
- select FEATURE_SUID
|
|
||||||
help
|
|
||||||
Build the "vlock" applet which allows you to lock (virtual) terminals.
|
|
||||||
|
|
||||||
--- busybox-1.18.2/miscutils/Config.src
|
|
||||||
+++ busybox-1.18.2-buildsys/miscutils/Config.src
|
|
||||||
@@ -170,7 +170,6 @@ config FEATURE_CROND_DIR
|
|
||||||
config CRONTAB
|
|
||||||
bool "crontab"
|
|
||||||
default y
|
|
||||||
- select FEATURE_SUID
|
|
||||||
help
|
|
||||||
Crontab manipulates the crontab for a particular user. Only
|
|
||||||
the superuser may specify a different user and/or crontab directory.
|
|
||||||
--- busybox-1.18.2/util-linux/Config.src
|
|
||||||
+++ busybox-1.18.2-buildsys/util-linux/Config.src
|
|
||||||
@@ -354,7 +354,6 @@ config FEATURE_HWCLOCK_ADJTIME_FHS
|
|
||||||
config IPCRM
|
|
||||||
bool "ipcrm"
|
|
||||||
default y
|
|
||||||
- select FEATURE_SUID
|
|
||||||
help
|
|
||||||
The ipcrm utility allows the removal of System V interprocess
|
|
||||||
communication (IPC) objects and the associated data structures
|
|
||||||
@@ -364,7 +363,6 @@ config IPCS
|
|
||||||
bool "ipcs"
|
|
||||||
default y
|
|
||||||
depends on PLATFORM_LINUX
|
|
||||||
- select FEATURE_SUID
|
|
||||||
help
|
|
||||||
The ipcs utility is used to provide information on the currently
|
|
||||||
allocated System V interprocess (IPC) objects in the system.
|
|
@ -1,34 +0,0 @@
|
|||||||
--- busybox-1.18.2/shell/hush.c
|
|
||||||
+++ busybox-1.18.2-hush/shell/hush.c
|
|
||||||
@@ -4123,15 +4123,26 @@ static struct pipe *parse_stream(char **
|
|
||||||
&& dest.length == 0 && !dest.has_quoted_part
|
|
||||||
) {
|
|
||||||
/* This newline can be ignored. But...
|
|
||||||
- * without the below check, interactive shell
|
|
||||||
- * will ignore even lines with bare <newline>,
|
|
||||||
- * and show the continuation prompt:
|
|
||||||
+ * Without check #1, interactive shell
|
|
||||||
+ * ignores even bare <newline>,
|
|
||||||
+ * and shows the continuation prompt:
|
|
||||||
* ps1_prompt$ <enter>
|
|
||||||
- * ps2> _ <=== wrong prompt, should be ps1
|
|
||||||
+ * ps2> _ <=== wrong, should be ps1
|
|
||||||
+ * Without check #2, "cmd & <newline>"
|
|
||||||
+ * is similarly mistreated.
|
|
||||||
+ * (BTW, this makes "cmd & cmd"
|
|
||||||
+ * and "cmd && cmd" non-orthogonal.
|
|
||||||
+ * Really, ask yourself, why
|
|
||||||
+ * "cmd && <newline>" doesn't start
|
|
||||||
+ * cmd but waits for more input?
|
|
||||||
+ * No reason...)
|
|
||||||
*/
|
|
||||||
struct pipe *pi = ctx.list_head;
|
|
||||||
- if (pi->num_cmds != 0)
|
|
||||||
+ if (pi->num_cmds != 0 /* check #1 */
|
|
||||||
+ && pi->followup != PIPE_BG /* check #2 */
|
|
||||||
+ ) {
|
|
||||||
continue;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
/* Treat newline as a command separator. */
|
|
||||||
done_pipe(&ctx, PIPE_SEQ);
|
|
@ -1,10 +0,0 @@
|
|||||||
--- busybox-1.18.2/libbb/vfork_daemon_rexec.c
|
|
||||||
+++ busybox-1.18.2-libbb/libbb/vfork_daemon_rexec.c
|
|
||||||
@@ -52,6 +52,7 @@ pid_t FAST_FUNC spawn(char **argv)
|
|
||||||
* Interested party can wait on pid and learn exit code.
|
|
||||||
* If 111 - then it (most probably) failed to exec */
|
|
||||||
if (failed) {
|
|
||||||
+ safe_waitpid(pid, NULL, 0); /* prevent zombie */
|
|
||||||
errno = failed;
|
|
||||||
return -1;
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
--- busybox-1.18.2/modutils/modprobe-small.c
|
|
||||||
+++ busybox-1.18.2-modprobe-small/modutils/modprobe-small.c
|
|
||||||
@@ -205,6 +205,7 @@ static void parse_module(module_info *in
|
|
||||||
/* Read (possibly compressed) module */
|
|
||||||
len = 64 * 1024 * 1024; /* 64 Mb at most */
|
|
||||||
module_image = xmalloc_open_zipped_read_close(pathname, &len);
|
|
||||||
+ /* module_image == NULL is ok here, find_keyword handles it */
|
|
||||||
//TODO: optimize redundant module body reads
|
|
||||||
|
|
||||||
/* "alias1 symbol:sym1 alias2 symbol:sym2" */
|
|
||||||
@@ -845,6 +846,8 @@ int modprobe_main(int argc UNUSED_PARAM,
|
|
||||||
|
|
||||||
len = MAXINT(ssize_t);
|
|
||||||
map = xmalloc_open_zipped_read_close(*argv, &len);
|
|
||||||
+ if (!map)
|
|
||||||
+ bb_perror_msg_and_die("can't read '%s'", *argv);
|
|
||||||
if (init_module(map, len,
|
|
||||||
IF_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(options ? options : "")
|
|
||||||
IF_NOT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE("")
|
|
@ -1,20 +0,0 @@
|
|||||||
--- busybox-1.18.2/modutils/modutils.c
|
|
||||||
+++ busybox-1.18.2-modprobe/modutils/modutils.c
|
|
||||||
@@ -71,12 +71,11 @@ char* FAST_FUNC parse_cmdline_module_opt
|
|
||||||
optlen = 0;
|
|
||||||
while (*++argv) {
|
|
||||||
options = xrealloc(options, optlen + 2 + strlen(*argv) + 2);
|
|
||||||
- /* Older versions were enclosing space-containing *argv in "",
|
|
||||||
- * but both modprobe and insmod from module-init-tools 3.11.1
|
|
||||||
- * don't do this anymore. (As to extra trailing space,
|
|
||||||
- * insmod adds it but modprobe does not. We do in both cases)
|
|
||||||
- */
|
|
||||||
- optlen += sprintf(options + optlen, "%s ", *argv);
|
|
||||||
+ /* Spaces handled by "" pairs, but no way of escaping quotes */
|
|
||||||
+//TODO: module-init-tools version 3.11.1 quotes only value:
|
|
||||||
+//it generates var="val with spaces", not "var=val with spaces"
|
|
||||||
+//(and it won't quote var *name* even if it has spaces)
|
|
||||||
+ optlen += sprintf(options + optlen, (strchr(*argv, ' ') ? "\"%s\" " : "%s "), *argv);
|
|
||||||
}
|
|
||||||
return options;
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
--- busybox-1.18.2/networking/ping.c
|
|
||||||
+++ busybox-1.18.2-ping/networking/ping.c
|
|
||||||
@@ -394,7 +394,7 @@ static void sendping4(int junk UNUSED_PA
|
|
||||||
#if ENABLE_PING6
|
|
||||||
static void sendping6(int junk UNUSED_PARAM)
|
|
||||||
{
|
|
||||||
- struct icmp6_hdr *pkt = alloca(datalen + sizeof(struct icmp6_hdr) + 4);
|
|
||||||
+ struct icmp6_hdr *pkt = G.snd_packet;
|
|
||||||
|
|
||||||
//memset(pkt, 0, datalen + sizeof(struct icmp6_hdr) + 4);
|
|
||||||
pkt->icmp6_type = ICMP6_ECHO_REQUEST;
|
|
@ -1,15 +0,0 @@
|
|||||||
--- busybox-1.18.2/archival/tar.c
|
|
||||||
+++ busybox-1.18.2-tar/archival/tar.c
|
|
||||||
@@ -1037,8 +1037,10 @@ int tar_main(int argc UNUSED_PARAM, char
|
|
||||||
tar_handle->src_fd = tar_fd;
|
|
||||||
tar_handle->seek = seek_by_read;
|
|
||||||
} else {
|
|
||||||
- if (ENABLE_FEATURE_TAR_AUTODETECT && flags == O_RDONLY) {
|
|
||||||
- get_header_ptr = get_header_tar;
|
|
||||||
+ if (ENABLE_FEATURE_TAR_AUTODETECT
|
|
||||||
+ && flags == O_RDONLY
|
|
||||||
+ && get_header_ptr == get_header_tar
|
|
||||||
+ ) {
|
|
||||||
tar_handle->src_fd = open_zipped(tar_filename);
|
|
||||||
if (tar_handle->src_fd < 0)
|
|
||||||
bb_perror_msg_and_die("can't open '%s'", tar_filename);
|
|
@ -1,11 +0,0 @@
|
|||||||
--- busybox-1.18.2/networking/udhcp/common.c
|
|
||||||
+++ busybox-1.18.2-udhcp/networking/udhcp/common.c
|
|
||||||
@@ -375,7 +375,7 @@ static NOINLINE void attach_option(
|
|
||||||
new->data = xmalloc(length + OPT_DATA);
|
|
||||||
new->data[OPT_CODE] = optflag->code;
|
|
||||||
new->data[OPT_LEN] = length;
|
|
||||||
- memcpy(new->data + OPT_DATA, buffer, length);
|
|
||||||
+ memcpy(new->data + OPT_DATA, (allocated ? allocated : buffer), length);
|
|
||||||
|
|
||||||
curr = opt_list;
|
|
||||||
while (*curr && (*curr)->data[OPT_CODE] < optflag->code)
|
|
@ -1,41 +0,0 @@
|
|||||||
--- busybox-1.18.2/coreutils/wc.c
|
|
||||||
+++ busybox-1.18.2-wc/coreutils/wc.c
|
|
||||||
@@ -81,11 +81,11 @@
|
|
||||||
* column order in "wc -cmlwL" output:
|
|
||||||
*/
|
|
||||||
enum {
|
|
||||||
- WC_LINES = 0,
|
|
||||||
- WC_WORDS = 1,
|
|
||||||
- WC_UNICHARS = 2,
|
|
||||||
- WC_CHARS = 3,
|
|
||||||
- WC_LENGTH = 4,
|
|
||||||
+ WC_LINES = 0, /* -l */
|
|
||||||
+ WC_WORDS = 1, /* -w */
|
|
||||||
+ WC_UNICHARS = 2, /* -m */
|
|
||||||
+ WC_BYTES = 3, /* -c */
|
|
||||||
+ WC_LENGTH = 4, /* -L */
|
|
||||||
NUM_WCS = 5,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -104,10 +104,10 @@ int wc_main(int argc UNUSED_PARAM, char
|
|
||||||
|
|
||||||
init_unicode();
|
|
||||||
|
|
||||||
- print_type = getopt32(argv, "lwcmL");
|
|
||||||
+ print_type = getopt32(argv, "lwmcL");
|
|
||||||
|
|
||||||
if (print_type == 0) {
|
|
||||||
- print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_CHARS);
|
|
||||||
+ print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_BYTES);
|
|
||||||
}
|
|
||||||
|
|
||||||
argv += optind;
|
|
||||||
@@ -157,7 +157,7 @@ int wc_main(int argc UNUSED_PARAM, char
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Cater for -c and -m */
|
|
||||||
- ++counts[WC_CHARS];
|
|
||||||
+ ++counts[WC_BYTES];
|
|
||||||
if (unicode_status != UNICODE_ON /* every byte is a new char */
|
|
||||||
|| (c & 0xc0) != 0x80 /* it isn't a 2nd+ byte of a Unicode char */
|
|
||||||
) {
|
|
@ -1,39 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
|
||||||
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
|
|
||||||
#
|
|
||||||
# This Program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# This Program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
# http://www.gnu.org/copyleft/gpl.html
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
. config/options $1
|
|
||||||
|
|
||||||
[ -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}`
|
|
||||||
[ -d $BUILD/${PKG_NAME}${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}${PKG_VERSION}`
|
|
||||||
|
|
||||||
for i in `find $PKG_BUILD -name config.guess`; do
|
|
||||||
CONFIGTOOLSDIR=`dirname $i`
|
|
||||||
|
|
||||||
printf "%${INDENT}c FIXCONFIG $1: $CONFIGTOOLSDIR\n" >&$SILENT_OUT
|
|
||||||
|
|
||||||
[ -f "$CONFIGTOOLSDIR/config.guess" ] && cp -f $SCRIPTS/configtools/config.guess $CONFIGTOOLSDIR
|
|
||||||
[ -f "$CONFIGTOOLSDIR/config.sub" ] && cp -f $SCRIPTS/configtools/config.sub $CONFIGTOOLSDIR
|
|
||||||
[ -f "$CONFIGTOOLSDIR/configure.guess" ] && cp -f $SCRIPTS/configtools/config.guess $CONFIGTOOLSDIR/configure.guess
|
|
||||||
[ -f "$CONFIGTOOLSDIR/configure.sub" ] && cp -f $SCRIPTS/configtools/config.sub $CONFIGTOOLSDIR/configure.sub
|
|
||||||
done
|
|
||||||
|
|
||||||
exit 0
|
|
@ -70,25 +70,33 @@ fi
|
|||||||
|
|
||||||
[ -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}`
|
[ -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}`
|
||||||
[ -d $BUILD/${PKG_NAME}${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}${PKG_VERSION}`
|
[ -d $BUILD/${PKG_NAME}${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}${PKG_VERSION}`
|
||||||
|
[ -d $BUILD/${PKG_NAME} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}`
|
||||||
|
|
||||||
for i in $PKG_DIR/patches/$PKG_NAME-$PKG_VERSION*.patch ; do
|
for i in $PKG_DIR/patches/$PKG_NAME-$PKG_VERSION*.patch ; do
|
||||||
if [ -f "$i" ]; then
|
if [ -f "$i" ]; then
|
||||||
PATCH=`basename $i`
|
PATCH=`basename $i`
|
||||||
PT=`echo $PATCH | sed 's/.*\.\(.*\)$/\1/'`
|
PT=`echo $PATCH | sed 's/.*\.\(.*\)$/\1/'`
|
||||||
if [ "$PT" != "patch" -a "$PT" != "$TARGET_ARCH" ]; then
|
if [ "$PT" != "patch" -a "$PT" != "$TARGET_ARCH" ]; then
|
||||||
echo "## Skipping patch: $i"
|
printf "%${INDENT}c SKIP PATCH: $i\n" >&$SILENT_OUT
|
||||||
continue;
|
continue;
|
||||||
else
|
else
|
||||||
echo "## Applying patch: $i"
|
printf "%${INDENT}c APPLY PATCH: $i\n" >&$SILENT_OUT
|
||||||
cat $i | patch -d `echo "$PKG_BUILD" | cut -f1 -d\ ` -p1 >&$VERBOSE_OUT
|
cat $i | patch -d `echo "$PKG_BUILD" | cut -f1 -d\ ` -p1 >&$VERBOSE_OUT
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
$SCRIPTS/fixconfigtools $1
|
|
||||||
|
|
||||||
[ -f "$PKG_DIR/unpack" ] && $PKG_DIR/unpack $@ >&$VERBOSE_OUT
|
[ -f "$PKG_DIR/unpack" ] && $PKG_DIR/unpack $@ >&$VERBOSE_OUT
|
||||||
|
|
||||||
|
for config in `find $BUILD/$1* -name config.guess | sed 's/config.guess//'`; do
|
||||||
|
printf "%${INDENT}c FIXCONFIG: $config\n" >&$SILENT_OUT
|
||||||
|
|
||||||
|
[ -f "$config/config.guess" ] && cp -f $SCRIPTS/configtools/config.guess $config
|
||||||
|
[ -f "$config/config.sub" ] && cp -f $SCRIPTS/configtools/config.sub $config
|
||||||
|
[ -f "$config/configure.guess" ] && cp -f $SCRIPTS/configtools/config.guess $config/configure.guess
|
||||||
|
[ -f "$config/configure.sub" ] && cp -f $SCRIPTS/configtools/config.sub $config/configure.sub
|
||||||
|
done
|
||||||
|
|
||||||
rm -f $STAMPS/$1/build
|
rm -f $STAMPS/$1/build
|
||||||
|
|
||||||
for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do
|
for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user