Skip to content

Releases: archlinux/archinstall

v2.5.5

02 Apr 07:24
v2.5.5
2d4c05e
Compare
Choose a tag to compare

v2.5.4

29 Mar 11:38
v2.5.4
9fe9fd6
Compare
Choose a tag to compare

ℹ️ Next version planned after this is v2.6.0 and might contain breaking changes as we do a complete overhaul to the entire disk operation (See #1604). It also introduces dependencies to archinstall.

New features

Bug fixes

Tweaks and changes

New Contributors

Full Changelog: v2.5.3...v2.5.4

v2.5.3

27 Feb 18:39
v2.5.3
fa1bec9
Compare
Choose a tag to compare

ℹ️ Disk selection & disk operations will be slow in this release, bare with us until next release when we optimize. The program is not hanging, it's just slow! We apologize, but it's in favor of fixing #1557!

Bug fixes:

  • This fixes #1557 by allowing empty partition information for devices that appear as block devices, but doesn't behave like them in the sense of lsblk.
  • Updating /etc/vconsole.conf when Installer().mkinitcpio() is called (otherwise mkinitcpio errors out)
  • Fixed waiting for archlinux-keyring being properly populated by additional services before installing #1389

Improvements

  • Created dataclasses for DiskEncryption and Fido2 with Fido2Device for individual devices
  • Improved disk encryption menu (including HSM)
  • Introduced get_blockdevice_info to gather information about block devices
  • Improved partitioning reliability (this made the disk operations quite a bit slower for now, once it's stable again we'll tweak the performance)
  • Created a TableMenu object to make it easier to select options out of a table
  • Added more translations, Ukrainian, Korean, Chinese (PRC)

v2.5.3rc1

23 Feb 11:50
v2.5.3rc1
4576094
Compare
Choose a tag to compare
v2.5.3rc1 Pre-release
Pre-release

ℹ️ Disk selection & disk operations will be slow in this release, bare with us until next release when we optimize. The program is not hanging, it's just slow! We apologize, but it's in favor of fixing #1557!

Bug fixes:

  • This fixes #1557 by allowing empty partition information for devices that appear as block devices, but doesn't behave like them in the sense of lsblk.
  • Updating /etc/vconsole.conf when Installer().mkinitcpio() is called (otherwise mkinitcpio errors out)

Improvements

  • Created dataclasses for DiskEncryption and Fido2 with Fido2Device for individual devices
  • Improved disk encryption menu (including HSM)
  • Introduced get_blockdevice_info to gather information about block devices
  • Improved partitioning reliability (this made the disk operations quite a bit slower for now, once it's stable again we'll tweak the performance)
  • Created a TableMenu object to make it easier to select options out of a table
  • Added more translations, Ukrainian, Korean, Chinese (PRC)

v2.5.2

12 Oct 17:06
v2.5.2
4addd2d
Compare
Choose a tag to compare

Bug fixes

  • Fixes issue where fast block devices (namely NVMe drives) had an issue resolving PARTUUID after Filesystem.add_partition (formatting) and not ensuring mount-points was set in Partition objects cache after Partition.mount() was made. (#1495, a "short" write-up has been created for those interested in reading about the issue with a bit of insight what goes into fixing stuff like this)
  • Fixed /etc/locale.gen containing two entries for en_US.UTF-8 UTF-8 (#1200)
  • Fixed issue where Archiso showed up as selectable drive (#563 and #1299)
  • Various spelling errors have been corrected

v2.5.1

25 Sep 11:17
v2.5.1
53a2797
Compare
Choose a tag to compare

ℹ️ This is more or less a pure patch release to plug up some bugs that have been pestering us. There will be additional output added to this version as well in order to further track down some dubious bugs that are hard to force/recreate even in controlled environments. This output would give us indication of where bugs such as #1192 happens and perhaps even why.

Minor changes

  • Added --version to archinstall to act as a shortcut to pacman -Q archinstall.
  • Added --offline which should disable certain upstream checks (technically this has existed before, but is now a predefined parameter instead of an ambiguous one).
  • Added --no-pkg-lookups to disable package verifications both for offline purposes but also for speeding up installations
  • Improved btrfs subvolume definitions, both defining, parsing and processing #1297
  • We're not setting better and more sane default file permissions on logs and configurations #1440
  • Improved the BlockDevice handling by using @dataclass models for certain aspects and also improved the menu representation of those objects #1289
  • MapperDev now has a .mountpoints that lists all possible mount locations for the mapper dev.
  • SysCallError exceptions now contain a reference to the worker generating the exception, it can be accessed through error.worker (useful when you need to catch the output of the command even on exceptions)
  • Improved Language selection process and information output #1348
  • Added an option for parallel downloads (which is not visible by default, and the reasoning is mentioned in the comments #1397 (comment)) #1397
  • Improved UI functionality (mainly background things for those adding/changing menu looks) #1331 + #1346 + #1376 + #1320
  • Made password strength checks less intrusive #1308
  • Improved a lot of translations and added some additional new languages!
  • gnome-software-packagekit-plugin has been removed from the gnome desktop profile
  • plugin.on_genfstab now breaks if the return value is True
  • Improved the legends on menu actions #1436

Bug fixes

  • Fixed BTRFS compression not being translated down into /etc/fstab properly. #1303
  • Added a fix for certain PCIe devices showing up as block devices without /dev/X #1475
  • Improved the importation of --conf variables, making sure missing keys don't interrupt default values. #1419
  • Improved reliability of Filesystem().add_partition() slightly #1333
  • Fixed an issue where btrfs-progs wouldn't get installed properly due to mountpoint detection gone wrong #1411 + #1412
  • Fixed a key-lookup error when HSM was not used #1354
  • Added gib to the list of valid partition sizes #1382
  • Fixed an issue where multilib-testing would get activated when trying to activate multilib #1364
  • Fixed a bug where locale.gen and locale.conf would get duplicate entries and/or invalid entries #1421 (further improvements to this is in the pipeline, follow #1423 for that progress)
  • Fixed a bug that prohibited us from using only mountpoint-based installations #1373
  • Fixed a more graceful handling of network issues #1361
  • Fixed an issue where gateway was not set properly when manually configuring connection #1312
  • Fixed an issue where language option would break if loaded from a --conf file #1456

v2.5.1rc1

30 Aug 21:59
v2.5.1rc1
a335f10
Compare
Choose a tag to compare
v2.5.1rc1 Pre-release
Pre-release

ℹ️ This is more or less a pure patch release to plug up some bugs that have been pestering us. There will be additional output added to this version as well in order to further track down some dubious bugs that are hard to force/recreate even in controlled environments. This output would give us indication of where bugs such as #1192 happens and perhaps even why.

Minor changes

  • Added --version to archinstall to act as a shortcut to pacman -Q archinstall.
  • Added --offline which should disable certain upstream checks (technically this has existed before, but is now a predefined parameter instead of an ambiguous one).
  • Added --no-pkg-lookups to disable package verifications both for offline purposes but also for speeding up installations
  • Improved btrfs subvolume definitions, both defining, parsing and processing #1297
  • We're not setting better and more sane default file permissions on logs and configurations #1440
  • Improved the BlockDevice handling by using @dataclass models for certain aspects and also improved the menu representation of those objects #1289
  • MapperDev now has a .mountpoints that lists all possible mount locations for the mapper dev.
  • SysCallError exceptions now contain a reference to the worker generating the exception, it can be accessed through error.worker (useful when you need to catch the output of the command even on exceptions)
  • Improved Language selection process and information output #1348
  • Added an option for parallel downloads (which is not visible by default, and the reasoning is mentioned in the comments #1397 (comment)) #1397
  • Improved UI functionality (mainly background things for those adding/changing menu looks) #1331 + #1346 + #1376 + #1320
  • Made password strength checks less intrusive #1308
  • Improved a lot of translations and added some additional new languages!
  • gnome-software-packagekit-plugin has been removed from the gnome desktop profile

Bug fixes

  • Improved the importation of --conf variables, making sure missing keys don't interrupt default values. #1419
  • Improved reliability of Filesystem().add_partition() slightly #1333
  • Fixed an issue where btrfs-progs wouldn't get installed properly due to mountpoint detection gone wrong #1411 + #1412
  • Fixed a key-lookup error when HSM was not used #1354
  • Added gib to the list of valid partition sizes #1382
  • Fixed an issue where multilib-testing would get activated when trying to activate multilib #1364
  • Fixed a bug where locale.gen and locale.conf would get duplicate entries and/or invalid entries #1421 (further improvements to this is in the pipeline, follow #1423 for that progress)
  • Fixed a bug that prohibited us from using only mountpoint-based installations #1373
  • Fixed a more graceful handling of network issues #1361
  • Fixed an issue where gateway was not set properly when manually configuring connection #1312

v2.5.0

29 May 12:19
v2.5.0
c75e6a1
Compare
Choose a tag to compare

(We jumped to 2.5.0 instead of 2.4.3 because of the amount of breaking changes to the API calls)

Breaking changes

  • Partition().uuid now properly reports the UUID as reported by lsblk -o+UUID and not PARTUUID. A new Partition().part_uuid has been introduced where the PARTUUID is needed. This was required in order to get the FIDO2 support to work.
  • archinstall/lib/disk/btrfs.py -> archinstall/lib/disk/btrfs/.* (functions should be exposed as previously, but some mistakes might exist)
  • Where applicable, Partition() is not always returned anymore when working with partitions, instead BTRFSPartition might get returned in its place if it contains a BTRFS filesystem. This is so that certain functionality tied strongly to BTRFS can be delt with accordingly and not get mixed with the Partition code. BTRFSPartition extends Partition and will behave in the same way, just the type will be different and some features have moved to the BTRFSPartition class. Partition.subvolumes will get deprecated in the future but stays for now.
  • mount_subvolume() have been removed, instead a instance called BtrfsSubvolume has been added and can be accessed through BTRFSSubvolume.subvolumes which in turn has a .mount() function.
  • .mountpoint of different block device instances should now return pathlib.Path instead of str.
  • archinstall.get_filesystem_type() no longer splits or expects paths with subvolume names in them.
  • MapperDev.mountpoint now returns a pathlib.Path instead of a string
  • Partition.mountpoint now returns a pathlib.Path instead of a string
  • Partially fixed a bug in the menu system related to btrfs subvolumes
  • luks2.unlock now returns BTRFSPartition if it detects btrfs inside the unlocked device, otherwise returns Partition as usual.
  • genfstab() is no longer called automatically, instead installation.genfstab() has to be called in a appropriate time. This in order to fix the semi-urgent issue of #1276
    This will get improved in the next version with the logic described here #1133 but got pushed forward due to time limitation.

Known issues

The following issues are known and can cause some issues, but have workarounds such as editing the file passed to --config for instance and re-running archinstall with the flag

  • ⚠️ If multiple partitions are encrypted, the password might bleed in to the install.log #1062 and passwords are still stored on /tmp #1111
  • Some guided partitioning issues related to btrfs subvolumes - #1278
  • Missing translations in some places depending on language (and in general)
  • On some hardware, swap (zram) doesn't work #1230
  • /etc/locale.gen (and possibly /etc/locale.conf) might get double entries set #1200

Deprecated API calls

  • archinstall.get_mount_info() has been deprecated, archinstall.findmnt() has been added instead, and subsequent parsing is done where needed.

Profile changes

  • awesome has been slimmed down to the absolute bare minimum. No file browser, picture viewer or screenshot utility will be installed. #1247
  • qtile no longer gets dmenu installed for menu handling, instead the built-in run menu will have to be used #1243

New features:

  • FIDO2 (HSM) support for systemd-boot when unlocking disk encryption has been added #1196 with a master password as backup during enrollment (This is in very early beta and have only been tested with an older blue Yubikey. Nitrokey and modern Yubikey's are en route for testing. PIN entry and different devices have not been thoroughly tested.)
  • A new disk preview has been added to the main menu.
  • A new disk layout preview has been added to the main menu, and general disk layout view improvements.
  • A user preview has been added to the main menu.
  • archinstall.general.JSON encoder now supports encoding pathlib.Path objects.
  • --config, --disk-layout and --creds now all support remote loading thanks to the changes in json_stream_to_structure. A slight bug caused only --config to support this method of operation.
  • Partition.format() now supports a retry=True call, that will attempt one retry of a format, in case there's a kernel delay while updating some internal cache, and simply sleeping and retrying will work.
  • Improved user management and creates a new user-structure in --config thanks to #1220:
    {
    	"!root-password": "<root password>",
    	"!users": [
    		{
    			"username": "<USERNAME>",
    			"!password": "<PASSWORD>",
    			"sudo": false
    		},
    		{
    			"username": "<SUDO_USERNAME>",
    			"!password": "<PASSWORD>",
    			"sudo": true
    		}
    	]
    }
  • Installation.create_users() have been added to deal with the new layout structure, individual users can still be created through Installation.create_user().
  • archinstall.Deprecated exception has been added, it can be logged and finally raised before completely removing a piece of code.
  • archinstall.get_fido2_devices() returns a dict[/dev/path] = {"manufacturer" : ..., "product" : ...} of all available FIDO2 devices
  • archinstall.fido2_enroll(hsm_device, partition, password) has been added to enroll FIDO2 devices as a unlocking mechanism to a partition. Password is required due to the workflow of archinstall who will enroll a master password first, this it to automate operations. Post configuration can remove this master password if needed.
  • Different menu types have been added, such as MenuSelectionType.Selection, MenuSelectionType.Esc, MenuSelectionType.Ctrl_c. This in order to handle the different return types of menu selections.
  • Ctrl+C now clears the current option, and Esc properly backs out without modifying changes - Thanks to @svartkanin
  • Locale language and Locale encoding has been brought to the main menu as it should be ready for general use now.
  • network-manager-applet will now be installed if a desktop profile was used, and NetworkManager was chosen as the network manager of choice. systemd-networkd will not for instance get this installed even under a desktop profile. Probably expected behavior but I felt like mentioning it anyway.
  • Partition.uuid now uses global timeout values before giving up
  • Profile() has gotten a .name and a .is_desktop_profile property, name returns the basename of the profile path, and is_desktop_profile returns a boolean whether the profile belongs to the desktop group.
  • General improvements to translations and more languages have been added.
  • archinstall.udevadm_info(path) has been added to return udevadm info /path information in a dict like fashion
  • archinstall.log() now supports the colod teal (as well as an alias called grey which translates to gray)
  • archinstall.mount_ordered_layout() now uses a queue system for mounts, where mount calls are frozen using lambda calls and then sorted. In the future there might be a plugin opportunity here, as well as the option to inject mounts into this process without needing to go through the layout process.

Bug fixes / Tweaks

  • Fixed a severe issue (#1197) where Mark as encrypted option in the guided partitioning tool would mark all partitions for encryption. This due to a function called select_encrypted_partitions() that was neglected and acted as a bit of a prototype function for future work, which would allow selecting which partitions to encrypt. This function is now developed as intended and an option to select one or more encrypted volumes will be presented - without additional partitions being encrypted.
  • Fixed a bug where children wouldn't always exist in the lsblk report
  • We hid the Arch ISO (and similar devices) from the disk selection #1275
  • Menu.yes_no() was causing a bug, that has been fixed
  • DISK_RETRY_ATTEMPTS has been lowered from 20 to 5 to improve overall experience in timing. This may result in some older hardware timing out - if so please do report it.
  • BlockDevice properties are for the most part cached properties, meaning the information will not update between calls.
  • BlockDevice.get_partition has been optimized
  • Added a warning when the selected disk is too low on space to suggest a automatic layout
  • SysCommandWorker now longer breaks when cmd is a string and it's trying to output to the cmd_log. It only worked with lists previously.
  • SysCommand* now properly changes directory only for the child process, previously both the parent and the forked process would change directory to the specified working_directory, and both would change back immediately. This has been corrected so only the parent changes back immediately after forking.
  • SysCommand now supports working_directory parameter, and passes it to SysCommandWorker as expected.
  • archinstall.Boot() which ...
Read more

v2.4.3rc1

18 May 10:11
v2.4.3rc1
e154a68
Compare
Choose a tag to compare
v2.4.3rc1 Pre-release
Pre-release

ℹ️ The changes are between v2.4.2 and e154a68

Breaking changes

  • Partition().uuid now properly reports the UUID as reported by lsblk -o+UUID and not PARTUUID. A new Partition().part_uuid has been introduced where the PARTUUID is needed. This was required in order to get the FIDO2 support to work.

New features:

  • FIDO2 support (#1196) when unlocking disk encryption (very early beta, will most likely break with PIN required devices. Only tested with an older blue Yubikey that does not support PIN entry)
  • archinstall.general.JSON encoder now supports encoding pathlib.Path objects.
  • --config, --disk-layout and --creds now all support remote loading thanks to the changes in json_stream_to_structure. A slight bug caused only --config to support this method of operation.
  • archinstall.get_fido2_devices() returns a dict[/dev/path] = {"manufacturer" : ..., "product" : ...} of all available FIDO2 devices
  • archinstall.fido2_enroll(hsm_device, partition, password) has been added to enroll FIDO2 devices as a unlocking mechanism to a partition. Password is required due to the workflow of archinstall who will enroll a master password first, this it to automate operations. Post configuration can remove this master password if needed.
  • Different menu types have been added, such as MenuSelectionType.Selection, MenuSelectionType.Esc, MenuSelectionType.Ctrl_c. This in order to handle the different return types of menu selections.
  • Ctrl+C now clears the current option, and Esc properly backs out without modifying changes - Thanks to @svartkanin
  • Locale language and Locale encoding has been brought to the main menu as it should be ready for general use now.
  • network-manager-applet will now be installed if a desktop profile was used, and NetworkManager was chosen as the network manager of choice. systemd-networkd will not for instance get this installed even under a desktop profile. Probably expected behavior but I felt like mentioning it anyway.
  • Profile() has gotten a .name and a .is_desktop_profile property, name returns the basename of the profile path, and is_desktop_profile returns a boolean whether the profile belongs to the desktop group.
  • General improvements to translations and more languages have been added.
  • archinstall.udevadm_info(path) has been added to return udevadm info /path information in a dict like fashion

Bug fixes / Tweaks

  • Fixed a severe issue (#1197) where Mark as encrypted option in the guided partitioning tool would mark all partitions for encryption. This due to a function called select_encrypted_partitions() that was neglected and acted as a bit of a prototype function for future work, which would allow selecting which partitions to encrypt. This function is now developed as intended and an option to select one or more encrypted volumes will be presented - without additional partitions being encrypted.
  • Fixed a bug where children wouldn't always exist in the lsblk report
  • Menu.yes_no() was causing a bug, that has been fixed
  • Added a warning when the selected disk is too low on space to suggest a automatic layout
  • SysCommand* now properly changes directory only for the child process, previously both the parent and the forked process would change directory to the specified working_directory, and both would change back immediately. This has been corrected so only the parent changes back immediately after forking.
  • SysCommand now supports working_directory parameter, and passes it to SysCommandWorker as expected.
  • json_stream_to_structure now supports loading resources remotely.
  • The menu system now only takes into account the visible menu entries when structuring the layout. Previously hidden items would also account for the layout dimensions.
  • Save configuration -> All now properly saves all configurations, including disk configurations. There is still a small discrepancy between the automated save of configuration during installation and this save option. It's a known issue and will be fixed in the next release.

v2.4.2

29 Apr 09:41
v2.4.2
7fc65fa
Compare
Choose a tag to compare

Bug fixes

  • #1093 - Issue with disabling swap
  • #1096 - Issue with printing log output when using certain setups of encryption