Commit Graph

1144 Commits

Author SHA1 Message Date
Werner Llácer ef558fdb45
Solving some issues after merging flexible_menu (#948)
* Correct definition of btrfs standard layout

* Solve issue #936

* make ask_for_a_timezone as synonym to ask_timezone

* first batch of changes due to the last merges
selector.text is a call to selector.menu_text
A number of Generalmenu methods reappeared in their old version at Global

* disk encryption password menu option restored
2022-02-07 01:58:33 +01:00
Daniel 20e23dcecd
Add locale script (#945)
* Add locales script

* Add gitignore exception

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-06 15:17:43 +01:00
Werner Llácer 1ea6fea1d8
Flexible menu 2 (#916)
* Correct definition of btrfs standard layout

* New version of the FlexibleMenu
* Added new functionality to Selector
* Created a GeneralMenu class
* GlobalMenu is made a child of GeneralMenu

* Some refining in GeneralMenu
secret is now a general function

* log is invoked in GeneralMenu directly

* Correction at GeneralMenu

* Materialize again _setup_selection_menu_options. Gives more room to play

* Callbacks converted as methods
Synch() (data area and menu) decoupled from enable()
and made general before any run

* script swiss added to the patch set

* Only_hd gets a new implementation of the menu
flake8 corrections

* swiss.py description added

* New version of the FlexibleMenu
* Added new functionality to Selector
* Created a GeneralMenu class
* GlobalMenu is made a child of GeneralMenu

* changes from the rebase left dangling

* Modify order of execution between exec_menu and post_processing.
Added selector_name as parameter for exec_menu

* minor corrections to the scripts

* Adapt to PR #874

* Solve issue #936

* make ask_for_a_timezone as synonym to ask_timezone

* Adapted to nationalization framework (PR 893).
String still NOT adapted

* flake8 complains

* Use of archinstall.output_config instead of local copy at swiss.py

* Problems with the last merge

* more flake8 complains. caused by reverted changes re. ask*timezone

* git complains

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-06 11:54:13 +01:00
Daniel 9fb8d3164c
Update nationalization (#944)
* Update nationalization

* Update translations

* Finish german translation

* Fix errors #943

* Add remaining translations

* Fix alignment in menu

* Update README

* Update translations:

* Fix flake8

* Update tz function

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-06 11:30:26 +01:00
Werner Llácer ec73bdab4c
Routine to properly print and save config data (#888)
* Created a standard function to show/save the config parameters

* flake8 complains

* Correct definition of btrfs standard layout

* Solve issue #936

* Moved output_configs to lib/configuration.py
2022-02-05 13:52:14 +01:00
Anton Hvornum 0ec9549dc4
Renamed ask_timezone() 2022-02-05 11:17:41 +01:00
Daniel f6d133804b
Provide nationalization (#893)
* Nationalization

* Add _ as builtins to flake8

* Removing conflict hash tag

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-05 00:27:29 +01:00
Victor Gavro 68c2988358
disk layout: allow to omit partition "start" option to start from previous partition end (#895)
* disk layout: allow to omit partition "start" option to start from previous partition end

* mixed tabs/spaces fixes

* Update filesystem.py

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-02-04 23:58:44 +01:00
Werner Llácer 85f2938df9
Moving load_config from guided to \__init__.py (#887)
* The initializations done at the start of guided.py are now at archinstall/__init__.py
The scripts have been changed accordingly

* Correct definition of btrfs standard layout

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-04 23:48:41 +01:00
Werner Llácer 3cd7dc24c7
Command locales (second batch) (#886)
* flexibilize the definition of execution locale for OS commands executed via the SysCommand* interface.
Defined a storage argument which holds the default
Added functions to
unset the program own locales
reset to the program default locales
set a specific locale
A decorator to execute functions in the host locale environment

* rename decorator local_environ to host_locale_environ
created a simmetric decorator c_locale_environ, to make a routine work with the C locale whatever is set

* Correct definition of btrfs standard layout

* Added error handling

* Fixed issue where archinstall.Boot() would raise an exception in vain

* Added debugging for SysCommandWorker()

* Added some debugging

* Tweaking debug a bit

* Tweaking debug

* Adding more debug

* Adding more debug

* Removed some debugging

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Removed soem debugging

* Removed soem debugging

* Testing a revert

* Adding back the reverted change, adding lofile

* Redirecting stdout to /dev/null for testing (to avoid interrupting the fork)

* Reverted debug changes

* Testing os.system()

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-03 00:02:30 +01:00
Anton Hvornum 389feef035
Torxed pydantic to dataclass (#935)
* Converted pydantic things to @dataclass definitions.

* Added import for the dataclasses

* flake8 fixes
2022-02-02 15:01:17 +01:00
Daniel 37d6da7e4e
Migrate old input to new menu (#874)
* Migrate old input to new menu

* Fix imports

* Remove imports

* Update

* Fixed import by changing 'import archinstall', to 'from ..menu import Menu' and use Menu() directly

* Converted archinstall.<thing> to from ..where import <thing>. This enables us to use archinstall as a module, a git repository in testing and other things without having to install archinstall as an actual module.

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-02 14:26:09 +01:00
Anton Hvornum d3cf8a3655 Removed dead import 2022-02-02 14:24:20 +01:00
Anton Hvornum c08520f990
SysCommand() to remove ANSII VT100 Esc codes & archlinux-keyring fix (#933)
* Fixed SysCommandWorker() so that it removes ANSII VT100 escape codes. I also moved package.py into it's own folder, as that's something I want to expand on a lot, so package related stuff should go in there. I created a installed_package() function which gets information about the locally installed package. I changed so that find_packages() and find_package() returns a data-model instead for the package information. This should unify and make sure we detect issues down the line.

* Working on structuring .version constructor that works with BaseModel

* Added version contructors to VersionDef(). Also added __eq__ and __lt__ to LocalPackage() and PackageSearchResult().

* removed debug and added a TODO

* Removed whitespace

* Removed mirror-database function from myrepo
2022-02-02 14:22:52 +01:00
Anton Hvornum 08ffffe5b3 Changed working version in master to v2.4.0-dev0 2022-02-02 08:30:26 +01:00
Anton Hvornum 7f01747efc
Torxed fix sys command calls (#932)
* Fixed exceptions in is_vm() and virtualization()

* Added exception handling for parted in BlockDevice.free_space
2022-02-02 08:18:12 +01:00
Anton Hvornum a7c57bac53 forgot import of log() 2022-02-02 08:12:06 +01:00
Anton Hvornum 6830a8050c forgot import of log() 2022-02-02 08:10:57 +01:00
Anton Hvornum 5cfec48ac4
Added a by-path import to support git clone - import of the library (#931) 2022-02-02 08:09:12 +01:00
Werner Llácer e3adab13e8
Issue923 (#927)
* Correct definition of btrfs standard layout

* Solving issue 923.
Standarize keyword "wipe" to signal the need of formatting a FS

* flake8 complains
2022-02-01 16:44:39 +01:00
Timothy Pidashev 64bde666ac
Add --noconfirm flag to update_keyring() (#922) 2022-01-30 17:28:59 +01:00
Anton Hvornum 281ccf99a4 Fixed an issue where SysCommand() never utilized the SysCommandWorker() context, which means SysCommandWorker() never closed the pty, hogging all system handles for it. 2022-01-30 17:24:01 +01:00
Timothy Pidashev 179c103cdd
Synchronize `archlinux-keyring` when running guided.py (#917)
* Update guided.py

* Update guided.py

* Update guided.py

* Fix typo

* Format string properly; elaborate log msg

* Make change consistent to mirror-check

* Update documentation
2022-01-30 11:01:04 +01:00
OneLongneck f0886f3a7f
Update installer.py (#1) (#793)
Added "--removable" after "--bootloader-id=GRUB" on Line 669, because it would throw an input/output error without it on my laptop
2022-01-26 09:38:01 +01:00
Werner Llácer e629729d55
Correct definition of btrfs standard layout (#906) 2022-01-25 18:12:45 +01:00
Anton Hvornum 1aa738691e
Fixing the 'device_instance' being None in some partition places (#902)
* Added a new return value from add_partition. Also added an exception to make sure `add_partition` can't continue silently

* Added a log of debugging to add_partition

* Removed a blank line (flake8)

* Misconfigured variable

* Added some more debugging information to partprobe

* FIX: disk layout: partprobe should be called and checked only for target device (#896)

* disk layout: partprobe should be called and checked only for target device

* disk layout: partprobe: removed unnecessary bash subprocess

* Properly defined BlockDevice() on Partition() creation. Also made sure mount-checks got some rrro handling and non-block devices should no longer attempt to return a size

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Victor Gavro <vgavro@gmail.com>
2022-01-25 16:09:34 +01:00
Dylan M. Taylor 5406f1ed45
Make text for getting filesystems more grammatically correct (#903)
* Make text for getting filesystems more grammatically correct

Use 'Retry attempt {count} of 10.' instead of Waiting for the {count} time". It's more grammatically correct since we're not doing '1st', '2nd', etc.

* Maybe mention waiting still
2022-01-25 15:31:38 +01:00
Victor Gavro eb712a9ca5
FIX: disk layout: partprobe should be called and checked only for target device (#896)
* disk layout: partprobe should be called and checked only for target device

* disk layout: partprobe: removed unnecessary bash subprocess
2022-01-25 14:45:28 +01:00
Anton Hvornum 26f9b681a4 Removed last lsblk to grab PARTUUID (#901)
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-25 12:40:04 +00:00
Werner Llácer b5f50889eb
get rid of an exit() (#899) 2022-01-24 12:36:23 +01:00
Werner Llácer bb98594054
Solve issue #894 (#898)
some references to archinstall.storage turned to archinstall.arguments
2022-01-24 10:33:46 +01:00
Thomas 34488d25c5
Disable zswap (#883)
Disable zswap when using zram.

The swap device is now initialised before the bootloader, inline with the
installation guide.
2022-01-20 17:49:18 +00:00
Thomas 671bf7595c
Enable periodic TRIM (#882) 2022-01-20 16:32:07 +01:00
Werner Llácer c776e30191
Some issues at Guided.py (#878)
* Solves issue #873 (error by key sys-language
Now disk_layouts file contents are loaded before calling the menu

* Solves issue #873 (error by key sys-language. Solution in previous commit was still too restrictive
2022-01-18 20:57:30 +01:00
Werner Llácer 3d30a4eb28
Missing arguments after GlobalMenu execution (issue #868) (#871)
* Install.__init__ parameter kernel as a list everywhere.
I've dropped the string check, as it shouldn't happen again, and it's good that it fails, when it happens

* Global Menu now loads in the arguments dict all options enabled with default value and no manually selected (issue #868)
2022-01-15 21:44:13 +01:00
Werner Llácer 6b4f09ef01
Changes to take correctly the 'kernels' argument (cf. isssue 868) (#869) 2022-01-15 14:17:04 +01:00
Anton Hvornum b533bd0553 Moved lib.plugin import to the top 2022-01-14 13:23:30 +01:00
Anton Hvornum 8fae958571 Unified filesystem names by using get_mount_fs_type() function before .format() is called 2022-01-14 11:19:34 +01:00
Anton Hvornum ae35f11e1a Changed the default btrfs layout to have @ as / 2022-01-14 08:47:34 +01:00
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
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