All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0 of 3] tools: Move bootloaders to libexec directory
@ 2012-04-26 14:26 George Dunlap
  2012-04-26 14:26 ` [PATCH 1 of 3] libxl: Look for bootloader in libexec path George Dunlap
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: George Dunlap @ 2012-04-26 14:26 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap

pygrub and xenpvnetboot are meant to be run by tools, and not by the user,
and thus should be in /usr/lib/xen/bin rather than /usr/bin.  This patch 
series:
* Causes libxl to look in the libexec dir if a full path is not specified
* Moves pygrub and xenpvnetboot into the libexec dir
* For compatibility with existing configs, puts a link to pygrub in /usr/bin
* Warns the user that /usr/bin/pygrub is deprecated

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1 of 3] libxl: Look for bootloader in libexec path
  2012-04-26 14:26 [PATCH 0 of 3] tools: Move bootloaders to libexec directory George Dunlap
@ 2012-04-26 14:26 ` George Dunlap
  2012-04-26 14:26 ` [PATCH 2 of 3] tools: Install pv bootloaders in libexec rather than /usr/bin George Dunlap
  2012-04-26 14:26 ` [PATCH 3 of 3] libxl: Warn that /usr/bin/pygrub is deprecated George Dunlap
  2 siblings, 0 replies; 4+ messages in thread
From: George Dunlap @ 2012-04-26 14:26 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap

If the full path for a bootloader (such as pygrub or xenpvnetboot) is not
given, look for it in the libexec path.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>

