Bug 271036 - multimedia/librav1e: fails to build "No such file or directory" with rust 1.69.0
Summary: multimedia/librav1e: fails to build "No such file or directory" with rust 1.69.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Some People
Assignee: Jan Beich
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-23 22:22 UTC by Vladimir Druzenko
Modified: 2023-04-25 16:13 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (jbeich)


Attachments
git diff lang/rust (468 bytes, patch)
2023-04-24 11:32 UTC, Chad Jacob Milios
no flags Details | Diff
Always install rustdoc (1.31 KB, patch)
2023-04-24 14:06 UTC, Jan Beich
mikael: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Druzenko freebsd_committer freebsd_triage 2023-04-23 22:22:42 UTC
13.2 amd64.
After update rust to 1.69.0 multimedia/librav1e fails to build. Removed librav1e, tried to build - same error:

warning: `rav1e` (build script) generated 2 warnings
     Running `/tmp/work/usr/ports/multimedia/librav1e/work/target/release/build/rav1e-7cca2eaa162c986c/build-script-build`
[rav1e 0.6.4] thread 'main' panicked at 'Failed to acquire build-time information: Os { code: 2, kind: NotFound, message: "No such file or directory" }', build.rs:230:29
[rav1e 0.6.4] stack backtrace:
[rav1e 0.6.4]    0: rust_begin_unwind
[rav1e 0.6.4]    1: core::panicking::panic_fmt
[rav1e 0.6.4]    2: core::result::unwrap_failed
[rav1e 0.6.4]    3: core::result::Result<T,E>::expect
[rav1e 0.6.4]              at /tmp/work/usr/ports/lang/rust/work/rustc-1.69.0-src/library/core/src/result.rs:1047:23
[rav1e 0.6.4]    4: build_script_build::main
[rav1e 0.6.4]              at ./build.rs:230:3
[rav1e 0.6.4]    5: core::ops::function::FnOnce::call_once
[rav1e 0.6.4]              at /tmp/work/usr/ports/lang/rust/work/rustc-1.69.0-src/library/core/src/ops/function.rs:250:5
[rav1e 0.6.4] note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: failed to run custom build command for `rav1e v0.6.4 (/tmp/work/usr/ports/multimedia/librav1e/work/rav1e-0.6.4)`

Caused by:
  process didn't exit successfully: `/tmp/work/usr/ports/multimedia/librav1e/work/target/release/build/rav1e-7cca2eaa162c986c/build-script-build` (exit status: 101)
  --- stderr
  thread 'main' panicked at 'Failed to acquire build-time information: Os { code: 2, kind: NotFound, message: "No such file or directory" }', build.rs:230:29
  stack backtrace:
     0: rust_begin_unwind
     1: core::panicking::panic_fmt
     2: core::result::unwrap_failed
     3: core::result::Result<T,E>::expect
               at /tmp/work/usr/ports/lang/rust/work/rustc-1.69.0-src/library/core/src/result.rs:1047:23
     4: build_script_build::main
               at ./build.rs:230:3
     5: core::ops::function::FnOnce::call_once
               at /tmp/work/usr/ports/lang/rust/work/rustc-1.69.0-src/library/core/src/ops/function.rs:250:5
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
warning: build failed, waiting for other jobs to finish...
Error: CliError { error: Some(1 job failed), exit_code: 101 }
*** Error code 1
Comment 1 Mikael Urankar freebsd_committer freebsd_triage 2023-04-24 08:51:19 UTC
some build script tries to run rustdoc and fails
39415: execve("/usr/local/bin/rustdoc",0x39626b048880,0x3962614f18c0) ERR#2 'No such file or directory'

I'll investigate why rustdoc is not built with rust 1.69
Comment 2 Chad Jacob Milios 2023-04-24 11:32:21 UTC
Created attachment 241695 [details]
git diff lang/rust

it appears https://github.com/rust-lang/rust/issues/76526 was fixed by https://github.com/rust-lang/rust/pull/95900 and merged by https://github.com/rust-lang/rust/pull/95900/commits/3f4bbd50fda2be3ccf31031003bce19645afa99a

i guess the real mystery here is why WAS rustdoc being built at all in the last handful of versions while this line has been in our Makefile for nearly a year!

at any rate, it all works better now. this allowed me to build librav1e after rebuilding rust using this patch
Comment 3 Mikael Urankar freebsd_committer freebsd_triage 2023-04-24 11:38:57 UTC
(In reply to Chad Jacob Milios from comment #2)
Thanks, I was testing something similar.
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2023-04-24 12:17:15 UTC
Is it work if DOCS=off?
Comment 5 Chad Jacob Milios 2023-04-24 13:00:48 UTC
(In reply to VVD from comment #4)

so without this patch #241695, after the update to rust-1.69.0 rustdoc was not getting installed. So without rustdoc, librav1e was dying at the point where its cargo crate dependency built-0.5.2 fails to run `rustdoc -V` which it wants to do simply so it can bake that output into the build incase it is later wished for informational purposes (along with like a hundred other little morsels of info about the build environment. For example, `built` is appreciated by the support staff fielding calls or developers getting crash reports from any Rust software.) built-0.6.0 failed in the same way for me at the same point. i did not take it upon myself to notify its maintainer that there are people out there who forgo `rustdoc` and so (s)he shouldnt `.expect()` it. because i'd like my rustdoc please and thank you.

the real mystery is why my rust-1.68.2 and prior even had rustdoc at all when i'm not on the nightly track, considering this omission was in place since May 2022. i did not investigate said mystery

i for one believe its time we can retire these three lines altogether but i'll leave it to the big boys to determine if it's still not possible to build with DOCS on armv6. (see this line in ports commits e57dfbf32324ca40f17bb6c4a10581e6a06ab00b and cb6d9d1a623b5dc4ed815d69211d264819be036e.)
Comment 6 Jan Beich freebsd_committer freebsd_triage 2023-04-24 14:06:32 UTC
Created attachment 241697 [details]
Always install rustdoc

Probably regressed by https://github.com/rust-lang/rust/commit/11e002a00134
Something like the attached patch may help but I didn't test.

More ports are affected:

$ rg -g distinfo -wl built | sed s,/distinfo,,
games/abstreet (already BROKEN for a different reason)
multimedia/av1an (via rav1e crate)
multimedia/gstreamer1-plugins-rust (via rav1e crate)
multimedia/rav1e
sysutils/rtx
sysutils/vector

Of those only 1 has *default* consumers:

$ pkg rquery %ro gstreamer1-plugins-rust | sort
multimedia/kooha
security/authenticator
Comment 7 Mikael Urankar freebsd_committer freebsd_triage 2023-04-24 14:18:35 UTC
(In reply to Jan Beich from comment #6)
Yes, rustdoc is built with 11e002a001348e7ea035c0cb2665be806e2a832e reverted.
can you commit your patch please?
Comment 8 commit-hook freebsd_committer freebsd_triage 2023-04-24 17:51:05 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=624bde48cd1c06c4cfb73982e55b9a6199ce4851

commit 624bde48cd1c06c4cfb73982e55b9a6199ce4851
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2023-04-24 16:07:15 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2023-04-24 17:50:43 +0000

    lang/rust: always build rustdoc

    Due to a regression in rust [1], rustdoc is not built anymore but
    is required by some ports.
    Force the build of rustdoc.

    [1] https://github.com/rust-lang/rust/commit/11e002a001348e7ea035c0cb2665be806e2a832e

    PR:             271036

 lang/rust/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Comment 9 Vladimir Druzenko freebsd_committer freebsd_triage 2023-04-25 16:13:44 UTC
Work for me on 2 different hosts.

Thanks!