Giter Site home page Giter Site logo

mazaclub / easygitianbuilder Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 23.0 138 KB

:hammer: Gitian Building made simpler on any Windows Debian/Ubuntu MacOS with Vagrant, lxc, and virtualbox

License: MIT License

Shell 94.36% PowerShell 5.64%
bitcoin coin cryptocurrency gitian reproducibility reproducible-builds vagrant virtualbox-vm

easygitianbuilder's People

Contributors

guruvan avatar terrencehenry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easygitianbuilder's Issues

Run out of disk space

When i start the building i end up with not enough diskspace.

Insufficient space - 20GB required 6 available

Even a EasyGitian rebuld_vm as it suggests, i still have the samme issue.

Assert files Signing support

Signing is as yet not fully implemented

It should work as is, however importing a GPG is an exercise left to the builder at this time.

Add support to import a GPG key for signing
Test Signing build assertions

keyserver fails to get keys

Error shows up as below:

  • gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys 51852D87348FFC4C
    gpg: keyserver receive failed: No data
  • exit 9

To fix:
linux-Base-System.sh. line 24 should read
gpg --keyserver hkps://pgp.mit.edu --recv-keys 51852D87348FFC4C || exit 9

It's possible that using hkp://pgp.mit.edu:80 may also work, but I haven't tested it.

Edit:
When retesting the above script it failed, as the mit server was not available.
Changing the server to point to the SKS pools worked, as shown below:

**~/easygitianbuilder$ gpg --keyserver pool.sks-keyservers.net --recv-keys 51852D87348FFC4C

gpg: key 51852D87348FFC4C: public key "HashiCorp Security [email protected]" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1**

Errors in mount_build_disk.sh should stop build if disk not mounted

If the secondary disk is not mounted by mount_build_disk.sh no further builds will occur

  • add additional check to ensure we have the secondary disk online when checking diskspace
    for a build (gitian-build.sh)

  • catch errors and fail VBox_VM_Initialize.sh if the build disk is not mounted or other errors occur

mount_build_disk.sh crashes VM and/or host - SATA timing errors

  • Symptom: VM crashes during dd operation, host may also lockup or crash

failure shows up in mount_build_disk.sh when using dd to make a swapfile
appears to be https://www.virtualbox.org/ticket/8511 and

  • Workaround - successful workaround was

    1. Add IDE controller to VBox VM
    2. move both root and build disks to the IDE controller
    3. remove SATA controller
  • Workaround - untested

    1. In the bug referenced from Virtualbox above, some users noted success by simply adding
      "clocksource=jiffies" to the guests kernel command link (in grub.cfg)
  • Solution
    Unknown how to detect hosts with this issue. Possible solution is to provide a script to switch to IDE
    sata_ide_switch.sh

0.9 series code support

EasyGitian relies on the coin/depends build system being present

coin/depends first appears in 0.10 series code

  • Workaround - untested
    1. allow initial build to error out
    2. enter VM with vagrant ssh
    3. run the following:
    cd gitian-builder
    ./bin/gbuild --commit {COIN}={VERSION} ../{COIN}/contrib/gitian-descriptors/boost-{OS}.yml
    ./bin/gbuild --commit {COIN}={VERSION} ../{COIN}/contrib/gitian-descriptors/deps-{OS}.yml
    ./bin/gbuild --commit {COIN}={VERSION} ../{COIN}/contrib/gitian-descriptors/qt-{OS}.yml
    ./bin/gbuild --commit {COIN}={VERSION} ../{COIN}/contrib/gitian-descriptors/protobuf-{OS}.yml
    

and so on for all the descriptors except gitian-{OS}.yml gitian-{OS}-signed.yml (main builds)

You should be left with zipfiles that are expected by the 0.9 descriptors build-script "files" section in your inputs directory.

  • Solution
    Detect older code and build all dependencies as above.

Mac os

-bash: ./Install-EasyGitian.sh: Permission denied

why...T_T

VirtualBox\ VMs dir not specified correctly throughout

Author has too many VirtualBox VM directories inconsistently named.
Case-insensitive HFS+ volumes allow the errors to go unnoticed in development

Correct all instances with references to this in scripts, ideally set variable in USER_CONFIG.env

How to build from a custom repo?

as the title says,how can i build form a custom repo forked from PIVX?the script autocompiles/tries to autocompile from bitcoin-cash-abc.

Additional Linux Host support

EasyGitian should be able to run on

  • Linux Mint
  • Devuan
  • CentOS
  • gentoo
  • Arch Linux

Vagrant support is required
Priority dictated by requests & bounties

Add additional Vagrant providers (i.e. vagrant-aws)

Vagrant supports a number of different providers including

vagrant-libvirt (kvm)
vagrant-aws

aws azure bhyve brightbox cloudstack
digitalocean ganeti google hp joyent
linode libvirt lxc openstack openstack-provider
openvz parallels proxmox rackspace scaleway
skytap softlayer vcenter vcloud vcloudair
veertu vmware-appcatalyst vmware-esxi vsphere vultr

No timeframe is set for adding additional providers. If you'd like one hastened please see BOUNTIES.md

vagrant-aws is expected to be first completed so that builder may take advantage of Very Large Instances to run builds significantly faster, with all disks in RAM

Add Windows support

EasyGitian lacks full automation on Windows hosts

  • in active development
  • will be supported on develop branch prior to v0.1.0 release

Full support for Windows hosts will be available in v0.1.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.