New features
- Added locale helpers in terms of keyboard language/layout.
archinstall.list_keyboard_languages()
archinstall.search_keyboard_layout()
archinstall.set_keyboard_language()
These functions work together to help listing, finding and setting a keyboard layout in terminals. Won't work for X-frontends, but will do for CLI installation methods. Added a language selector-helper-function (archinstall.select_language()
) with a crude search functionality.
Added all this to the guided template.
- Added network helpers in
archinstall.lib.networking
. Mainly adding helpers to detect physical interfaces and MAC-addresses. - Added a
unattended
example profile - Support for listing (and filtering) profiles based on MAC-address was added, the
filter_irrelevant_macs
will filter any MAC address profile that doesn't match the current machine. archinstall.Installer()
now has post-installation checks on__exit__
, so whenInstall()
is used in a context manager (with archinstall.Installer() as installation
), whenever the coder exits that block, the post-installation-steps will run and inform (but not raise) about any missing steps that haven't been completed in order to successfully boot the machine (checks if the base OS is installed, if root or a super user is created/setup and if a bootloader is installed).- Fixed the
guided
template to check ifroot_pw
is set, if it isn't, it will require an additional sudo-user to be created. - Added
reboot()
as a function (This is more of a fix, it used to exist but has been re-added) - Added
list_profiles()
which lists all current local profiles. - Profiles now support descriptions by reading the top most comment in the
.py
files. - Added
enable_service()
to enable services within the installation - Added a helper function called
activate_ntp()
that simply enables thentp.service
and installs thentp
package. - Added
add_custom_mirrors()
. The function appends custom mirrors to/etc/pacman.conf
based on the syntax:
{'url': 'http://url.com', 'signcheck': 'Optional', 'signoptions': 'TrustAll', 'name': 'testmirror'}
- Added
add_custom_mirrors()
. The function appends custom mirrors to/etc/pacman.conf
based on the syntax:
{'url': 'http://url.com', 'signcheck': 'Optional', 'signoptions': 'TrustAll', 'name': 'testmirror'}
Application()
profiles now support.py
scripts as wellApplication()
andProfile()
classes now correctly inserts thatarchinstall
library path intosys.path
from where it was installed. This has to be done in order to sub-executed scripts to get the correct version ofarchinstall
when doingimport archinstall
in profiles and applications. Otherwise the installed/other libraries might take precedence overgit clone
'd repositories/submodules in projects (very noticeable in archinstall_gui for instance)- Added the
add_AUR_support()
function to enable AUR packages in the mountpoint (by compilingyay
and installing it) - Added a
yay()
(andadd_AUR_packages()
pointer toyay()
) command for installing AUR packages inside the mountpoint - Added
enable_AUR()
function to - Added
run_command
which will run commands inside the installation viaarch-chroot {mountpoint}
- Added
arch_chroot
which just points torun_command()
. - Added a
set_timezone()
- Fixed
set_locale()
in theInstaller()
class. - Also added a
mirrors.py
helper to rudimentary set mirror data on the installer host awesome
now has a.py
profile instead of a.json
, even tho the.json
is still there.- Pre built ISO's are up again
- Examples are now packaged in both pypi and pre-built nuitka3 binary
- Added a
PKGBUILD
archinstall.BlockDevice
now contains a__dump__
meta function, which can be used with:def json_serial(obj): elif type(obj) is bytes: return obj.decode('UTF-8') elif getattr(obj, "__dump__", None): return obj.__dump__() else: return str(obj) json.dumps(block_device, default=json_serial)
- Added a
__init__.py
into the main github repo structure, so that cloned repo's can usefrom archinstall import *
for instance.
Minor Fixes
- The unattended test-profile reports upstream to inform which commit was installed without user interaction.
- Made
btrfs-progs
optional, won't be installed unlessbtrfs
is detected as a filesystem. - Tweaked the build scripts a bit to fetch a common
VERSION
definition. - Removed
.json
support, as it's quite convoluted and redundant now that we have proper support for.py
profiles and applications. PKGBUILD
now exists for bothpython-archinstall
(pip install archinstall
equivilant) andarchinstall
(binary compiled version, no need for python to be installed)set_locale()
now correctly takes the given locale and encoding and hopefully sets locale and encoding separately.add_additional_packages()
now gives a return value frompacstrap
which it didn't before.install_profile()
now gives a return value fromprofile.install()
which it previously didn't.Profile()
andApplication()
now skips looking for the profile/application if absolute paths are given (hopefully that logic works)- Added a
__repr__
forApplication()
so it doesn't look like it's aProfile()
being installed when printing the object. - Fixed
desktop.py
which was broken due to string formatting being a bit off.