1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-30 18:10:41 +02:00

upgrade busybox to 1.4.0

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6204 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2007-01-25 19:08:01 +00:00
parent 8072d81b1c
commit f4f4212c8a
22 changed files with 586 additions and 1394 deletions

View File

@ -9,13 +9,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=busybox PKG_NAME:=busybox
PKG_VERSION:=1.3.1 PKG_VERSION:=1.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \ PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/ http://distfiles.gentoo.org/distfiles/
PKG_MD5SUM:=571531cfa83726947ccb566de017ad4f PKG_MD5SUM:=f24a3c1e08bc55ec44381d588e8bcced
PKG_CAT:=bzcat PKG_CAT:=bzcat
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@ -396,14 +396,14 @@ config BUSYBOX_CONFIG_EFENCE
endchoice endchoice
config BUSYBOX_CONFIG_DEBUG_YANK_SUSv2 config BUSYBOX_CONFIG_INCLUDE_SUSv2
bool "Disable obsolete features removed before SUSv3?" bool "Enable obsolete features removed before SUSv3?"
default y default y
help help
This option will disable backwards compatibility with SuSv2, This option will enable backwards compatibility with SuSv2,
specifically, old-style numeric options ('command -1 <file>') specifically, old-style numeric options ('command -1 <file>')
will not be supported in head, tail, and fold. (Note: should will be supported in head, tail, and fold. (Note: should
yank from renice too.) affect renice too.)
endmenu endmenu
@ -440,7 +440,7 @@ config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
prompt "not installed" prompt "not installed"
depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE_SHELL
help help
Do not install applets links. Usefull when using the -install feature Do not install applet links. Useful when using the -install feature
or a standalone shell for rescue pruposes. or a standalone shell for rescue pruposes.
endchoice endchoice

View File

@ -139,7 +139,7 @@ config BUSYBOX_CONFIG_RPM
bool "rpm" bool "rpm"
default n default n
help help
Mini RPM applet - queries and extracts Mini RPM applet - queries and extracts RPM packages.
config BUSYBOX_CONFIG_TAR config BUSYBOX_CONFIG_TAR
bool "tar" bool "tar"

View File

@ -11,14 +11,14 @@ config BUSYBOX_CONFIG_CHATTR
help help
chattr changes the file attributes on a second extended file system. chattr changes the file attributes on a second extended file system.
config BUSYBOX_CONFIG_E2FSCK ### config E2FSCK
bool "e2fsck" ### bool "e2fsck"
default n ### default n
help ### help
e2fsck is used to check Linux second extended file systems (ext2fs). ### e2fsck is used to check Linux second extended file systems (ext2fs).
e2fsck also supports ext2 filesystems countaining a journal (ext3). ### e2fsck also supports ext2 filesystems countaining a journal (ext3).
The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also ### The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
provided. ### provided.
config BUSYBOX_CONFIG_FSCK config BUSYBOX_CONFIG_FSCK
bool "fsck" bool "fsck"
@ -34,34 +34,34 @@ config BUSYBOX_CONFIG_LSATTR
help help
lsattr lists the file attributes on a second extended file system. lsattr lists the file attributes on a second extended file system.
config BUSYBOX_CONFIG_MKE2FS ### config MKE2FS
bool "mke2fs" ### bool "mke2fs"
default n ### default n
help ### help
mke2fs is used to create an ext2/ext3 filesystem. The normal compat ### mke2fs is used to create an ext2/ext3 filesystem. The normal compat
symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided. ### symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
config BUSYBOX_CONFIG_TUNE2FS ### config TUNE2FS
bool "tune2fs" ### bool "tune2fs"
default n ### default n
help ### help
tune2fs allows the system administrator to adjust various tunable ### tune2fs allows the system administrator to adjust various tunable
filesystem parameters on Linux ext2/ext3 filesystems. ### filesystem parameters on Linux ext2/ext3 filesystems.
config BUSYBOX_CONFIG_E2LABEL ### config E2LABEL
bool "e2label" ### bool "e2label"
default n ### default n
depends on BUSYBOX_CONFIG_TUNE2FS ### depends on TUNE2FS
help ### help
e2label will display or change the filesystem label on the ext2 ### e2label will display or change the filesystem label on the ext2
filesystem located on device. ### filesystem located on device.
config BUSYBOX_CONFIG_FINDFS ### config FINDFS
bool "findfs" ### bool "findfs"
default n ### default n
depends on BUSYBOX_CONFIG_TUNE2FS ### depends on TUNE2FS
help ### help
findfs will search the disks in the system looking for a filesystem ### findfs will search the disks in the system looking for a filesystem
which has a label matching label or a UUID equal to uuid. ### which has a label matching label or a UUID equal to uuid.
endmenu endmenu

View File

@ -0,0 +1,67 @@
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#
menu "Linux Ext2 FS Progs"
config BUSYBOX_CONFIG_CHATTR
bool "chattr"
default n
help
chattr changes the file attributes on a second extended file system.
config BUSYBOX_CONFIG_E2FSCK
bool "e2fsck"
default n
help
e2fsck is used to check Linux second extended file systems (ext2fs).
e2fsck also supports ext2 filesystems countaining a journal (ext3).
The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
provided.
config BUSYBOX_CONFIG_FSCK
bool "fsck"
default n
help
fsck is used to check and optionally repair one or more filesystems.
In actuality, fsck is simply a front-end for the various file system
checkers (fsck.fstype) available under Linux.
config BUSYBOX_CONFIG_LSATTR
bool "lsattr"
default n
help
lsattr lists the file attributes on a second extended file system.
config BUSYBOX_CONFIG_MKE2FS
bool "mke2fs"
default n
help
mke2fs is used to create an ext2/ext3 filesystem. The normal compat
symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
config BUSYBOX_CONFIG_TUNE2FS
bool "tune2fs"
default n
help
tune2fs allows the system administrator to adjust various tunable
filesystem parameters on Linux ext2/ext3 filesystems.
config BUSYBOX_CONFIG_E2LABEL
bool "e2label"
default n
depends on BUSYBOX_CONFIG_TUNE2FS
help
e2label will display or change the filesystem label on the ext2
filesystem located on device.
config BUSYBOX_CONFIG_FINDFS
bool "findfs"
default n
depends on BUSYBOX_CONFIG_TUNE2FS
help
findfs will search the disks in the system looking for a filesystem
which has a label matching label or a UUID equal to uuid.
endmenu

View File

@ -127,5 +127,12 @@ config BUSYBOX_CONFIG_FEATURE_VI_OPTIMIZE_CURSOR
This will make the cursor movement faster, but requires more memory This will make the cursor movement faster, but requires more memory
and it makes the applet a tiny bit larger. and it makes the applet a tiny bit larger.
endmenu config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
bool "Allow vi and awk to execute shell commands"
default y
depends on BUSYBOX_CONFIG_VI || BUSYBOX_CONFIG_AWK
help
Enables vi and awk features which allows user to execute
shell commands (using system() C call).
endmenu

View File

