Skip to content

v0.2.2

Compare
Choose a tag to compare
@github-actions github-actions released this 25 Jun 00:43
· 692 commits to main since this release
v0.2.2
48d2b7b

After almost two years, cross finally has a new version available!

Major features of this release are:

  • Remote container engines support via environment variable CROSS_REMOTE. See the wiki
  • Support for pre-build hooks and automatically building dockerfiles.
  • Support configuration from Cargo.toml metadata as well as Cross.toml.

What's next? We've got some breaking changes for v0.3.0, including updating the base Ubuntu versions for our images from 16.04 to 20.04. Although using older glibc versions is great for backwards compatibility, many of us are working on newer codebases where binary compatibility with old glibc versions isn't required, so you can install a more modern toolset from the system package manager.

Added

  • #803 - added CROSS_CUSTOM_TOOLCHAIN to disable automatic installation of components for use with tools like cargo-bisect-rustc
  • #795 - added images for additional toolchains maintained by cross-rs.
  • #792 - added CROSS_CONTAINER_IN_CONTAINER environment variable to replace CROSS_DOCKER_IN_DOCKER.
  • #785 - added support for remote container engines through data volumes through setting the CROSS_REMOTE environment variable. also adds in utility commands to create and remove persistent data volumes.
  • #782 - added build-std config option, which builds the rust standard library from source if enabled.
  • #678 - Add optional target.{target}.dockerfile[.file], target.{target}.dockerfile.context and target.{target}.dockerfile.build-args to invoke docker/podman build before using an image.
  • #678 - Add target.{target}.pre-build config for running commands before building the image.
  • #772 - added CROSS_CONTAINER_OPTS environment variable to replace DOCKER_OPTS.
  • #767, #788 - added the cross-util and xtask commands.
  • #842 - Add Cargo.toml as configuration source
  • #745 - added thumbv7neon-* targets.
  • #741 - added armv7-unknown-linux-gnueabi and armv7-unknown-linux-musleabi targets.
  • #721 - add support for running doctests on nightly if CROSS_UNSTABLE_ENABLE_DOCTESTS=true.
  • #719 - add --list to known subcommands.
  • #681 - Warn on unknown fields and confusable targets
  • #624 - Add build.default-target
  • #647 - Add mips64-unknown-linux-muslabi64 and mips64el-unknown-linux-muslabi64 support
  • #543 - Added environment variables to control the UID and GID in the container
  • #524 - docker: Add Nix Store volume support
  • Added support for mounting volumes.
  • #684 - Enable cargo workspaces to work from any path in the workspace, and make path dependencies mount seamlessly. Also added support for private SSH dependencies.

Changed

  • #838 - re-enabled the solaris targets.
  • #807 - update Qemu to 6.1.0 on images using Ubuntu 18.04+ with python3.6+.
  • #775 - forward Cargo exit code to host
  • #762 - re-enabled x86_64-unknown-dragonfly target.
  • #747 - reduced android image sizes.
  • #746 - limit image permissions for android images.
  • #377 - update WINE versions to 7.0.
  • #734 - patch arm-unknown-linux-gnueabihf to build for ARMv6, and add architecture for crosstool-ng-based images.
  • #709 - Update Emscripten targets to emcc version 3.1.10
  • #707, #708 - Set BINDGEN_EXTRA_CLANG_ARGS environment variable to pass sysroot to rust-bindgen
  • #696 - bump freebsd to 12.3
  • #629 - Update Android NDK version and API version
  • #497 - don't set RUSTFLAGS in aarch64-musl image
  • #492 - Add cmake to FreeBSD images
  • #748 - allow definitions in the environment variable passthrough

Fixed

  • #836 - write a CACHEDIR.TAG when creating the target directory, similar to cargo.
  • #804 - allow usage of env CARGO_BUILD_TARGET as an alias for CROSS_BUILD_TARGET
  • #792 - fixed container-in-container support when using podman.
  • #781 - ensure target.$(...) config options override build ones.
  • #771 - fix parsing of DOCKER_OPTS.
  • #727 - add PKG_CONFIG_PATH to all *-linux-gnu images.
  • #722 - boolean environment variables are evaluated as truthy or falsey.
  • #720 - add android runner to preload libc++_shared.so.
  • #725 - support CROSS_DEBUG and CROSS_RUNNER on android images.
  • #714 - use host target directory when falling back to host cargo.
  • #713 - convert relative target directories to absolute paths.
  • #501 (reverted, see #764) - x86_64-linux: lower glibc version requirement to 2.17 (compatible with centos 7)
  • #500 - use runner setting specified in Cross.toml
  • #498 - bump linux-image version to fix CI
  • Re-enabled powerpc64-unknown-linux-gnu image
  • Re-enabled sparc64-unknown-linux-gnu image
  • #582 - Added libprocstat.so to FreeBSD images
  • #665 - when not using env.volumes, mount project in /project
  • #494 - Parse Cargo's --manifest-path option to determine mounted docker root

Removed

  • #718 - remove deb subcommand.

Internal

  • #856 - remove use of external wslpath and create internal helper that properly handles UNC paths.
  • #828 - assume paths are Unicode and provide better error messages for path encoding errors.
  • #787 - add installer for git hooks.
  • #786, #791 - Migrate build script to rust: cargo build-docker-image $TARGET
  • #730 - make FreeBSD builds more resilient.
  • #670 - Use serde for deserialization of Cross.toml
  • Change rust edition to 2021 and bump MSRV for the cross binary to 1.58.1
  • #654 - Use color-eyre for error reporting
  • #658 - Upgrade dependencies
  • #652 - Allow trying individual targets via bors.
  • #650 - Improve Docker caching.
  • #609 - Switch to Github Actions and GHCR.
  • #588 - fix ci: bump openssl version in freebsd again
  • #552 - Added CHANGELOG.md automation
  • #534 - fix image builds with update of dependencies
  • #502 - fix ci: bump openssl version in freebsd
  • #489 - Add support for more hosts and simplify/unify host support checks
  • #477 - Fix Docker/Podman links in README
  • #476 - Use Rustlang mirror for Sabotage linux tarbals
  • Bump nix dependency to 0.22.1
  • Bump musl version to 1.1.24.

New Contributors

Full Changelog: v0.2.1...v0.2.2