v2.0.4
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
unattendedexample profile - Support for listing (and filtering) profiles based on MAC-address was added, the
filter_irrelevant_macswill 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
guidedtemplate to check ifroot_pwis 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
.pyfiles. - Added
enable_service()to enable services within the installation - Added a helper function called
activate_ntp()that simply enables thentp.serviceand installs thentppackage. - Added
add_custom_mirrors(). The function appends custom mirrors to/etc/pacman.confbased 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.confbased on the syntax:
{'url': 'http://url.com', 'signcheck': 'Optional', 'signoptions': 'TrustAll', 'name': 'testmirror'} Application()profiles now support.pyscripts as wellApplication()andProfile()classes now correctly inserts thatarchinstalllibrary path intosys.pathfrom where it was installed. This has to be done in order to sub-executed scripts to get the correct version ofarchinstallwhen doingimport archinstallin 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 compilingyayand 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_commandwhich will run commands inside the installation viaarch-chroot {mountpoint} - Added
arch_chrootwhich just points torun_command(). - Added a
set_timezone() - Fixed
set_locale()in theInstaller()class. - Also added a
mirrors.pyhelper to rudimentary set mirror data on the installer host awesomenow has a.pyprofile instead of a.json, even tho the.jsonis 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.BlockDevicenow 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__.pyinto 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-progsoptional, won't be installed unlessbtrfsis detected as a filesystem. - Tweaked the build scripts a bit to fetch a common
VERSIONdefinition. - Removed
.jsonsupport, as it's quite convoluted and redundant now that we have proper support for.pyprofiles and applications. PKGBUILDnow exists for bothpython-archinstall(pip install archinstallequivilant) 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 frompacstrapwhich 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.pywhich was broken due to string formatting being a bit off.