@ -142,6 +142,13 @@ config BUSYBOX_CONFIG_PASSWD
Note that Busybox binary must be setuid root for this applet to Note that Busybox binary must be setuid root for this applet to
work properly. work properly.
config BUSYBOX_CONFIG_FEATURE_PASSWD_WEAK_CHECK
bool "Check new passwords for weakness"
default y
depends on BUSYBOX_CONFIG_PASSWD
help
With this option passwd will refuse new passwords which are "weak".
config BUSYBOX_CONFIG_SU config BUSYBOX_CONFIG_SU
bool "su" bool "su"
default n default n
@ -154,12 +161,15 @@ config BUSYBOX_CONFIG_SU
Note that Busybox binary must be setuid root for this applet to Note that Busybox binary must be setuid root for this applet to
work properly. work properly.
config BUSYBOX_CONFIG_SU_SYSLOG config BUSYBOX_CONFIG_FEATURE_SU_SYSLOG
bool "Support for syslog in su" bool "Enable su to write to syslog"
default n default n
depends on BUSYBOX_CONFIG_SU depends on BUSYBOX_CONFIG_SU
help
Enables support for syslog in su. config BUSYBOX_CONFIG_FEATURE_SU_CHECKS_SHELLS
bool "Enable su to check user's shell to be listed in /etc/shells"
depends on BUSYBOX_CONFIG_SU
default n
config BUSYBOX_CONFIG_SULOGIN config BUSYBOX_CONFIG_SULOGIN
bool "sulogin" bool "sulogin"

View File

@ -133,6 +133,11 @@ config BUSYBOX_CONFIG_LESS
'less' is a pager, meaning that it displays text files. It possesses 'less' is a pager, meaning that it displays text files. It possesses
a wide array of features, and is an improvement over 'more'. a wide array of features, and is an improvement over 'more'.
config BUSYBOX_CONFIG_FEATURE_LESS_MAXLINES
int "Max number of input lines less will try to eat"
default 9999999
depends on BUSYBOX_CONFIG_LESS
config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
bool "Enable bracket searching" bool "Enable bracket searching"
default n default n

View File

@ -12,6 +12,12 @@ config BUSYBOX_CONFIG_FEATURE_IPV6
Enable IPv6 support in busybox. Enable IPv6 support in busybox.
This adds IPv6 support in the networking applets. This adds IPv6 support in the networking applets.
config BUSYBOX_CONFIG_ARP
bool "arp"
default n
help
Manipulate the system ARP cache
config BUSYBOX_CONFIG_ARPING config BUSYBOX_CONFIG_ARPING
bool "arping" bool "arping"
default y default y
@ -72,15 +78,15 @@ config BUSYBOX_CONFIG_HTTPD
config BUSYBOX_CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP config BUSYBOX_CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
bool "Support reloading the global config file using hup signal" bool "Support reloading the global config file using hup signal"
default n default n
depends on BUSYBOX_CONFIG_HTTPD && BUSYBOX_CONFIG_FEATURE_HTTPD_WITHOUT_INETD depends on BUSYBOX_CONFIG_HTTPD
help help
This option enables processing of SIGHUP to reload cached This option enables processing of SIGHUP to reload cached
configuration settings. configuration settings.
config BUSYBOX_CONFIG_FEATURE_HTTPD_SETUID config BUSYBOX_CONFIG_FEATURE_HTTPD_SETUID
bool "Enable support -u <user> option" bool "Enable -u <user> option"
default n default n
depends on BUSYBOX_CONFIG_HTTPD && BUSYBOX_CONFIG_FEATURE_HTTPD_WITHOUT_INETD depends on BUSYBOX_CONFIG_HTTPD
help help
This option allows the server to run as a specific user This option allows the server to run as a specific user
rather than defaulting to the user that starts the server. rather than defaulting to the user that starts the server.

View File

@ -42,7 +42,7 @@ config BUSYBOX_CONFIG_KILLALL5
bool "killall5" bool "killall5"
default y default y
depends on BUSYBOX_CONFIG_KILL depends on BUSYBOX_CONFIG_KILL
config BUSYBOX_CONFIG_PIDOF config BUSYBOX_CONFIG_PIDOF
bool "pidof" bool "pidof"
default y default y

View File

