Archinstall

Latest version: v2.8.3

Safety actively analyzes 706259 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 12

2.1.2rc1

This is a release candidate meant for testing purposes only.
Below is a short list of things that has been crossed off from the [v2.1.2](https://github.com/Torxed/archinstall/milestone/1) release so far.

- [x] [Partitions should have more flexible file system options](https://github.com/Torxed/archinstall/issues/46)
- [x] [Create a helper function for getting credentials input](https://github.com/Torxed/archinstall/issues/106)
- [ ] [Install dhcp client by default *(or warn about not having a dhcp/static ip configured)*](https://github.com/Torxed/archinstall/issues/101)
- [ ] [Support an already installed system](https://github.com/Torxed/archinstall/issues/49)
- [ ] [Add option to support time zones](https://github.com/Torxed/archinstall/issues/64)
- [ ] [Multi boot support](https://github.com/Torxed/archinstall/issues/51)
- [ ] [Improve selecting from large lists](https://github.com/Torxed/archinstall/issues/81)
- [ ] [Profiles should be able to trigger additional (non default) kernel boot params](https://github.com/Torxed/archinstall/issues/91)
- [ ] [BTRFS subvolumes to support tools like Snapper with rollbacks etc.](https://github.com/Torxed/archinstall/issues/93)

*(More in-depth detail on all the changes will follow on the actual release day of v2.1.2, since some changes sneak in as bonus features)*.

2.1.1

New features
==========
* Now supports configuring wifi by copying the current ISO/live-medium `iwd` configuration if one was set up before the installer was started 82
* man pages can now be built using `cd docs/ && make man`. This has two additional dependencies:
* python-sphinx
* python-spinx_rtd_theme
* `systemd-networkd`, `systemd-resolved` and `iwd` are now dynamically installed depending on which network configuration the user chooses to install *(or opt out from)*. 82 *(Thanks to grazzolini for correcting some of my logic and making this one work perfectly)*
* KDE now has a [Wayland](https://wayland.freedesktop.org/) profile called `kde-wayland`. *(Thank you advaithm for this development)*
* Archinstall now supports the filesystem [XFS](https://wiki.archlinux.org/index.php/XFS) *(Added by advaithm)*
* Archinstall now supports the filesystem [F2FS](https://wiki.archlinux.org/index.php/F2FS) *(Added by Reid)* #90
* Logging is now done in `/var/log/archinstall/install.log` and will be mirrored between the ISO and the install medium upon `archinstall.Installer().__exit__`. 56
* New function to detect if UEFI or BIOS is booted via `archinstall.hasUEFI()` 44 96
* New function to detect if WiFi exists on a hardware level via `archinstall.hasWifi()` 44 82 96
* New function to detect if a certain graphics card exists on a hardware level via `archinstall.hasNvidiaGraphics()`, `archinstall.hasAmdGraphics()`, `archinstall.hasIntelGraphics()` 44 96

Bugs and fixes
===========
* Fixed docs (mainly links f48e5d5 and layout for manpages) 78
* Fixed KDE which relied on `xorg-xinit` instead of `sddm` 83 *(Shoutout to advaithm for this one)*
* Some spelling issues 627deb7 *(Shoutout to j-james for that one, I know it's minor but worth it)*
* Corrected the file format labling of `archinstall.Partition()` for `ext4` partitions. 88 *(Spotted by [u/parkerlreed](https://www.reddit.com/user/parkerlreed/) on reddit starting out as a light joke, turns into bug)*
* `terminus-font-otb` changed upstream to just `terminus-font` in `awesome`-profile. 73191b9
* The `awesome`-profile has been slimmed a bit further to remove unnecessary packages. 9a94a63
* Logging in general have been looked over, some more details have been added as well as output fixed 94
* PKGBUILD's have moved location in 97
* Fixed proper `raise RequirementError` in `guided` installer when required steps were skipped 86

Honorable mentions:
* *(pre-release feature)* `archinstall.wirelessScan(interface)` will initiate a wireless scan using `iwctl`
* *(pre-release feature)* `archinstall.getWirelessNetworks(interface)` will retrieve available wifi networks in the area using `iwctl`
Both these two functions will later be converted into `dbus` messages/events mentioned in 82

2.1.0

Marking a milestone by bumping the version to v2.1.0, the milestone being commits and releases are now signed with PGP keys.
As per normal, below follows some changes and updates.

Bug fixes
=======
* 67 *Encryption issues with NVME (to quick to encrypt)* has now been fixed. The solution was *(at least for now)* to add a [25 millisecond delay](https://github.com/Torxed/archinstall/commit/e637852df0a2563efe5df5548113376c7f3cf52f#diff-de72788d774e24383a05298142e3cb72b53329e0cef82eb19fd9716bfc667c58R237) to the `.add_partition()` function, where it will keep delaying until the partitions of the device changes from the original state. There's a slight risk here that this *might* have some weird edge cases where the disk had identical partition setup before the formatting. So there's a grace period of 10 seconds. But the long term solution would be to check the partition list *after* wiping it - and then do the check.
* [genfstab](https://github.com/Torxed/archinstall/commit/ba863c341d9436b7dd2cc5b6904c4567baa76088) was incorrectly called since piping doesn't work seamlessly in `Popen()` and has been done so for a while. It hasn't caused any alarming concerns, but it was best to update according to the installation manual. Especially since supporting custom mounts etc becomes more convenient and supported in the installer.
* Fixed an issue with `sys_command` where some but not all commands would get their output garbage collected by the `.strip()`. To my knowledge, there's very few commands that has had any issues, and in those cases they have been remedied in another way - which is perhaps a bit lazy. So `sys_command` is now fixed *(but should be looked over further)*.

New features
==========
* Added a `archinstall.harddrive([size], [model], fuzzy=False)` which can be used to select/find harddrives based on their model or size, `fuzzy` allows to be slightly off on the model or size *(be careful when using fuzzy if disks are nearly identical in size)*.
*(This change also required `BlockDevice()` to contain the model name in the internal `.json()` helper function)*
* `installation` instance (the current installation being performed) now contains a `.mount(partition, relative-mountpoint)` that can mount a partition "inside the installation" *(by prepending the installation mountpoint, usually `/mnt` automatically). This simply makes mounting partitions for/to the installation a bit more intuitive, as it's implied that it's for the installation - which was set up with a root mount point to begin with. It just ensures that we don't accidentally mount anything outside the installation when it in fact was meant for inside the installation.

2.0.6

Not secure
Bug fixes
======

* 62 is now fixed. There might be some edge cases left with it (especially absolute paths etc). But the overall idea was to slim down `Profile()` and `Application()` to not use `Imported()`, since it caused additional (separated) logic to handle profiles and paths.
* In junction with the above, `list_profiles()` now supports remote profiles as well. With the limitation that there needs to be a "package" database over profiles. Parsing HTML pages for files isn't what we're here for. But this enables smoother finding of profiles in general. The drawback currently is that `guided` will show up.
* `list_profiles()` now cache found result to avoid being noisy against HTTP endpoints *(as well as being able to manipulate it in `__main__.py` pre and post listing profiles)*
* MAC addresses are now lowered before comparing on both profile level as well as listed MAC addresses.
* `find_installation_script()` has been merged into `Script()` for a more unified experience.
* `archinstall.output.log()` now checks if `logfile` is defined, otherwise no output is attempted to any log handles.
* Fixed 63 - Issues installing package groups
* Numerous edge cases in [examples/guided.py](examples/guided.py) where some default options caused `KeyError` at certain points if left empty.
* Empty locale *(very first question)* caused a hang because loadkeys will enter some form of interactive mode if no option is given.
* Tweaked the *module* mode by centralizing the *"find"* logic.
* Replaced `exec()` logic with the `importlib` logic again to preserve line numbers in subsequent files.
* Created a `Script` class that takes care of *some* of the import/execution logic, it takes content and not filenames.
* Fixed a bunch of issues in [examples/guided.py](examples/guided.py) that caused issues, namely 61 where lists were given where strings were supposed to be etc.
* Issue/Help documentation has been updated to contain the latest changes in terms of logs and submitting issues.
* 43 / 55 - Added a configuration overview before formatting *(the formatting can be paused with Ctrl-C to paus and view the config)*
* 57 - Fix minor issues like typos and code style violations.
* 59 - Relative paths causing issues, should be fixed with a `os.chdir()` in module mode.
* Added some more doc-strings
* Added error handling for invalid packages in `examples/guided.py`. Re-asks the user for correct packages rather than crashing half way through the installation
* Added a JSON serializer that can handle *some* of archinstalls objects.

New features
=========

* Added network configuration option via `Installer().configure_nic()` which helps to set up a interface inside a installation. *(in the long run, perhaps add a similar thing to the live medium?)*
* Supports **DHCP** and **static IP** configurations *(limited, but there are two options at least)*
* TODO: Show current IP-address to make it easier to evaluate which interface to configure
* `find_examples()` have been merged in/replaced by `list_profiles()` which handles multiple use cases and being a bit more flexible.
* `list_profiles()` now looks for profiles in `archinstall.storage['PROFILE_PATH']`, `archinstall.storage['UPSTREAM_URL']/archinstall.storage['PROFILE_DB']` for profiles. Which enables dynamic lookups some what.
* `Script.localize_path()` now converts remote paths into a temporary file under `/tmp/` *(We gotta keep an eye out here so /tmp/ isn't to small or locked in size or something)*.
* Added a `MAC` -> `iface` lookup as well, even tho that wasn't hard previously, having a function call is more easily readable.
* Added a `Systemd` and `Networkd` handlers *(based on `Ini()` class)*, which is a basic helper to create INI files for Systemd services and network configurations.
* Logging has been improved, and installation log files are now created under `~/.cache/archinstall`. This is also where individual worker-logs are stored in case more detailed information needs to be gathered for support cases. Logs contain a "snapshot" of the configuration chosen as well as the individual outputs by the client *(this will be improved over time, but should serve as a good starting point)*.
* Modified the Arch Linux package `archinstall` so that `python -m archinstall $` is being called instead of hardcoding it to `python -m archinstall guided`.
* Calling archinstall with argument `<profile>` which can be a remote URL or a full path *(not strictly hardcoded to look in ./examples)* is now supported.
* Added `archinstall.validate_package_list()` to validate a list of package names. This will help early-checks for finding any issue with the given package names from a user. So that we can throw errors early on, and not half way into the installation when the user most likely has stopped watching for output.
* Added `profiles/desktop.py` which acts as a desktop-selector, so users can *slightly* more easily find and install a desktop environment. Currently there's only three supported desktop environments: `[gnome', 'kde', 'awesome']`.
* Added a `archinstall.storage` for session storage. Profiles etc can store things in here, which will persist between executions *(since profiles have a pre-installation import and execution, and a during-installation import and execution to help with asking users questions. But in between, the session is lost on purpose)*.

2.0.6rc17

Not secure
Bug fixes
=======

* Fixed 63 - Issues installing package groups
* Numerous edge cases in [examples/guided.py](examples/guided.py) where some default options caused `KeyError` at certain points if left empty.
* Empty locale *(very first question)* caused a hang because loadkeys will enter some form of interactive mode if no option is given.

New features
==========

* Added a `Systemd` and `Networkd` handlers *(based on `Ini()` class)*, which is a basic helper to create INI files for Systemd services and network configurations.
* Added `Installer().configure_nic()` which helps to set up a interface inside a installation. *(in the long run, perhaps add a similar thing to the live medium?)*
* Supports **DHCP** and **static IP** configurations *(limited, but there are two options at least)*
* TODO: Show current IP-address to make it easier to evaluate which interface to configure

2.0.6rc16

Not secure
Minor fixes
========

* Tweaked the *module* mode by centralizing the *"find"* logic.
* Replaced `exec()` logic with the `importlib` logic again to preserve line numbers in subsequent files.
* Created a `Script` class that takes care of *some* of the import/execution logic, it takes content and not filenames.
* Fixed a bunch of issues in [examples/guided.py](examples/guided.py) that caused issues, namely 61 where lists were given where strings were supposed to be etc.

Page 8 of 12

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.