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

cargo install fails with "use of unstable library feature 'file_create_new'" #1

Closed
bringert opened this issue Oct 28, 2024 · 3 comments

Comments

@bringert
Copy link

Installing v0.3.0 with cargo fails with use of unstable library feature 'file_create_new'

$ cargo --version
cargo 1.75.0
$ rustc --version
rustc 1.75.0 (82e1608df 2023-12-21) (built from a source tarball)
$ cargo install buildfs
$ cargo install buildfs
    Updating crates.io index
  Downloaded buildfs v0.3.0
  Downloaded 1 crate (27.1 KB) in 0.94s
  Installing buildfs v0.3.0
    Updating crates.io index
  Downloaded anstream v0.6.17
  Downloaded anstyle-parse v0.2.6
  Downloaded adler2 v2.0.0
  Downloaded colorchoice v1.0.3
  Downloaded is_terminal_polyfill v1.70.1
  Downloaded try-lock v0.2.5
  Downloaded pin-utils v0.1.0
  Downloaded num-conv v0.1.0
  Downloaded time-macros v0.2.18
  Downloaded signal-hook-registry v1.4.2
  Downloaded fnv v1.0.7
  Downloaded http-body-util v0.1.2
  Downloaded equivalent v1.0.1
  Downloaded atomic-waker v1.1.2
  Downloaded heck v0.5.0
  Downloaded autocfg v1.4.0
  Downloaded errno v0.3.9
  Downloaded futures-macro v0.3.31
  Downloaded cfg-if v1.0.0
  Downloaded anstyle-query v1.1.2
  Downloaded lazy_static v1.5.0
  Downloaded anstyle v1.0.9
  Downloaded futures-core v0.3.31
  Downloaded strsim v0.11.1
  Downloaded slab v0.4.9
  Downloaded deranged v0.3.11
  Downloaded cfg_aliases v0.2.1
  Downloaded http-body v1.0.1
  Downloaded tinyvec_macros v0.1.1
  Downloaded rustc-hash v1.1.0
  Downloaded toml_datetime v0.6.8
  Downloaded num_threads v0.1.7
  Downloaded fs_extra v1.3.0
  Downloaded httpdate v1.0.3
  Downloaded tower-service v0.3.3
  Downloaded futures-io v0.3.31
  Downloaded cexpr v0.6.0
  Downloaded colored v2.1.0
  Downloaded filetime v0.2.25
  Downloaded time-core v0.1.2
  Downloaded home v0.5.9
  Downloaded either v1.13.0
  Downloaded hex v0.4.3
  Downloaded futures-executor v0.3.31
  Downloaded glob v0.3.1
  Downloaded futures-sink v0.3.31
  Downloaded clap_lex v0.7.2
  Downloaded once_cell v1.20.2
  Downloaded libloading v0.8.5
  Downloaded form_urlencoded v1.2.1
  Downloaded futures-task v0.3.31
  Downloaded lazycell v1.3.0
  Downloaded powerfmt v0.2.0
  Downloaded itoa v1.0.11
  Downloaded hyperlocal v0.9.1
  Downloaded want v0.3.1
  Downloaded futures v0.3.31
  Downloaded percent-encoding v2.3.1
  Downloaded clap_derive v4.5.18
  Downloaded serde_path_to_error v0.1.16
  Downloaded thiserror-impl v1.0.65
  Downloaded log v0.4.22
  Downloaded async-trait v0.1.83
  Downloaded smart-default v0.7.1
  Downloaded crc32fast v1.4.2
  Downloaded bitflags v2.6.0
  Downloaded serde_urlencoded v0.7.1
  Downloaded xattr v1.3.1
  Downloaded utf8parse v0.2.2
  Downloaded httparse v1.9.5
  Downloaded getrandom v0.2.15
  Downloaded which v6.0.3
  Downloaded proc-macro2 v1.0.89
  Downloaded iana-time-zone v0.1.61
  Downloaded pin-project-lite v0.2.15
  Downloaded thiserror v1.0.65
  Downloaded quote v1.0.37
  Downloaded simple_logger v5.0.0
  Downloaded bollard-stubs v1.45.0-rc.26.0.1
  Downloaded futures-channel v0.3.31
  Downloaded clang-sys v1.8.1
  Downloaded tokio-macros v2.4.0
  Downloaded shlex v1.3.0
  Downloaded hyper-util v0.1.9
  Downloaded serde_spanned v0.6.8
  Downloaded serde_repr v0.1.19
  Downloaded indexmap v1.9.3
  Downloaded ryu v1.0.18
  Downloaded num-traits v0.2.19
  Downloaded serde_derive v1.0.213
  Downloaded smallvec v1.13.2
  Downloaded tracing-attributes v0.1.27
  Downloaded clap v4.5.20
  Downloaded bytes v1.8.0
  Downloaded serde v1.0.213
  Downloaded miniz_oxide v0.8.0
  Downloaded base64 v0.22.1
  Downloaded indexmap v2.6.0
  Downloaded unicode-ident v1.0.13
  Downloaded tinyvec v1.8.0
  Downloaded mio v1.0.2
  Downloaded socket2 v0.5.7
  Downloaded minimal-lexical v0.2.1
  Downloaded memchr v2.7.4
  Downloaded hashbrown v0.12.3
  Downloaded flate2 v1.0.34
  Downloaded uuid v1.11.0
  Downloaded aho-corasick v1.1.3
  Downloaded tar v0.4.42
  Downloaded tracing-core v0.1.32
  Downloaded toml v0.8.19
  Downloaded bollard v0.17.1
  Downloaded unicode-bidi v0.3.17
  Downloaded tracing v0.1.40
  Downloaded http v1.1.0
  Downloaded hashbrown v0.15.0
  Downloaded itertools v0.12.1
  Downloaded clap_builder v4.5.20
  Downloaded nom v7.1.3
  Downloaded url v2.5.2
  Downloaded hyper v1.5.0
  Downloaded futures-util v0.3.31
  Downloaded h2 v0.4.6
  Downloaded toml_edit v0.22.22
  Downloaded tokio-util v0.7.12
  Downloaded time v0.3.36
  Downloaded chrono v0.4.38
  Downloaded unicode-normalization v0.1.24
  Downloaded bindgen v0.69.5
  Downloaded sys-mount v3.0.1
  Downloaded serde_json v1.0.132
  Downloaded regex v1.11.1
  Downloaded serde_with v3.11.0
  Downloaded winnow v0.6.20
  Downloaded idna v0.5.0
  Downloaded loopdev-3 v0.5.1
  Downloaded syn v2.0.85
  Downloaded nix v0.29.0
  Downloaded regex-syntax v0.8.5
  Downloaded rustix v0.38.38
  Downloaded tokio v1.41.0
  Downloaded regex-automata v0.4.8
  Downloaded libc v0.2.161
  Downloaded linux-raw-sys v0.4.14
  Downloaded podman-rest-client v0.13.0
  Downloaded 145 crates (12.5 MB) in 1.48s (largest was `linux-raw-sys` at 1.8 MB)
   Compiling proc-macro2 v1.0.89
   Compiling unicode-ident v1.0.13
   Compiling libc v0.2.161
   Compiling pin-project-lite v0.2.15
   Compiling itoa v1.0.11
   Compiling autocfg v1.4.0
   Compiling serde v1.0.213
   Compiling futures-sink v0.3.31
   Compiling futures-core v0.3.31
   Compiling bytes v1.8.0
   Compiling memchr v2.7.4
   Compiling hashbrown v0.15.0
   Compiling futures-io v0.3.31
   Compiling futures-task v0.3.31
   Compiling once_cell v1.20.2
   Compiling glob v0.3.1
   Compiling equivalent v1.0.1
   Compiling fnv v1.0.7
   Compiling pin-utils v0.1.0
   Compiling cfg-if v1.0.0
   Compiling bitflags v2.6.0
   Compiling minimal-lexical v0.2.1
   Compiling regex-syntax v0.8.5
   Compiling httparse v1.9.5
   Compiling atomic-waker v1.1.2
   Compiling try-lock v0.2.5
   Compiling tinyvec_macros v0.1.1
   Compiling either v1.13.0
   Compiling bindgen v0.69.5
   Compiling percent-encoding v2.3.1
   Compiling shlex v1.3.0
   Compiling libloading v0.8.5
   Compiling httpdate v1.0.3
   Compiling smallvec v1.13.2
   Compiling tinyvec v1.8.0
   Compiling rustix v0.38.38
   Compiling futures-channel v0.3.31
   Compiling want v0.3.1
   Compiling thiserror v1.0.65
   Compiling lazycell v1.3.0
   Compiling rustc-hash v1.1.0
   Compiling lazy_static v1.5.0
   Compiling unicode-bidi v0.3.17
   Compiling form_urlencoded v1.2.1
   Compiling serde_json v1.0.132
   Compiling utf8parse v0.2.2
   Compiling tracing-core v0.1.32
   Compiling tower-service v0.3.3
   Compiling cfg_aliases v0.2.1
   Compiling ryu v1.0.18
   Compiling itertools v0.12.1
   Compiling linux-raw-sys v0.4.14
   Compiling anstyle-parse v0.2.6
   Compiling time-core v0.1.2
   Compiling colorchoice v1.0.3
   Compiling nix v0.29.0
   Compiling anstyle v1.0.9
   Compiling num-conv v0.1.0
   Compiling anstyle-query v1.1.2
   Compiling powerfmt v0.2.0
   Compiling is_terminal_polyfill v1.70.1
   Compiling log v0.4.22
   Compiling strsim v0.11.1
   Compiling heck v0.5.0
   Compiling hex v0.4.3
   Compiling num_threads v0.1.7
   Compiling adler2 v2.0.0
   Compiling winnow v0.6.20
   Compiling time-macros v0.2.18
   Compiling deranged v0.3.11
   Compiling clap_lex v0.7.2
   Compiling colored v2.1.0
   Compiling miniz_oxide v0.8.0
   Compiling anstream v0.6.17
   Compiling crc32fast v1.4.2
   Compiling clang-sys v1.8.1
   Compiling home v0.5.9
   Compiling base64 v0.22.1
   Compiling slab v0.4.9
   Compiling fs_extra v1.3.0
   Compiling http v1.1.0
   Compiling nom v7.1.3
   Compiling indexmap v2.6.0
   Compiling quote v1.0.37
   Compiling clap_builder v4.5.20
   Compiling syn v2.0.85
   Compiling flate2 v1.0.34
   Compiling unicode-normalization v0.1.24
   Compiling idna v0.5.0
   Compiling regex-automata v0.4.8
   Compiling http-body v1.0.1
   Compiling url v2.5.2
   Compiling cexpr v0.6.0
   Compiling mio v1.0.2
   Compiling socket2 v0.5.7
   Compiling signal-hook-registry v1.4.2
   Compiling errno v0.3.9
   Compiling time v0.3.36
   Compiling getrandom v0.2.15
   Compiling filetime v0.2.25
   Compiling regex v1.11.1
   Compiling uuid v1.11.0
   Compiling xattr v1.3.1
   Compiling which v6.0.3
   Compiling tar v0.4.42
   Compiling simple_logger v5.0.0
   Compiling serde_derive v1.0.213
   Compiling futures-macro v0.3.31
   Compiling tokio-macros v2.4.0
   Compiling tracing-attributes v0.1.27
   Compiling thiserror-impl v1.0.65
   Compiling serde_repr v0.1.19
   Compiling async-trait v0.1.83
   Compiling clap_derive v4.5.18
   Compiling smart-default v0.7.1
   Compiling tokio v1.41.0
   Compiling futures-util v0.3.31
   Compiling tracing v0.1.40
   Compiling clap v4.5.20
   Compiling loopdev-3 v0.5.1
   Compiling http-body-util v0.1.2
   Compiling futures-executor v0.3.31
   Compiling futures v0.3.31
   Compiling sys-mount v3.0.1
   Compiling tokio-util v0.7.12
   Compiling h2 v0.4.6
   Compiling serde_with v3.11.0
   Compiling toml_datetime v0.6.8
   Compiling serde_spanned v0.6.8
   Compiling serde_urlencoded v0.7.1
   Compiling serde_path_to_error v0.1.16
   Compiling toml_edit v0.22.22
   Compiling toml v0.8.19
   Compiling bollard-stubs v1.45.0-rc.26.0.1
   Compiling hyper v1.5.0
   Compiling hyper-util v0.1.9
   Compiling hyperlocal v0.9.1
   Compiling podman-rest-client v0.13.0
   Compiling bollard v0.17.1
   Compiling buildfs v0.3.0
