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

A set of build scripts on top of gitian and vagrant for automating gitian builds... #1597

Closed
wants to merge 1 commit into from

Conversation

maaku
Copy link
Contributor

@maaku maaku commented Jul 13, 2012

...on any platform using Oracle VirtualBox. A minimum number of host dependencies are required.

The gitian build process produces deterministic builds and living documentation of the build process. However gitian only runs within a Linux host environment, and has proven somewhat tricky to setup and maintain. The purpose of this pull-request is to provide a platform-independent set of scripts for creating a gitian build environment and launching builds for all platforms using Oracle VirtualBox, Vagrant (for recording configurations of VirtualBox; see http://vagrantup.com/), and gitian LXC containers.

See “contrib/vagrant/README.md” for details.

@luke-jr
Copy link
Member

luke-jr commented Jul 13, 2012

Gitian is currently Ubuntu-only; how does this attempt to address that?

Vagrant is also Ruby, which is itself not a platform-independent dependency.

@maaku
Copy link
Contributor Author

maaku commented Jul 13, 2012

By "platform-independent" I meant any platform where the bitcoin reference client currently runs. Vagrant is a tool for specifying the state of VirtualBox instances, so this is necessarily limited to platforms that VirtualBox run on (Mac OS X, Windows, Linux, and Solaris on x86_64). Ruby runs on all of those platforms too.

What these scripts do is build a VirtualBox instance containing Ubuntu 12.04, then calls Gitian with USE_LXC=1. It also patches gitian and the gitian build scripts as needed to run within VirtualBox, downloads the various dependencies, etc.

@luke-jr
Copy link
Member

luke-jr commented Jul 13, 2012

I see, that does sound possibly useful.

@laanwj
Copy link
Member

laanwj commented Jul 14, 2012

Great development! At least Virtualbox runs on more platforms than KVM, which is Linux-only.

@luke-jr How is Ruby not platform independent? AFAIK it has been ported to neigh everything, just like Python.

@luke-jr
Copy link
Member

luke-jr commented Jul 14, 2012

@laanwj I meant in terms of it not being a standard component of most operating systems. But it occurred to me that I'm not the audience for this patch anyway, and the audience it's intended for probably couldn't care less whether they have Ruby installed or not.

@TheBlueMatt
Copy link
Contributor

I think this is awesome, but I'm not so sure about putting it in bitcoin itself, would it not make more sense to put this in gitian-builder and then let it read the gitian descriptors?

….com) for automating gitian builds on any platform using Oracle VirtualBox. A minimum number of host dependencies are required. See “contrib/vagrant/README.md” for details.
@devrandom
Copy link

I'd be up for merging the appropriate parts into gitian-builder. Pull request welcome.

@maaku
Copy link
Contributor Author

maaku commented Jul 18, 2012

Just to be clear, very little of this pull request has anything to do with gitian. @bluematt and I had a discussion about this on IRC, and I agree now that it would have been better if I had never mentioned gitian.

The purpose of these scripts is to enable a developer on Windows to create Windows binaries, or a Mac developer to generate Linux binaries (two actual use cases I encountered), as well as any other combination of build-host system. Gitian is being used simply because it is the most reliable process for doing cross-platform builds of bitcoind and Bitcoin-Qt.

Included are are a handful of fixes required to get gitian running within an already-virtualized environment, and in time (aka, when I or someone else has time) those patches will be generalized and submitted upstream to gitian-builder. But that should be a minor footnote. This is really about doing cross-platform or local builds without complicated dedicated build servers.

@BitcoinPullTester
Copy link

Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/aac4cfa93d4dae1941ac71233d824da00552069d for binaries and test log.

@gavinandresen
Copy link
Contributor

I gitian-built the 0.7.0 release on my Mac inside a VirtualBox (running Ubuntu) -- see the last part of contrib/gitian-descriptors/README for what worked for me.

Keeping the contrib/vagrant/patch/*.patch files up-to-date with any changes to the gitian-builder/ files looks like something we're very likely to forget to do, and I'm hesitant to have Yet Another Way to build (we've already got gitian-KVM and gitian-LXC).

@jgarzik
Copy link
Contributor

jgarzik commented Nov 16, 2012

meh due to maintenance burden as @gavinandresen points out (but pointedly not NAK'ing, in case somebody else disagrees, and wants to pull)

@gavinandresen
Copy link
Contributor

We can't keep up with the pull requests and features we've already got. Closing this, because we don't have bandwidth to test/maintain.

suprnurd pushed a commit to chaincoin-legacy/chaincoin that referenced this pull request Dec 5, 2017
lateminer pushed a commit to lateminer/bitcoin that referenced this pull request May 6, 2020
150c8f4 [GUI] Re translate welcome wizard on every language selection. (furszy)
b1d423b BugFix welcome wizard not storing & loading the selected language. (furszy)
1ee7398 BugFix invalid language mapping. (furszy)

Pull request description:

  Quick solution to the translations issue bitcoin#1597 .

  fixes bitcoin#1597

ACKs for top commit:
  Fuzzbawls:
    ACK 150c8f4
  random-zebra:
    Great job! 👍 ACK 150c8f4 and merging...

Tree-SHA512: 6f23e29071751bbfe4cdeb61ae29b1785246919a7ff649a978449db8426143ae92998a87d118632f4cedb1338aa8926d26a24a2f61afec42cfa34dfccac29cbd
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants