Age | Commit message (Collapse) | Author |
|
to call these functions during the disk setup process to create the subvolumes and mount them in place, rather than doing the normal steps.
|
|
Fix re_rank_mirrors
|
|
Hardware refactoring
|
|
through a few of the menu's
|
|
through a few of the menu's
|
|
through a few of the menu's
|
|
|
|
broken links as we expose all the functions through __init__.py - but you never know so I'll keep an eye for issues with this.
|
|
|
|
|
|
Implement has_amd_cpu() and has_intel_cpu() as partials.
|
|
|
|
meminfo() returns ints.
|
|
|
|
|
|
File: lib/user_interaction.py
When function manage_new_and_existing_partitions() is used, and
'Suggest partition layout' is selected, the installer crashes.
REASON
Bug was introduced in commit 9e67ce3, when partition layout was
changed to use device.path as keys (instead of device).
It seems all necessary changes were made for this, except this one.
|
|
Sync branch svintooo-fix with latest code changes on master.
|
|
File: lib/disk.py
When installing on a loopback device (a.k.a loop device), function
Filesystem.partuuid_to_index() crashes with a JSON parsing error.
REASON
1) For loop devices, the property BlockDevice.device returns the
actual image file (back-file) of the loop device instead of the
/dev/X device.
2) Function Filesystem.partuuid_to_index() executes `lsblk --json`
against BlockDevice.device .
3) `lsblk` fails and prints the error "not a block device" to stderr.
This causes the output to not be valid JSON.
4) Code crashes when JSON parser tries to parse the output.
SOLUTION
- Make sure property BlockDevice.device only returns a valid block
device.
- Create new function BlockDevice.device_or_backfile that mimics
the present behaviour of BlockDevice.device.
- Use BlockDevice.device_or_backfile in function
BlockDevice.__repr__().
SOLUTION REASONING
I can only see one reason behind BlockDevice.device returning
the back-file of a loop device, and that is to show the back-file
to the user (instead of /dev/X) when printing the string
representation of a BlockDevice.
All other parts of the code can use the /dev/X file just fine.
And IMO it makes more sense that a property named `device` only
returns devices, and not normal files.
|
|
File: lib/user_interaction.py
When function manage_new_and_existing_partitions() is used, and
no partitions are configured, and 'Set desired filesystem for a
partition' is selected, the installer crashes.
|
|
File: lib/user_interaction.py
When function manage_new_and_existing_partitions() is used, and
'Suggest partition layout' is selected, the partition info is not
correctly stored in the config.
Instead of: {"partitions": [{...}, {...}]}
You get: {"partitions": {"partitions": [{...}, {...}], "wipe":True}}
|
|
Bug affects normal interactive usage (example/guided.py).
The timezone configured in the installer is not the timezone that
ends up in the new installed system. Instead, the timezone
used in the host system (from where the installer is run) is the
one that finally ends up being used.
Reason: systemd-nspawn by default copies the host timezone into
the target. And systemd-nspawn is run when keyboard-layout is
changed (which is done after changing the timezone).
Solution: Add option `--timezone=off` to systemd-nspawn, which
hinders affecting the timezone in the target.
|
|
Also this change adds new line at the end for some scripts
|
|
I'm making sure that the JSON structure of the user config can get a say in how the subvolumes should be used later on. As well as splitting up where the logic should be to make it easier to maintain.
|
|
And added some sane(?) defaults, which I'll massage into code some how.
|
|
|
|
|
|
Since systemd takes care of mounting /tmp as a tmpt, there's no point in having a manual entry in fstab.
|
|
object, as it won't work seamlessly to access for instance storage['disk_layouts'][ClassInstance()] if it's not the identical mem copy of the object we're accessing, so strings are better for storage/comparisons.
|
|
time before continuing after a format. This is an ugly hack to get around some disk issues, for now.
|
|
to pacman inside pacstrap.
|
|
|
|
fail, and adding a exception so that the installation doesn't continue silently. This causes too much confusion (even tho I liked the idea that people could recover the missing parts without having to re-run the installer for subsequent steps.
|
|
`add_bootloader` no longer needs to have a harddrive given as a argument. It will (and should) auto-detect what's mounted in the `self.target` (aka mountpoint) of the installation.
|
|
Remove unused import of json
|
|
Refactor meminfo() to allow direct key access
|
|
Fix indentation with tabs instead of spaces
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Typo
|
|
Update hardware.py
|
|
I tweaked the optimized return of check_output. Worth mentioning that `check_output()` will raise an exception `subprocess.CalledProcessError: Command 'lscpu | grep AMD' returned non-zero exit status 1.`.
|
|
The old behavior of SysCommand was that exit codes raised an exception, which needed to be handled by each individual caller. We now utilize `.exit_code` instead to manually detect faulty commands and raise exceptions where needed.
|
|
|
|
Replace for loops with comprehensions
|