Age | Commit message (Collapse) | Author |
|
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
|
|
latest changes from master. For future PR's do create a patch-branch for upstream patches to avoid changes to your local repo.
|
|
torxed-rework-partitioning
|
|
never be created on single devices.
|
|
flag on the correct partition. Perhaps there's a smarter way. I suspect parted can operate on a given partition ID, but haven't found the docs for it yet.
|
|
selection process.
|
|
|
|
|
|
Use cpuinfo() function rather than a subprocess.
|
|
|
|
added some more debugging
|
|
reliable size-conversion that isn't limited to Gigabytes in free_space().
|
|
Fix a tiny typo
|
|
Rewrite some function
if condition is True then return true else return false, transform in return condition directly
Also I don't understand why we need a try/except at line 151 and why we not write return condition ??
|
|
|
|
|
|
|
|
|