btcsuite / btcd

An alternative full node bitcoin implementation written in Go (golang)
https://github.com/btcsuite/btcd/blob/master/README.md
ISC License
6.28k stars 2.38k forks source link

Provide binaries for popular OSes #85

Open davecgh opened 10 years ago

davecgh commented 10 years ago

Currently the only pre-compiled binaries that are offered are for Windows. It would be nice to offer them for popular OSes such as OSX, Fedora, Mint, Ubuntu, Debian, FreeBSD, and OpenBSD.

esbullington commented 10 years ago

In response to this issue (and my own wishes), I've at least addressed 1 OS by offering signed binaries and apt repository for Linux users for the latest 0.8 release.

I'm hosting them for now at bitcoin-gateway.com, which I had lying around. However, I'm working on automating the build process, so once I finish that and do more testing -- and assuming conformal wants this -- I'd be happy to move them to you all's servers and/or domain.

All the binaries and deb files are signed using my signing key, all available at: https://bitcoin-gateway.com/downloads

The binaries are hosted over SSL connection, and the apt repo is signed. I'm putting all this info and related files up at http://github.com/esbullington/btcd-packaging

Once I've got the process automated and organized, I can either make a PR if you wish to include the build tools here in this repo, or I can continue to host it separately.

Eventually, if there's interest, I'd also like to establish gitian builds for btcd like bitcoin core does, which makes it possible for multiple team members to separately and securely sign a release.

I'd like to do a little more testing before these downloads and repo are advertised. This is just a heads-up in case you saw the repo and wondered what exactly I was doing.

davecgh commented 10 years ago

@esbullington That's awesome news! Thanks for the heads up and your work on this.

We are interested in hosting the binaries, but we'd need to discuss what all it entails. I realize it's trivial to cross-compile btcd with Go to other Operating Systems, but unfortunately that doesn't help with the packaging part for each distro. Feel free to drop by IRC once you have automated things to hash out the details.

esbullington commented 10 years ago

Thanks @davecgh for your input. And yes, compiling the binaries in Go is quite easy, and even making the debs is easy with goxc, but getting those deb binaries to work in a signed apt repo was pretty tricky. Lots of little details to get right.

But the good thing is that now users of Ubuntu, Debian, Mint, and related distros can now easily install btcd without having to install Go.

My opinion is that for Linux, the idea setup is a apt repo for Debian/Ubuntu, an RPM repo for Fedora/RHL/etc, and a signed binary tarball for all the other distros. I've now taken care of 2/3 of those, and I also plan to host an RPM repo, too.

I'll drop by IRC to discuss things in greater detail.

EgorMatirov commented 10 years ago

Hi. I have made PKGBUILD for git version. Now Archlinux users can simply install it from AUR: https://aur.archlinux.org/packages/btcd-git/

l0k18 commented 6 years ago

It is extremely easy to use gox to make the binaries for every platform. With the current latest go version btcd builds (previously it did not due to some integer math issue with 64 bit integers) every possible target. Plan9, freebsd, netbsd, openbsd, even NaCl and a few others.

The only irritating bit then is building the installers. I am working on a fork of btcd and btcwallet for Parallelcoin, and for me the easy auto-configuration of btcctl seems like the way all of the binaries should configure. So I have made them do it this way in my code.

monperrus commented 2 years ago

up to v0.22.0-beta, the Github releases contained binaries (https://github.com/btcsuite/btcd/releases/tag/v0.22.0-beta), which is great.

the more recent Github releases do not contain any binary, but only the source tarball.

Is that on purpose?