diff -r b4cbf273b1cb -r b810908dea7d tools/libxl/libxl_bootloader.c
--- a/tools/libxl/libxl_bootloader.c	Wed Feb 29 16:30:34 2012 +0000
+++ b/tools/libxl/libxl_bootloader.c	Thu Apr 26 15:09:35 2012 +0100
@@ -333,6 +333,7 @@ int libxl_run_bootloader(libxl_ctx *ctx,
 
     char tempdir_template[] = "/var/run/libxl/bl.XXXXXX";
     char *tempdir;
+    const char *bootloader = NULL;
 
     char *dom_console_xs_path;
     char dom_console_slave_tty_path[PATH_MAX];
@@ -397,6 +398,13 @@ int libxl_run_bootloader(libxl_ctx *ctx,
         goto out_close;
     }
 
+    bootloader = libxl__abs_path(gc, info->u.pv.bootloader,
+                                 libxl__libexec_path());
+    if ( bootloader == NULL ) {
+        rc = ERROR_NOMEM;
+        goto out_close;
+    }
+
     /*
      * We need to present the bootloader's tty as a pty slave that xenconsole
      * can access.  Since the bootloader itself needs a pty slave,
@@ -417,7 +425,7 @@ int libxl_run_bootloader(libxl_ctx *ctx,
     dom_console_xs_path = libxl__sprintf(gc, "%s/console/tty", libxl__xs_get_dompath(gc, domid));
     libxl__xs_write(gc, XBT_NULL, dom_console_xs_path, "%s", dom_console_slave_tty_path);
 
-    pid = fork_exec_bootloader(&bootloader_fd, info->u.pv.bootloader, args);
+    pid = fork_exec_bootloader(&bootloader_fd, bootloader, args);
     if (pid < 0) {
         goto out_close;
     }

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2 of 3] tools: Install pv bootloaders in libexec rather than /usr/bin
  2012-04-26 14:26 [PATCH 0 of 3] tools: Move bootloaders to libexec directory George Dunlap
  2012-04-26 14:26 ` [PATCH 1 of 3] libxl: Look for bootloader in libexec path George Dunlap
@ 2012-04-26 14:26 ` George Dunlap
  2012-04-26 14:26 ` [PATCH 3 of 3] libxl: Warn that /usr/bin/pygrub is deprecated George Dunlap
  2 siblings, 0 replies; 4+ messages in thread
From: George Dunlap @ 2012-04-26 14:26 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap

pygrub and xenpvnetboot are meant to be run by tools, and not by the user,
and thus should be in /usr/lib/xen/bin rather than /usr/bin.

Because most config files will still have an absolute path pointing to
/usr/bin/pygrub, make a symbolic link that we will deprecate.

diff -r b810908dea7d -r 2783a97c5d5d tools/misc/Makefile
--- a/tools/misc/Makefile	Thu Apr 26 15:09:35 2012 +0100
+++ b/tools/misc/Makefile	Thu Apr 26 15:23:56 2012 +0100
@@ -18,7 +18,7 @@ SUBDIRS-$(CONFIG_LOMOUNT) += lomount
 SUBDIRS-$(CONFIG_MINITERM) += miniterm
 SUBDIRS := $(SUBDIRS-y)
 
-INSTALL_BIN-y := xencons xenpvnetboot
+INSTALL_BIN-y := xencons
 INSTALL_BIN-$(CONFIG_X86) += xen-detect
 INSTALL_BIN := $(INSTALL_BIN-y)
 
@@ -27,6 +27,9 @@ INSTALL_SBIN-$(CONFIG_X86) += xen-hvmctx
 INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
 INSTALL_SBIN := $(INSTALL_SBIN-y)
 
+INSTALL_PRIVBIN-y := xenpvnetboot
+INSTALL_PRIVBIN := $(INSTALL_PRIVBIN-y)
+
 # Include configure output (config.h) to headers search path
 CFLAGS += -I$(XEN_ROOT)/tools
 
@@ -41,8 +44,10 @@ build: $(TARGETS)
 install: build
 	$(INSTALL_DIR) $(DESTDIR)$(BINDIR)
 	$(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
+	$(INSTALL_DIR) $(DESTDIR)$(PRIVATE_BINDIR)
 	$(INSTALL_PYTHON_PROG) $(INSTALL_BIN) $(DESTDIR)$(BINDIR)
 	$(INSTALL_PYTHON_PROG) $(INSTALL_SBIN) $(DESTDIR)$(SBINDIR)
+	$(INSTALL_PYTHON_PROG) $(INSTALL_PRIVBIN) $(DESTDIR)$(PRIVATE_BINDIR)
 	set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d install-recurse; done
 
 .PHONY: clean
diff -r b810908dea7d -r 2783a97c5d5d tools/pygrub/Makefile
--- a/tools/pygrub/Makefile	Thu Apr 26 15:09:35 2012 +0100
+++ b/tools/pygrub/Makefile	Thu Apr 26 15:23:56 2012 +0100
@@ -11,9 +11,11 @@ build:
 .PHONY: install
 install: all
 	CC="$(CC)" CFLAGS="$(CFLAGS)" $(PYTHON) setup.py install \
-		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
-	$(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(BINDIR)/pygrub
+		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
+		--install-scripts=$(DESTDIR)/$(PRIVATE_BINDIR) --force
+	$(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(PRIVATE_BINDIR)/pygrub
 	$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
+	ln -sf $(PRIVATE_BINDIR)/pygrub $(DESTDIR)/$(BINDIR)
 
 .PHONY: clean
 clean:

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 3 of 3] libxl: Warn that /usr/bin/pygrub is deprecated
  2012-04-26 14:26 [PATCH 0 of 3] tools: Move bootloaders to libexec directory George Dunlap
  2012-04-26 14:26 ` [PATCH 1 of 3] libxl: Look for bootloader in libexec path George Dunlap
  2012-04-26 14:26 ` [PATCH 2 of 3] tools: Install pv bootloaders in libexec rather than /usr/bin George Dunlap
@ 2012-04-26 14:26 ` George Dunlap
  2 siblings, 0 replies; 4+ messages in thread
From: George Dunlap @ 2012-04-26 14:26 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>

diff -r 2783a97c5d5d -r 1e09187be21d tools/libxl/libxl_bootloader.c
--- a/tools/libxl/libxl_bootloader.c	Thu Apr 26 15:23:56 2012 +0100
+++ b/tools/libxl/libxl_bootloader.c	Thu Apr 26 15:23:56 2012 +0100
@@ -15,6 +15,7 @@
 #include "libxl_osdeps.h" /* must come before any other headers */
 
 #include <termios.h>
+#include <string.h>
 
 #include "libxl_internal.h"
 
@@ -398,6 +399,11 @@ int libxl_run_bootloader(libxl_ctx *ctx,
         goto out_close;
     }
 
+    if ( !strncmp(info->u.pv.bootloader, "/usr/bin/pygrub", 20) )
+        LIBXL__LOG(ctx, LIBXL__LOG_WARNING,
+                   "WARNING: bootloader='/usr/bin/pygrub' "             \
+                   "is deprecated; use bootloader='pygrub' instead");
+    
     bootloader = libxl__abs_path(gc, info->u.pv.bootloader,
                                  libxl__libexec_path());
     if ( bootloader == NULL ) {

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-04-26 14:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-26 14:26 [PATCH 0 of 3] tools: Move bootloaders to libexec directory George Dunlap
2012-04-26 14:26 ` [PATCH 1 of 3] libxl: Look for bootloader in libexec path George Dunlap
2012-04-26 14:26 ` [PATCH 2 of 3] tools: Install pv bootloaders in libexec rather than /usr/bin George Dunlap
2012-04-26 14:26 ` [PATCH 3 of 3] libxl: Warn that /usr/bin/pygrub is deprecated George Dunlap

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.