l1npengtul / nokhwa

Cross Platform Rust Library for Powerful Webcam/Camera Capture
Apache License 2.0
533 stars 137 forks source link

Can't compile on archlinux 6.5.5-arch1-1 #148

Open tryedandcatched opened 1 year ago

tryedandcatched commented 1 year ago

Hi thanks you for taking time to read this issues. first of all i'm on arch linux with the kernel 6.5.5-arch1-1. my cargo is cargo 1.72.0 (103a7ff2e 2023-08-15). i'm on hyprland. my computer is an Lenovo Legion 5.

here what i did :

( ~ )  ››› git clone https://github.com/l1npengtul/nokhwa.git
Cloning into 'nokhwa'...
remote: Enumerating objects: 3541, done.
remote: Counting objects: 100% (993/993), done.
remote: Compressing objects: 100% (345/345), done.
remote: Total 3541 (delta 640), reused 938 (delta 611), pack-reused 2548
Receiving objects: 100% (3541/3541), 7.13 MiB | 376.00 KiB/s, done.
Resolving deltas: 100% (2232/2232), done.
  ( ~ )  ››› cd nokhwa/
  ( nokhwa )  ››› cd examples/
  ( examples )  ››› cd capture/
  ( capture )  ››› ls
Cargo.toml  Info.plist  Makefile  README.md  example-capture  src
  ( capture )  ››› cargo run --release

and errors i got

error: expected one of `(`, `.`, `::`, `;`, `?`, `}`, or an operator, found `:`
   --> nokhwa-core/src/format_request.rs:20:35
    |
