[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [patch] busybox --install with prefix
From:       "Alberto Donato" <alberto.donato () gmail ! com>
Date:       2007-05-28 8:32:20
Message-ID: 9709bd390705280132m395c59e6i7fbc14e24c62ba89 () mail ! gmail ! com
[Download RAW message or body]

Hi all,
   this trivial patch adds support to --install option to specify a
prefix path for the links creation.

Don't know if anybody can find it useful, I added it because I needed
to keep a separate copy of busybox (with different configuration) in a
separate path and create links to it.

Bye,

  Alberto

["busybox-1.5.1-install-prefix.diff" (text/plain)]

diff -uNr busybox-1.5.1-orig/applets/busybox.c busybox-1.5.1/applets/busybox.c
--- busybox-1.5.1-orig/applets/busybox.c	2007-05-20 18:57:48.000000000 +0200
+++ busybox-1.5.1/applets/busybox.c	2007-05-25 16:30:53.000000000 +0200
@@ -29,7 +29,7 @@
 typedef int (*link_func)(const char *, const char *);
 
 /* 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, const char *install_prefix)
 {
 	link_func lf = link;
 	char *fpc;
@@ -41,7 +41,9 @@
 
 	for (i = 0; applets[i].name != NULL; i++) {
 		fpc = concat_path_file(
-				install_dir[applets[i].location],
+				concat_path_file(
+					install_prefix,
+					install_dir[applets[i].location]),
 				applets[i].name);
 		rc = lf(busybox, fpc);
 		if (rc != 0 && errno != EEXIST) {
@@ -52,7 +54,7 @@
 }
 
 #else
-#define install_links(x,y)
+#define install_links(x,y,z)
 #endif /* CONFIG_FEATURE_INSTALLER */
 
 int main(int argc, char **argv)
@@ -84,18 +86,22 @@
 	if (ENABLE_FEATURE_INSTALLER && argc > 1 && !strcmp(argv[1], "--install")) {
 		int use_symbolic_links = 0;
 		char *busybox;
+		char *install_prefix = NULL;
 
 		/* to use symlinks, or not to use symlinks... */
 		if (argc > 2)
 			if (strcmp(argv[2], "-s") == 0)
 				use_symbolic_links = 1;
 
+		if (argc > 3)
+		  install_prefix=argv[3];
+
 		/* link */
 // XXX: FIXME: this is broken. Why not just use argv[0] ?
 		busybox = xmalloc_readlink_or_warn("/proc/self/exe");
 		if (!busybox)
 			return 1;
-		install_links(busybox, use_symbolic_links);
+		install_links(busybox, use_symbolic_links, install_prefix);
 		if (ENABLE_FEATURE_CLEAN_UP)
 			free(busybox);
 		return 0;


_______________________________________________
busybox mailing list
busybox@busybox.net
http://busybox.net/cgi-bin/mailman/listinfo/busybox

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic