Commit Graph

475 Commits

Author SHA1 Message Date
Anton Hvornum 3f5170f422
Added 'exited' as a viable status code for services 2023-02-27 11:56:44 +01:00
Anton Hvornum 50d20f0b80
Added more services that we need to wait for. (#1647)
* Added more services that we need to wait for.

* Fixed small issue with previous commit not checking if disk_encryption is None or not.
2023-02-27 09:43:26 +01:00
Daniel Girtler e05df22986
Remove HSM from global menu (#1559)
* Remove HSM from global menu

* Update

* Update

* Removed sys import

Unused import

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-11-13 13:56:21 +01:00
Daniel Girtler c3862c5779
New encryption menu (#1520)
* New encryption menu

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-11-11 09:40:05 +01:00
Anton Hvornum faa93d9e24
Improved speed in --skip-mirror-check (#1505) 2022-10-06 18:56:53 +02:00
codefiles 977976f88e
Add hostname and locales as parameters to `minimal_installation()` (#1458) 2022-10-03 16:42:10 +02:00
Anton Hvornum ee64276f0e
Value comparison error for dropping into shell (#1441)
* Changed choice to choice.value.
2022-08-29 00:19:20 +02:00
codefiles 397cceca90
Fix check for additional repositories (#1391)
* Fix typos

* Fix check for additional repositories
2022-08-11 11:32:33 +02:00
Abhay Mohandas 463114356c
Option for Parallel Downloads (#1397)
* Adding menu

* Working on parallel downloads

* error updates

* updates

* update

* Few more updates

* bug fixes

* More bug fixes

* Minor bug fixes

* Few changes

* Minor changes

* Cleaned up add_number_of_parrallel_downloads() and hid it behind --advanced

* Forgot one import

* Fixed flake8

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-08-01 15:39:39 +02:00
virtual-meme-machine 956b34905b
- Fix KeyError exceptions (#1354) 2022-08-01 09:56:08 +02:00
Anton Hvornum 7943dd8236
Added more offline functionality, such as skipping package search (#1296)
* Added more offline functionality, such as skipping package search

* Disabled list_mirrors() from going online if --offline is given. Defaults to /etc/pacman.d/mirrorlist instead.

* Forgot import of pathlib

* Made list_mirrors() open /etc/pacman.d/mirrorlist in byte mode to better emulate the result of urllib response reading.

* Forgot variable declaration

* Made list_mirrors include activated server definitions
2022-06-02 13:32:42 +02:00
Anton Hvornum 0601956b5b
Moved genfstab() to guided.py instead of __exit__ of Installer(). This is a breaking change. 2022-05-29 09:44:31 +02:00
Daniel Girtler 870da403e7
Rework user management (#1220)
* Rework users

* Update user installation

* Fix config serialization

* Update

* Update schemas and documentation

* Update

* Fix flake8

* Make users mypy compatible

* Fix minor copy

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-26 21:48:29 +02:00
Anton Hvornum 493cccc18f
Added a HSM menu entry (#1196)
* Added a HSM menu entry, but also a safety check to make sure a FIDO device is connected

* flake8 complaints

* Adding FIDO lookup using cryptenroll listing

* Added systemd-cryptenroll --fido2-device=list

* Removed old _select_hsm call

* Fixed flake8 complaints

* Added support for locking and unlocking with a HSM

* Removed hardcoded paths in favor of PR merge

* Removed hardcoded paths in favor of PR merge

* Fixed mypy complaint

* Flake8 issue

* Added sd-encrypt for HSM and revert back to encrypt when HSM is not used (stability reason)

* Added /etc/vconsole.conf and tweaked fido2_enroll() to use the proper paths

* Spelling error

* Using UUID instead of PARTUUID when using HSM. I can't figure out how to get sd-encrypt to use PARTUUID instead. Added a Partition().part_uuid function. Actually renamed .uuid to .part_uuid and created a .uuid instead.

* Adding missing package libfido2 and removed tpm2-device=auto as it overrides everything and forces password prompt to be used over FIDO2, no matter the order of the options.

* Added some notes to clarify some choices.

* Had to move libfido2 package install to later in the chain, as there's not even a base during mounting :P
2022-05-18 11:28:59 +02:00
Daniel Girtler 0fa52a5424
Introduce ctrl+c and other bug fixes (#1152)
* Intergrate ctrl+c

* stash

* Update

* Fix profile reset

* flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-09 12:02:48 +02:00
Alexmelman88 20ffebac50
Updated base.pot, added new translation strings from *.py files, updated ru locale (#1146)
* Create base.po

* Add files via upload

* Delete base.po

* Add files via upload

* Delete base.mo

* Add files via upload

* Update base.pot

* Update base.po

* Delete base.mo

* Add files via upload

* Delete base.mo

* Add files via upload

* Update base.po

* Delete base.mo

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Update desktop.py

* Update minimal.py

* Update xorg.py

* Update server.py

* Update desktop.py

* Update server.py

* Update guided.py

* Add files via upload

* Add files via upload

* Update guided.py

* Add files via upload

* Add files via upload
2022-05-09 09:58:06 +02:00
Daniel Girtler bcd810d2d2
Fix 1117 (#1126)
* Fix 1117

* Update

* flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-05 12:48:01 +02:00
Anton Hvornum eafbf49cdc
Adding back 'timedatectl set-ntp true' but with the condition of it being activated. This is because the default NTP value is set to True. And will subsequently never be triggered through the menu system. So we'll have to activate it (again) if set to True before installer starts. 2022-04-26 15:13:29 +02:00
Anton Hvornum 010f6eaf97
Added a NTP status check before processing to installation. (#1086) 2022-04-26 15:07:12 +02:00
Anton Hvornum 9a6e85fb46
Removed NTP by default. Instead, if NTP is selected or de-selected it will activate/de-activate ntp accordingly. 2022-04-26 14:49:03 +02:00
Daniel bbedc0bb19
Flexible order of menu options (#1078)
* Allow custom ordering of the menu entries

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-04-22 13:24:43 +02:00
Daniel 477b5b120e
Support for multiple network interfaces (#1052)
* Support for multiple network interfaces

* Fix mypy

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-04-22 13:24:12 +02:00
Werner Llácer e85c9b6531
Issues with Network Management and user management in menu (#1036)
* A problem with default values treatment at superusers (and users) on the main menu

* Solving issues when changing the selection of nic, ask_to_configure_network failed in several places.
Solved, temporarily with the creation of __getitem__ and get methods at NetworkManager

* Accept old style definitions for nic

* flake8 complains

* log string corrected (issue 1039)

* Correct exit when no disk is selected and we don't wish to continue
2022-03-28 13:44:10 +02:00
Daniel 35a19a616a
Menu option save config (#1009)
* Add new save config menu option

* Update

* Fixed issue with merging

* Fixed merge issue (I think)

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-02-28 17:03:37 +01:00
Daniel 537b9cab03
Rework network config (#1001)
* Update network configuration

* Rework network configuration

* Update documentation

* Fix flake8

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-02-28 15:57:57 +01:00
Daniel 6489a417aa
Fix #966 - DeferredTranslation errors (#976)
* Fix #966

* Add types to parameters

* Update network configuration

* Backwards compability for nic config

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-15 08:44:58 +01:00
Dylan M. Taylor d9118a33b3
Switch from flags to an 'additional repository' menu (#977)
* Add multilib flag to enable this repository and enable multi-lib testing if testing flag is also passed

* Fix comments

* Attempt to force pacman to use the config file from the host

* Make sure the pacman configuration is copied to target

* flake8

* Call enable on additional-repositories

* Add method to select additional repositories

* Add menu option for additional repos

* This is a bit cleaner than having it all on one line

* Add import

* Use [] as default instead of None

* Use empty array for default option here

* Try this to ensure a valid array is returned on skipping

* Add additional-repositories to schema

* Missed changing this comment earlier
2022-02-13 16:30:49 +01:00
Dylan M. Taylor fb72cc4204
Add multilib flag and enable multilib-testing if testing flag is also passed (#975)
* Add multilib flag to enable this repository and enable multi-lib testing if testing flag is also passed

* Fix comments

* Attempt to force pacman to use the config file from the host

* Make sure the pacman configuration is copied to target

* flake8
2022-02-13 10:10:35 +01:00
Dylan M. Taylor 8457aa5660
Set default bootloader based on presence of UEFI (#980)
* Set default bootloader based on presence of UEFI

* Correct a comment
2022-02-13 10:09:05 +01:00
Dylan M. Taylor 1df17eb987
Add a flag to install testing repositories (#967)
* Add a boolean to install testing repos, default to false

* More work on adding structure

* Add logic to enable testing repos.

* Corrections

* Make flake8 happy about regex escapes

* Flake8 doesn't like whitespace around equals

* Fix trailing whitespace character
2022-02-12 18:11:34 +01:00
Daniel 003a35be3d
Fix errors on selection of additional packages (#959)
* Fix errors on selection of additional packages

* Fix flake8

* Added the new /groups/search/json/?name=x endpoint merged today

* Fixed flake8 complaint

* Forgot to do json.loads() on the HTTP request result

* Update package selection

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-12 11:47:51 +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
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
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 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
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
Dylan M. Taylor 90e320dd11
Allow mirror reachability check to be skipped (#910)
* Allow network check to be skipped

* Technically it is a mirror check - not a check for general connectivity
2022-01-26 07:53:38 +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
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
Anton Hvornum da0c08e79a Added in version history in the configuration 2022-01-14 12:54:22 +01:00
Anton Hvornum f175ea8b7d
Created a save_user_configurations (#856)
* Created a save_user_configurations

This should avoid accidental placement of individual json outputs in a way that some doesn't get saved before installation continues etc.

* Was looking for disk_layouts in the wrong place.
* changed numerous other references to disk_layouts looking in the wrong place.
2022-01-14 11:48:56 +01: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
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
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