Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib
AgeCommit message (Collapse)Author
2023-07-17Enable separate /boot and /boot/esp via XBOOTLDR in systemd-boot (#1859)Anton Hvornum
* Disabled /boot check for now * Making '/boot' more dynamic * str() on boot_partition didn't work * _pacstrap -> pacman.strap() * Added 'finding' the EFI partition logic * f-string qotations * Locked down so get_boot_partition() looks for /boot and get_efi_partition() looks for /boot/efi - essentially hardcoding it for now, as there's no easy way to distinguish between the EFI partition or BOOT partition if they are both FAT32 for some reason. * Added some debugging output * Fixed some mypy complaints * Fixed PosixPath() vs str comparison * Changed FAT32 comparitor, should be FilesystemType.Fat32 now * Fixed PosixPath() vs str comparison * Re-ordered _add_systemd_bootloader() argument order, to match the other functions. This will cause the function to break on scripts that call this explicitly. * is_boot() now returns True if any type of valid boot flags are set, not just the 'Boot' flag. This allows us to check for XBOOTLDR flag as well. * Converted static INT to _ped.PARTITION_<flag> definition. This matches the way pyparted checks for flags on partitions. * /boot/efi -> /boot/EFI (while the recommendation from bootctl is to mount it to /efi, I want to test it with custom paths first) * Removed _ped from mypy checks * flake8 fix * Added ESP flag to partitions * Added more docs in the docstring * Renamed *efi_partition to *xbootldr_partition within this PR changes * Naming collision, PartitionType -> PartitionGUIDs to avoid overwriting existing PartitionType * Check for XBOOTLDR instead of fixed EFI mountpoint in get_xbootldr_partition() * Mixed up XBOOTLDR and EFI partitions a bit, brought back get_efi_partition() which now filters out XBOOTLDR partitions and only returns a partition when there is a boot partition found by get_boot_partition() * Fixed symbiosis between get_boot() and get_efi() so that they don't report the same potential partition * Removed debugging code * Improved comments surrounding why /loader/ rather than /loader/ - this may change
2023-06-30global_menu: wrap invalid config error message with the translation shim (#1908)Anhad Singh
* global_menu: wrap invalid config error message with the translation shim Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * validate_bootloader: add a caller note XXX: The caller is responsible for wrapping the string with the translation shim if necessary. Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> --------- Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com>
2023-06-30Refactor `_add_systemd_bootloader()` entries options (#1909)codefiles
* Refactor `_add_systemd_bootloader()` entries options * Added suggested tweak https://github.com/archlinux/archinstall/pull/1907#discussion_r1247558250 --------- Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2023-06-30Refactor `_add_systemd_bootloader()` entries creation (#1907)codefiles
2023-06-30installer: add Limine bootloader (#1815)Anhad Singh
* installer: add Limine bootloader Limine is a modern, advanced, portable, multiprotocol bootloader. [Limine GitHub](https://github.com/limine-bootloader/limine) [Limine Arch Wiki](https://wiki.archlinux.org/title/Limine) Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * limine: add UEFI support Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * global_menu: check filesystem and bootloader compatibility Before on install, only missing configurations were checked. This commit introduces bootloader validatity checks on install which verify if the selected filesystem is compatiable with the selected bootloader (for example, it is not possible to boot limine from BTRFS). Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * misc: fix the return value of `_validate_bootloader` Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * global_menu: make `mypy` happy Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * misc: make `flake8` happy Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * limine: upgrade to v5 Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * limine: install packman hooks Create the BIOS and UEFI pacman hooks so limine gets auto deployed on update. Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * installer::limine: fix broken root UUID Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * docs: add a note saying its in beta Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> * install_limine: use `safe_fs_type` Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com> --------- Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com>
2023-06-29Skip rom devices (#1906)codefiles
2023-06-28Refactor installer and general design patterns (#1895)Himadri Bhattacharjee
* fix: refactor clear_vt100_escape_codes * fix: check for structure being a dict after handling potential parsing errors * refactor: use short circuit logic than if-elif-else chains * fix: use or for nullish moutpoint attribute * fix: better error handling for JSON from urls and paths * chore: json_stream_to_structure documentation * refactor: dry up relative and chroot path for custom command scripts * refactor: use write_text for pathlib.Path object * refactor: use sets to find intersection instead of filter and list * refactor: replace loop with dictionary comprehension in preparing luks partition * refactor: use walrus operator to check if luks_handler exists * refactor: use read_text and splitlines for potential Path object * fix: use keepends in splitlines for compatibility * fix: use keepends in splitlines for compatibility * feat: set pacman_conf Path as an attribute of installer * fix: empty string is a part of any string, avoid tuples * refactor: use iterator patterns to uncomment multilib and testing blocks * fix: don't json.loads an already loaded structure * fix: use fstab_path uniformly in genfstab * fix: remove unused variable matched * refactor: create separate class to modify pacman.conf in a single pass * fix: remove unused attribute pacman_conf from installer * fix: remove unused attribute pacman_conf from installer * feat: add persist method for pacman.conf, rewrite only when needed * fix: use path.write_text for locale.conf * use `or` operator for nullish new_conf * refactor: Installer.target is always a pathlib.Path object, do not check for string type * fix: use Optional[str] in function type definition instead of sumtype of str and None * fix: mypy type annotation * fix: make flake8 happy * chore: move pacman config and repo into pacman module * refactor: use Pacman object instead of Installer's pacstrap method * fix: break after first sync * fix: keep old build script for now * use nullish operator for base_packages and disk_encryption of Installer * feat: use shutil.which instead of rolling our own implementation * fix: check for binary only if list is not empty * fix: import Enum and fix mypy errors * refactor: use nullish operator for default values * refactor: linear search for key in Installer._trace_log only once * fix: use logs instead of the entirety of self._trace_log when searching for key * refactor: do not copy slice of bytes for search * refactor: use rfind only once to iterate over logs, do not raise ValueError in clear_vt100_escape_codes since TYPE_CHECKING will take care of it. * refactor: try decoding trace log before falling back to strigification * refactor: use an empty dict as default for callbacks in SysCommand.__init__ * refactor: use nullish or operator for slice start and end when not specified * refactor: use nullish or operator for SysCommand session * refactor: use pre-existing decode method in __repr__ for SysCommand * fix: overindentation * fix: use shallow copy of callbacks to prevent mutating the key-value relationships of the argument dict * refactor: use truthy value of self.session is not None for json encoding SysCommand * refactor: directly assign to SysCommand.session in create_session since it short circuits to True if already present * refactor: use dict.items() instead of manually retrieving the value using the key * refactor: user_config_to_json method sounds pretty self explanatory * refactor: store path validity as boolean for return * refactor: use pathlib.Path.write_text to write configs to destinations * fix: cannot use assignment expressions with expression * fix: use config_output.save for saving both config and creds * refactor: switch dictionary keys and values for options to avoid redundancy * refactor: use itertools.takewhile to collect locale.gen entries until the empty line * refactor: use iterative approach for nvidia driver fix * refactor: install packages if not nvidia * refactor: return early if no profile is selected * refactor: use strip to remove commented lines * fix: install additional packages only when we have a driver * fix: path with one command is matched as relative to '.' * fix: remove translation for debug log --------- Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-28Fix 1875 (#1880)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-23fix: define ret as Optional[str] before reassignment in get_fido2_devices ↵Himadri Bhattacharjee
(#1894)
2023-06-22Fix crash when libfido2 is not installed (#1893)ArtikusHG
Co-authored-by: ArtikusHG <artiomoleynic@gmail.com>
2023-06-22Simplify object serialization before JSON encoding (#1871)Himadri Bhattacharjee
* 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-21Rename encryption method (#1888)Daniel Girtler
* Rename encryption method * Update --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21Make Gfx driver handling saver (#1885)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21Fix 1862 (#1884)Daniel Girtler
* Fix 1862 * Update --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21Always verify permissions and check for log dir (#1874)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-12Use pathlib in `_add_systemd_bootloader()` (#1866)codefiles
2023-06-12Update bootctl --path option to --esp-path (#1854)codefiles
2023-06-12Added a service-started wait timer for keyring.timer (#1858)Anton Hvornum
* Added a service-started wait timer for keyring.timer, and then we check the service state for keyring.service. This is because the .service can be 'dead' right from the start without the timer ever have started. This ensures that we wait for the timer to kick in before we monitor for the .service execution * Removed pacman-init.service wait timer, as we can rely on keyring.timer instead: https://github.com/archlinux/archinstall/issues/1846#issuecomment-1586872920
2023-06-08Fix 1830 (#1831)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-08Installs correct dkms package for nvidia and nvidia-open (#1847)Himadri Bhattacharjee
2023-06-08Fix paths used for steps in keyfile creation (#1851)codefiles
* Fix paths used for steps in keyfile creation * Simplify
2023-06-05Fix 1749 (#1840)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com> Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-05Detect more modules requiring `alsa-firmware` (#1822)codefiles
2023-06-05Move locales and cleanup menu (#1814)Daniel Girtler
* 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-05-15Improve Save configuration UI - (re)allow for directly specifying custom ↵bd-g
path (#1728) * align with newly merged master * retry save config * fix mypy error with str type - this menu with allows return a string * Removed unused import --------- Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-05-15Allowing for fg='color' in info, warn, error and debug. (#1818)Anton Hvornum
* Allowing for fg='color' in info, warn, error and debug. * Converted to a more static definition, mypy does not like magic. * Flake8 fixes
2023-05-15Add custom mirror support (#1816)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-12Install the package `alsa-firmware` if required (#1812)codefiles
2023-05-12Install the package `sof-firmware` if required (#1811)codefiles
2023-05-11Cleanup imports and unused code (#1801)Daniel Girtler
* Cleanup imports and unused code * Update build check * Keep deprecation exception * Simplify logging --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07Fix default value idx in `_determine_cursor_pos()` (#1800)Daemon Coder
Co-authored-by: Daniel Girtler <blackrabbit256@gmail.com> Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07Fix 1792 (#1795)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07Fix 1793 (#1794)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-06Fix 1763 (#1790)Daniel Girtler
* Fix 1763 --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-06Fix NTP option (#1788)Daemon Coder
2023-05-05Fix `LsblkInfo` size field (#1787)Daemon Coder
2023-05-04Remove obsolete enabling of NTP in ISO (#1729)Daemon Coder
* Remove obsolete enabling of NTP in ISO * Fixed flake8 linting * Remove `activate_ntp()` * Update comment --------- Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-05-04Update `SysCommand()` calls in remaining files (#1707)Daemon Coder
2023-05-04Fix logic errors in `_fetch_lsblk_info()` (#1754)Daemon Coder
2023-05-04Fix 1780 (#1782)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-03Fixing starting of service via str argument (#1779)Anton Hvornum
2023-05-03Fix 1772 (#1773)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-03Full mypy compliance and small fixes (#1777)Daniel Girtler
* Fix mypy compliance --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-28Attempt to fetch partuuid multiple times (#1770)Daniel Girtler
* Attempt to fetch partuuid multiple times * Update --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-22Fix import and configuration loading issues (#1764)Daniel Girtler
* Fix import and configuration loading issues * Fix mypy --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-19PyParted and a large rewrite of the underlying partitioning (#1604)Daniel Girtler
* 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-19Remove superfluous time sync steps (#1752)codefiles
2023-04-04Fix sd-boot code duplication (#1721)codefiles
2023-04-01Make it easier to save configuration files (#1659)bd-g
* updated save menu for configuration files * add log message to TUI to let user know we may run for a second finding save directories * remove testing line * remove unnecessary non-relative import * fix bug when skipping save location * make save configuration translatable * fix linting errors * handle skip and reset options correctly * fix flake8 linting error --------- Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-03-30Guard against null in config processor (#1705)Bao
Fixes #1704