Commit Graph

3051 Commits

Author SHA1 Message Date
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 1b3cffb3df.
* 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
Anton Hvornum c4ba14e62a
Bumped the version to v2.3.0 2021-11-24 22:27:38 +01:00
Anton Hvornum 8bb631ad7f Re-phrased btrfs subvolume question to only allow for a default layout 2021-11-24 22:24:11 +01:00
Anton Hvornum bf9d53ae0b
Removed silent 'ok' on mkdir and path for chmod on crypttab setup (#768)
* Removed silent 'ok' on mkdir for encryption key dir
* Fixed chmod path during crypttab setup
2021-11-24 21:52:38 +01:00
Anton Hvornum 070d088462
Added error handling to guided surrounding disk_layouts 2021-11-24 21:33:53 +01:00
Werner Llácer 2058e61dc7
Issue #764 Modify inclusion of self.BINARIES entry due to a mistype (#765)
* Modify inclusion of self.BINARIES entry due to a mistype
2021-11-24 20:29:20 +01:00
Anton Hvornum e729457b6c
Support encrypting multiple partitions (#759)
* Added support for storing disk encryption keyfiles and add them to a keyslot.
* Added a luks2().add_key() function in order to inject a keyfile into a keyslot on a encrypted volume.
* Simplified 'missing encryption password' logic in Filesystem(). Added a call to luks2().add_key() after the root-password is set on the volume, to add the keyfile in slot 2
* Adding in password handling in luks2().add_key(). It's required to enter a previous passphrase to unlock the volume and add a new keyslot. Also simplified the handling of partition in Installer().mount_ordered_layout()
* Adding in encryption on all partitions except /boot when encryption is opted in
* Removed setting size on Partition() as it's a read only value. No idea how Partition().size = size hasn't caused an issue before. Removed size=X argument to Partition()
* Added a uniqueness to the loopdevice name. This should ensure that multiple encrypted volumes can be opened at the same time, except for Partition().detect_inner_filesystem() operations which can only happen one at a time since they share namespace. This should never be an issue since archinstall is single threaded and no concurrent operations can/should happen.
* Added partprobe() as part of disk/helpers.py, added a /dev/ -> UUID mapper function called convert_device_to_uuid(path). Added a luks2().crypttab() function that sets up a /etc/crypttab entry.
* Moved the responsability for telling archinstall to generate a keyfile from Filesystem() to user_interaction.py. This should in the future be a user-input based value, and not something the Filesystem() automatically dictates.
* Added a retry mechanism to luks2().encrypt() to avoid having to re-start the installation when a device simply wasn't up yet.
* Swapping UUID= lookup from loopdev to physdev.
2021-11-24 00:09:33 +01:00
Anton Hvornum 29736c4a05
Merge pull request #763 from dylanmtaylor/archive-tools
Add archive tools to close #654
2021-11-23 20:52:40 +00:00
Anton Hvornum 2328570520
Merge pull request #762 from dylanmtaylor/fix-import
Fix error at end of installation from missing method import
2021-11-23 20:51:40 +00:00
Dylan M. Taylor d46b712f78 Add archive tools to close #654 2021-11-23 15:36:05 -05:00
Dylan Taylor 04c2b19dbe Fix error at end of installation from missing method import 2021-11-23 15:27:02 -05:00
Dylan M. Taylor 72d02a391d
Add accessibility packages to installed system if using the on the live ISO (#760)
* Add group of accesibility tools
* Conditionally extend base packages
* Enable it if accessibility in use in guided
* Fix circular import
2021-11-23 21:10:21 +01:00
Anton Hvornum 6b6c9c84be
Adding a warning when /boot is reasonably too small (#738)
* Moved convert_size_to_gb() into disk/helpers.py, Added a Partition().size property meta function. Using the .size value to check if /boot is too small which will raise an exception. The only drawback is that it's done post-formatting. This in order to catch scenarios where formatting isn't used.
* Changed /boot warning from 0.15GB to 0.25GB
* Changed the wording in the warning when /boot is too small.
2021-11-23 11:37:51 +00:00
Anton Hvornum e156971191
Merge pull request #756 from Firminator/patch-1
Update filesystem.py
2021-11-23 06:46:11 +00:00
Anton Hvornum 2be4576c42
Merge pull request #755 from dylanmtaylor/advanced-efistub
Rewrite bootloader selection to allow efistub if advanced flag is set
2021-11-23 06:45:28 +00:00
Firminator 7774165b96
Update filesystem.py
just a few typos
* label instead of labling
* make UUID consistent
2021-11-22 20:51:26 -05:00
Dylan Taylor 45ba4a3f1b Rewrite bootloader selection to allow efistub if advanced flag is set 2021-11-22 20:25:43 -05:00
Anton Hvornum 77e4bf6fa9
Merge pull request #754 from dylanmtaylor/patch-1
Mention the --advanced flag in the README
2021-11-22 20:26:28 +00:00
Dylan M. Taylor 5226fffec3
Mention the --advanced flag in the README 2021-11-22 15:16:04 -05:00
Dylan M. Taylor e532b76158
Make NTFS an advanced option (#753)
* Make NTFS an advanced option
2021-11-22 21:08:41 +01:00
Dylan M. Taylor 0c96ae049d
NTFS Root Filesystem Support (#748)
* For fun, allow NTFS as a root filesystem type
Add ability to format a filesystem as NTFS
Try to force filesystem type
Fix FAT mounting
* Split out mount fs type method
* Handle rootfstype on non-GRUB bootloaders
* Add -Q to mkfs.ntfs command line for quick formatting
* I believe this will fix GRUB with NTFS root
* Remove the fsck hook if NTFS is used as the root partition
* Looks like the string is ntfs3 not ntfs so this logic wasn't running
2021-11-22 17:22:51 +01:00