@ -0,0 +1,11 @@
--- busybox-1.4.0/libbb/xreadlink.c Fri Jan 19 22:23:06 2007
+++ busybox-1.4.0-syslogd-n/libbb/xreadlink.c Tue Jan 23 22:35:45 2007
@@ -36,7 +36,7 @@
char *xmalloc_realpath(const char *path)
{
-#ifdef __GLIBC__
+#if defined(__GLIBC__) && !defined(__UCLIBC__)
/* glibc provides a non-standard extension */
return realpath(path, NULL);
#else

View File

@ -1,230 +0,0 @@
--- busybox-1.3.1/include/libbb.h Wed Dec 27 05:56:18 2006
+++ busybox-1.3.1.shadow/include/libbb.h Sat Dec 30 15:24:07 2006
@@ -46,11 +46,13 @@
#ifdef CONFIG_LOCALE_SUPPORT
#include <locale.h>
#else
-#define setlocale(x,y)
+#define setlocale(x,y) ((void)0)
#endif
#include "pwd_.h"
#include "grp_.h"
+/* ifdef it out, because it may include <shadow.h> */
+/* and we may not even _have_ <shadow.h>! */
#if ENABLE_FEATURE_SHADOWPASSWDS
#include "shadow_.h"
#endif
@@ -59,7 +61,7 @@
#include <limits.h>
#include <sys/param.h>
#ifndef PATH_MAX
-#define PATH_MAX 256
+#define PATH_MAX 256
#endif
/* Tested to work correctly (IIRC :]) */
--- busybox-1.3.1/libpwdgrp/pwd_grp.c Wed Dec 27 05:56:32 2006
+++ busybox-1.3.1.shadow/libpwdgrp/pwd_grp.c Sat Dec 30 15:24:07 2006
@@ -52,7 +52,9 @@
extern int __parsepwent(void *pw, char *line);
extern int __parsegrent(void *gr, char *line);
+#if ENABLE_USE_BB_SHADOW
extern int __parsespent(void *sp, char *line);
+#endif
extern int __pgsreader(int (*__parserfunc)(void *d, char *line), void *data,
char *__restrict line_buff, size_t buflen, FILE *f);
@@ -103,6 +105,7 @@
return rv;
}
+#if ENABLE_USE_BB_SHADOW
int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf,
char *__restrict buffer, size_t buflen,
struct spwd **__restrict result)
@@ -117,6 +120,7 @@
return rv;
}
+#endif
/**********************************************************************/
/* For the various fget??ent funcs, return NULL on failure and a
@@ -144,6 +148,7 @@
return result;
}
+#if ENABLE_USE_BB_SHADOW
extern int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf,
char *__restrict buffer, size_t buflen,
struct spwd **__restrict result);
@@ -184,6 +189,7 @@
DONE:
return rv;
}
+#endif
/**********************************************************************/
@@ -207,6 +213,7 @@
#define DO_GETXXKEY_R_PATHNAME _PATH_GROUP
#include "pwd_grp_internal.c"
+#if ENABLE_USE_BB_SHADOW
#define GETXXKEY_R_FUNC getspnam_R
#define GETXXKEY_R_PARSER __parsespent
#define GETXXKEY_R_ENTTYPE struct spwd
@@ -214,6 +221,7 @@
#define DO_GETXXKEY_R_KEYTYPE const char *__restrict
#define DO_GETXXKEY_R_PATHNAME _PATH_SHADOW
#include "pwd_grp_internal.c"
+#endif
#define GETXXKEY_R_FUNC getpwuid_R
#define GETXXKEY_R_PARSER __parsepwent
@@ -253,6 +261,7 @@
return result;
}
+#if 0 //ENABLE_USE_BB_SHADOW
/* This function is non-standard and is currently not built. It seems
* to have been created as a reentrant version of the non-standard
* functions getspuid. Why getspuid was added, I do not know. */
@@ -286,6 +295,7 @@
getspuid_r(uid, &resultbuf, buffer, sizeof(buffer), &result);
return result;
}
+#endif
struct passwd *getpwnam(const char *name)
{
@@ -307,6 +317,7 @@
return result;
}
+#if ENABLE_USE_BB_SHADOW
struct spwd *getspnam(const char *name)
{
static char buffer[PWD_BUFFER_SIZE];
@@ -316,6 +327,7 @@
getspnam_r(name, &resultbuf, buffer, sizeof(buffer), &result);
return result;
}
+#endif
int getpw(uid_t uid, char *buf)
{
@@ -444,6 +456,7 @@
return rv;
}
+#if ENABLE_USE_BB_SHADOW
static FILE *spf /*= NULL*/;
void setspent(void)
{
@@ -488,6 +501,7 @@
UNLOCK;
return rv;
}
+#endif
struct passwd *getpwent(void)
{
@@ -509,6 +523,7 @@
return result;
}
+#if ENABLE_USE_BB_SHADOW
struct spwd *getspent(void)
{
static char line_buff[PWD_BUFFER_SIZE];
@@ -528,6 +543,7 @@
sgetspent_r(string, &spwd, line_buff, sizeof(line_buff), &result);
return result;
}
+#endif
int initgroups(const char *user, gid_t gid)
{
@@ -643,6 +659,7 @@
return rv;
}
+#if ENABLE_USE_BB_SHADOW
static const unsigned char _sp_off[] = {
offsetof(struct spwd, sp_lstchg), /* 2 - not a char ptr */
offsetof(struct spwd, sp_min), /* 3 - not a char ptr */
@@ -688,6 +705,7 @@
DO_UNLOCK:
return rv;
}
+#endif
/**********************************************************************/
/* Internal uClibc functions. */
@@ -846,6 +864,7 @@
/**********************************************************************/
+#if ENABLE_USE_BB_SHADOW
static const unsigned char sp_off[] = {
offsetof(struct spwd, sp_namp), /* 0 */
offsetof(struct spwd, sp_pwdp), /* 1 */
@@ -900,6 +919,7 @@
return EINVAL;
}
+#endif
/**********************************************************************/
--- busybox-1.3.1/loginutils/passwd.c Wed Dec 27 05:56:20 2006
+++ busybox-1.3.1.shadow/loginutils/passwd.c Sat Dec 30 15:24:07 2006
@@ -275,7 +275,8 @@
}
filename = bb_path_passwd_file;
- if (ENABLE_FEATURE_SHADOWPASSWDS) {
+#if ENABLE_FEATURE_SHADOWPASSWDS
+ {
struct spwd *sp = getspnam(name);
if (!sp) {
/* LOGMODE_BOTH */
@@ -287,6 +288,7 @@
pw->pw_passwd = sp->sp_pwdp;
}
}
+#endif
/* Decide what the new password will be */
newp = NULL;
--- busybox-1.3.1/loginutils/sulogin.c Wed Dec 27 05:56:20 2006
+++ busybox-1.3.1.shadow/loginutils/sulogin.c Sat Dec 30 15:24:07 2006
@@ -41,7 +41,6 @@
char *timeout_arg;
const char * const *p;
struct passwd *pwd;
- struct spwd *spwd;
const char *shell;
logmode = LOGMODE_BOTH;
@@ -75,13 +74,15 @@
goto auth_error;
}
- if (ENABLE_FEATURE_SHADOWPASSWDS) {
- spwd = getspnam(pwd->pw_name);
+#if ENABLE_FEATURE_SHADOWPASSWDS
+ {
+ struct spwd *spwd = getspnam(pwd->pw_name);
if (!spwd) {
goto auth_error;
}
pwd->pw_passwd = spwd->sp_pwdp;
}
+#endif
while (1) {
/* cp points to a static buffer that is zeroed every time */

View File

@ -1,24 +0,0 @@
--- busybox-1.3.1/networking/ping.c 2006-12-27 05:52:39.000000000 +0100
+++ busybox-1.3.1-new/networking/ping.c 2006-12-29 18:42:36.000000000 +0100
@@ -217,7 +217,8 @@
pkt->icmp_type = ICMP_ECHO;
pkt->icmp_code = 0;
pkt->icmp_cksum = 0;
- pkt->icmp_seq = htons(ntransmitted++);
+ pkt->icmp_seq = htons(ntransmitted);
+ ntransmitted++;
pkt->icmp_id = myid;
CLR(ntohs(pkt->icmp_seq) % MAX_DUP_CHK);
--- busybox-1.3.1/networking/ping6.c 2006-12-27 05:52:39.000000000 +0100
+++ busybox-1.3.1-new/networking/ping6.c 2006-12-29 18:44:02.000000000 +0100
@@ -205,7 +205,8 @@
pkt->icmp6_type = ICMP6_ECHO_REQUEST;
pkt->icmp6_code = 0;
pkt->icmp6_cksum = 0;
- pkt->icmp6_seq = htons(ntransmitted++);
+ pkt->icmp6_seq = htons(ntransmitted);
+ ntransmitted++;
pkt->icmp6_id = myid;
CLR(pkt->icmp6_seq % MAX_DUP_CHK);

View File

@ -3,7 +3,7 @@ diff -ruN busybox-1.3.1-old/scripts/trylink busybox-1.3.1-new/scripts/trylink
+++ busybox-1.3.1-new/scripts/trylink 2007-01-01 21:01:08.000000000 +0100 +++ busybox-1.3.1-new/scripts/trylink 2007-01-01 21:01:08.000000000 +0100
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/bin/sh -#!/bin/sh
+#!/bin/bash +#!/usr/bin/env bash
debug=false debug=false

View File

@ -1,12 +0,0 @@
diff -ur busybox.old/e2fsprogs/ext2fs/unix_io.c busybox.dev/e2fsprogs/ext2fs/unix_io.c
--- busybox.old/e2fsprogs/ext2fs/unix_io.c 2006-12-27 05:55:58.000000000 +0100
+++ busybox.dev/e2fsprogs/ext2fs/unix_io.c 2007-01-07 16:16:52.000000000 +0100
@@ -419,7 +419,7 @@
#ifdef __linux__
#undef RLIM_INFINITY
-#if (defined(__alpha__) || ((defined(__sparc__) || defined(__mips__)) && (SIZEOF_LONG == 4)))
+#if (defined(__alpha__) || defined(__sparc__) || defined(__mips__))
#define RLIM_INFINITY ((unsigned long)(~0UL>>1))
#else
#define RLIM_INFINITY (~0UL)

View File

@ -1,6 +1,6 @@
diff -ruN busybox-1.3.1-old/networking/httpd.c busybox-1.3.1/networking/httpd.c diff -ur busybox.old/networking/httpd.c busybox.dev/networking/httpd.c
--- busybox-1.3.1-old/networking/httpd.c 2006-12-27 05:52:39.000000000 +0100 --- busybox.old/networking/httpd.c 2007-01-19 22:22:59.000000000 +0100
+++ busybox-1.3.1/networking/httpd.c 2006-12-28 18:04:53.000000000 +0100 +++ busybox.dev/networking/httpd.c 2007-01-22 13:09:03.000000000 +0100
@@ -137,6 +137,7 @@ @@ -137,6 +137,7 @@
const char *query; const char *query;
@ -9,15 +9,15 @@ diff -ruN busybox-1.3.1-old/networking/httpd.c busybox-1.3.1/networking/httpd.c
const char *configFile; const char *configFile;
@@ -1062,6 +1063,7 @@ @@ -1066,6 +1067,7 @@
putenv("SERVER_PROTOCOL=HTTP/1.0"); if (cp) *cp = '\0'; /* delete :PORT */
putenv("GATEWAY_INTERFACE=CGI/1.1"); setenv1("REMOTE_ADDR", p);
setenv1("REMOTE_ADDR", config->rmt_ip_str); }
+ setenv1("HTTP_USER_AGENT", config->user_agent); + setenv1("HTTP_USER_AGENT", config->user_agent);
#if ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV #if ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
setenv_long("REMOTE_PORT", config->port); setenv_long("REMOTE_PORT", config->port);
#endif #endif
@@ -1605,6 +1607,8 @@ @@ -1629,6 +1631,8 @@
content_type = strdup(skip_whitespace(buf + sizeof("Content-Type:")-1)); content_type = strdup(skip_whitespace(buf + sizeof("Content-Type:")-1));
} else if ((STRNCASECMP(buf, "Referer:") == 0)) { } else if ((STRNCASECMP(buf, "Referer:") == 0)) {
config->referer = strdup(skip_whitespace(buf + sizeof("Referer:")-1)); config->referer = strdup(skip_whitespace(buf + sizeof("Referer:")-1));

View File

@ -1,37 +1,44 @@
diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
--- busybox.old/editors/awk.c 2006-12-27 05:56:50.000000000 +0100 --- busybox.old/editors/awk.c 2007-01-19 22:23:12.000000000 +0100
+++ busybox.dev/editors/awk.c 2007-01-01 23:12:04.000000000 +0100 +++ busybox.dev/editors/awk.c 2007-01-25 20:01:26.000000000 +0100
@@ -2634,8 +2634,6 @@ @@ -2639,14 +2639,13 @@
int awk_main(int argc, char **argv) int awk_main(int argc, char **argv)
{ {
- unsigned opt; - unsigned opt;
- char *opt_F, *opt_v, *opt_W; - char *opt_F, *opt_v, *opt_W;
char *s, *s1; int i, j, flen;
int i, j, c, flen;
var *v; var *v;
@@ -2691,32 +2689,44 @@ var tv;
char **envp;
char *vnames = (char *)vNames; /* cheat */
char *vvalues = (char *)vValues;
+ int c;
/* Undo busybox.c, or else strtod may eat ','! This breaks parsing:
* $1,$2 == '$1,' '$2', NOT '$1' ',' '$2' */
@@ -2694,39 +2693,46 @@
free(s); free(s);
} }
- opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W); - opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W);
- argv += optind;
- argc -= optind;
- if (opt & 0x1) setvar_s(V[FS], opt_F); // -F - if (opt & 0x1) setvar_s(V[FS], opt_F); // -F
- if (opt & 0x2) if (!is_assignment(opt_v)) bb_show_usage(); // -v - if (opt & 0x2) if (!is_assignment(opt_v)) bb_show_usage(); // -v
- if (opt & 0x4) { // -f - if (opt & 0x4) { // -f
- from_file = TRUE; - char *s = s; /* die, gcc, die */
- F = afopen(programname, "r"); - FILE *from_file = afopen(programname, "r");
- s = NULL;
- /* one byte is reserved for some trick in next_token */ - /* one byte is reserved for some trick in next_token */
- if (fseek(F, 0, SEEK_END) == 0) { - if (fseek(from_file, 0, SEEK_END) == 0) {
- flen = ftell(F); - flen = ftell(from_file);
- s = (char *)xmalloc(flen+4); - s = xmalloc(flen + 4);
- fseek(F, 0, SEEK_SET); - fseek(from_file, 0, SEEK_SET);
- i = 1 + fread(s+1, 1, flen, F); - i = 1 + fread(s + 1, 1, flen, from_file);
- } else { - } else {
- for (i=j=1; j>0; i+=j) { - for (i = j = 1; j > 0; i += j) {
- s = (char *)xrealloc(s, i+4096); - s = xrealloc(s, i + 4096);
- j = fread(s+i, 1, 4094, F); - j = fread(s + i, 1, 4094, from_file);
- }
+ while((c = getopt(argc, argv, "F:v:f:W:")) != EOF) { + while((c = getopt(argc, argv, "F:v:f:W:")) != EOF) {
+ switch (c) { + switch (c) {
+ case 'F': + case 'F':
@ -41,10 +48,9 @@ diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
+ if (! is_assignment(optarg)) + if (! is_assignment(optarg))
+ bb_show_usage(); + bb_show_usage();
+ break; + break;
+ case 'f': + case 'f': {
+ from_file = TRUE; + FILE *F = afopen(programname = optarg, "r");
+ F = afopen(programname = optarg, "r"); + char *s = NULL;
+ s = NULL;
+ /* one byte is reserved for some trick in next_token */ + /* one byte is reserved for some trick in next_token */
+ if (fseek(F, 0, SEEK_END) == 0) { + if (fseek(F, 0, SEEK_END) == 0) {
+ flen = ftell(F); + flen = ftell(F);
@ -62,6 +68,7 @@ diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
+ parse_program(s+1); + parse_program(s+1);
+ free(s); + free(s);
+ break; + break;
}
+ case 'W': + case 'W':
+ bb_error_msg("Warning: unrecognized option '-W %s' ignored\n", optarg); + bb_error_msg("Warning: unrecognized option '-W %s' ignored\n", optarg);
+ break; + break;
@ -70,12 +77,20 @@ diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
+ bb_show_usage(); + bb_show_usage();
} }
- s[i] = '\0'; - s[i] = '\0';
- fclose(F); - fclose(from_file);
- parse_program(s+1); - parse_program(s + 1);
- free(s); - free(s);
- } else { // no -f: take program from 1st parameter
- if (!argc)
- bb_show_usage();
- programname = "cmd. line";
- parse_program(*argv++);
- argc--;
} }
- if (opt & 0x8) // -W - if (opt & 0x8) // -W
- bb_error_msg("warning: unrecognized option '-W %s' ignored", opt_W); - bb_error_msg("warning: unrecognized option '-W %s' ignored", opt_W);
+ argc -= optind;
+ argv += optind;
if (!from_file) { /* fill in ARGV array */
if (argc == optind) setvar_i(V[ARGC], argc + 1);

View File

@ -1,14 +0,0 @@
diff -Nru busybox-1.3.1.orig/sysklogd/syslogd.c busybox-1.3.1/sysklogd/syslogd.c
--- busybox-1.3.1.orig/sysklogd/syslogd.c 2007-01-02 21:28:26.000000000 +0700
+++ busybox-1.3.1/sysklogd/syslogd.c 2007-01-02 21:29:10.000000000 +0700
@@ -304,8 +304,8 @@
vsnprintf(b, sizeof(b) - 1, fmt, arguments);
va_end(arguments);
circ_message(b);
-
- } else
+ return;
+ }
#endif
fd = device_open(logFilePath, O_WRONLY | O_CREAT
| O_NOCTTY | O_APPEND | O_NONBLOCK);

File diff suppressed because it is too large Load Diff

View File

@ -1,448 +0,0 @@
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# remove (numerous) compile warnings
#
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/file_util.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/file_util.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/file_util.c 2006-05-09 02:06:48.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/file_util.c 2006-05-09 02:16:48.000000000 +0200
@@ -123,7 +123,7 @@
int file_mkdir_hier(const char *path, long mode)
{
- return bb_make_directory(path, mode, FILEUTILS_RECUR);
+ return bb_make_directory((char *)path, mode, FILEUTILS_RECUR);
}
char *file_md5sum_alloc(const char *file_name)
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/ipkg_cmd.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/ipkg_cmd.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/ipkg_cmd.c 2006-05-09 02:23:37.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/ipkg_cmd.c 2006-05-09 02:23:17.000000000 +0200
@@ -246,7 +246,7 @@
in = fopen (tmp_file_name, "r");
out = fopen (list_file_name, "w");
if (in && out)
- inflate_unzip (in, out);
+ inflate_unzip (fileno(in), fileno(out));
else
err = 1;
if (in)
@@ -894,14 +894,13 @@
pkg_vec_free(available);
} else {
pkg_vec_t *installed_pkgs = pkg_vec_alloc();
- int i;
int flagged_pkg_count = 0;
int removed;
pkg_hash_fetch_all_installed(&conf->pkg_hash, installed_pkgs);
for (i = 0; i < installed_pkgs->len; i++) {
- pkg_t *pkg = installed_pkgs->pkgs[i];
+ pkg = installed_pkgs->pkgs[i];
if (pkg->state_flag & SF_USER) {
flagged_pkg_count++;
} else {
@@ -921,7 +920,7 @@
do {
removed = 0;
for (i = 0; i < installed_pkgs->len; i++) {
- pkg_t *pkg = installed_pkgs->pkgs[i];
+ pkg = installed_pkgs->pkgs[i];
if (!(pkg->state_flag & SF_USER)
&& !pkg_has_installed_dependents(conf, pkg->parent, pkg, NULL)) {
removed++;
@@ -976,7 +975,7 @@
{
int i;
pkg_t *pkg;
- const char *flags = argv[0];
+ char *flags = argv[0];
global_conf = conf;
signal(SIGINT, sigint_handler);
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/ipkg_conf.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/ipkg_conf.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/ipkg_conf.c 2006-05-09 02:12:04.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/ipkg_conf.c 2006-05-09 02:16:48.000000000 +0200
@@ -542,14 +542,14 @@
if (strcmp(type, "option") == 0) {
ipkg_conf_set_option(options, name, value);
} else if (strcmp(type, "src") == 0) {
- if (!nv_pair_list_find(pkg_src_list, name)) {
+ if (!nv_pair_list_find((nv_pair_list_t *)pkg_src_list, name)) {
pkg_src_list_append (pkg_src_list, name, value, extra, 0);
} else {
ipkg_message(conf, IPKG_ERROR, "ERROR: duplicate src declaration. Skipping:\n\t src %s %s\n",
name, value);
}
} else if (strcmp(type, "src/gz") == 0) {
- if (!nv_pair_list_find(pkg_src_list, name)) {
+ if (!nv_pair_list_find((nv_pair_list_t *)pkg_src_list, name)) {
pkg_src_list_append (pkg_src_list, name, value, extra, 1);
} else {
ipkg_message(conf, IPKG_ERROR, "ERROR: duplicate src declaration. Skipping:\n\t src %s %s\n",
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/ipkg_download.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/ipkg_download.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/ipkg_download.c 2006-05-09 02:12:04.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/ipkg_download.c 2006-05-09 02:22:51.000000000 +0200
@@ -166,7 +166,7 @@
if (err)
return err;
pkg->local_filename = strdup(url);
- ipkg_message(conf, IPKG_DEBUG2, "Package %s provided by hand \(%s\).\n", pkg->name,pkg->local_filename);
+ ipkg_message(conf, IPKG_DEBUG2, "Package %s provided by hand (%s).\n", pkg->name,pkg->local_filename);
pkg->provided_by_hand = 1;
} else {
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/libipkg.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/libipkg.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/libipkg.c 2006-05-09 02:12:05.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/libipkg.c 2006-05-09 02:16:48.000000000 +0200
@@ -445,7 +445,7 @@
int
ipkg_op (int argc, char *argv[])
{
- int err, optind;
+ int err, opt_index;
args_t args;
char *cmd_name;
ipkg_cmd_t *cmd;
@@ -453,13 +453,13 @@
args_init (&args);
- optind = args_parse (&args, argc, argv);
- if (optind == argc || optind < 0)
+ opt_index = args_parse (&args, argc, argv);
+ if (opt_index == argc || opt_index < 0)
{
args_usage ("ipkg must have one sub-command argument");
}
- cmd_name = argv[optind++];
+ cmd_name = argv[opt_index++];
/* Pigi: added a flag to disable the checking of structures if the command does not need to
read anything from there.
*/
@@ -509,7 +509,7 @@
args_usage (NULL);
}
- if (cmd->requires_args && optind == argc)
+ if (cmd->requires_args && opt_index == argc)
{
fprintf (stderr,
"%s: the ``%s'' command requires at least one argument\n",
@@ -517,7 +517,7 @@
args_usage (NULL);
}
- err = ipkg_cmd_exec (cmd, &ipkg_conf, argc - optind, (const char **) (argv + optind), NULL);
+ err = ipkg_cmd_exec (cmd, &ipkg_conf, argc - opt_index, (const char **) (argv + opt_index), NULL);
ipkg_conf_deinit (&ipkg_conf);
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/md5.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/md5.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/md5.c 2006-05-09 02:06:48.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/md5.c 2006-05-09 02:16:48.000000000 +0200
@@ -25,7 +25,6 @@
int md5_stream(FILE *stream, void *resblock)
{
int fd;
- int sum;
if( (fd = fileno(stream)) == -1 ) {
bb_error_msg("bad file descriptor");
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg.c 2006-05-09 02:12:05.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg.c 2006-05-09 02:16:48.000000000 +0200
@@ -528,6 +528,7 @@
char * pkg_formatted_field(pkg_t *pkg, const char *field )
{
static size_t LINE_LEN = 128;
+ char line_str[LINE_LEN];
char * temp = (char *)malloc(1);
int len = 0;
int flag_provide_false = 0;
@@ -567,7 +568,6 @@
if (strcasecmp(field, "Conffiles") == 0) {
/* Conffiles */
conffile_list_elt_t *iter;
- char confstr[LINE_LEN];
if (pkg->conffiles.head == NULL) {
return temp;
@@ -588,15 +588,14 @@
strncpy(temp, "Conffiles:\n", 12);
for (iter = pkg->conffiles.head; iter; iter = iter->next) {
if (iter->data->name && iter->data->value) {
- snprintf(confstr, LINE_LEN, "%s %s\n", iter->data->name, iter->data->value);
- strncat(temp, confstr, strlen(confstr));
+ snprintf(line_str, LINE_LEN, "%s %s\n", iter->data->name, iter->data->value);
+ strncat(temp, line_str, strlen(line_str));
}
}
} else if (strcasecmp(field, "Conflicts") == 0) {
int i;
if (pkg->conflicts_count) {
- char conflictstr[LINE_LEN];
len = 14 ;
for(i = 0; i < pkg->conflicts_count; i++) {
len = len + (strlen(pkg->conflicts_str[i])+5);
@@ -609,8 +608,8 @@
temp[0]='\0';
strncpy(temp, "Conflicts:", 11);
for(i = 0; i < pkg->conflicts_count; i++) {
- snprintf(conflictstr, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->conflicts_str[i]);
- strncat(temp, conflictstr, strlen(conflictstr));
+ snprintf(line_str, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->conflicts_str[i]);
+ strncat(temp, line_str, strlen(line_str));
}
strncat(temp, "\n", strlen("\n"));
}
@@ -625,7 +624,6 @@
int i;
if (pkg->depends_count) {
- char depstr[LINE_LEN];
len = 14 ;
for(i = 0; i < pkg->depends_count; i++) {
len = len + (strlen(pkg->depends_str[i])+4);
@@ -638,8 +636,8 @@
temp[0]='\0';
strncpy(temp, "Depends:", 10);
for(i = 0; i < pkg->depends_count; i++) {
- snprintf(depstr, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->depends_str[i]);
- strncat(temp, depstr, strlen(depstr));
+ snprintf(line_str, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->depends_str[i]);
+ strncat(temp, line_str, strlen(line_str));
}
strncat(temp, "\n", strlen("\n"));
}
@@ -804,7 +802,6 @@
/* Replaces | Recommends*/
if (strcasecmp (field, "Replaces") == 0) {
if (pkg->replaces_count) {
- char replstr[LINE_LEN];
len = 14;
for (i = 0; i < pkg->replaces_count; i++) {
len = len + (strlen(pkg->replaces_str[i])+5);
@@ -817,14 +814,13 @@
temp[0]='\0';
strncpy(temp, "Replaces:", 12);
for (i = 0; i < pkg->replaces_count; i++) {
- snprintf(replstr, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->replaces_str[i]);
- strncat(temp, replstr, strlen(replstr));
+ snprintf(line_str, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->replaces_str[i]);
+ strncat(temp, line_str, strlen(line_str));
}
strncat(temp, "\n", strlen("\n"));
}
} else if (strcasecmp (field, "Recommends") == 0) {
if (pkg->recommends_count) {
- char recstr[LINE_LEN];
len = 15;
for(i = 0; i < pkg->recommends_count; i++) {
len = len + (strlen( pkg->recommends_str[i])+5);
@@ -837,8 +833,8 @@
temp[0]='\0';
strncpy(temp, "Recommends:", 13);
for(i = 0; i < pkg->recommends_count; i++) {
- snprintf(recstr, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->recommends_str[i]);
- strncat(temp, recstr, strlen(recstr));
+ snprintf(line_str, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->recommends_str[i]);
+ strncat(temp, line_str, strlen(line_str));
}
strncat(temp, "\n", strlen("\n"));
}
@@ -907,7 +903,6 @@
} else if (strcasecmp(field, "Suggests") == 0) {
if (pkg->suggests_count) {
int i;
- char sugstr[LINE_LEN];
len = 13;
for(i = 0; i < pkg->suggests_count; i++) {
len = len + (strlen(pkg->suggests_str[i])+5);
@@ -920,8 +915,8 @@
temp[0]='\0';
strncpy(temp, "Suggests:", 10);
for(i = 0; i < pkg->suggests_count; i++) {
- snprintf(sugstr, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->suggests_str[i]);
- strncat(temp, sugstr, strlen(sugstr));
+ snprintf(line_str, LINE_LEN, "%s %s", i == 0 ? "" : ",", pkg->suggests_str[i]);
+ strncat(temp, line_str, strlen(line_str));
}
strncat(temp, "\n", strlen("\n"));
}
@@ -1140,10 +1135,8 @@
return 0;
}
-int pkg_name_version_and_architecture_compare(void *p1, void *p2)
+int pkg_name_version_and_architecture_compare(pkg_t *a, pkg_t *b)
{
- const pkg_t *a = *(const pkg_t **)p1;
- const pkg_t *b = *(const pkg_t **)p2;
int namecmp;
int vercmp;
if (!a->name || !b->name) {
@@ -1170,10 +1163,8 @@
return 0;
}
-int abstract_pkg_name_compare(void *p1, void *p2)
+int abstract_pkg_name_compare(abstract_pkg_t *a, abstract_pkg_t *b)
{
- const abstract_pkg_t *a = *(const abstract_pkg_t **)p1;
- const abstract_pkg_t *b = *(const abstract_pkg_t **)p2;
if (!a->name || !b->name) {
fprintf(stderr, "abstract_pkg_name_compare: a=%p a->name=%p b=%p b->name=%p\n",
a, a->name, b, b->name);
@@ -1193,7 +1184,7 @@
#endif
if (pkg->epoch) {
- sprintf_alloc(&epoch_str, "%d:", pkg->epoch);
+ sprintf_alloc(&epoch_str, "%d:", (int)(pkg->epoch));
} else {
epoch_str = strdup("");
}
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg.h busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg.h
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg.h 2006-05-09 02:12:05.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg.h 2006-05-09 02:16:48.000000000 +0200
@@ -194,8 +194,8 @@
char *pkg_version_str_alloc(pkg_t *pkg);
int pkg_compare_versions(const pkg_t *pkg, const pkg_t *ref_pkg);
-int pkg_name_version_and_architecture_compare(void *a, void *b);
-int abstract_pkg_name_compare(void *a, void *b);
+int pkg_name_version_and_architecture_compare(pkg_t *a, pkg_t *b);
+int abstract_pkg_name_compare(abstract_pkg_t *a, abstract_pkg_t *b);
char * pkg_formatted_info(pkg_t *pkg );
char * pkg_formatted_field(pkg_t *pkg, const char *field );
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_depends.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_depends.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_depends.c 2006-05-09 02:12:05.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_depends.c 2006-05-09 02:16:48.000000000 +0200
@@ -68,7 +68,7 @@
pkg_vec_t *unsatisfied, char *** unresolved)
{
pkg_t * satisfier_entry_pkg;
- register int i, j, k;
+ register int i, j, k, l;
int count, found;
char ** the_lost;
abstract_pkg_t * ab_pkg;
@@ -113,7 +113,6 @@
abstract_pkg_vec_t *ab_provider_vec = abpkg->provided_by;
int nposs = ab_provider_vec->len;
abstract_pkg_t **ab_providers = ab_provider_vec->pkgs;
- int l;
for (l = 0; l < nposs; l++) {
pkg_vec_t *test_vec = ab_providers[l]->pkgs;
/* if no depends on this one, try the first package that Provides this one */
@@ -137,10 +136,9 @@
tmp_vec,
&newstuff);
if (newstuff == NULL) {
- int i;
int ok = 1;
- for (i = 0; i < rc; i++) {
- pkg_t *p = tmp_vec->pkgs[i];
+ for (l = 0; l < rc; l++) {
+ pkg_t *p = tmp_vec->pkgs[l];
if (p->state_want == SW_INSTALL)
continue;
ipkg_message(conf, IPKG_DEBUG, "not installing %s due to requirement for %s\n", pkg_scout->name, p->name);
@@ -814,27 +812,27 @@
* [npredepends+nrecommends,npredepends+nrecommends+nsuggests) -> returns recommends_str[index]
* [npredepends+nrecommends+nsuggests,npredepends+nrecommends+nsuggests+ndepends) -> returns depends_str[index]
*/
-char *pkg_depend_str(pkg_t *pkg, int index)
+char *pkg_depend_str(pkg_t *pkg, int pkg_index)
{
- if (index < pkg->pre_depends_count) {
- return pkg->pre_depends_str[index];
+ if (pkg_index < pkg->pre_depends_count) {
+ return pkg->pre_depends_str[pkg_index];
}
- index -= pkg->pre_depends_count;
+ pkg_index -= pkg->pre_depends_count;
- if (index < pkg->recommends_count) {
- return pkg->recommends_str[index];
+ if (pkg_index < pkg->recommends_count) {
+ return pkg->recommends_str[pkg_index];
}
- index -= pkg->recommends_count;
+ pkg_index -= pkg->recommends_count;
- if (index < pkg->suggests_count) {
- return pkg->suggests_str[index];
+ if (pkg_index < pkg->suggests_count) {
+ return pkg->suggests_str[pkg_index];
}
- index -= pkg->suggests_count;
+ pkg_index -= pkg->suggests_count;
- if (index < pkg->depends_count) {
- return pkg->depends_str[index];
+ if (pkg_index < pkg->depends_count) {
+ return pkg->depends_str[pkg_index];
}
- fprintf(stderr, "pkg_depend_str: index %d out of range for pkg=%s\n", index, pkg->name);
+ fprintf(stderr, "pkg_depend_str: index %d out of range for pkg=%s\n", pkg_index, pkg->name);
return NULL;
}
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_depends.h busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_depends.h
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_depends.h 2006-05-09 02:06:48.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_depends.h 2006-05-09 02:16:48.000000000 +0200
@@ -92,7 +92,7 @@
*/
int pkg_conflicts(pkg_t *pkg, pkg_t *conflicts);
-char *pkg_depend_str(pkg_t *pkg, int index);
+char *pkg_depend_str(pkg_t *pkg, int pkg_index);
void buildDependedUponBy(pkg_t * pkg, abstract_pkg_t * ab_pkg);
void freeDepends(pkg_t *pkg);
void printDepends(pkg_t * pkg);
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_hash.c busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_hash.c
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_hash.c 2006-05-09 02:12:05.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_hash.c 2006-05-09 02:17:35.000000000 +0200
@@ -143,7 +143,7 @@
pkg_t *pkg_hash_fetch_best_installation_candidate(ipkg_conf_t *conf, abstract_pkg_t *apkg,
int (*constraint_fcn)(pkg_t *pkg, void *cdata), void *cdata, int quiet)
{
- int i;
+ int i, j;
int nprovides = 0;
int nmatching = 0;
pkg_vec_t *matching_pkgs = pkg_vec_alloc();
@@ -209,11 +209,10 @@
/* now check for supported architecture */
{
int max_count = 0;
- int i;
/* count packages matching max arch priority and keep track of last one */
- for (i = 0; i < vec->len; i++) {
- pkg_t *maybe = vec->pkgs[i];
+ for (j = 0; j < vec->len; j++) {
+ pkg_t *maybe = vec->pkgs[j];
ipkg_message(conf, IPKG_DEBUG, " %s arch=%s arch_priority=%d version=%s \n",
maybe->name, maybe->architecture, maybe->arch_priority, maybe->version);
if (maybe->arch_priority > 0) {
diff -ruN busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_vec.h busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_vec.h
--- busybox-1.1.2+ipkg-0.99.162/archival/libipkg/pkg_vec.h 2006-05-09 02:06:48.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg_vec.h 2006-05-09 02:16:48.000000000 +0200
@@ -35,6 +35,8 @@
};
typedef struct abstract_pkg_vec abstract_pkg_vec_t;
+typedef int (*pkg_compar_t)(pkg_t *, pkg_t *);
+typedef int (*abstract_pkg_compar_t)(abstract_pkg_t *, abstract_pkg_t *);
pkg_vec_t * pkg_vec_alloc(void);
void pkg_vec_free(pkg_vec_t *vec);

View File

@ -1,14 +1,7 @@
# Copyright (C) 2006 OpenWrt.org diff -ur busybox.old/coreutils/md5_sha1_sum.c busybox.dev/coreutils/md5_sha1_sum.c
# --- busybox.old/coreutils/md5_sha1_sum.c 2007-01-19 22:23:05.000000000 +0100
# This is free software, licensed under the GNU General Public License v2. +++ busybox.dev/coreutils/md5_sha1_sum.c 2007-01-22 13:24:51.000000000 +0100
# See /LICENSE for more information. @@ -8,76 +8,10 @@
#
# expose (again) an hash_fd function (used in 911-ipkg.patch)
#
diff -ruN busybox-1.3.1-orig/coreutils/md5_sha1_sum.c busybox-1.3.1-913/coreutils/md5_sha1_sum.c
--- busybox-1.3.1-orig/coreutils/md5_sha1_sum.c 2006-12-27 05:54:50.000000000 +0100
+++ busybox-1.3.1-913/coreutils/md5_sha1_sum.c 2006-12-28 00:59:35.000000000 +0100
@@ -8,78 +8,10 @@
#include "busybox.h" #include "busybox.h"
@ -22,11 +15,9 @@ diff -ruN busybox-1.3.1-orig/coreutils/md5_sha1_sum.c busybox-1.3.1-913/coreutil
-static unsigned char *hash_bin_to_hex(unsigned char *hash_value, -static unsigned char *hash_bin_to_hex(unsigned char *hash_value,
- unsigned hash_length) - unsigned hash_length)
-{ -{
- int len = 0; - /* xzalloc zero-terminates */
- char *hex_value = xmalloc((hash_length * 2) + 2); - char *hex_value = xzalloc((hash_length * 2) + 1);
- while (hash_length--) { - bin2hex(hex_value, (char*)hash_value, hash_length);
- len += sprintf(hex_value + len, "%02x", *hash_value++);
- }
- return hex_value; - return hex_value;
-} -}
- -
@ -43,7 +34,7 @@ diff -ruN busybox-1.3.1-orig/coreutils/md5_sha1_sum.c busybox-1.3.1-913/coreutil
- void (*final)(void*, void*); - void (*final)(void*, void*);
- -
- src_fd = STDIN_FILENO; - src_fd = STDIN_FILENO;
- if (filename[0] != '-' || filename[1]) { /* not "-" */ - if (NOT_LONE_DASH(filename)) {
- src_fd = open(filename, O_RDONLY); - src_fd = open(filename, O_RDONLY);
- if (src_fd < 0) { - if (src_fd < 0) {
- bb_perror_msg("%s", filename); - bb_perror_msg("%s", filename);
@ -87,33 +78,40 @@ diff -ruN busybox-1.3.1-orig/coreutils/md5_sha1_sum.c busybox-1.3.1-913/coreutil
int md5_sha1_sum_main(int argc, char **argv) int md5_sha1_sum_main(int argc, char **argv)
{ {
int return_value = EXIT_SUCCESS; int return_value = EXIT_SUCCESS;
diff -ruN busybox-1.3.1-orig/include/libbb.h busybox-1.3.1-913/include/libbb.h diff -ur busybox.old/include/libbb.h busybox.dev/include/libbb.h
--- busybox-1.3.1-orig/include/libbb.h 2006-12-27 05:56:18.000000000 +0100 --- busybox.old/include/libbb.h 2007-01-19 22:23:10.000000000 +0100
+++ busybox-1.3.1-913/include/libbb.h 2006-12-27 23:25:52.000000000 +0100 +++ busybox.dev/include/libbb.h 2007-01-22 13:28:56.000000000 +0100
@@ -528,6 +528,8 @@ @@ -637,6 +637,7 @@
extern const char bb_uuenc_tbl_std[]; extern const char bb_uuenc_tbl_std[];
void bb_uuencode(const unsigned char *s, char *store, const int length, const char *tbl); void bb_uuencode(const unsigned char *s, char *store, const int length, const char *tbl);
+typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t; +typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t;
+
typedef struct sha1_ctx_t { typedef struct sha1_ctx_t {
uint32_t count[2]; uint32_t count[2];
uint32_t hash[5]; uint32_t hash[5];
@@ -550,6 +552,10 @@ @@ -658,6 +659,8 @@
void md5_begin(md5_ctx_t *ctx);
void md5_hash(const void *data, size_t length, md5_ctx_t *ctx); void md5_hash(const void *data, size_t length, md5_ctx_t *ctx);
void *md5_end(void *resbuf, md5_ctx_t *ctx); void *md5_end(void *resbuf, md5_ctx_t *ctx);
+unsigned char *hash_bin_to_hex(unsigned char *hash_value, unsigned hash_length);
+unsigned char *hash_bin_to_hex(unsigned char *hash_value, unsigned char hash_length);
+int hash_fd(int fd, hash_algo_t hash_algo, uint8_t *hash_value);
+uint8_t *hash_file(const char *filename, hash_algo_t hash_algo); +uint8_t *hash_file(const char *filename, hash_algo_t hash_algo);
+
uint32_t *crc32_filltable(int endian); uint32_t *crc32_filltable(int endian);
diff -ur busybox.old/libbb/Kbuild busybox.dev/libbb/Kbuild
diff -ruN busybox-1.3.1-orig/libbb/hash.c busybox-1.3.1-913/libbb/hash.c --- busybox.old/libbb/Kbuild 2007-01-19 22:23:06.000000000 +0100
--- busybox-1.3.1-orig/libbb/hash.c 1970-01-01 01:00:00.000000000 +0100 +++ busybox.dev/libbb/Kbuild 2007-01-22 13:29:24.000000000 +0100
+++ busybox-1.3.1-913/libbb/hash.c 2006-12-28 00:48:52.000000000 +0100 @@ -37,6 +37,7 @@
@@ -0,0 +1,99 @@ lib-y += get_last_path_component.o
lib-y += get_line_from_file.o
lib-y += getopt32.o
+lib-y += hash.o
lib-y += herror_msg.o
lib-y += herror_msg_and_die.o
lib-y += human_readable.o
--- busybox.old/libbb/hash.c 1970-01-01 01:00:00.000000000 +0100
+++ busybox.dev/libbb/hash.c 2007-01-22 13:52:41.000000000 +0100
@@ -0,0 +1,82 @@
+/* +/*
+ * Copyright (C) 2003 Glenn L. McGrath + * Copyright (C) 2003 Glenn L. McGrath
+ * Copyright (C) 2003-2004 Erik Andersen + * Copyright (C) 2003-2004 Erik Andersen
@ -131,69 +129,30 @@ diff -ruN busybox-1.3.1-orig/libbb/hash.c busybox-1.3.1-913/libbb/hash.c
+ +
+#include "busybox.h" +#include "busybox.h"
+ +
+unsigned char *hash_bin_to_hex(unsigned char *hash_value, unsigned char hash_length) +/* This might be useful elsewhere */
+unsigned char *hash_bin_to_hex(unsigned char *hash_value,
+ unsigned hash_length)
+{ +{
+ int len = 0; + /* xzalloc zero-terminates */
+ char *hex_value = xmalloc((hash_length * 2) + 2); + char *hex_value = xzalloc((hash_length * 2) + 1);
+ while (hash_length--) { + bin2hex(hex_value, (char*)hash_value, hash_length);
+ len += sprintf(hex_value + len, "%02x", *hash_value++);
+ }
+ return hex_value; + return hex_value;
+} +}
+ +
+int hash_fd(int fd, hash_algo_t hash_algo, uint8_t *hash_value)
+{
+ int count, result = 0;
+ union _ctx_ {
+ sha1_ctx_t sha1;
+ md5_ctx_t md5;
+ } context;
+ RESERVE_CONFIG_UBUFFER(in_buf, 4096);
+ void (*update)(const void*, size_t, void*) = NULL;
+ void (*final)(void*, void*) = NULL;
+
+ // figure specific hash algorithims
+ if (hash_algo==HASH_MD5) {
+ md5_begin(&context.md5);
+ update = (void (*)(const void*, size_t, void*))md5_hash;
+ final = (void (*)(void*, void*))md5_end;
+ } else if (hash_algo==HASH_SHA1) {
+ sha1_begin(&context.sha1);
+ update = (void (*)(const void*, size_t, void*))sha1_hash;
+ final = (void (*)(void*, void*))sha1_end;
+ }
+
+
+ while (0 < (count = safe_read(fd, in_buf, sizeof in_buf))) {
+ update(in_buf, count, &context);
+ result += count;
+ }
+
+ if (count == 0) {
+ final(hash_value, &context);
+ }
+
+ RELEASE_CONFIG_BUFFER(in_buf);
+
+ return result;
+}
+
+uint8_t *hash_file(const char *filename, hash_algo_t hash_algo) +uint8_t *hash_file(const char *filename, hash_algo_t hash_algo)
+{ +{
+ int src_fd, hash_len; + int src_fd, hash_len, count;
+ RESERVE_CONFIG_UBUFFER(hash_buf, 20); + union _ctx_ {
+ sha1_ctx_t sha1;
+ md5_ctx_t md5;
+ } context;
+ uint8_t *hash_value = NULL; + uint8_t *hash_value = NULL;
+ + RESERVE_CONFIG_UBUFFER(in_buf, 4096);
+ if (ENABLE_MD5SUM && hash_algo==HASH_MD5) { + void (*update)(const void*, size_t, void*);
+ hash_len = 16; + void (*final)(void*, void*);
+ } else if (ENABLE_SHA1SUM && hash_algo==HASH_SHA1) {
+ hash_len = 20;
+ } else {
+ bb_error_msg_and_die("algotithm not supported");
+ }
+ +
+ src_fd = STDIN_FILENO; + src_fd = STDIN_FILENO;
+ if (filename[0] != '-' || filename[1]) { /* not "-" */ + if (NOT_LONE_DASH(filename)) {
+ src_fd = open(filename, O_RDONLY); + src_fd = open(filename, O_RDONLY);
+ if (src_fd < 0) { + if (src_fd < 0) {
+ bb_perror_msg("%s", filename); + bb_perror_msg("%s", filename);
@ -201,26 +160,37 @@ diff -ruN busybox-1.3.1-orig/libbb/hash.c busybox-1.3.1-913/libbb/hash.c
+ } + }
+ } + }
+ +
+ if (hash_fd(src_fd, hash_algo, hash_buf) > 0) { + /* figure specific hash algorithims */
+ hash_value = hash_bin_to_hex(hash_buf, hash_len); + if (hash_algo==HASH_MD5) {
+ md5_begin(&context.md5);
+ update = (void (*)(const void*, size_t, void*))md5_hash;
+ final = (void (*)(void*, void*))md5_end;
+ hash_len = 16;
+ } else if (hash_algo==HASH_SHA1) {
+ sha1_begin(&context.sha1);
+ update = (void (*)(const void*, size_t, void*))sha1_hash;
+ final = (void (*)(void*, void*))sha1_end;
+ hash_len = 20;
+ } else {
+ bb_error_msg_and_die("algorithm not supported");
+ } + }
+ +
+ while (0 < (count = safe_read(src_fd, in_buf, 4096))) {
+ update(in_buf, count, &context);
+ }
+
+ if (count == 0) {
+ final(in_buf, &context);
+ hash_value = hash_bin_to_hex(in_buf, hash_len);
+ }
+
+ RELEASE_CONFIG_BUFFER(in_buf);
+
+ if (src_fd != STDIN_FILENO) { + if (src_fd != STDIN_FILENO) {
+ close(src_fd); + close(src_fd);
+ } + }
+
+ RELEASE_CONFIG_BUFFER(hash_buf);
+ +
+ return hash_value; + return hash_value;
+} +}
diff -ruN busybox-1.3.1-orig/libbb/Kbuild busybox-1.3.1-913/libbb/Kbuild +
--- busybox-1.3.1-orig/libbb/Kbuild 2006-12-27 05:55:04.000000000 +0100 +
+++ busybox-1.3.1-913/libbb/Kbuild 2006-12-27 23:31:20.000000000 +0100
@@ -37,6 +37,7 @@
lib-y += get_last_path_component.o
lib-y += get_line_from_file.o
lib-y += getopt32.o
+lib-y += hash.o
lib-y += herror_msg.o
lib-y += herror_msg_and_die.o
lib-y += human_readable.o

View File

@ -1,19 +0,0 @@
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# fix ipkg bugs
#
diff -ruN busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg.c busybox-1.1.2+ipkg-0.99.162-fixes/archival/libipkg/pkg.c
--- busybox-1.1.2+ipkg-0.99.162-no_warnings/archival/libipkg/pkg.c 2006-05-09 02:16:48.000000000 +0200
+++ busybox-1.1.2+ipkg-0.99.162-fixes/archival/libipkg/pkg.c 2006-05-09 05:15:29.000000000 +0200
@@ -359,6 +359,8 @@
if (!oldpkg->essential)
oldpkg->essential = newpkg->essential;
+ oldpkg->provided_by_hand |= newpkg->provided_by_hand;
+
return 0;
}