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

Failed to execute gitui binary file downloaded from the release page #259

Closed
c02y opened this issue Aug 30, 2020 · 13 comments · Fixed by #261
Closed

Failed to execute gitui binary file downloaded from the release page #259

c02y opened this issue Aug 30, 2020 · 13 comments · Fixed by #261

Comments

@c02y
Copy link

c02y commented Aug 30, 2020

Describe the bug
A clear and concise description of what the bug is.

I downloaded gitui from https://github.com/extrawurst/gitui/releases/download/v0.10.0/gitui-linux-musl.tar.gz
extract and execute ./gitui, failed with:

$ ./gitui
Failed to execute process './gitui'. Reason:
The file './gitui' does not exist or could not be executed.

And the ./gitui has the right permission.

FYI:

$ ldd ./gitui
linux-vdso.so.1 (0x00007ffe637e1000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f706f942000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f706f93d000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f706f935000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f706f76c000)
/lib/ld64.so.1 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f706f9b0000)

To Reproduce
Steps to reproduce the behavior:

  1. download https://github.com/extrawurst/gitui/releases/download/v0.10.0/gitui-linux-musl.tar.gz
  2. extract it
  3. execute it

Expected behavior
A clear and concise description of what you expected to happen.

Successfully working.

Screenshots
If applicable, add screenshots to help explain your problem.

Context (please complete the following information):

  • OS/Distro + Version: [5.7.17-2-MANJARO]
  • GitUI Version [v0.10.0]
  • Rust version: [rustc 1.45.0 (5c1f21c3b 2020-07-13)]

Additional context
Add any other context about the problem here.

@jugglerchris
Copy link

I see the same on Ubuntu 19.10:

$ ./gitui
sh: 1: ./gitui: not found
$ ldd ./gitui
	linux-vdso.so.1 (0x00007ffc23fb3000)
	libgtk3-nocsd.so.0 => /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (0x00007f05d9716000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f05d96ed000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f05d96e7000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f05d96c4000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f05d94d3000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f05d94cd000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f05d94c3000)
	/lib/ld64.so.1 => /lib64/ld-linux-x86-64.so.2 (0x00007f05d994a000)
	libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f05d94a9000)
$ file ./gitui
./gitui: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=0ead58df2438331cfba31c46d33722915f567768, stripped
$ ls -l /lib/ld64.so.1
ls: cannot access '/lib/ld64.so.1': No such file or directory

So it looks like the ELF interpreter is set to /lib/ld64.so.1 which doesn't exist on my system. For reference, something like /bin/ls uses /lib64/ld-linux-x86-64.so.2:

$ file /bin/ls
/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2f15ad836be3339dec0e2e6a3c637e08e48aacbd, for GNU/Linux 3.2.0, stripped

@yermulnik
Copy link

I can also reproduce this on Linux Mint 18.3 Sylvia x86_64 which is based on Ubuntu 16.04 (#18 for details).

@looztra
Copy link

looztra commented Aug 30, 2020

the previous binary released was statically linked

╰─» file /home/cfurmaniak/.asdf/installs/gitui/0.9.1/bin/gitui
/home/cfurmaniak/.asdf/installs/gitui/0.9.1/bin/gitui: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=37819338526ade65a1e6844cd51f6d042cfa079b, stripped

@c02y
Copy link
Author

c02y commented Aug 30, 2020

the previous binary released was statically linked

╰─» file /home/cfurmaniak/.asdf/installs/gitui/0.9.1/bin/gitui
/home/cfurmaniak/.asdf/installs/gitui/0.9.1/bin/gitui: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=37819338526ade65a1e6844cd51f6d042cfa079b, stripped

Mine is dynamically linked

$ file ./gitui
./gitui: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=0ead58df2438331cfba31c46d33722915f567768, stripped

@looztra
Copy link

looztra commented Aug 30, 2020 via email

@extrawurst
Copy link
Owner

yeah I can confirm the linux release binary seems broken due to new dynamically linked dependencies for clipboard support:
#231

unfortunately I need to rely on help by someone with linux experience to sort this out. currently we are looking to find a solution to link the clipboard dependencies statically in our musl build. if that is no option we may have to stop distributing raw linux binaries entirely and leave people building themself or using the few linux packages maintained by third parties.

if anyone is up for helping us with this feel free to join our discord: https://discord.gg/7TGFfuq

@extrawurst
Copy link
Owner

in the meantime I now removed the broken linux binary from the release. in the meantime on linux building locally or using the Arch or Fedora packages by @ignatenkobrain and @wezm are the only option

@yermulnik
Copy link

Any hints on building from source?

> git config --get remote.origin.url
git@github.com:extrawurst/gitui.git

> git pull
Already up to date.

> cargo version
cargo 1.43.0

> rustc --version
rustc 1.43.0

> cargo install --path "."
  Installing gitui v0.10.0 (/home/yz/work/src/CODE/gitui)
    Updating crates.io index
   Compiling gitui v0.10.0 (/home/yz/work/src/CODE/gitui)
error[E0658]: `if` is not allowed in a `const fn`
   --> src/cmdbar.rs:128:9
    |
128 | /         if self.expandable && self.expanded {
129 | |             self.lines
130 | |         } else {
131 | |             1_u16
132 | |         }
    | |_________^
    |
    = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: `match` is not allowed in a `const fn`
  --> src/components/diff.rs:42:9
   |
42 | /         match self {
43 | |             Self::Single(start) | Self::Multiple(start, _) => *start,
44 | |         }
   | |_________^
   |
   = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: or-pattern is not allowed in a `const fn`
  --> src/components/diff.rs:43:13
   |
43 |             Self::Single(start) | Self::Multiple(start, _) => *start,
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: `match` is not allowed in a `const fn`
  --> src/components/diff.rs:48:9
   |
48 | /         match self {
49 | |             Self::Single(end) | Self::Multiple(_, end) => *end,
50 | |         }
   | |_________^
   |
   = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: or-pattern is not allowed in a `const fn`
  --> src/components/diff.rs:49:13
   |
49 |             Self::Single(end) | Self::Multiple(_, end) => *end,
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: `if` is not allowed in a `const fn`
   --> src/components/diff.rs:464:9
    |
464 | /         if hunk_min <= min && hunk_max >= max {
465 | |             return true;
466 | |         }
    | |_________^
    |
    = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: `if` is not allowed in a `const fn`
   --> src/components/diff.rs:469:9
    |
469 | /         if (hunk_min >= min && hunk_min <= max)
470 | |             || (hunk_max >= min && hunk_max <= max)
471 | |         {
472 | |             return true;
473 | |         }
    | |_________^
    |
    = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: `match` is not allowed in a `const fn`
   --> src/components/filetree.rs:209:9
    |
209 | /         match item_type {
210 | |             StatusItemType::Modified => 'M',
211 | |             StatusItemType::New => '+',
212 | |             StatusItemType::Deleted => '-',
213 | |             StatusItemType::Renamed => 'R',
214 | |             StatusItemType::Typechange => ' ',
215 | |         }
    | |_________^
    |
    = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error[E0658]: `if` is not allowed in a `const fn`
   --> src/ui/style.rs:128:9
    |
128 | /         if selected {
129 | |             style.bg(self.selection_bg)
130 | |         } else {
131 | |             style
132 | |         }
    | |_________^
    |
    = note: see issue #49146 <https://github.com/rust-lang/rust/issues/49146> for more information

error: aborting due to 9 previous errors

For more information about this error, try `rustc --explain E0658`.
error: failed to compile `gitui v0.10.0 (/home/yz/work/src/CODE/gitui)`, intermediate artifacts can be found at `/home/yz/work/src/CODE/gitui/target`

Caused by:
  could not compile `gitui`.

To learn more, run the command again with --verbose.

@extrawurst
Copy link
Owner

Yeah using recent rust 1.46

@yermulnik
Copy link

A bit tricky hint for Ubuntu 16.04 usual users along with preferring clipboard support to non-Arch and non-Fedora Linux users...
Anyways thanks for the great tool. I'll be watching and waiting for the next release where I don't need to mess with manual Rust installation (instead of using OS's package manager) to get latest gitui working 😉

@extrawurst
Copy link
Owner

Yeah let's see if a volunteer shows up to do that

@extrawurst
Copy link
Owner

0.10.1 release is on the way

@yermulnik
Copy link

0.10.1 release is on the way

@extrawurst Thanks a bunch! 👍

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

Successfully merging a pull request may close this issue.

5 participants