It can be confusing to new users for make-base-vm to create a lucid vm
by default, so switch to xenial, which is also a LTS release, but isn't
EOL yet. Using lucid with gitian-builder is broken anyway, because
lucid has been moved to old-releases.ubuntu.com since it is EOL and
gitian-builder doesn't support old-releases.ubuntu.com.
So you can make local copy of /usr/share/debootstrap/ and
e.g. add there missing e.g. "xenial" or other script/template,
without mucking around in system directory managed by
package manager.
- apropos to a discussion about merge request #36, added a flag in the descriptor and command line flag.
- adding sudo: true in the yml file plus adding a command line flag --allow-sudo will allow script user to elevate permissions with no password.
According to the Debian wiki, installing the package grub installs the
correct version of grub for your suite automatically. This fixes a "you
have held broken packages" error when creating the package manifest due
to a conflict between grub-pc and grub-legacy (at least with Wheezy).
Check for older suites with 686 flavour before checking for 686-pae
flavour suites, because the former should never change, but the latter
would have to be changed whenever a new suite was released if it wasn't
the last if statement.
It seems like a lsb_release program should be available on any distro if
the appropriate package is installed. So it seems better to use
lsb_release instead of /etc/lsb-release, because Debian doesn't appear
to have /etc/lsb-release.
The build process for [Bitcoin](https://github.com/bitcoin/bitcoin/blob/master/doc/gitian-building.md) was failing with the following error
```
./bin/gbuild:21:in `system!': failed to run on-target setarch x86_64 bash -x < var/build-script > var/build.log 2>&1 (RuntimeError)
from ./bin/gbuild:137:in `build_one_configuration'
from ./bin/gbuild:267:in `block (2 levels) in <main>'
from ./bin/gbuild:262:in `each'
from ./bin/gbuild:262:in `block in <main>'
from ./bin/gbuild:260:in `each'
from ./bin/gbuild:260:in `<main>'
```
Inside the log file `var/build.log` the entries towards the end show
```
/bin/sh: 1: wget: not found
```
This should allow anyone to write any signing program and use it in
conjunction with gsign as long as it supports the same options/arguments
as gpg does (namely -u for the signer and an argument for the file to
sign).
Rather than uploading every checked-out file of a repository and the
repository objects themselves, skip the checkout and instruct git to compact
before upload. The result is that only a handful of files are transferred,
rather than hundreds or thousands for large repositories.
The HEAD ref is updated before upload so that a hard reset works as before on
the target. The reflog is also disabled in order to avoid uploading useless log
files.
This change is backwards-compatible, but it will only have an effect on new
repositories.
Allow each builder to cache some files for re-use in the next build. This
allows for poor-man's dependency chaining.
Additionally, add a common cache pool for all builds. This can be used for
saving (for example) downloaded files to be shared between builds.
- Allow comparing to a sepcific 'golden' manifest with `--compare-to`
- By default pick the first manifest to compare to, instead of always
comparing against the previous one, which is confusing
- Show line-by-line difference if `-v` given
I was running into trouble using gitian LXC INSIDE a VirtualBox VM, because
the 10.0.2.x IP range overlaps with the range that VirtualBox uses for
its internal NAT network.
This commit makes it possible to override the host and guest IP that
is used during LXC image creation and the build, using environment variables:
- `GITIAN_HOST_IP` (default=10.0.2.2, host IP from the viewpoint of the
VM, can be used for both LXC and KVM)
- `LXC_GUEST_IP` (default=10.0.2.5, guest IP from the viewpoint of the
host, effective for LXC only)
When these are not defined the behavior remains the same as before.