v0.2.2
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 likecargo-bisect-rustc
- #795 - added images for additional toolchains maintained by cross-rs.
- #792 - added
CROSS_CONTAINER_IN_CONTAINER
environment variable to replaceCROSS_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
andtarget.{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 replaceDOCKER_OPTS
. - #767, #788 - added the
cross-util
andxtask
commands. - #842 - Add
Cargo.toml
as configuration source - #745 - added
thumbv7neon-*
targets. - #741 - added
armv7-unknown-linux-gnueabi
andarmv7-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
andmips64el-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 torust-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 tocargo
. - #804 - allow usage of env
CARGO_BUILD_TARGET
as an alias forCROSS_BUILD_TARGET
- #792 - fixed container-in-container support when using podman.
- #781 - ensure
target.$(...)
config options overridebuild
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
andCROSS_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
- @anupdhml made their first contribution in #431
- @adamgreig made their first contribution in #433
- @brainstorm made their first contribution in #452
- @theunkn0wn1 made their first contribution in #454
- @kay made their first contribution in #456
- @oblique made their first contribution in #472
- @jonas-schievink made their first contribution in #476
- @jaredwolff made their first contribution in #467
- @junhochoi made their first contribution in #492
- @olitha made their first contribution in #534
- @UebelAndre made their first contribution in #543
- @alex-berger made their first contribution in #489
- @kpcyrd made their first contribution in #573
- @sudipghimire533 made their first contribution in #575
- @rawkode made their first contribution in #559
- @dtolnay made their first contribution in #560
- @eZanmoto made their first contribution in #505
- @svenstaro made their first contribution in #588
- @blesson3 made their first contribution in #522
- @maximdeclercq made their first contribution in #630
- @anatawa12 made their first contribution in #608
- @sigmaSd made their first contribution in #445
- @tesaguri made their first contribution in #549
- @otavio made their first contribution in #655
- @denisfalqueto made their first contribution in #601
- @abcfy2 made their first contribution in #647
- @mntns made their first contribution in #670
- @zappolowski made their first contribution in #624
- @Jules-Bertholet made their first contribution in #687
- @rtzoeller made their first contribution in #694
- @brandonros made their first contribution in #759
Full Changelog: v0.2.1...v0.2.2