diff -Nru rustc-1.29.0+dfsg1/debian/architecture.mk rustc-1.29.0+dfsg1/debian/architecture.mk
--- rustc-1.29.0+dfsg1/debian/architecture.mk	2018-03-28 11:15:44.000000000 +0000
+++ rustc-1.29.0+dfsg1/debian/architecture.mk	2018-11-22 06:15:29.000000000 +0000
@@ -2,10 +2,7 @@
 
 include /usr/share/dpkg/architecture.mk
 
-rust_cpu = $(subst i586,i686,\
-$(if $(findstring -armhf-,-$(2)-),$(subst arm,armv7,$(1)),\
-$(if $(findstring -armel-,-$(2)-),$(subst arm,armv5te,$(1)),\
-$(1))))
+rust_cpu = $(subst i586,i686,$(1))
 rust_type_setvar = $(1)_RUST_TYPE ?= $(call rust_cpu,$($(1)_GNU_CPU),$($(1)_ARCH))-unknown-$($(1)_GNU_SYSTEM)
 
 $(foreach machine,BUILD HOST TARGET,\
diff -Nru rustc-1.29.0+dfsg1/debian/changelog rustc-1.29.0+dfsg1/debian/changelog
--- rustc-1.29.0+dfsg1/debian/changelog	2018-09-23 17:16:53.000000000 +0000
+++ rustc-1.29.0+dfsg1/debian/changelog	2018-11-22 06:15:29.000000000 +0000
@@ -1,3 +1,15 @@
+rustc (1.29.0+dfsg1-1+rpi1) buster-staging; urgency=medium
+
+  [changes brought forward from 1.15.1+dfsg1-1~exp3+rpi1 by Peter Michael Green <plugwash@raspbian.org> at Wed, 15 Mar 2017 10:16:18 +0000]
+  * Build for armv6.
+  [changes introduced in 1.18.0+dfsg1-4+rpi1 by Peter Michael Green]
+  * Disable testsuite.
+  [changes introduce in 1.29.0+dfsg1-1+rpi1 by Peter Michael Green]
+  * Add upstream patch to disable color handling in rustbuild, it conflicts
+    with newer versions of cargo.
+
+ -- Peter Michael Green <plugwash@raspbian.org>  Thu, 22 Nov 2018 06:15:29 +0000
+
 rustc (1.29.0+dfsg1-1) unstable; urgency=medium
 
   * Upload to unstable.
diff -Nru rustc-1.29.0+dfsg1/debian/patches/drop-color-handling.patch rustc-1.29.0+dfsg1/debian/patches/drop-color-handling.patch
--- rustc-1.29.0+dfsg1/debian/patches/drop-color-handling.patch	1970-01-01 00:00:00.000000000 +0000
+++ rustc-1.29.0+dfsg1/debian/patches/drop-color-handling.patch	2018-11-22 06:15:29.000000000 +0000
@@ -0,0 +1,91 @@
+Modified by Peter michael green for rustc 1.29
+
+commit 2a45057e17082559b4c3a365d9b29cc30105f740
+Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+Date:   Tue Sep 18 14:58:11 2018 +0200
+
+    rustbuild: drop color handling
+    
+    Let cargo handle that for us
+    
+    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+
+diff --git a/src/bootstrap/bin/rustc.rs b/src/bootstrap/bin/rustc.rs
+index 7192cae895..675522e596 100644
+--- a/src/bootstrap/bin/rustc.rs
++++ b/src/bootstrap/bin/rustc.rs
+@@ -287,15 +287,6 @@ fn main() {
+         cmd.arg("-Z").arg("verify-llvm-ir");
+     }
+ 
+-    let color = match env::var("RUSTC_COLOR") {
+-        Ok(s) => usize::from_str(&s).expect("RUSTC_COLOR should be an integer"),
+-        Err(_) => 0,
+-    };
+-
+-    if color != 0 {
+-        cmd.arg("--color=always");
+-    }
+-
+     if env::var_os("RUSTC_DENY_WARNINGS").is_some() && env::var_os("RUSTC_EXTERNAL_TOOL").is_none()
+     {
+         cmd.arg("-Dwarnings");
+diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
+index 04e8e133b0..7f102b4ed2 100644
+--- a/src/bootstrap/compile.rs
++++ b/src/bootstrap/compile.rs
+@@ -29,7 +29,7 @@ use build_helper::{output, mtime, up_to_date};
+ use filetime::FileTime;
+ use serde_json;
+ 
+-use util::{exe, libdir, is_dylib, CiEnv};
++use util::{exe, libdir, is_dylib};
+ use {Compiler, Mode};
+ use native;
+ use tool;
+@@ -1022,29 +1022,6 @@ pub fn add_to_sysroot(builder: &Builder, sysroot_dst: &Path, stamp: &Path) {
+     }
+ }
+ 
+-// Avoiding a dependency on winapi to keep compile times down
+-#[cfg(unix)]
+-fn stderr_isatty() -> bool {
+-    use libc;
+-    unsafe { libc::isatty(libc::STDERR_FILENO) != 0 }
+-}
+-#[cfg(windows)]
+-fn stderr_isatty() -> bool {
+-    type DWORD = u32;
+-    type BOOL = i32;
+-    type HANDLE = *mut u8;
+-    const STD_ERROR_HANDLE: DWORD = -12i32 as DWORD;
+-    extern "system" {
+-        fn GetStdHandle(which: DWORD) -> HANDLE;
+-        fn GetConsoleMode(hConsoleHandle: HANDLE, lpMode: *mut DWORD) -> BOOL;
+-    }
+-    unsafe {
+-        let handle = GetStdHandle(STD_ERROR_HANDLE);
+-        let mut out = 0;
+-        GetConsoleMode(handle, &mut out) != 0
+-    }
+-}
+-
+ pub fn run_cargo(builder: &Builder, cargo: &mut Command, stamp: &Path, is_check: bool)
+     -> Vec<PathBuf>
+ {
+@@ -1201,15 +1178,6 @@ pub fn stream_cargo(
+     cargo.arg("--message-format").arg("json")
+          .stdout(Stdio::piped());
+ 
+-    if stderr_isatty() && builder.ci_env == CiEnv::None &&
+-        // if the terminal is reported as dumb, then we don't want to enable color for rustc
+-        env::var_os("TERM").map(|t| t != *"dumb").unwrap_or(true) {
+-        // since we pass message-format=json to cargo, we need to tell the rustc
+-        // wrapper to give us colored output if necessary. This is because we
+-        // only want Cargo's JSON output, not rustcs.
+-        cargo.env("RUSTC_COLOR", "1");
+-    }
+-
+     builder.verbose(&format!("running: {:?}", cargo));
+     let mut child = match cargo.spawn() {
+         Ok(child) => child,
diff -Nru rustc-1.29.0+dfsg1/debian/patches/series rustc-1.29.0+dfsg1/debian/patches/series
--- rustc-1.29.0+dfsg1/debian/patches/series	2018-09-23 17:13:15.000000000 +0000
+++ rustc-1.29.0+dfsg1/debian/patches/series	2018-11-22 06:15:29.000000000 +0000
@@ -40,3 +40,5 @@
 d-no-web-dependencies-in-doc.patch
 # Work around for some porterboxes, keep this commented
 #d-host-duplicates.patch
+
+drop-color-handling.patch
diff -Nru rustc-1.29.0+dfsg1/debian/rules rustc-1.29.0+dfsg1/debian/rules
--- rustc-1.29.0+dfsg1/debian/rules	2018-09-23 17:10:09.000000000 +0000
+++ rustc-1.29.0+dfsg1/debian/rules	2018-11-22 06:15:29.000000000 +0000
@@ -228,7 +228,7 @@
 		test "$$(stat -c %s "$$x")" -lt 6000000; \
 	done
 ifeq (, $(filter nocheck,$(DEB_BUILD_PROFILES)))
-ifeq (, $(filter nocheck,$(DEB_BUILD_OPTIONS)))
+ifeq (testsuitedisabled, $(filter nocheck,$(DEB_BUILD_OPTIONS)))
 	{ $(RUSTBUILD_TEST) --no-fail-fast $(RUSTBUILD_FLAGS) $(RUSTBUILD_TEST_FLAGS); echo $$?; } | tee -a $(TEST_LOG)
 	test -f $(TEST_LOG)
 	echo "==== Debian rustc test report ===="; \