Eraden / amdgpud

MIT License
192 stars 11 forks source link

Unable to install amdfand v1.0.12-1 on arch linux #67

Closed winstonrc closed 6 months ago

winstonrc commented 9 months ago

I am having issues installing and building amdfand version 1.0.12-1 from the aur on my arch linux build.

When updating the package, I run into the following error message:

   Compiling unwinding v0.2.1
error[E0554]: `#![feature]` may not be used on the stable release channel
 --> /tmp/makepkg/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unwinding-0.2.1/src/lib.rs:2:1
  |
2 | #![feature(c_unwind)]
  | ^^^^^^^^^^^^^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> /tmp/makepkg/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unwinding-0.2.1/src/lib.rs:3:1
  |
3 | #![feature(naked_functions)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> /tmp/makepkg/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unwinding-0.2.1/src/lib.rs:4:1
  |
4 | #![feature(non_exhaustive_omitted_patterns_lint)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0554`.
error: could not compile `unwinding` (lib) due to 3 previous errors

My setup:

Kernel: 6.7.0-arch3-1
DE: Plasma 5.27.10
erenard commented 8 months ago

I can confirm the problem on the AUR package amdfand.

   Compiling unwinding v0.2.1
error[E0554]: `#![feature]` may not be used on the stable release channel
 --> /home/eric/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unwinding-0.2.1/src/lib.rs:2:1
  |
2 | #![feature(c_unwind)]
  | ^^^^^^^^^^^^^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> /home/eric/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unwinding-0.2.1/src/lib.rs:3:1
  |
3 | #![feature(naked_functions)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> /home/eric/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unwinding-0.2.1/src/lib.rs:4:1
  |
4 | #![feature(non_exhaustive_omitted_patterns_lint)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0554`.
error: could not compile `unwinding` (lib) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
==> ERREUR : Une erreur s’est produite dans build().
    Abandon…
erenard commented 8 months ago

Here is a workaround:

> curl https://github.com/eraden.gpg | gpg --import
> pamac install amdgpud
Eraden commented 8 months ago

Hi, this issue originate in rust version used to build crate. For some reason, and I don't know how to fix it, pamac is using stable rust but project requires nightly to be compiled correctly.

I'm not the maintainer of this AUR package so I can't fix it. I also don't have too much time right now since I have now 2 small kids and my hands are too occupied in this project.

If we have here maintainer of AUR package please try following:

cargo +nightly build --frozen --release --bin amdfand
winstonrc commented 8 months ago

Thanks for the insight and for creating this useful tool! I see that you commented on the AUR page as well, so hopefully the maintainer follows your tip and it fixes the issue.

I'll leave this issue open for now in case others come here looking for a similar resolution and then close it if/when the package is working again.

yochananmarqos commented 8 months ago

1.0.12 doesn't compile with the latest nightly toolchain, either:

info: syncing channel updates for 'nightly-x86_64-unknown-linux-gnu'
info: latest update on 2024-02-26, rust version 1.78.0-nightly (0ecbd0605 2024-02-25)
error[E0635]: unknown feature `stdsimd`
  --> /build/amdgpud/src/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.7/src/lib.rs:33:42
   |
33 | #![cfg_attr(feature = "stdsimd", feature(stdsimd))]
   |                                          ^^^^^^^

For more information about this error, try `rustc --explain E0635`.
error: could not compile `ahash` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...

EDIT: From the latest commit:

   Compiling memmap2 v0.3.1
error[E0635]: unknown feature `stdsimd`
  --> /build/amdgpud-git/src/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.7/src/lib.rs:33:42
   |
33 | #![cfg_attr(feature = "stdsimd", feature(stdsimd))]
   |                                          ^^^^^^^

   Compiling wayland-client v0.29.5
For more information about this error, try `rustc --explain E0635`.
error: could not compile `ahash` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
winstonrc commented 7 months ago

error[E0635]: unknown feature stdsimd

This appears to be due to the ahash dependency, with the fix implemented here: https://github.com/tkaitchuck/aHash/pull/183

Edit: Here's the dependency tree:

