Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

no dist tarballs are produced with rust-1.78.0 prerelease #124528

Closed
stefson opened this issue Apr 29, 2024 · 7 comments
Closed

no dist tarballs are produced with rust-1.78.0 prerelease #124528

stefson opened this issue Apr 29, 2024 · 7 comments
Labels
C-discussion Category: Discussion or questions that doesn't represent real issues. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

Comments

@stefson
Copy link

stefson commented Apr 29, 2024

hello everyone,

I just downloaded the rustc-1.78.0 src tarball from the prerelease, to give it a spin and see if everything is working. The compile went smooth, but I am missing a certain feature: there used to be an xz archive for rustc, cargo, rust-std and any tools enabled within ../build/dist/ from where anyone could access them if needed.

now, the log isn't very verbose about what happens here, but for instance this command

running: BootstrapCommand { command: LD_LIBRARY_PATH="/var/tmp/portage/dev-lang/rust-1.78.0/work/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/var/tmp/portage/dev-lang/rust-1.78.0/work/rust-stage0/lib" RUSTC="/var/tmp/portage/dev-lang/rust-1.78.0/work/rust-stage0/bin/rustc" "/var/tmp/portage/dev-lang/rust-1.78.0/work/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-installer" "generate" "--image-dir" "/var/tmp/portage/dev-lang/rust-1.78.0/work/rustc-1.78.0-src/build/tmp/tarball/rust-demangler/x86_64-unknown-linux-gnu/image" "--component-name=rust-demangler-preview" "--rel-manifest-dir=rustlib" "--legacy-manifest-dirs=rustlib,cargo" "--product-name=Rust" "--success-message=rust-demangler installed." "--package-name=rust-demangler-1.78.0-x86_64-unknown-linux-gnu" "--non-installed-overlay" "/var/tmp/portage/dev-lang/rust-1.78.0/work/rustc-1.78.0-src/build/tmp/tarball/rust-demangler/x86_64-unknown-linux-gnu/overlay" "--output-dir" "/var/tmp/portage/dev-lang/rust-1.78.0/work/rustc-1.78.0-src/build/dist" "--work-dir" "/var/tmp/portage/dev-lang/rust-1.78.0/work/rustc-1.78.0-src/build/tmp/tarball/rust-demangler/x86_64-unknown-linux-gnu" "--compression-formats" "xz" "--compression-profile" "no-op", failure_behavior: Exit, output_mode: PrintAll }

for creating the tarball for rust-demangler seemingly fails as it exits in only 0.008 seconds. Consequently, the image dir (/var/tmp/portage/dev-lang/rust-1.78.0/work/rustc-1.78.0-src/build/tmp/tarball/rust-demangler/x86_64-unknown-linux-gnu/image) is empty.

I had a look into the recent changes of config.toml.example, yet I couldn't find any hints of options I had to change. Here is my config.toml:

changelog-seen = 2
[llvm]
download-ci-llvm = false
optimize = true
release-debuginfo = false
assertions = false
ninja = true
targets = "ARM;AArch64;X86"
experimental-targets = ""
link-shared = true


enable-warnings = false
[llvm.build-config]
CMAKE_VERBOSE_MAKEFILE = "ON"
CMAKE_C_FLAGS_RELEASE = "-O2 -pipe"
CMAKE_CXX_FLAGS_RELEASE = "-O2 -pipe"
CMAKE_EXE_LINKER_FLAGS_RELEASE = "-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
CMAKE_MODULE_LINKER_FLAGS_RELEASE = "-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
CMAKE_SHARED_LINKER_FLAGS_RELEASE = "-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
CMAKE_STATIC_LINKER_FLAGS_RELEASE = ""
[build]
build-stage = 2
test-stage = 2
build = "x86_64-unknown-linux-gnu"
host = ["x86_64-unknown-linux-gnu"]
target = ["x86_64-unknown-linux-gnu","armv7-unknown-linux-gnueabihf","thumbv7neon-unknown-linux-gnueabihf","aarch64-unknown-linux-gnu"]
cargo = "/var/tmp/portage/dev-lang/rust-1.78.0/work/rust-stage0/bin/cargo"
rustc = "/var/tmp/portage/dev-lang/rust-1.78.0/work/rust-stage0/bin/rustc"
rustfmt = "/var/tmp/portage/dev-lang/rust-1.78.0/work/rust-stage0/bin/rustfmt"
docs = false
compiler-docs = false
submodules = false
python = "python3.11"
locked-deps = true
vendor = true
extended = true
tools = ["cargo","rustdoc","rust-demangler","rustfmt"]
verbose = 2
sanitizers = false
profiler = true
cargo-native-static = false
[install]
prefix = "/usr/lib/rust/1.78.0"
sysconfdir = "etc"
docdir = "share/doc/rust"
bindir = "bin"
libdir = "lib"
mandir = "share/man"
[rust]
# https://github.com/rust-lang/rust/issues/54872
codegen-units-std = 1
optimize = true
debug = false
debug-assertions = false
debug-assertions-std = false
debuginfo-level = 0
debuginfo-level-rustc = 0
debuginfo-level-std = 0
debuginfo-level-tools = 0
debuginfo-level-tests = 0
backtrace = true
incremental = false
default-linker = "x86_64-pc-linux-gnu-gcc"
parallel-compiler = false
channel = "stable"
description = "gentoo"
rpath = false
verbose-tests = true
optimize-tests = true
codegen-tests = true
dist-src = false
remap-debuginfo = true
lld = false
# only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
# https://github.com/rust-lang/rust/issues/74976
# https://github.com/rust-lang/rust/issues/76526
deny-warnings = true
backtrace-on-ice = true
jemalloc = false
# See https://github.com/rust-lang/rust/issues/121124
lto = "off"
[dist]
src-tarball = false
compression-formats = ["xz"]
compression-profile = "balanced"
[target.x86_64-unknown-linux-gnu]
ar = "x86_64-pc-linux-gnu-ar"
cc = "x86_64-pc-linux-gnu-gcc"
cxx = "x86_64-pc-linux-gnu-g++"
linker = "x86_64-pc-linux-gnu-gcc"
ranlib = "x86_64-pc-linux-gnu-ranlib"
llvm-libunwind = "no"
llvm-config = "/usr/lib/llvm/18/bin/llvm-config"
[target.armv7-unknown-linux-gnueabihf]
ar = "armv7a-unknown-linux-gnueabihf-ar"
cc = "armv7a-unknown-linux-gnueabihf-gcc"
cxx = "armv7a-unknown-linux-gnueabihf-g++"
linker = "armv7a-unknown-linux-gnueabihf-gcc"
ranlib = "armv7a-unknown-linux-gnueabihf-ranlib"
llvm-config = "/usr/lib/llvm/18/bin/llvm-config"
[target.thumbv7neon-unknown-linux-gnueabihf]
ar = "armv7a-unknown-linux-gnueabihf-ar"
cc = "armv7a-unknown-linux-gnueabihf-gcc"
cxx = "armv7a-unknown-linux-gnueabihf-g++"
linker = "armv7a-unknown-linux-gnueabihf-gcc"
ranlib = "armv7a-unknown-linux-gnueabihf-ranlib"
llvm-config = "/usr/lib/llvm/18/bin/llvm-config"
[target.aarch64-unknown-linux-gnu]
ar = "aarch64-unknown-linux-gnu-ar"
cc = "aarch64-unknown-linux-gnu-gcc"
cxx = "aarch64-unknown-linux-gnu-g++"
linker = "aarch64-unknown-linux-gnu-gcc"
ranlib = "aarch64-unknown-linux-gnu-ranlib"
llvm-config = "/usr/lib/llvm/18/bin/llvm-config"

I will attach the full and compressed log: build.log.gz it's a wooping 110mb uncompressed.

Has any option in config.toml changed which I am unaware of? I'm a little lost here, sorry if I missed something obvious! :')

@stefson stefson added the C-bug Category: This is a bug. label Apr 29, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Apr 29, 2024
@ehuss
Copy link
Contributor

ehuss commented Apr 29, 2024

I believe this was an intentional change as part of #118724 (which, oddly enough, mentions gentoo). Creating the dist files from install was somewhat of an artifact of how it was implemented, and I don't think was necessarily intentional. x dist is the intended command for creating dist artifacts.

@onur-ozkan can say probably say more.

@onur-ozkan
Copy link
Member

If you want distribution artifacts to be ready, you should run 'x dist' either before or alongside 'x install'. Generating distribution artifacts in 'x install' was a complete waste of time and resources, so we removed it as it unnecessarily slowed down the installation process for most users.

@rustbot label -C-bug

@rustbot rustbot removed the C-bug Category: This is a bug. label Apr 29, 2024
@saethlin saethlin added T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) C-discussion Category: Discussion or questions that doesn't represent real issues. and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Apr 30, 2024
@thesamesam
Copy link

thesamesam commented May 4, 2024

I think we're happy to update our packaging in Gentoo and this isn't a problem for us - just a change which needs adapting to. cc @bowlofeggs @navi-desu.

We optionally have a toggle called USE=dist which installs the dist tarballs that install used to create. We just need to change the x.py target/action when that's enabled. Thanks!

@thesamesam
Copy link

As an aside, I wonder if it'd be useful to have teams or some list of downstream maintainers which a bot could ping for stuff like this.

@onur-ozkan
Copy link
Member

I think we're happy to update our packaging in Gentoo and this isn't a problem for us - just a change which needs adapting to. cc @bowlofeggs @navi-desu.

We optionally have a toggle called USE=dist which installs the dist tarballs that install used to create. We just need to change the x.py target/action when that's enabled. Thanks!

Closing this.

@onur-ozkan
Copy link
Member

As an aside, I wonder if it'd be useful to have teams or some list of downstream maintainers which a bot could ping for stuff like this.

We have a change tracker system (e.g., change entry https://github.com/onur-ozkan/rust/blob/a13ec8d00396ac6f5a3f285f8fcd95a2ab6c8824/src/bootstrap/src/utils/change_tracker.rs#L134-L138) that prints the breaking changes at the beginning and end of the bootstrap.

@thesamesam
Copy link

I was thinking more for discussions when downstream input is needed, or when you think it might be our fault to have a way to let us know. I wasn't aware of that though (I'm not involved with maintaining Rust directly) - thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-discussion Category: Discussion or questions that doesn't represent real issues. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Projects
None yet
Development

No branches or pull requests

6 participants