Commit Graph

2468 Commits

Author SHA1 Message Date
Anton Hvornum 32aa91bdde Adding support for passing arguments to .format()
This should enable people to use custom option arguments in their config files when scripting installations or using the API.
2021-10-30 21:04:31 +02:00
Anton Hvornum 85c97b5630
Merged PR #637 - BTRFS support fix #93
+ BTRFS support
+ Refactoring of `disk.py` into `lib/disk/*.py`
+ `get_mount_info()` was reworked to support traverse backwards until mountpoint information is found (reverse-recursiveness)
+ `suggest_single_disk_layout()` was added/fixed to support BTRFS options
+ - `suggest_multi_disk_layout()` does not yet support BTRFS subvolumes in suggestive mode
+ `Installer()` now calls `create_subvolume()` and `mount_subvolume()` during loading of file structure on `mount_ordered_layout()`
2021-10-30 20:52:07 +02:00
Anton Hvornum 2a2239dd03 Merge branch 'master' of https://github.com/archlinux/archinstall into torxed-fix-93 2021-10-30 20:36:21 +02:00
Anton Hvornum 62f5bf4c83 Merging in parts of Master related to disk.py 2021-10-30 20:26:54 +02:00
Anton Hvornum 522ca2e41c
Adding error handling for paths and btrfs subvolume creation. 2021-10-30 17:55:16 +02:00
Anton Hvornum 29a9fbddb2
Failed to create directory structure on subvolume create. Only on subvolume mount. This fixes that. 2021-10-30 17:50:24 +02:00
Anton Hvornum dbebe8cf37
Raising DiskError if subvolumes cannot be created. 2021-10-30 17:46:25 +02:00
Anton Hvornum 9f9c637bfd
Fixes tuple issue 2021-10-30 17:22:21 +02:00
Anton Hvornum 3ee1a5c18e
Tweaked get_mount_info() and mount_subvolume(). mount info now returns the path it found after traversal. mount_subvolume will no longer assume installation.target is of pathlib.Path and converts it if it isn't. 2021-10-30 17:15:33 +02:00
Anton Hvornum 4bc164cccc
Forgot to include {installation.target} in subvolume mounting 2021-10-30 16:57:51 +02:00
Anton Hvornum c2596be1f1
Added more logging (will change INFO to DEBUG later) 2021-10-30 16:32:55 +02:00
Anton Hvornum e6de28287d
Wrong lib import path 2021-10-30 16:29:52 +02:00
Anton Hvornum c4f688ce4c
Added some error handling to mount points not getting mounted properly. 2021-10-30 16:28:55 +02:00
Anton Hvornum 6be071b6e0
Enhanced get_mount_info() to recursively get the information 2021-10-30 16:16:43 +02:00
Anton Hvornum d3aec52d98
Forgot an import 2021-10-30 13:54:18 +02:00
Anton Hvornum 5d124f8106
Added debugging to the btrfs functions. 2021-10-30 13:51:39 +02:00
Anton Hvornum 05a8739231
Wrong exposed variable corrected. 2021-10-30 12:02:00 +02:00
Anton Hvornum 76dc426a0f
Added creating and mounting of subvolume structure for BTRFS. 2021-10-30 11:00:22 +02:00
Anton Hvornum 68b891837c Finalized the create_subvolume and mount_subvolume functions. Remaining is to call these functions during the disk setup process to create the subvolumes and mount them in place, rather than doing the normal steps. 2021-10-27 13:13:10 +00:00
Anton Hvornum d25a20a7f2
Merge pull request #666 from olekthunder/re_rank_mirrors_fix
Fix re_rank_mirrors
2021-10-27 11:58:17 +02:00
Anton Hvornum ea1cf70ae3
Merge pull request #672 from conqp/hardware_refactoring
Hardware refactoring
2021-10-27 11:56:51 +02:00
Anton Hvornum ae0d700c7e
Merge pull request #668 from olekthunder/use_mirrors_fix
Fix use_mirrors
2021-10-27 11:52:44 +02:00
Anton Hvornum 72849083e6
Merge pull request #662 from theaeonsolution/master
Remove duplicate package
2021-10-26 16:11:30 +02:00
Anton Hvornum 7149b76f3b
Forgot some imports that didn't show up on a static run without going through a few of the menu's 2021-10-22 21:54:16 +02:00
Anton Hvornum 8b96080ec8
Forgot some imports that didn't show up on a static run without going through a few of the menu's 2021-10-22 21:02:39 +02:00
Anton Hvornum 2ef793b76a
Forgot some imports that didn't show up on a static run without going through a few of the menu's 2021-10-22 20:55:00 +02:00
Anton Hvornum 3ec8df9753
Removed the old disk.py 2021-10-22 20:45:44 +02:00
Anton Hvornum 7ac06d75d0
Restructured disk.py into lib/disk/<splits>.py instead. Shouldn't be any 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. 2021-10-22 20:43:01 +02:00
Oleksandr Zinkevych a822b8edae
use_mirrors: return None instead of True 2021-10-22 14:53:18 +03:00
Richard Neumann 8eea325924 Improve type hint 2021-10-21 22:56:46 +02:00
Richard Neumann 63c6f39f98 Generalize CPU vendor detection
Implement has_amd_cpu() and has_intel_cpu() as partials.
2021-10-21 22:54:00 +02:00
Richard Neumann 4f6cec5069 Remove useless initialization of mem_info = {} 2021-10-21 22:50:49 +02:00
Richard Neumann ca25c356b6 Update type hints
meminfo() returns ints.
2021-10-21 22:48:52 +02:00
Oleksandr Zinkevych 165d47f4bb
Fix use_mirrors 2021-10-15 18:21:35 +03:00
Oleksandr Zinkevych 427492d7c9
Fix re_rank_mirrors 2021-10-15 18:03:08 +03:00
Anton Hvornum ba725517fd
Merge pull request #644 from JakobDev/cutefishterm
Remove Konsole from cutefish profile
2021-10-14 13:02:34 +02:00
Anton Hvornum 7e096e4f6d
Merge pull request #643 from Svintooo/svintooo-fix
Various bug fixes
2021-10-14 13:01:43 +02:00
theaeonsolution fce7accce1
Remove duplicate package 2021-10-12 19:59:31 -05:00
JakobDev 94cf38c171
Remove Konsole from cutefish profile 2021-09-25 11:49:52 +02:00
Hugo Ankarloo 5bcbb50936 Fix Bug: 'Suggest partition layout' crashes
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.
2021-09-21 00:38:20 +02:00
Hugo Ankarloo e71a41377d Merge branch 'master' into svintooo-fix
Sync branch svintooo-fix with latest code changes on master.
2021-09-20 21:52:14 +02:00
Hugo Ankarloo 26244212cf Fix Bug: Cannot get partuuid from loop device
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.
2021-09-20 21:46:56 +02:00
Hugo Ankarloo 915ae88947 Fix Bug: Set filesystem crashes if no partitions
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.
2021-09-20 20:17:39 +02:00
Hugo Ankarloo ffbfafb354 Fix Bug: config b0rked by Suggest partition layout
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}}
2021-09-20 19:58:56 +02:00
Hugo Ankarloo d2d80113b3 Fix Bug: Timezone is ignored, always same as host
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.
2021-09-20 19:30:07 +02:00
Anton Hvornum c33ab997c9
Merge pull request #642 from SecondThundeR/misc-fixes
general: remove all found white-spaces
2021-09-19 15:01:53 +02:00
SecondThundeR ffe38c879a general: remove all found white-spaces
Also this change adds new line at the end for some scripts
2021-09-19 15:49:44 +03:00
Anton Hvornum ed823be3ba Refactoring and cleaning up a bit
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.
2021-09-18 15:52:29 +02:00
Anton Hvornum aacbc2f29d
Adding network applet support in xfce #639 from falieri/patch-1
Update xfce4.py
2021-09-18 15:48:09 +02:00
Falieri a93225d1de
Update xfce4.py
add network support to the xfce panel
2021-09-18 10:36:42 -03:00