Systems have more and more RAM these days, and using 1/4 of the
system RAM seems quite overkill in many cases.
With this change, a user can tweak either the desired fraction of RAM,
the lower bound, or the upper bound, each by adjusting a single number.
Beginning with the upgrade to bullseye (1d50c1ec), I now get the following error
when using Virtualbox as a provider:
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mount -o vers=3,udp 169.254.254.1:/home/garrison/src/sandstorm /vagrant
Stderr from the command:
mount.nfs: an incorrect mount option was specified
I have thus disabled UDP as a transport protocol following
https://www.vagrantup.com/docs/synced-folders/nfs
The block in question gets evaluated regardless of virtualization provider,
and prior to this change, its presence would cause the following error
under libvirt:
Network 192.254.254.2 is not available. Specify available network
name, or an ip address if you want to create a new network.
This change adjusts it so the network is only created under virtualbox.
Note that, under libvirt, this private network does not even seem to be
necessary to achieve an NFS share. Excerpt from the output on such a machine:
==> default: Installing NFS client...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
[sudo] password for garrison:
==> default: Mounting NFS shared folders...
This allows Sandstorm's `install.sh` to avoid emitting the follow warning:
```
WARNING: gpg not installed; not verifying signatures (but it's HTTPS so you're probably fine)
```
As the comment prior to this line says, the entire point of it is for
the development instance to be available at 127.0.0.1:6080, so this
change seems appropriate.
Here are some explanatory comments, lifted from the default `Vagrantfile`
created by running `vagrant init`:
```ruby
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
```
Bullseye is the current "stable" release and is two releases beyond stretch.
The `contrib-` is no longer necessary because the `vboxsf` kernel module is
included in `debian/bullseye64` (previous discussion in #3564).
- flex and bison are required for the build.
- locales is required under Debian/Ubuntu; otherwise the build fails
because /usr/share/i18n/charmaps is missing.
- bullseye is now the latest Debian stable release. The source build
fails on stretch because SECCOMP_FILTER_FLAG_LOG is undeclared, unless
(presumably) the kernel headers were to be upgraded. (See also 2021-09-06
discussion on IRC.) The `contrib-` is no longer necessary because
the vboxsf kernel module is in debian/bullseye64.
sandcats_configure_https is dead code, as of 9ac0360311
In the current install script, the only effect of the value of
SANDCATS_GETCERTIFICATE is to conditionally tell
the user that we're going to "Configure auto-renewing HTTPS if you use
a subdomain of sandcats.io", so going forward we just provide this message
always on a full server install.
This updates the README following 813e7f4468.
It also sets the mode of prepare-for-tests.sh to be 755, so that
it will work when invoked as ./prepare-for-tests.sh, as the README says.