Roger Leigh <[EMAIL PROTECTED]> writes:

> I've committed the attached patch into SVN

Now actually attached!


-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please sign and encrypt your mail.
Index: dchroot/dchroot-options.cc
===================================================================
--- dchroot/dchroot-options.cc	(revision 845)
+++ dchroot/dchroot-options.cc	(working copy)
@@ -77,10 +77,6 @@
   if (vm.count("preserve-environment"))
     this->preserve = true;
 
-  // dchroot only allows one command.
-  if (this->command.size() > 1)
-    throw opt::validation_error(_("Only one command may be specified"));
-
   if (this->quiet && this->verbose)
     {
       sbuild::log_warning()
Index: dchroot/dchroot.1.in
===================================================================
--- dchroot/dchroot.1.in	(revision 845)
+++ dchroot/dchroot.1.in	(working copy)
@@ -25,9 +25,12 @@
 environment.  If no command is specified, a login shell will be started in the
 user's home directory inside the chroot.
 .PP
-The command is a single argument which will be run in the user's default shell
-using its \[lq]\-c\[rq] option.  As a result, shell code may be embedded in
-this argument.
+The command is one or more arguments which will be run in the user's default
+shell using its \[lq]\-c\[rq] option.  As a result, shell code may be embedded
+in this argument.  If multiple command options are used, they are concatenated
+together, separated by spaces.  Users should be aware of the shell quoting
+issues this presents, and should use \fBschroot\fP if necessary, which does not
+have any quoting issues.
 .PP
 Unless the \fI-d\fP option is used to preserve the environment, the login shell
 or command will run in the user's home directory inside the chroot, or / if the
@@ -196,12 +199,28 @@
 .br
 \f[CR]\fP
 .br
+\f[CR]$ dchroot \-q \-c sid \-\- uname \-smr\fP
+.br
+\f[CR]Linux 2.6.16.17 ppc\fP
+.br
 \f[CR]$ dchroot \-q \-c sid \-\- "uname \-smr"\fP
 .br
 \f[CR]Linux 2.6.16.17 ppc\fP
 .br
 \f[CR]\fP
 .br
+\f[CR]$ dchroot -q -c sid "ls -1 / | tac | head -n 4"\fP
+.br
+\f[CR]var\fP
+.br
+\f[CR]usr\fP
+.br
+\f[CR]tmp\fP
+.br
+\f[CR]sys\fP
+.br
+\f[CR]\fP
+.br
 \f[CR]$ dchroot \-c sid\fP
 .br
 \f[CR]I: [sid chroot] Running login shell: \[lq]/bin/bash\[rq]\fP
Index: dchroot/dchroot-session.cc
===================================================================
--- dchroot/dchroot-session.cc	(revision 845)
+++ dchroot/dchroot-session.cc	(working copy)
@@ -93,7 +93,7 @@
 			   std::string&         file,
 			   string_list&         command) const
 {
-  std::string programstring = command[0];
+  std::string programstring = sbuild::string_list_to_string(command, " ");
 
   command.clear();
   command.push_back(get_shell());
Index: NEWS
===================================================================
--- NEWS	(revision 845)
+++ NEWS	(working copy)
@@ -13,6 +13,10 @@
      as the "plain" type, but additionally allows filesystem mounting
      when setup scripts are enabled.
 
+  2) A further dchroot compatibility issue has been corrected.
+     Multiple command options specified on the command line are
+     concatenated into a single command, separated by spaces.
+
 * Major changes in 0.99.2:
 
   1) A --debug option has been added to all programs.  Its use is
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 845)
+++ ChangeLog	(working copy)
@@ -1,3 +1,18 @@
+2006-07-13  Roger Leigh  <[EMAIL PROTECTED]>
+
+	* debian/changelog: Close #378028.
+
+	* dchroot/dchroot.1.in: Document command option syntax.
+
+	* NEWS: Document dchroot command option syntax.
+
+	* dchroot/dchroot-session.cc
+	(get_user_command): Concatenate all command options into a single
+	command, separated by spaces.
+
+	* dchroot/dchroot-options.cc
+	(check_options): Allow any number of command options.
+
 2006-07-12  Roger Leigh  <[EMAIL PROTECTED]>
 
 	* All sources defining a custom_error<>::error_strings map define
Index: debian/changelog
===================================================================
--- debian/changelog	(revision 845)
+++ debian/changelog	(working copy)
@@ -5,6 +5,11 @@
     declared outside the class, in addition to the friend declaration.
     This fixes a compilation error with GCC 4.2 (Closes: #377433).  Thanks
     to Martin Michlmayr for reporting this.
+  * dchroot/dchroot-options.cc, dchroot/dchroot-session.cc: Allow any
+    number of command options, and concatenate all command options into a
+    single command, separated by spaces.  This restores compatibility with
+    dchroot 0.13 and earlier (Closes: #378028).  Thanks to David Liontooth
+    for reporting this.
   * debian/schroot.docs: Add the contents of debian/docs.
   * debian/docs: Remove.
   * debian/rules:
@@ -15,7 +20,7 @@
   * debian/dchroot-dsa.preinst: New file.  Remove
     /usr/share/doc/dchroot-dsa.
 
- -- Roger Leigh <[EMAIL PROTECTED]>  Mon, 10 Jul 2006 09:09:05 +0100
+ -- Roger Leigh <[EMAIL PROTECTED]>  Thu, 13 Jul 2006 13:22:20 +0100
 
 schroot (0.99.2-1) unstable; urgency=low
 

Attachment: pgpKE4G6apWCS.pgp
Description: PGP signature

Reply via email to