Age | Commit message (Collapse) | Author | Files | Lines |
|
* Move our system_names and system_groups out to a util header.
* Qt UI: Validate that the user's chosen account name is not contained
in either system_names nor system_groups.
Closes: #388
Acked-by: Síle Ekaterin Liszka <sheila@vulpine.house>
|
|
|
|
This allows the installation of 'negative selections' or the purposeful
exclusion of packages from the installed environment.
|
|
This allows the executor to run when PATH does not contain /sbin nor
/usr/sbin.
|
|
* Key added to code and documentation.
* Tests added and pass locally on gwyn (ppc64) and fran (aarch64).
* Qt UI automatically sets /bin/zsh as root's shell (ref: packages#206).
* ISO image creator backend no longer has root shell hack.
|
|
If we are doing a mini-rootfs or container installation, we may not have
OpenRC at all. This would mean /etc/runlevels doesn't exist in the target.
In that case, we crash with:
boost::filesystem::directory_iterator::construct: No such file or directory
[system:2]: "/tmp/horizon-image/target/etc/runlevels"
Closes: #378
Fixes: a9ccd9bc7e ("hscript: Allow svcenable to create new runlevels")
|
|
The problem was OpenRC which was fixed in packages.git. We should not
have any further issues with efivarfs being read-only outside of host
systems that are running OpenRC >= 0.28 and < 0.39.
|
|
We're the executor, we can just commandeer the entire thing, host system
included. There is very low likelihood of damage to a host system because
we are use umount instead of making the host r/w.
The only thing that could break is `systemctl reboot --firmware`, or a
host-side upgrade of GRUB that somehow changes the path of the EFI stub.
Both of these are almost impossible to encounter on a host that is actually
running the executor. However, encountering a broken read-only efivarfs
seems to be VERY common in the Installation Environment.
Fixes: ab212730bd ("hscript: bootloader: Set rdwr on 'real' efivarfs")
|
|
We have to clear the RDONLY flag on the base /sys before we clear it from
the target /sys, otherwise it doesn't work.
Fixes: 975b506cdd ("hscript: bootloader: Really, truly revamp EFI")
|
|
This should handle every single scenario we could be in regarding efivarfs.
It also makes efivarfs errors non-fatal, as grub-install has --no-nvram for
such situations.
Closes: #370
Fixes: bad8487c53 ("hscript: bootloader: Hopefully fix EFI once and for all")
|
|
Before, we were using the old (pre-beta4) key format. Now we pull from
the mirrors. We rely on the user either specifying the 'arch' key or
running the script on the same CPU as the target system, as assumed in
other parts of the codebase.
Fixes: #349
|
|
|
|
This is going to be useful in general for some advanced use cases, but
most importantly, it will allow us to define runlevels for live media.
Ref: #346
|
|
Now we use ID_MODEL_ENC in addition to ID_SERIAL, because sometimes
users might want to actually use spaces in addition to just serial
numbers.
Fixes: #348
|
|
This allows a HorizonScript to inherit from multiple files. Files are parsed
in a system-defined, unspecified order, but all scripts of a given depth are
guaranteed to be parsed before the next depth.
|
|
* Use <cassert> instead of <assert.h>.
* Include <cstring> for ::strerror in install env.
* Consistently use ::strerror.
* Remove superfluous duplicate semicolon.
Fixes: #334
|
|
Checking in_avail doesn't work correctly on Darwin due to the way file
caches work there. This method is not only more portable, but also
more performant. A win-win!
|
|
|
|
|
|
|
|
|
|
If the user chooses no-boot or isn't installing Adélie, this will fail
quietly. But if the user is installing Adélie, this is necessary to
generate bootloader configuration.
|
|
The manpage suggests that MS_BIND must be set to change R/O flag on bindmounts.
|
|
This works around the '/dev/xxx already has a filesystem' thing on CLI installs.
|
|
|
|
|
|
|
|
|
|
Help with the automatic partitioner by parties interested in the MIPS
ports of Adélie (and/or Alpine and/or postmarketOS) would be very
desirable.
I'm only currently aware myself of how to partition SGI MIPS64 machines.
My gut tells me we probably need the `subarch` system like for PPC64,
but I am not sure how non-SGI MIPS64 machines need to be partitioned.
|
|
On some Alpine systems, '/dev/stdin' cannot be canonicalised. We work
around this by hardcoding "<stdin>" as the internal name for scripts
read from stdin, similar to Python.
This change also ensures messages generated from the parser itself use
curr_name (the canonicalised name) instead of the name passed to the
Script object.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We need this for /dev/shm to be present in the target.
We need to bind-mount /sys recursively for efivarfs to be available for
GRUB's use in the target.
While we're here, unmount /dev and /sys recursively when creating an image.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Otherwise, if the target doesn't have tzdata installed, an existing
/etc/localtime file won't be removed and we can hit an error.
|
|
Without this, errors are seen generating Alpine images.
|
|
Using PAM's -R tries to load target system's PAM libraries,
which obviously fail if it's not the same CPU arch.
|