[PATCH] allow to specify a path to the --install switch

Tito farmatito at tiscali.it
Tue Jul 14 21:15:56 UTC 2009


Hi,
this trivial patch allows to specify a custom directory path 
to busybox --install e.g.:

./busybox --install -s /system/xbin/

This allows to use --install also on systems that don't honour
the standard path. If no path is specified the hardcoded 
busybox values are used. I've looked in the usage.h file
to add some help text for this hack but i was not able
to find a help text for the --install switch.
Please apply if you like it.
Hints, critics or improvements are welcome.

Ciao,
Tito


diff --git a/libbb/appletlib.c b/libbb/appletlib.c
index 7b3f27c..42aedc0 100644
--- a/libbb/appletlib.c
+++ b/libbb/appletlib.c
@@ -586,7 +586,7 @@ static void check_suid(int applet_no)
 
 #if ENABLE_FEATURE_INSTALLER
 /* create (sym)links for each applet */
-static void install_links(const char *busybox, int use_symbolic_links)
+static void install_links(const char *busybox, int use_symbolic_links, char *custom_install_dir)
 {
 	/* directory table
 	 * this should be consistent w/ the enum,
@@ -612,7 +612,7 @@ static void install_links(const char *busybox, int use_symbolic_links)
 
 	for (i = 0; i < ARRAY_SIZE(applet_main); i++) {
 		fpc = concat_path_file(
-				install_dir[APPLET_INSTALL_LOC(i)],
+				custom_install_dir ? custom_install_dir : install_dir[APPLET_INSTALL_LOC(i)],
 				APPLET_NAME(i));
 		// debug: bb_error_msg("%slinking %s to busybox",
 		//		use_symbolic_links ? "sym" : "", fpc);
@@ -687,8 +687,9 @@ static int busybox_main(char **argv)
 		busybox = xmalloc_readlink(bb_busybox_exec_path);
 		if (!busybox)
 			busybox = bb_busybox_exec_path;
-		/* -s makes symlinks */
-		install_links(busybox, argv[2] && strcmp(argv[2], "-s") == 0);
+		/* -s makes symlinks, argv[3] is a custom defined */
+		/* install directory or NULL to use the hardcoded defaults */
+		install_links(busybox, argv[2] && strcmp(argv[2], "-s") == 0, argv[3]);
 		return 0;
 	}
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: appletlib.patch
Type: text/x-diff
Size: 1384 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20090714/b89cf307/attachment.bin>


More information about the busybox mailing list