Commit Graph

131 Commits

Author SHA1 Message Date
Anton Hvornum a43344c5ae
Adding pack packages to profiles after they were removed (#1956)
* Added back xinit for awesome, since it can be used without a greeter, as well as other useful tools we've had in previous releases

* Fixing xinitrc for awesome profile

* Attempting to grab xorg packages when installing the desktop profile

* Spelling error on xorg-server

* Fixed sway value error on seat selection
2023-07-30 00:28:21 +02:00
Daniel Girtler 439bb5428b
Fix 1934 - audio server regression (#1946)
* Audio configuration

* Update

* Update schema

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-07-25 11:17:09 +02:00
Daniel Girtler 2f273868d4
Fix network settings loading from config file (#1921)
* Fix network config error and simplify code

* Update schema and exmaple

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-07-17 09:27:21 +02:00
Anton Hvornum 5b102b0228
Adding python-simple-term-menu to the dependency list (#1901)
* Adding python-simple-term-menu to the dependency list

* Added dependencies to all binaries we call, such as 'ps' and 'mkfs' etc

* Sorted the depends list - just for peace of mind

* Bumped version in prep for release of rc1, also updated README a bit

* Removed older python versions from classifiers
2023-06-28 14:22:07 +02:00
Himadri Bhattacharjee 72661dbf9b
Simplify object serialization before JSON encoding (#1871)
* fix: check for helper functions for unsafe encode before falling back to safe encoding

* feat: merge _encode and _unsafe_encode into simple serialization function to avoid immediate json.loads after json.dumps

* fix: use function instead of a serializing class without trying to serialize keys that are unhashable or unsupported

* feat: lazily evaluate serialized value based on key validity

* feat: use dictionary comprehension and predefined compatible types

* fix: handle enum types immediately after dicts

* fix: return stringified object as a default

* doc: update function docstring for serialize_to_dict

* fix: rename serialize_to_dict to jsonify as it serializes to other primitive types as well
2023-06-22 14:09:14 +02:00
Daniel Girtler c7c34c9e70
Make Gfx driver handling saver (#1885)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:52:48 +02:00
Daniel Girtler 1b5ecb65aa
Always verify permissions and check for log dir (#1874)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:47:30 +02:00
Daniel Girtler 06eadb31d4
Move locales and cleanup menu (#1814)
* Cleanup imports and unused code

* Cleanup imports and unused code

* Update build check

* Keep deprecation exception

* Simplify logging

* Move locale into new sub-menu

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-05 10:02:49 +02:00
Daniel Girtler 8a292a163e
Add custom mirror support (#1816)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-15 09:16:18 +02:00
Daniel Girtler 89cefb9a1c
Cleanup imports and unused code (#1801)
* Cleanup imports and unused code

* Update build check

* Keep deprecation exception

* Simplify logging

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-11 18:30:09 +02:00
Daniel Girtler eb23b2d7c9
Update version 2.5.6 (#1791)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07 08:38:29 +02:00
Daniel Girtler ec4ecbcb7a
Full mypy compliance and small fixes (#1777)
* Fix mypy compliance

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-03 16:36:46 +02:00
Daniel Girtler 32982b880b
Fix import and configuration loading issues (#1764)
* Fix import and configuration loading issues

* Fix mypy

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-22 08:04:36 +02:00
Daniel Girtler 00b0ae7ba4
PyParted and a large rewrite of the underlying partitioning (#1604)
* Invert mypy files

* Add optional pre-commit hooks

* New profile structure

* Serialize profiles

* Use profile instead of classmethod

* Custom profile setup

* Separator between back

* Support profile import via url

* Move profiles module

* Refactor files

* Remove symlink

* Add user to docker group

* Update schema description

* Handle list services

* mypy fixes

* mypy fixes

* Rename profilesv2 to profiles

* flake8

* mypy again

* Support selecting DM

* Fix mypy

* Cleanup

* Update greeter setting

* Update schema

* Revert toml changes

* Poc external dependencies

* Dependency support

* New encryption menu

* flake8

* Mypy and flake8

* Unify lsblk command

* Update bootloader configuration

* Git hooks

* Fix import

* Pyparted

* Remove custom font setting

* flake8

* Remove default preview

* Manual partitioning menu

* Update structure

* Disk configuration

* Update filesystem

* luks2 encryption

* Everything works until installation

* Btrfsutil

* Btrfs handling

* Update btrfs

* Save encryption config

* Fix pipewire issue

* Update mypy version

* Update all pre-commit

* Update package versions

* Revert audio/pipewire

* Merge master PRs

* Add master changes

* Merge master changes

* Small renaming

* Pull master changes

* Reset disk enc after disk config change

* Generate locals

* Update naming

* Fix imports

* Fix broken sync

* Fix pre selection on table menu

* Profile menu

* Update profile

* Fix post_install

* Added python-pyparted to PKGBUILD, this requires [testing] to be enabled in order to run makepkg. Package still works via python -m build etc.

* Swaped around some setuptools logic in pyproject

Since we define `package-data` and `packages` there should be no need for:
```
[tool.setuptools.packages.find]
where = ["archinstall", "archinstall.*"]
```

* Removed pyproject collisions. Duplicate definitions.

* Made sure pyproject.toml includes languages

* Add example and update README

* Fix pyproject issues

* Generate locale

* Refactor imports

* Simplify imports

* Add profile description and package examples

* Align code

* Fix mypy

* Simplify imports

* Fix saving config

* Fix wrong luks merge

* Refactor installation

* Fix cdrom device loading

* Fix wrongly merged code

* Fix imports and greeter

* Don't terminate on partprobe error

* Use specific path on partprobe from luks

* Update archinstall/lib/disk/device_model.py

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

* Update archinstall/lib/disk/device_model.py

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

* Update github workflow to test archinstall installation

* Update sway merge

* Generate locales

* Update workflow

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
2023-04-19 12:55:42 +02:00
Anton Hvornum 9fe9fd6e62
Version bump v2.5.4 (#1694) 2023-03-29 13:29:13 +02:00
Daniel Girtler 83f4b4178f
Save encryption configuration (#1672)
* Save encryption configuration

* Fix deserialization problem

* Added .part_uuid to MapperDev

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2023-03-29 12:48:11 +02:00
Anton Hvornum 70213ee114
Fixed indentation issue after #1657 2023-02-28 15:52:30 +01:00
Himadri Bhattacharjee 2559e0dc10
Uses dict setdefault instead of manually checking if key-value pair exists. (#1657) 2023-02-28 15:46:38 +01:00
Anton Hvornum fa1bec9679
Bumped version to v2.5.3 2023-02-27 19:38:02 +01:00
Anton Hvornum ea029ed3f9
Patch for 1557 (#1645)
* Attempting a retry-attempt on the broken part of lsblk

* Improved logging

* Adding a retry to Partition._call_lsblk()

* Added error checks if lsblk returns nothing, also handles empty Partition().info instance.

* Added missing check of disk encryption is None or not.

* Added tweak to catching output from lsblk.stderr

* Added missing check of disk encryption is None or not.

* Fixed a logic test for empty lsblk info

* Fixed instances of None being interated

* Added some errro handling for weird block devices

* Fixed flake8

* Added /etc/vconsole.conf generation in Installer.mkinitcpio() as it's a dependency for it to generate properly without errors. Otherwise we'll get ==> ERRROR: file not found: '/etc/vconsole.conf'

* Prep for tagging RC1 of 2.5.3

* Corrected helpers.py get_blockdevice_info() to deal with empty lsblk results
2023-02-27 09:39:48 +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 16ca69540c
Version bump v2.5.2 (forgot before tagging the release) 2022-10-12 20:28:55 +02:00
benni347 4a5d38ff8a
Fixed spelling mistakes (#1496)
* Fixed spelling mistakes

* Fixed the spelling of JSON so it comforms to the offical spelling of it.
2022-10-02 22:10:04 +02:00
Anton Hvornum 53a2797af6
Updating version to v2.5.1 2022-09-25 12:05:25 +02:00
Daniel Girtler 4dcd5e684f
Move deserialization into init (#1456)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-09-06 08:31:08 +02:00
Anton Hvornum ea407f5c9d
Version bump to v2.5.1rc1 in prep for release 2022-08-30 23:57:44 +02:00
Anton Hvornum 1086fd686d
Cleaned up argument loading slighly. (#1419)
* Cleaned up argument loading slighly. Also flipped some --silent logic to avoid double negatives. --plugin and --conf {'plugin': ...} should now both work.

* Tweaked xorg profile to use list instead of strings. Because strings causes some issues through add_additional_packages() as it ends up as [(xorg, xorg-xinit), nano] instead of a flat list of packages or string.

* Tweaked xorg profile to use list instead of strings. Because strings causes some issues through add_additional_packages() as it ends up as [(xorg, xorg-xinit), nano] instead of a flat list of packages or string.
2022-08-11 18:06:02 +02:00
Metin Yazici 3e10fc106b
Add command line option to get the program version (#1406) 2022-08-09 20:14:28 +02:00
Daniel Girtler cfea0d6d1a
Update translations (#1348)
* Show translations in own tongue

* Fix flake8

* Update

* Update

* Update

* Update

* fix mypy

* Update

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-08-01 09:44:57 +02:00
Daniel Girtler a7ca037a26
Update the subvolume menu - fix for #1278 (#1297)
* Update subvolume

* Add mypy compliance

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-06-06 17:28:46 +02:00
Daniel Girtler 2d4b262046
Handle cyrillic characters (#1309)
* Handle cyrillic characters

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-06 17:26:27 +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
Kian-Meng Ang 2de153003e
Fix typos (#1265) 2022-05-29 09:31:18 +02:00
Anton Hvornum 79fc663e3f
Version bump in prep for release + fixed a variable issue 2022-05-27 21:58:51 +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 ac8432b97e
Version bump to RC1 for v2.4.3 2022-05-18 12:07:37 +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
Anton Hvornum 81b7524b53
Made sure remote sourcing works for --creds, --config and --disk-layout. (#1170)
* Made sure remote sourcing works for --creds, --config and --disk-layout.

* Spelling error when moving around source code.
2022-05-12 10:46:33 +02:00
Anton Hvornum 1320057218
Disable UniCyr font for now 2022-05-10 14:38:56 +02:00
Daniel Girtler 2492f571ea
Set the unicode cyrillic font by default (#1153)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-10 07:07:03 +02:00
Anton Hvornum 58a734e90e
Version bump to v2.4.2 2022-04-29 11:22:46 +02:00
Anton Hvornum 21da87df5e
Version bump to v2.4.1 (due to pypi.org having a yanked 2.4.0) 2022-04-27 23:39:48 +02:00
Werner Llácer 15c594bcba
When using disk_layout files but not config file, we autofill the harddrives argument (#1067) 2022-04-25 08:41:20 +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
Anton Hvornum c241d96982
Version bump to v2.4.0 RC2 2022-03-29 10:32:20 +02:00
Anton Hvornum 77b9826ab1
Fixed an import of not yet loaded module 2022-03-28 17:04:02 +02:00
Anton Hvornum 609a380a15
Fixed an import of not yet loaded module 2022-03-28 16:43:11 +02:00
Werner Llácer 4b4473632d
Subvolume User Interface (#1032)
* Deflate the user interactions file

* Fix flake8

* GlobalMenu split from selection_menu.py

* Upgrades to ListManager:
Can now show an empty list if there is no null action.
More information to the user at the header

* Put only_hd.py  and swiss.py to use new config printing mechanism
Solved a couple of bugs at
ListManager adding a str and a DeferredTranslation
ManageUser was missing an self argument in _check ...

* Create list and menus to manage subvolumes in btrfs partitions
Needed to modify manage_new_and_existing_partitions
Added a new parameter filter to select_partition, to allow filtering there

* Update internationalization strings

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-03-28 13:55:15 +02:00
Anton Hvornum 69bd88a7f9
Version bump for release candidate of v2.4.0 RC1 2022-03-28 10:43:59 +02:00
Werner Llácer f07704529f
add new widget ListManager (#1005)
* add new widget ListManager

* flake8 complains

* Null_action appears now in the main list (to simplify additions to the list)
Formatted data are now at the from to the actions submenu

* Define a default action in the menu, potentially independent of a null_action
Both default and null actions don't have to be part of the element's action list
Some cleanup
2022-02-28 16:17:10 +01:00