error[E0658]: use of unstable library feature 'file_create_new'
   --> /home/bjorn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/buildfs-0.3.0/src/run.rs:408:13
    |
408 | ...   std::fs::File::create_new(destination_path.adjoin_absolute(&file_path))
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: see issue #105135 <https://github.com/rust-lang/rust/issues/105135> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `buildfs` (bin "buildfs") due to previous error
error: failed to compile `buildfs v0.3.0`, intermediate artifacts can be found at `/tmp/cargo-installI8AWbY`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
@bringert
Copy link
Author

It looks like that feature (rust-lang/rust#105135) was stabilized at some point after 1.75.0. 1.75.0 is the version that sudo apt-get install cargowill get you in Ubuntu 24.04.

I solved it by installing rustup instead of cargo, and then using that to install 1.82.0:

$ sudo apt-get install rustup
$ rustup default stable
$ cargo install buildfs

It might be good to document this version dependency.

@kanpov
Copy link
Member

kanpov commented Oct 28, 2024

Sure, it might be worth it to document the MSRV of this crate. As a tip, you probably shouldn't use your distro's rustc and cargo and use rustup instead, it's almost always a better idea.

@kanpov
Copy link
Member

kanpov commented Oct 28, 2024

0.3.1 documents the MSRV in rust-version and the README, plus bumps deps.

Admittedly, 1.80.0 is a bit too conservative but easier for me to maintain realistically.

@kanpov kanpov closed this as completed Oct 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants