daa84 / neovim-gtk

gtk ui for neovim
GNU General Public License v3.0
716 stars 57 forks source link

Ubuntu/Debian packages #132

Open pjz opened 5 years ago

pjz commented 5 years ago

Given the difficulty in building (requiring a nightly build of rust to compile, etc), it would be nice if there were prebuilt binaries for Ubuntu/Debian.

VentGrey commented 5 years ago

I compiled this using Rust stable (1.27.2) now 1.28

Though I think upstream could use cargo-deb to build some binaries, however providing a Debian stable package is currently not possible since the latest rustc in Stretch is 1.24 & there is no cargo package manager unless there's a way to stick the binaries up there with all deps maybe via static linking

pjz commented 5 years ago

Okay, so not Debian. How about Ubuntu Bionic (18.04, which is a LTS release)?

VentGrey commented 5 years ago

Maybe if Ubuntu ships with the necessary dependencies, we are lucky the project does not need Rust nightly for now.

baco commented 5 years ago

I compiled this using Rust stable (1.27.2) now 1.28

Though I think upstream could use cargo-deb to build some binaries, however providing a Debian stable package is currently not possible since the latest rustc in Stretch is 1.24 & there is no cargo package manager unless there's a way to stick the binaries up there with all deps maybe via static linking

Ok, but Stretch is the last one in the chain. Probably not even the right version of NeoVim will reach Stretch before its end of life. What about building an actual package for Testing or Sid/Unstable that are the entry-points (Sid/Unstable) for new packages in Debian anyways?

pjz commented 5 years ago

It looks like Ubuntu 18.04 ships rustc 1.25, but 18.10 will ship 1.28... possible then?

baco commented 5 years ago
$ apt policy rustc
rustc:
  Candidate: 1.28.0+dfsg1-2
  Version table:
     1.29.0+dfsg1-1 500
        500 http://httpredir.debian.org/debian sid/main amd64 Packages
     1.28.0+dfsg1-2 990
        990 http://httpredir.debian.org/debian testing/main amd64 Packages

this is why I am asking if it is possible to also include Debian repositories in this.

Again, Sid is the first point a package is introduced. Newer versions enter at this point and then they decant to more stable (frozen) flavours of Debian releases as long as they complete their cycle.

For instance, NeoVim version on Sid is 0.3.1; and then on Buster is 0.2.2, and finally on Stretch is 0.1.7; that last one not even useful to run as backend of NeoVim-GTK

XVilka commented 5 years ago

Debian is famous for lagging behind. With Rust releases frequency Debian will be always too slow for any modern Rust programming. I think that providing the statically built binaries and pack them in *.deb is better way to distribute. And for rust itself it is better to use rustup on such distributions.

baco commented 5 years ago

@XVilka you do realize that's a false statement, don't you?

https://blog.rust-lang.org/2019/02/28/Rust-1.33.0.html

baco@aurora:~$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
baco@aurora:~$ apt policy rustc
rustc:
  Installed: 1.32.0+dfsg1-1
  Candidate: 1.32.0+dfsg1-1
baco@aurora:~$ apt policy cargo
cargo:
  Installed: 0.33.0-1
  Candidate: 0.33.0-1

and that's more than enough to compile neovim-gtk; which I know for a fact because I compile it myself with those versions.

So, the Debian package can be built. It's only a matter of some maintainer to, after compilation, pack the .deb file.

XVilka commented 5 years ago

@baco my apologies then. My previous experience with Debian and Rust wasn't good though. I use repology as a source.