Commit graph

2671 commits

Author SHA1 Message Date
Werner Llácer
e8b6b1b334
Restore generic_select function (#857)
* recreate generic_select and generic_multi_select functions

* flake8 complains

* Addressed some review issues
-> Options checks propagated to Menu(()
-> Options parameter inmutable at Menu()
-> Some text adapted
-> Sort will be handled by Menu()
-> Better handling of default value

* Solved the two problems found:
lack of list(dict.[keys/values] and impact in copy()
sideffects of renaming menu parameter options into p_options

* Now the problem of the copy was with a generator

* Add a log message whenever an "strange" object type is sent into Menu

* Validation of types has been streamlined.
Default values are now accesible to generic_select without restriction
2022-01-12 23:24:38 +01:00
Romain Goncalves
c6fdf775c8
partition.py: Use exit code for mkfs.fat exception (#853)
When using archinstall on an existing Arch Linux installation, (e.g. for
migrating the current system on a new drive), no exception is raised if
mkfs.vfat is missing in the base install (no dosfstools package currently
installed).
2022-01-08 21:16:19 +01:00
Werner Llácer
116246b0e8
obsolete call for timezone changed (#850) 2022-01-07 12:54:45 +01:00
Anton Hvornum
a14533818b Wrongly spelled import 2022-01-07 10:55:51 +00:00
Anton Hvornum
93f9d159bd
Fixed import error ModuleType (#848)
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-07 10:54:29 +00:00
Daniel
1234261a7a
Global menu (#806)
* Global menu

* Fix flake8

* Refactor code

* Add documentation

* Fix flake8

* Add support for user flow mentioned in #799

* Move import

* Fix flake8 (again)

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-07 10:48:23 +00:00
Werner Llácer
2190321eb4
Btrfs II (#838)
* Btrfs with encrypted partitions.
We have changed installer.mount_ordered_layout into a series of loops
* open the encrypted devices
* manage btrfs subvolumes
* mount whatever
* create kyefiles for encrypted volumes
We have simplified the btrfs subvolume manager

We merged the locale branch as it is needed here

* We allow only the creation of keyfiles if the partition does not contain the root mount point.
Also, adapt examples/only_hd to the new __init__.py
Also, assorted flake8 warnings

* Cleanup code

* Naming schema for encrypted volumes
revert global locale association (provisional)

* We introduce the option of defining mount options in the partition dictionary.
It has forced us to define two new entries in this dictionary:
* format_options (formerly options) for mkfs options and
* mount_options for mount -o ones.
The different meaning of compress between partition and subvolumes is treated

* Function lib/disk/btrfs.py mount_subvolume marked as deprecated
Code cleanup.

* format_options now filesystem.options

* format_options now filesystem.format_options
mount_options  nof filesystem.mount_options

* flake8 uncovered a slip in the code
2022-01-07 10:29:30 +00:00
HTV04
08d7375e62
Fix partition layout (#794)
* Fix partition layout

* Tweaked the numbers to match the alignment of previous partitions.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-07 09:55:51 +00:00
Liam McNair
762cea1da8
Created config schema (#727)
* Created config schema

* Tweaked the schema to suit v2.3.0+

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-01-07 09:44:54 +00:00
Werner Llácer
b63cf7cb15
- No treatement of disk_layouts_file (#844)
- Ordered exit
2022-01-06 23:27:56 +01:00
Werner Llácer
a8862e9b24
Define an standard locale for all the commands executed (#827)
* Define an standard locale for all the commands executed inside the application

* Allow LC_ALL to be overriden during call

* flake8 corrections
2022-01-06 23:26:49 +01:00
Anton Hvornum
e32cf71ae7
Added type annotations to all functions (#845)
* Added type annotations for 1/5 of the files.

There's bound to be some issues with type miss-match, will sort that out later.

* Added type hints for 4/5 of the code

* Added type hints for 4.7/5 of the code

* Added type hints for 5/5 of the code base

* Split the linters into individual files

This should help with more clearly show which runner is breaking since they don't share a single common name any longer. Also moved mypy settings into pyproject.toml

* Fixed some of the last flake8 issues

* Missing parameter

* Fixed invalid lookahead types

* __future__ had to be at the top

* Fixed last flake8 issues
2022-01-06 22:01:15 +01:00
Anton Hvornum
015cd2a59f
Update simple_menu.py 2022-01-06 16:57:50 +01:00
Anton Hvornum
33c27db1ba
Update README.md 2022-01-05 23:44:37 +01:00
Anton Hvornum
ddb0810af0
Improve documentation v2.3.1 (#843)
* Updated documentation

Mostly I've moved things around, cleaned up some dead paths and added more clarity.

* Cleaned up !superusers section

* Mentioning of accessibility
2022-01-05 23:42:06 +01:00
HTV04
a68a23d10a
Add prompt for /home partition (#801) 2022-01-04 13:31:21 +00:00
Ilario Gelmetti
3474176e64
examples/guided: if selected, activate NTP also in installer system (#831)
* Ask for NTP even if timezone is unset
* Ask for NTP before retrieving mirror list
* Activate NTP in the installer as soon as asked
* Removed excessive import
SysCommand is exposed through archinstall
* Removed f-string

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-01-02 22:45:44 +01:00
Anton Hvornum
240f688cce Adding a Pipewire application profile (#821)
* Adding a Pipewire application profile

This to better manage the pipewire setup process and minimize guided a bit. This also adds the concept of @archinstall.plugin decorators to add a plugin in run-time. Which pipewire uses to detect user creation and enable the pipewire-pulse service for new users.

* Forgot to run .install() on pipewire Application()
* Backwards compatible variable insertion for installation session
2022-01-02 16:38:02 +01:00
Anton Hvornum
93aa4aa6cc
Fix inspired by #804 to tweak the fix in v2.3.1-dev 2022-01-02 14:14:00 +01:00
Anton Hvornum
b1af3eda83 Fixed issue #799. Where user prompt wouldn't be shown if a root password was set. 2022-01-02 14:11:00 +01:00
Werner Llácer
b89408ab7b
Improved command line argument parsing (#725)
* An update to PR 715, making the handling of the *--mount-point* parameter less error prone.
I added a synomym (accepting the name both with underscore and dash) and ignoring when no value specified
I added it explicitly to the list to accept both the --parm value and --parm=value syntax
DOES NOT check the contents of the parameter
* Explicitly set all the know parameters
* Define explictly all parameters.
Make all non explicitly defined parameters behave as standard parameters, with on exception, names are not changed
Some cleanup of the code
In guided.py the reference to the dry_run parameter is updated to the standard naming convention for parameters
* Linter with flake8. corrections
* Linter with flake8. corrections (II)
* Linter with flake8. corrections (and III)
* Added --disk_layout argument. Was missing
I moved its loading from guided.py to __init__.py as it happens to the other json related arguments
* Better handling of errors during processing of the --disk_layouts parameter.
I define a routine to read an store a JSON file or stream. Tested on disk_layout
* Expand the former commit to all JSON file arguments
* Moved the function we created to read json files/streams to general.py. Add some comments
* flake8. A reference now unneded
* The merge process for the dry-run argument was causing the issue, not solving it
The del is just a cleanup for version upgrade without consequence (I hope)
* flake8 warning
* Correcting the last correction . Worked for old config files, but only for them
* New parameter parsing algorithm. More flexible and accepts multiple arguments (optionallY)
plus some documentation effort
* flake8 warning. For once is significant ( != None to not None)
2022-01-02 12:28:49 +01:00
Werner Llácer
e388537bc3
better handling the skip partitioning option. (#778)
* better handling the skip partitioning option. plus sending some warnings to the user
* device configuration options taken out from ask_user_questions.
Forced by flake8
* Revert "device configuration options taken out from ask_user_questions."
This reverts commit 1b3cffb3dfb165433bcf839151f1a719300fd891.
* Adapted to new selection ui
* Cleanup of obsolete code
* Changed colour of skip messages from red to yellow
* Flake8 comments
2022-01-02 12:01:19 +01:00
Anton Hvornum
b7cb77caf9
Update README.md 2022-01-02 11:53:55 +01:00
Anton Hvornum
66ec8663e2
Update README.md 2022-01-02 11:41:14 +01:00
Anton Hvornum
32135f0b46
!= -> is not 2022-01-01 22:05:01 +01:00
Anton Hvornum
ffa29e2cd4
Ignoring complex-functions in guided.py (couldn't find a way to specifically ignore C901 for ask_user_questions() alone) 2021-12-31 16:08:27 +01:00
Anton Hvornum
ec4feade61 Adds amdgpu and radeon to the kernel modules, in the right order. (#823) 2021-12-31 16:05:35 +01:00
Daniel
638a05243c
Enable multiple mirror selection #457 (#809)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2021-12-31 15:36:05 +01:00
Werner Llácer
7f9b7991e9
Btrfs2 (#787)
* All the changes needed to make btrfs subvolumes work. It boils down to two points;
the handling of the addressing of subvolumes re. physical partitions, and the small changes at the bootloader level
* We added a new script only_hd for testing purposes. It only handles hadrd drive management
* restoring an escape hatch during subvolume processing
* hipercommented manage_btrfs_subvolumes
* Ready to be able to select and process options in subvolume mounting
* Separte nodatacow processing
* Solving a flake8 complain
* Use of bind names @ get_filesystem_type
* compress mount option bypass
* Preparations for encryption handling
* Compatibility to master version re. encrypted btrfs volumes
* Now we can create subvolumes and mountpoints inside an encrypted btrfs partition
* changes for entries file generation with systemd-bootctl
* flake8 corrections plus some comments

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2021-12-31 13:47:41 +01:00
Anton Hvornum
c3e2b99316 runas -> run_as 2021-12-31 12:50:48 +01:00
Anton Hvornum
cad911893d
Bringing in changes from v2.3.1-dev branch. This fixes a selection of things mentioned in #819. 2021-12-31 12:33:01 +01:00
remLse
c6b499cf47
Update documentation (#803)
* Add guide for building docs locally

* Update documentation

- Fix typos
- Fix some formatting
- Fix broken links
- Improve readability of json profile specification
2021-12-18 19:01:40 +01:00
Anton Hvornum
7a01841586
Changed lsblk to blkid where possible (#802)
* Swapped lsblk for blkid
* Added a hefty sleep on partprobe()

And added a TODO for the future
2021-12-16 09:00:10 +00:00
Anton Hvornum
3c2e71b4bb
PR #797 - Remove network-manager-applet from XFCE4 package list 2021-12-12 20:43:52 +00:00
Dylan M. Taylor
dff2d2bd0e
Remove network-manager-applet from XFCE4 package list
Based on discussion in #777 it seems like this forces NetworkManager which is not desired. We need a way to detect network manager being selected and install this only in that case.
2021-12-12 13:58:08 -05:00
Wilhelm Åkermark
b0c8346fa7
Fixing possible race condition with partprobe (#796)
* Update partition.py

* Added sleep after partprobe

Added sleep after partprobe. Without this tools such as lsblk may be unable to retrieve certain properties of devices (such as partuuid).
2021-12-12 08:58:24 +01:00
Anton Hvornum
c0b83e7f2f
Merge pull request #792 from MichaelMai2000/patch-1
fix logic: could not detect root **or** boot
2021-12-10 14:37:23 +00:00
MTC
9e840bd9ef
Merge branch 'archlinux:master' into patch-1 2021-12-11 00:12:16 +11:00
MTC
5a70efe284
fix logic: could not detect root **or** boot 2021-12-11 00:10:43 +11:00
Anton Hvornum
dbb3c0a30e
Merged PR #790 - Fixes (default) issues in menu selection
Add handling of default options in multi-choice menus
2021-12-07 14:43:17 +00:00
Didr
e344021b58
Add handling of default options in multi-choice menus
In multiple choice menu: Return `self.default_option` instead of visible name if visible name contains " (default)".
2021-12-07 14:54:59 +01:00
Anton Hvornum
b1b820f4cb
Fixing some mypy complaints (#780)
* Fixed some mypy issues regarding SysCommand* and logging
* Fixed imports and undefined variable
2021-12-02 21:20:31 +01:00
Daniel
908c7b8cc0
Add simple menu for better UX (#660)
* Add simple menu for better UX
* Add remove external dependency
* Fix harddisk return value on skip
* Table output for partitioning process
* Switch partitioning to simple menu
* fixup! Switch partitioning to simple menu
* Ignoring complexity and binary operator issues
Only in simple_menu.py
* Added license text to the MIT licensed file
* Added in versioning information
* Fixed some imports and removed the last generic_select() from user_interaction. Also fixed a revert/merged fork of ask_for_main_filesystem_format()
* Update color scheme to match Arch style better
* Use cyan as default cursor color
* Leave simple menu the same

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com>
2021-12-02 21:17:51 +01:00
Anton Hvornum
22ee2d90a1
Merged PR #775 - Adds version to user_conf.json
Adds version to user_configuration.json
2021-11-28 10:32:48 +00:00
Anton Hvornum
5aaa8d9814 Adds version to user_conf.json
The key is never read anywhere, but would be useful in debugging purposes.
2021-11-28 11:31:23 +01:00
Anton Hvornum
7fd26817a1
Merge pull request #773 from archlinux/torxed-fix-examples
Updated examples - fixes #772
2021-11-26 14:26:18 +00:00
Anton Hvornum
87e75a7d09 Updated examples, fix #772 2021-11-26 14:24:47 +00:00
Anton Hvornum
e285d84651
Merge pull request #769 from dylanmtaylor/patch-2
Set the version for master to 2.3.1 development
2021-11-25 12:08:59 +00:00
Anton Hvornum
5d4673cfff
Only create pypi releases on publishing a release
Since we can create them, but as draft or locally through tagging. It's best to safe bet this to only published releases. Worst case manual submission has to be done.
2021-11-25 12:08:43 +00:00
Dylan M. Taylor
93714133f4
Set the version for master to 2.3.1 development 2021-11-24 16:37:29 -05:00