xlmnxp / blue-recorder

Simple Screen Recorder written in Rust based on Green Recorder
Other
520 stars 26 forks source link

`cargo build` fails locally #60

Closed hamirmahal closed 4 months ago

hamirmahal commented 8 months ago
$  time cargo build
    Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
   Compiling gdk4-sys v0.4.8
   Compiling rustix v0.37.25
   Compiling glib v0.19.0 (https://github.com/gtk-rs/gtk-rs-core#d1fdc2ea)
   Compiling blocking v1.4.1
   Compiling gobject-sys v0.10.0
   Compiling serde v1.0.189
   Compiling glib-sys v0.17.10
   Compiling polling v2.8.0
error: failed to run custom build command for `gdk4-sys v0.4.8`

Caused by:
  process didn't exit successfully: `/home/hamir/blue-recorder/target/debug/build/gdk4-sys-6f38647fc557b03b/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=GTK4_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

  --- stderr
  `PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" "pkg-config" "--libs" "--cflags" "gtk4" "gtk4 >= 4.7"` did not exit successfully: exit status: 1
  error: could not find system library 'gtk4' required by the 'gdk4-sys' crate

  --- stderr
  Requested 'gtk4 >= 4.7' but version of GTK is 4.6.9

warning: build failed, waiting for other jobs to finish...

real    0m5.811s
user    0m12.976s
sys     0m1.163s
hamirmahal commented 8 months ago

How do you recommend that we get the latest version of gtk4?

$  pkg-config --modversion gtk4
4.6.9

I think potential contributors would appreciate having that documented in README.md.

hamirmahal commented 8 months ago

I tried running

sudo apt update && sudo apt install ffmpeg libgtk-3-dev libgdk-pixbuf2.0-dev libglib2.0-dev gettext libappindicator3-dev x11-utils pulseaudio

and

sudo apt install build-essential clang cargo libappindicator3-1 x11-utils gettext pulseaudio ffmpeg

and cargo build still fails.

xlmnxp commented 8 months ago

I tried running

sudo apt update && sudo apt install ffmpeg libgtk-3-dev libgdk-pixbuf2.0-dev libglib2.0-dev gettext libappindicator3-dev x11-utils pulseaudio

and

sudo apt install build-essential clang cargo libappindicator3-1 x11-utils gettext pulseaudio ffmpeg

and cargo build still fails.

You are correct, the instructions is for old version (was based on gtk3) I will update the instructions for gtk4 (just use gtk-4-dev)

hamirmahal commented 6 months ago

You are correct, the instructions is for old version (was based on gtk3) I will update the instructions for gtk4 (just use gtk-4-dev)

I'm having trouble with that.

~/blue-recorder (master)$  sudo apt-get install gtk-4-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package gtk-4-dev
xlmnxp commented 6 months ago

what is your distro and version?

hamirmahal commented 6 months ago
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.4 LTS
Release:    22.04
Codename:   jammy
xlmnxp commented 6 months ago
$ lsb_release -a
No LSB modules are available.
Distributor ID:   Ubuntu
Description:  Ubuntu 22.04.4 LTS
Release:  22.04
Codename: jammy

install libgtk-4-dev

hamirmahal commented 6 months ago

It still fails.

hamir@hamir-desktop:~/blue-recorder (master)$  sudo apt install libgtk-4-dev
[sudo] password for hamir:      
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libgtk-4-dev is already the newest version (4.6.9+ds-0ubuntu0.22.04.1).
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
hamir@hamir-desktop:~/blue-recorder (master)$  cargo build
    Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
    Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
   Compiling gdk4-sys v0.4.8
   Compiling async-io v1.13.0
   Compiling ahash v0.7.6
   Compiling num-traits v0.2.17
   Compiling memoffset v0.7.1
   Compiling gio v0.15.12
   Compiling zvariant_derive v3.15.0
   Compiling crypto-common v0.1.6
error: failed to run custom build command for `gdk4-sys v0.4.8`

Caused by:
  process didn't exit successfully: `/home/hamir/blue-recorder/target/debug/build/gdk4-sys-6f38647fc557b03b/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=GTK4_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

  --- stderr
  `PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" "pkg-config" "--libs" "--cflags" "gtk4" "gtk4 >= 4.7"` did not exit successfully: exit status: 1
  error: could not find system library 'gtk4' required by the 'gdk4-sys' crate

  --- stderr
  Requested 'gtk4 >= 4.7' but version of GTK is 4.6.9

warning: build failed, waiting for other jobs to finish...
hamir@hamir-desktop:~/blue-recorder (master)$  git pull
Already up to date.
xlmnxp commented 4 months ago

fixed, now you can build blue recorder in Ubuntu 20.04

hamirmahal commented 4 months ago

It still seems to fail on Ubuntu 22.04.

hamir@hamir-desktop:~/blue-recorder (master)$  pkg-config --modversion gtk4
4.6.9
hamir@hamir-desktop:~/blue-recorder (master)$  sudo apt-get install gtk-4-dev
[sudo] password for hamir: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package gtk-4-dev
hamir@hamir-desktop:~/blue-recorder (master)$  sudo apt install libgtk-4-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libgtk-4-dev is already the newest version (4.6.9+ds-0ubuntu0.22.04.2).
The following packages were automatically installed and are no longer required:
  libstd-rust-1.75 libstd-rust-dev
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 46 not upgraded.
hamir@hamir-desktop:~/blue-recorder (master)$  cargo build
    Updating crates.io index
    Updating git repository `https://github.com/gtk-rs/gtk4-rs.git`
error: failed to get `gdk4` as a dependency of package `blue-recorder v0.2.0 (/home/hamir/blue-recorder)`

Caused by:
  failed to load source for dependency `gdk4`

Caused by:
  Unable to update https://github.com/gtk-rs/gtk4-rs.git#39262e1d

Caused by:
  failed to fetch into: /home/hamir/.cargo/git/db/gtk4-rs-e74ad56283dfeb5e

Caused by:
  network failure seems to have happened
  if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
  https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

Caused by:
  SSL error: unknown error; class=Ssl (16)
hamir@hamir-desktop:~/blue-recorder (master)$  git log
commit ee02a8f0ba930e6e0f9a96636ea95b80fb4695c1 (HEAD -> master, origin/master, origin/HEAD)
Author: Salem Yaslem <s@sy.sa>
Date:   Mon Jun 3 20:44:14 2024 +0300

    allow blue recorder to build in Ubuntu 20.04
xlmnxp commented 4 months ago

It still seems to fail on Ubuntu 22.04.

hamir@hamir-desktop:~/blue-recorder (master)$  pkg-config --modversion gtk4
4.6.9
hamir@hamir-desktop:~/blue-recorder (master)$  sudo apt-get install gtk-4-dev
[sudo] password for hamir: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package gtk-4-dev
hamir@hamir-desktop:~/blue-recorder (master)$  sudo apt install libgtk-4-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libgtk-4-dev is already the newest version (4.6.9+ds-0ubuntu0.22.04.2).
The following packages were automatically installed and are no longer required:
  libstd-rust-1.75 libstd-rust-dev
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 46 not upgraded.
hamir@hamir-desktop:~/blue-recorder (master)$  cargo build
    Updating crates.io index
    Updating git repository `https://github.com/gtk-rs/gtk4-rs.git`
error: failed to get `gdk4` as a dependency of package `blue-recorder v0.2.0 (/home/hamir/blue-recorder)`

Caused by:
  failed to load source for dependency `gdk4`

Caused by:
  Unable to update https://github.com/gtk-rs/gtk4-rs.git#39262e1d

Caused by:
  failed to fetch into: /home/hamir/.cargo/git/db/gtk4-rs-e74ad56283dfeb5e

Caused by:
  network failure seems to have happened
  if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
  https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

Caused by:
  SSL error: unknown error; class=Ssl (16)
hamir@hamir-desktop:~/blue-recorder (master)$  git log
commit ee02a8f0ba930e6e0f9a96636ea95b80fb4695c1 (HEAD -> master, origin/master, origin/HEAD)
Author: Salem Yaslem <s@sy.sa>
Date:   Mon Jun 3 20:44:14 2024 +0300

    allow blue recorder to build in Ubuntu 20.04

you will need to install other dependencies

sudo apt install  build-essential clang librust-gstreamer-sys-dev librust-gdk-sys-dev librust-atk-dev librust-gtk4-sys-dev libgdk-pixbuf-2.0-dev  librust-pango-dev librust-gobject-sys-dev ffmpeg