Change:
The process of creating the tarballs doesn't include .gitignore files from src/vendor. This results in a missmatched hash failure when building with vendoring enabled. Hoping to switch to rustbuild with the next rust release! FYI: I'd be happy with the vendoring happening during the create tarball process, having enormous vendoring commits in the git history is ugly... !
Needs to be fixed for 1.15.
cc
Seems like the vendoring process should include a sanity check that the vendored sources hash correctly.
Fixed in
Things move fast around here. Awesome thanks!

Discussion:
- env: IMAGE=x86_64-gnu-make - env: IMAGE=x86_64-gnu-llvm-3.7 ALLOW_PR=1 RUST_BACKTRACE=1 - env: IMAGE=x86_64-musl <ins> - env: IMAGE=x86_64-gnu-distcheck </ins> # OSX builders - env: >

.current_dir(&dir); build.run(&mut cmd); build.run(Command::new("./configure") <ins> .args(&build.config.configure_args) </ins> .current_dir(&dir)); build.run(Command::new(build_helper::make(&build.config.build)) .arg("check")

pub nodejs: Option<PathBuf>, pub gdb: Option<PathBuf>, pub python: Option<PathBuf>, <ins> pub configure_args: Vec<String>, </ins> } /// Per-target configuration stored in the global configuration structure.

"CFG_ENABLE_SCCACHE" if value == "1" => { self.ccache = Some("sccache".to_string()); } <ins> "CFG_CONFIGURE_ARGS" if value.len() > 0 => { self.configure_args = value.split_whitespace() .map(|s| s.to_string()) .collect(); } </ins> _ => {} } }

} } <ins> // If we're inside the vendor directory then we need to preserve // everything as Cargo's vendoring support tracks all checksums and we // want to be sure we don't accidentally leave out a file. if spath.contains("vendor") { return true } </ins> let excludes = [ "CVS", "RCS", "SCCS", ".git", ".gitignore", ".gitmodules", ".gitattributes", ".cvsignore", ".svn", ".arch-ids", "{arch}",

/// Copies the `src` directory recursively to `dst`. Both are assumed to exist /// when this function is called. Unwanted files or directories can be skipped /// by returning `false` from the filter function. <del> pub fn cp_filtered<F: Fn(&Path) -> bool>(src: &Path, dst: &Path, filter: &F) { </del> <ins> pub fn cp_filtered(src: &Path, dst: &Path, filter: &Fn(&Path) -> bool) { </ins> // Inner function does the actual work <del> fn recurse<F: Fn(&Path) -> bool>(src: &Path, dst: &Path, relative: &Path, filter: &F) { </del> <ins> fn recurse(src: &Path, dst: &Path, relative: &Path, filter: &Fn(&Path) -> bool) { </ins> for f in t!(fs::read_dir(src)) { let f = t!(f); let path = f.path();

<ins> FROM ubuntu:16.04 RUN apt-get update && apt-get install -y --no-install-recommends  g++  make  file  curl  ca-certificates  python2.7  git  cmake  sudo  gdb  xz-utils ENV SCCACHE_DIGEST=7237e38e029342fa27b7ac25412cb9d52554008b12389727320bd533fd7f05b6a96d55485f305caf95e5c8f5f97c3313e10012ccad3e752aba2518f3522ba783 RUN curl -L https://api.pub.build.mozilla.org/tooltool/sha512/$SCCACHE_DIGEST |  tar xJf - -C /usr/local/bin --strip-components=1 RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb &&  dpkg -i dumb-init_*.deb &&  rm dumb-init_*.deb ENTRYPOINT ["/usr/bin/dumb-init", "--"] ENV RUST_CONFIGURE_ARGS --build=x86_64-unknown-linux-gnu ENV XPY_RUN test distcheck </ins>

ncpus=$(nproc) fi <del> make -j $ncpus tidy make -j $ncpus if [ ! -z "$XPY_CHECK" ]; then exec python2.7 $SRC/x.py $XPY_CHECK </del> <ins> if [ ! -z "$XPY_RUN" ]; then exec python2.7 $SRC/x.py $XPY_RUN </ins> else <del> exec make $RUST_CHECK_TARGET -j $ncpus </del> <ins> make -j $ncpus tidy make -j $ncpus if [ ! -z "$XPY_CHECK" ]; then exec python2.7 $SRC/x.py $XPY_CHECK else exec make $RUST_CHECK_TARGET -j $ncpus fi </ins> fi