20  |                         self.$name: Option<Range<$range_type>> = Some(Range {
    |                                   ^ expected one of 7 possible tokens
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: expected one of `(`, `.`, `::`, `;`, `?`, `}`, or an operator, found `:`
   --> nokhwa-core/src/format_request.rs:45:35
    |
45  |                         self.$name: Option<Range<$range_type>> = Some(Range {
    |                                   ^ expected one of 7 possible tokens
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: expected one of `(`, `.`, `::`, `;`, `?`, `}`, or an operator, found `:`
   --> nokhwa-core/src/format_request.rs:60:35
    |
60  |                         self.$name: Option<Range<$range_type>> = Some(Range {
    |                                   ^ expected one of 7 possible tokens
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: expected one of `(`, `.`, `::`, `;`, `?`, `}`, or an operator, found `:`
   --> nokhwa-core/src/format_request.rs:76:35
    |
76  |                         self.$name: Option<Range<$range_type>> = Some(Range {
    |                                   ^ expected one of 7 possible tokens
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: expected one of `(`, `.`, `::`, `;`, `?`, `}`, or an operator, found `:`
   --> nokhwa-core/src/format_request.rs:91:35
    |
91  |                         self.$name: Option<Range<$range_type>> = Some(Range {
    |                                   ^ expected one of 7 possible tokens
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: expected one of `(`, `.`, `::`, `;`, `?`, `}`, or an operator, found `:`
   --> nokhwa-core/src/format_request.rs:115:35
    |
115 |                         self.$name: Option<Range<$range_type>> = Some(Range {
    |                                   ^ expected one of 7 possible tokens
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: expected `;`, found keyword `Self`
   --> nokhwa-core/src/format_request.rs:125:35
    |
125 |                 self.$name = $name
    |                                   ^ help: add `;` here
126 |                 Self
    |                 ---- unexpected token
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:14:46
    |
14  |             pub fn [< with_maximum_ $name >](mut self, $name: $range_type) -> Self {
    |                                              ^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:30:47
    |
30  |             pub fn [< reset_maximum_ $name >](mut self) -> Self {
    |                                               ^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:39:45
    |
39  |             pub fn [< set_maximum_ $name >](&mut self, $name: Option<$range_type>) {
    |                                             ^^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:54:48
    |
54  |             pub fn [< with_preferred_ $name >](mut self, $name: $range_type) -> Self {
    |                                                ^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:70:47
    |
70  |             pub fn [< set_preferred_ $name >](&mut self, $name: $range_type) {
    |                                               ^^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:85:46
    |
85  |             pub fn [< with_minimum_ $name >](mut self, $name: $range_type) -> Self {
    |                                              ^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:101:47
    |
101 |             pub fn [< reset_minimum_ $name >](mut self) -> Self {
    |                                               ^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:109:45
    |
109 |             pub fn [< set_minimum_ $name >](&mut self, $name: Option<$range_type>) {
    |                                             ^^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:124:45
    |
124 |             pub fn [< with_ $name _range >](mut self, $name: Option<Range<$range_type>>) -> Self {
    |                                             ^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error: `self` parameter is only allowed in associated functions
   --> nokhwa-core/src/format_request.rs:129:44
    |
129 |             pub fn [< set_ $name _range >](&mut self, $name: Option<Range<$range_type>>) {
    |                                            ^^^^^^^^^ not semantically valid as function parameter
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: associated functions are those in `impl` or `trait` definitions
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0433]: failed to resolve: use of undeclared crate or module `serde`
 --> nokhwa-core/src/decoder.rs:3:5
  |
3 | use serde::de::Error;
  |     ^^^^^ use of undeclared crate or module `serde`

   Compiling v4l2-sys-mit v0.2.0
error[E0432]: unresolved import `crate::frame_format::SourceFrameFormat`
  --> nokhwa-core/src/buffer.rs:17:13
   |
17 | use crate::{frame_format::SourceFrameFormat, types::Resolution};
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `SourceFrameFormat` in `frame_format`

error[E0432]: unresolved import `crate::frame_format::SourceFrameFormat`
 --> nokhwa-core/src/format_request.rs:1:5
  |
1 | use crate::frame_format::SourceFrameFormat;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `SourceFrameFormat` in `frame_format`

error[E0432]: unresolved imports `crate::format_request::FormatFilter`, `crate::frame_format::SourceFrameFormat`
  --> nokhwa-core/src/traits.rs:20:5
   |
20 |     format_request::FormatFilter,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `FormatFilter` in `format_request`
21 |     frame_format::SourceFrameFormat,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `SourceFrameFormat` in `frame_format`

error[E0411]: cannot find type `Self` in this scope
   --> nokhwa-core/src/format_request.rs:14:79
    |
14  |             pub fn [< with_maximum_ $name >](mut self, $name: $range_type) -> Self {
    |                    ------------------------- `Self` not allowed in a function ^^^^ `Self` is only available in impls, traits, and type definitions
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0411]: cannot find type `Self` in this scope
   --> nokhwa-core/src/format_request.rs:30:60
    |
30  |             pub fn [< reset_maximum_ $name >](mut self) -> Self {
    |                    --------------------------              ^^^^ `Self` is only available in impls, traits, and type definitions
    |                    |
    |                    `Self` not allowed in a function
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0411]: cannot find type `Self` in this scope
   --> nokhwa-core/src/format_request.rs:54:81
    |
54  |             pub fn [< with_preferred_ $name >](mut self, $name: $range_type) -> Self {
    |                    --------------------------- `Self` not allowed in a function ^^^^ `Self` is only available in impls, traits, and type definitions
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0411]: cannot find type `Self` in this scope
   --> nokhwa-core/src/format_request.rs:85:79
    |
85  |             pub fn [< with_minimum_ $name >](mut self, $name: $range_type) -> Self {
    |                    ------------------------- `Self` not allowed in a function ^^^^ `Self` is only available in impls, traits, and type definitions
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0411]: cannot find type `Self` in this scope
   --> nokhwa-core/src/format_request.rs:101:60
    |
101 |             pub fn [< reset_minimum_ $name >](mut self) -> Self {
    |                    --------------------------              ^^^^ `Self` is only available in impls, traits, and type definitions
    |                    |
    |                    `Self` not allowed in a function
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0411]: cannot find type `Self` in this scope
   --> nokhwa-core/src/format_request.rs:124:93
    |
124 |             pub fn [< with_ $name _range >](mut self, $name: Option<Range<$range_type>>) -> Self {
    |                    ------------------------ `Self` not allowed in a function                ^^^^ `Self` is only available in impls, traits, and type definitions
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0425]: cannot find value `Self` in this scope
   --> nokhwa-core/src/format_request.rs:126:17
    |
126 |                 Self
    |                 ^^^^ help: a local variable with a similar name exists (notice the capitalization): `self`
...
210 | range_set_fields!((Resolution, resolution), (u32, frame_rate),);
    | --------------------------------------------------------------- in this macro invocation
    |
    = note: this error originates in the macro `range_set_fields` (in Nightly builds, run with -Z macro-backtrace for more info)

(i hope i make an good issues with all information needed) i really dont know what i did wrong. thanks you

Kofituo commented 1 year ago

I also have this issue with the latest branch on Mac. Downgrading is probably the best option (ie build the 0.10 branch instead)