amdfand v1.0.14 (amdgpud/crates/amdfand)
├── amdgpu v1.0.12 (amdgpud/crates/amdgpu)
│   ├── egui-winit v0.18.0
│   │   ├── egui v0.18.1
│   │   │   ├── ahash v0.7.8
│   │   │   │   ├── getrandom v0.2.12
│   │   │   │   │   ├── cfg-if v1.0.0
│   │   │   │   │   └── libc v0.2.153
│   │   │   │   └── once_cell v1.19.0
│   │   │   │   [build-dependencies]
│   │   │   │   └── version_check v0.9.4
│   │   │   ├── epaint v0.18.1
│   │   │   │   ├── ab_glyph v0.2.23
│   │   │   │   │   ├── ab_glyph_rasterizer v0.1.8
│   │   │   │   │   └── owned_ttf_parser v0.20.0
│   │   │   │   │       └── ttf-parser v0.20.0
│   │   │   │   ├── ahash v0.7.8 (*)
│   │   │   │   ├── emath v0.18.0
│   │   │   │   ├── nohash-hasher v0.2.0
│   │   │   │   └── parking_lot v0.12.1
│   │   │   │       ├── lock_api v0.4.11
│   │   │   │       │   └── scopeguard v1.2.0
│   │   │   │       │   [build-dependencies]
│   │   │   │       │   └── autocfg v1.1.0
│   │   │   │       └── parking_lot_core v0.9.9
│   │   │   │           ├── cfg-if v1.0.0
│   │   │   │           ├── libc v0.2.153
│   │   │   │           └── smallvec v1.13.2
│   │   │   ├── nohash-hasher v0.2.0
│   │   │   └── tracing v0.1.40
│   │   │       ├── pin-project-lite v0.2.13
│   │   │       ├── tracing-attributes v0.1.27 (proc-macro)
│   │   │       │   ├── proc-macro2 v1.0.79
│   │   │       │   │   └── unicode-ident v1.0.12
│   │   │       │   ├── quote v1.0.35
│   │   │       │   │   └── proc-macro2 v1.0.79 (*)
│   │   │       │   └── syn v2.0.55
│   │   │       │       ├── proc-macro2 v1.0.79 (*)
│   │   │       │       ├── quote v1.0.35 (*)
│   │   │       │       └── unicode-ident v1.0.12
│   │   │       └── tracing-core v0.1.32
│   │   │           └── once_cell v1.19.0
│   │   ├── instant v0.1.12
│   │   │   └── cfg-if v1.0.0
│   │   ├── tracing v0.1.40 (*)
│   │   └── winit v0.26.1
│   │       ├── bitflags v1.3.2
│   │       ├── instant v0.1.12 (*)
│   │       ├── lazy_static v1.4.0
│   │       ├── libc v0.2.153
│   │       ├── log v0.4.21
│   │       ├── mio v0.8.11
│   │       │   ├── libc v0.2.153
│   │       │   └── log v0.4.21
│   │       ├── parking_lot v0.11.2
│   │       │   ├── instant v0.1.12 (*)
│   │       │   ├── lock_api v0.4.11 (*)
│   │       │   └── parking_lot_core v0.8.6
│   │       │       ├── cfg-if v1.0.0
│   │       │       ├── instant v0.1.12 (*)
│   │       │       ├── libc v0.2.153
│   │       │       └── smallvec v1.13.2
│   │       ├── percent-encoding v2.3.1
│   │       ├── raw-window-handle v0.4.3
│   │       │   └── cty v0.2.2
│   │       ├── smithay-client-toolkit v0.15.4
│   │       │   ├── bitflags v1.3.2
│   │       │   ├── calloop v0.9.3
│   │       │   │   ├── log v0.4.21
│   │       │   │   └── nix v0.22.3
│   │       │   │       ├── bitflags v1.3.2
│   │       │   │       ├── cfg-if v1.0.0
│   │       │   │       ├── libc v0.2.153
│   │       │   │       └── memoffset v0.6.5
│   │       │   │           [build-dependencies]
│   │       │   │           └── autocfg v1.1.0
│   │       │   ├── dlib v0.5.2
│   │       │   │   └── libloading v0.8.3
│   │       │   │       └── cfg-if v1.0.0
│   │       │   ├── lazy_static v1.4.0
│   │       │   ├── log v0.4.21
│   │       │   ├── memmap2 v0.3.1
│   │       │   │   └── libc v0.2.153
│   │       │   ├── nix v0.22.3 (*)
│   │       │   ├── wayland-client v0.29.5
│   │       │   │   ├── bitflags v1.3.2
│   │       │   │   ├── downcast-rs v1.2.0
│   │       │   │   ├── libc v0.2.153
│   │       │   │   ├── nix v0.24.3
│   │       │   │   │   ├── bitflags v1.3.2
│   │       │   │   │   ├── cfg-if v1.0.0
│   │       │   │   │   ├── libc v0.2.153
│   │       │   │   │   └── memoffset v0.6.5 (*)
│   │       │   │   ├── scoped-tls v1.0.1
│   │       │   │   ├── wayland-commons v0.29.5
│   │       │   │   │   ├── nix v0.24.3 (*)
│   │       │   │   │   ├── once_cell v1.19.0
│   │       │   │   │   ├── smallvec v1.13.2
│   │       │   │   │   └── wayland-sys v0.29.5
│   │       │   │   │       ├── dlib v0.5.2 (*)
│   │       │   │   │       └── lazy_static v1.4.0
│   │       │   │   │       [build-dependencies]
│   │       │   │   │       └── pkg-config v0.3.30
│   │       │   │   └── wayland-sys v0.29.5 (*)
│   │       │   │   [build-dependencies]
│   │       │   │   └── wayland-scanner v0.29.5
│   │       │   │       ├── proc-macro2 v1.0.79 (*)
│   │       │   │       ├── quote v1.0.35 (*)
│   │       │   │       └── xml-rs v0.8.19
│   │       │   ├── wayland-cursor v0.29.5
│   │       │   │   ├── nix v0.24.3 (*)
│   │       │   │   ├── wayland-client v0.29.5 (*)
│   │       │   │   └── xcursor v0.3.5
│   │       │   └── wayland-protocols v0.29.5
│   │       │       ├── bitflags v1.3.2
│   │       │       ├── wayland-client v0.29.5 (*)
│   │       │       └── wayland-commons v0.29.5 (*)
│   │       │       [build-dependencies]
│   │       │       └── wayland-scanner v0.29.5 (*)
│   │       │   [build-dependencies]
│   │       │   └── pkg-config v0.3.30
│   │       ├── wayland-client v0.29.5 (*)
│   │       ├── wayland-protocols v0.29.5 (*)
│   │       └── x11-dl v2.21.0
│   │           ├── libc v0.2.153
│   │           └── once_cell v1.19.0
│   │           [build-dependencies]
│   │           └── pkg-config v0.3.30
│   ├── gumdrop v0.8.1
│   │   └── gumdrop_derive v0.8.1 (proc-macro)
│   │       ├── proc-macro2 v1.0.79 (*)
│   │       ├── quote v1.0.35 (*)
│   │       └── syn v1.0.109
│   │           ├── proc-macro2 v1.0.79 (*)

ahash ultimately needs to be updated to v0.8.7, but it looks like the current version of egui v.0.26.2 still depends on ahash v0.8.6.

Eraden commented 7 months ago

I'm trying to update egui but Emik changed a lot and there's no support for glium/glow so it must be now rewritten to wgpu

winstonrc commented 7 months ago

That's definitely an undertaking. I'd love to help, but I think it would take me awhile to get up to speed with the repo and libraries.

Maybe this repo would be a helpful reference for you: https://github.com/ejb004/egui-wgpu-demo

Eraden commented 7 months ago

Hi, I upgraded dependencies for entire project. Please check if anything changed.

Major change:

The reason behind this is I don't have enough time to maintain 3 and egui changed to such degree porting my old code is impossible.

I hope I fixed all issues, at least for some time

winstonrc commented 6 months ago

Thanks so much @Eraden. It's now compiling. I'll go ahead and close this issue since the issue with package on aur is now a matter of the new maintainer updating it.