Package: sbuild Version: 0.57.6-1 Severity: wishlist Tags: patch Hi,
I encountered some troubles while cross-compiling (i386 on amd64) due to the build system using uname output to determine the architecture. Currently, sbuild-createchroot doesn't do any kind of detection, but using the attached patches, it could: 1. warn the user that a personality= option in schroot configuration file might be needed when the architectures don't match; 2. add this option automatically when the case is known (currently, only i386 on amd64 is supported, resulting in a linux32 pers.); 3. suggest the user to report bugs to the developers for the other cases. Thanks for considering. (BTW, I'm now subscribed to the -devel list.) Cheers, -- Cyril Brulebois
>From 6fbbf357f4133c0d8a2b12cf90ed2d80988c9900 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <[EMAIL PROTECTED]> Date: Mon, 18 Aug 2008 17:03:06 +0200 Subject: [PATCH] [sbuild-createchroot] Detect whether a personality option might be needed. --- bin/sbuild-createchroot | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/bin/sbuild-createchroot b/bin/sbuild-createchroot index 5720100..2ab3a4a 100755 --- a/bin/sbuild-createchroot +++ b/bin/sbuild-createchroot @@ -186,4 +186,11 @@ print "I: Please rename and modify this file as required.\n"; print "I: Successfully set up $suite chroot.\n"; print "I: Run sbuild-adduser to add new sbuild users.\n"; +# Detect whether personality might be needed. +if ($bootstrap_arch ne $main::arch) { + print "W: You probably need to add a personality option (see schroot(1))\n"; + print " since the selected architecture and the current architecture\n"; + print " don't match ($bootstrap_arch versus $main::arch).\n"; +} + exit 0; -- 1.5.6.3
>From 67db09af6724a3bacd7d4295f15c6a59aee11225 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <[EMAIL PROTECTED]> Date: Mon, 18 Aug 2008 16:32:03 +0200 Subject: [PATCH] [sbuild-createchroot] Add personality option automatically for some known cases. --- bin/sbuild-createchroot | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 deletions(-) diff --git a/bin/sbuild-createchroot b/bin/sbuild-createchroot index 2ab3a4a..ed71d4a 100755 --- a/bin/sbuild-createchroot +++ b/bin/sbuild-createchroot @@ -165,6 +165,23 @@ my $SCHROOT_CONF = UNLINK => 0) or die "Can't open schroot configuration file: $!\n"; +my ($personality, $personality_message); +# Detect whether personality might be needed. +if ($bootstrap_arch ne $main::arch) { + # Take care of the known case(s). + if ($bootstrap_arch eq 'i386' && $main::arch eq 'amd64') { + $personality='linux32'; + $personality_message = + "I: Added personality=$personality automatically (i386 on amd64).\n"; + } + else { + $personality_message = + "W: You probably need to add a personality option (see schroot(1))\n" + . " since the selected architecture and the current architecture\n" + . " don't match ($bootstrap_arch versus $main::arch).\n"; + } +} + print $SCHROOT_CONF <<"EOF"; [$chrootname] type=directory @@ -176,21 +193,19 @@ root-groups=root,sbuild run-setup-scripts=true run-exec-scripts=true EOF - # Needed to display file below. - $SCHROOT_CONF->flush(); + +# Add personality if detected. +print $SCHROOT_CONF "personality=$personality\n" if $personality; + +# Needed to display file below. +$SCHROOT_CONF->flush(); # Display schroot configuration. print "I: schroot chroot configuration written to $SCHROOT_CONF.\n"; dump_file("$SCHROOT_CONF"); +print $personality_message if $personality_message; print "I: Please rename and modify this file as required.\n"; print "I: Successfully set up $suite chroot.\n"; print "I: Run sbuild-adduser to add new sbuild users.\n"; -# Detect whether personality might be needed. -if ($bootstrap_arch ne $main::arch) { - print "W: You probably need to add a personality option (see schroot(1))\n"; - print " since the selected architecture and the current architecture\n"; - print " don't match ($bootstrap_arch versus $main::arch).\n"; -} - exit 0; -- 1.5.6.3
>From dfa410f88c4133c98133850cd1a5bb3fc38c92dd Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <[EMAIL PROTECTED]> Date: Mon, 18 Aug 2008 18:00:59 +0200 Subject: [PATCH] [sbuild-createchroot] Suggest reporting usecases to sbuild developers. --- bin/sbuild-createchroot | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/bin/sbuild-createchroot b/bin/sbuild-createchroot index ed71d4a..6110add 100755 --- a/bin/sbuild-createchroot +++ b/bin/sbuild-createchroot @@ -178,7 +178,9 @@ if ($bootstrap_arch ne $main::arch) { $personality_message = "W: You probably need to add a personality option (see schroot(1))\n" . " since the selected architecture and the current architecture\n" - . " don't match ($bootstrap_arch versus $main::arch).\n"; + . " don't match ($bootstrap_arch versus $main::arch).\n" + . " You may want to report your usecase to sbuild developers so that\n" + . " the appropriate option gets automatically added in the future.\n"; } } -- 1.5.6.3