rpms/busybox/devel busybox-1.2.0-symlink.patch, NONE, 1.1.2.1 busybox.spec, 1.48, 1.48.2.1

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Sep 11 19:48:45 UTC 2006


Author: nhorman

Update of /cvs/dist/rpms/busybox/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv5248

Modified Files:
      Tag: private-nhorman-busybox-symlink-fix-branch
	busybox.spec 
Added Files:
      Tag: private-nhorman-busybox-symlink-fix-branch
	busybox-1.2.0-symlink.patch 
Log Message:
checking in test fix on my private branch

busybox-1.2.0-symlink.patch:
 busybox.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletion(-)

--- NEW FILE busybox-1.2.0-symlink.patch ---
--- busybox-1.2.0/applets/busybox.c.orig	2006-09-11 15:18:42.255242004 -0400
+++ busybox-1.2.0/applets/busybox.c	2006-09-11 15:27:01.245580267 -0400
@@ -7,6 +7,8 @@
 #include "busybox.h"
 #include <stdio.h>
 #include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
 #include <unistd.h>
 #include <errno.h>
 #include <stdlib.h>
@@ -64,12 +66,15 @@ static void install_links(const char *bu
 #else
 #define install_links(x,y)
 #endif /* CONFIG_FEATURE_INSTALLER */
-
+#define LNK_BUF_SZ 512
 int main(int argc, char **argv)
 {
 	const char *s;
+	struct stat sbuf;
+	char buf[LNK_BUF_SZ];
 
 	bb_applet_name=argv[0];
+trim_path:
 	if (*bb_applet_name == '-') bb_applet_name++;
 	for (s = bb_applet_name; *s ;)
 		if (*(s++) == '/') bb_applet_name = s;
@@ -79,6 +84,16 @@ int main(int argc, char **argv)
 		setlocale(LC_ALL, "");
 
 	run_applet_by_name(bb_applet_name, argc, argv);
+	/*
+	 * If we get here we didn't find anything.  Lets
+	 * make sure that this isn't a link pointing to something
+	 * we can find
+	 */
+	if ((!stat(argv[0],&sbuf)) && (S_ISLNK(sbuf.st_mode))) 
+		if (readlink(argv[0], buf, LNK_BUF_SZ) > 0) {
+			bb_applet_name=buf;
+			goto trim_path;
+		}
 	bb_error_msg_and_die("applet not found");
 }
 


Index: busybox.spec
===================================================================
RCS file: /cvs/dist/rpms/busybox/devel/busybox.spec,v
retrieving revision 1.48
retrieving revision 1.48.2.1
diff -u -r1.48 -r1.48.2.1
--- busybox.spec	28 Aug 2006 12:29:27 -0000	1.48
+++ busybox.spec	11 Sep 2006 19:48:42 -0000	1.48.2.1
@@ -1,7 +1,7 @@
 Summary: Statically linked binary providing simplified versions of system commands
 Name: busybox
 Version: 1.2.0
-Release: 3
+Release: 4test1 
 Epoch: 1
 License: GPL
 Group: System Environment/Shells
@@ -15,6 +15,8 @@
 Patch8: busybox-1.2.0-gcc41.patch
 Patch9: busybox-1.2.0-tar.patch
 Patch10: busybox-1.2.0-dmesg.patch
+Patch11: busybox-1.2.0-symlink.patch
+
 URL: http://www.busybox.net
 BuildRoot: %{_tmppath}/%{name}-root
 BuildRequires: libselinux-devel >= 1.27.7-2
@@ -50,6 +52,7 @@
 %patch8 -b .gcc111 -p1
 %patch9 -b .tar -p1
 %patch10 -b .dmesg -p1
+%patch11 -b .symlink -p1
 
 %build
 make defconfig




More information about the fedora-cvs-commits mailing list