Compare commits

...

4275 Commits

Author SHA1 Message Date
renovate[bot] b96afcc579
Update dependency arch/python-textual to v8.2.7 (#4556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-25 21:58:49 +10:00
BB 3bc248b47f
add niri DankMaterialShell profile (#4554) 2026-05-25 21:13:56 +10:00
Anton Hvornum af2120c0e9
mkosi for test image builds (#4539)
Added a `mkosi` profile as well as organized test tooling a bit.

---------

Co-authored-by: 0xdeadd <clintdotphillips@gmail.com>
2026-05-23 13:49:54 +02:00
renovate[bot] d92a98d3bf
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.14 (#4552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 12:39:28 +10:00
renovate[bot] af58671e88
Update dependency ruff to v0.15.14 (#4551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 12:39:11 +10:00
utuhiro78 e17e036f54
Update Japanese translation (#4550) 2026-05-21 07:25:23 +10:00
Daniel Girtler ac4bc442de
Refactor logging and formatting logic (#4542)
* Refactor logging and formatting

* Refactor logging and formatting

* Refactor logging and formatting

* Updaet
2026-05-19 17:48:03 +02:00
Clinton Phillips 5fd2f9b627
fix: restrict EFI partition permissions with fmask/dmask=0077 (#4506)
* fix: restrict EFI partition permissions with fmask/dmask=0077

Mount the ESP with fmask=0077 and dmask=0077 to prevent world-readable
files like /efi/loader/random-seed.

Closes #4241

* fix(efi): collapse fmask/dmask dedup to dict.fromkeys one-liner

Per @Torxed's review feedback. Same semantics as the previous loop
(dedupe by exact-string match) but shorter. dict.fromkeys preserves
insertion order, where set() would not.

* fix(efi): drop defensive list wrap per review

The list() copy on line 378 was load-bearing only if options were
mutated downstream, but the EFI branch reassigns options via
dict.fromkeys() (line 381) and the non-EFI branch passes through
to mount() without mutating. Drop the copy.
2026-05-19 13:36:28 +10:00
Softer dccd0c8ccf
Add translation CI validation (#4519)
* Fix broken localization: tr(f-string) never matches translation catalog

tr(f'Invalid configuration: {error}') evaluates the f-string before
tr() runs, so xgettext extracts the literal placeholder as the msgid
while runtime passes the formatted string - the two never match.
Switch to tr('...{}').format(...) and update msgid in base.pot.

* Add CI validation for translations and pot_tools dev utility

Add translation-check workflow with two jobs:
- validate-po: msgfmt --check on changed .po files, .mo sync warning,
  tr(f-string) anti-pattern grep on changed .py files
- validate-pot: verify all tr() strings exist in base.pot when .py
  files change

Workflow only triggers on .py/.po/.pot file changes.

Add scripts/pot_tools.py developer utility (stats, list, add_missing)
for managing base.pot.

* Fix code style: use tabs and reformat xgettext arguments

Align check_pot_freshness.py and pot_tools.py with project
indentation (tabs) and ruff format requirements.

Sorry :-)

* Replace custom PO parser with msgcmp, drop pot_tools.py

Address review feedback: use standard gettext msgcmp instead of
hand-rolled parser for base.pot freshness check. Remove pot_tools.py
that duplicated locales_generator.sh functionality.

* Move translation checks into locales_generator.sh, simplify CI workflow

Use msgcmp instead of diff for base.pot validation to avoid failing on
legacy stale entries - the same cascading breakage that killed the
original workflow (disabled 2023, removed in #4483).

* Fix broken .po files: duplicate msgid in Hindi, missing format args in Finnish
2026-05-18 20:10:56 +10:00
renovate[bot] 22bf6e3c35
Update dependency arch/python-textual to v8.2.6 (#4546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-18 15:36:33 +10:00
Matteo b5d323762b
Update Italian translation + fix a string (#4545)
* Update Italian translation

* Added new strings
* Improved existing translations

* Fix wrong string + Italian translation

* Mispelled "respository" -> "repository"
2026-05-17 11:26:30 +10:00
utuhiro78 42d9113611
Update Japanese translation (#4544) 2026-05-16 09:29:27 +10:00
Daniel Girtler 516a61d8af
Enhance log sharing capability (#4526) 2026-05-15 21:38:17 +10:00
renovate[bot] e48ca45b0b
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.13 (#4541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 16:30:33 +10:00
renovate[bot] 74a1066661
Update dependency ruff to v0.15.13 (#4540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 13:58:00 +10:00
HADEON b81fe955f0
Add IWD standalone option to network configuration + fix NM_IWD (#4528)
* Add iwd standalone option to network configuration

Adds NicType.IWD as a third option alongside NM and NM_IWD: install
iwd, write /etc/iwd/main.conf with EnableNetworkConfiguration=true and
NameResolvingService=systemd, enable iwd.service + systemd-resolved.service.
iwd handles DHCP itself and resolved picks up its DNS via the symlink, so
no NetworkManager pulled in.

Also fills in parse_arg cases for NM_IWD and IWD so config files
round-trip both nic types.

Assisted-By: Flint

* wire up resolv stub and networkd service

* exclude virtual devices, dont harcode iface name instead match 'ether'
similar pattern to .network files shipped in /etc/systemd/network

* use dedent and rename menu option
2026-05-15 13:57:31 +10:00
renovate[bot] 13944f3cca
Update pre-commit hook pre-commit/mirrors-mypy to v2.1.0 (#4538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-13 08:54:05 +10:00
renovate[bot] b95321d38c
Update dependency mypy to v2.1.0 (#4535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-13 08:33:42 +10:00
renovate[bot] 3dec5025c3
Update dependency arch/python-pydantic to v2.13.4 (#4534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-13 08:21:44 +10:00
stinga11 f7a6f70fc8
Replace terminal and file manager in Budgie profile (#4533)
I think it was a mistake to have made the previous changes to KDE Apps. In retrospect, it seemed like a good idea since the Budgie developer had done it that way in Fedora, which is the distro the developer uses as a reference for Budgie. When you start using it, you realize there's no bridge between the desktop and the KDE Apps, and things like Dolphin recognizes icons and themes, requiring some rather annoying manual configurations. Then, if you want to change them again, you have to change those configurations again. Files don't open by default with the apps either; you have to configure them for that to work.

At first, I thought the Budgie packager for Arch had forgotten some stray dependency, but with some free time, I tested it with Fedora 44, and to my surprise, it has exactly the same problems, which is completely unacceptable for a final stable release. I suppose he'll make the necessary changes in the near future, but right now, it's a disaster.
2026-05-13 08:21:15 +10:00
Daniel Girtler 7fc33c2507
Enhance config types and summary (#4532)
* Enhance config types and summary

* Update
2026-05-10 22:35:53 +02:00
Lena Pastwa 2de7254b21
Update Polish translation (#4529) 2026-05-08 11:28:36 +10:00
renovate[bot] af106eb238
Update dependency mypy to v2 (#4523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-07 21:57:10 +10:00
renovate[bot] 4265be6e43
Update pre-commit hook pre-commit/mirrors-mypy to v2 (#4525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-07 21:56:30 +10:00
Softer b0b7983af2
Fix bspwm black screen: add provision() delegation and default configs (#4518)
* Fix bspwm black screen: add provision() delegation and default configs

* Move TYPE_CHECKING imports to top level in bspwm profile
2026-05-07 10:20:09 +10:00
Softer ef1cfe7b56
Add share-log subcommand to upload install.log to paste.rs (#4511)
* Add --share-log flag to upload install.log to paste.rs

* Apply ruff-format to share_log.py

* Rework share-log per review: subcommand, TUI confirmation, truncate large logs

* Replace curl/SysCommand with urllib.request, remove defensive try/except

Per review: use stdlib urllib instead of shelling out to curl,
drop unnecessary try/except around TUI confirmation,
remove tempfile (content is passed directly as bytes).

* Fix TUI imports after ui module was pulled one level up (#4515)

* Decouple share_install_log from TUI module

* Add unit tests for share_install_log function

* Update docs to use share-log subcommand syntax
2026-05-07 10:18:56 +10:00
Softer 7b5dddf34b
Fix truncated package metadata in additional packages preview (#3580) (#4510)
* Fix truncated package metadata in additional packages preview (#3580)

* Simplify package info fix: use rstrip and CSS wrap instead of env var plumbing

* Apply preview text wrap conditionally via wrap_preview parameter

* Add missing wrap-preview CSS to OptionListScreen and pass parameter through SelectMenu
2026-05-07 10:17:13 +10:00
renovate[bot] dcc38fe9aa
Update dependency arch/python-cryptography to v48 (#4520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 15:25:45 +10:00
Softer 11607851c4
Keep standalone initramfs for grub-btrfs when UKI is enabled (#4513)
* Keep standalone initramfs for grub-btrfs when UKI is enabled

Fixes #4505

* Move keep_initramfs logic into add_bootloader()

The grub-btrfs snapshot detection was in guided.py, forcing custom
script authors to replicate it. Since Installer already holds
disk_config, the check belongs inside add_bootloader().
2026-05-06 14:26:59 +10:00
Daniel Girtler ba7dbeadfc
Refactor profile seat access selection (#4457)
* Refactor profile seat access selection

* Update
2026-05-04 14:45:43 +10:00
aronmr-1 b5501d9507
Improved Finnish translation further (#4516) 2026-05-04 08:16:16 +10:00
renovate[bot] 528c27fbe1
Update dependency arch/python-textual to v8.2.5 (#4517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 08:14:56 +10:00
Daniel Girtler b18cc57216
Pull `ui` module one level up (#4515)
* Pull the UI module one level up

* Update
2026-05-03 23:54:42 +02:00
Softer dd34954011
Remove dead Cutefish desktop profile (#4514)
The cutefish package was never in the official Arch repos (AUR only)
and the upstream project is abandoned. Installing this profile would
always fail with a pacman "not found" error.
2026-05-03 10:33:48 +10:00
utuhiro78 76629ecc15
Update Japanese translation (#4504) 2026-04-30 17:37:37 +10:00
Softer dc7d9cf0a2
Improve Ukrainian translation (#4502) 2026-04-30 09:23:08 +10:00
correctmost b936fa11e3
Fix some inconsistent-return-statements Pylint warnings (#4503) 2026-04-30 09:22:45 +10:00
aronmr-1 6fefa3b6f5
Improved Finnish language (#4501) 2026-04-30 07:43:01 +10:00
Softer 3b026cb603
Fix broken localization in U2F, LUKS, and gfx driver preview (#4500) 2026-04-30 07:33:21 +10:00
correctmost 05560d29af
Add basic Pyrefly configuration to pyproject.toml (#4494)
This makes it easier to use the Pyrefly type checker with various
IDEs.
2026-04-29 21:54:59 +10:00
correctmost 3223ae4212
Remove the old curses-based TUI code (#4497)
The new Textual-based TUI shipped in the April .iso.
2026-04-29 17:08:24 +10:00
Steen Rabol 468e33d54f
Danish translation (#4493)
* Danish translation

* updated base.po and  created base.mo

---------

Co-authored-by: Steen Rabol <steen@rabol.dev>
2026-04-29 16:06:10 +10:00
utuhiro78 ccbc53d576
Update Japanese translation (#4498) 2026-04-29 13:44:11 +10:00
correctmost c4d68855cb
Replace time.time with time.monotonic to avoid clock drift issues (#4492)
Using time.time() can be inaccurate if the system clock gets
updated in between calls.
2026-04-28 13:34:33 +02:00
Softer 8a929f603f
Fix sway+nvidia confirmation dialog (#4481) (#4485)
* Fix sway+nvidia confirmation dialog (#4481)

Two bugs in the Sway+Nvidia driver confirmation:

1. The boolean was inverted - confirming "yes, I'm okay with issues"
   reverted the driver to the previous choice instead of keeping it.

2. The warning triggered for any Nvidia driver, including the
   open-source nouveau driver which is officially supported by Sway.

Add GfxDriver.is_nvidia_proprietary() and is_nvidia_nouveau() methods
so the warning fires only for nvidia-open-dkms (proprietary userspace).

* Address review feedback (#4485)

- Drop is_nvidia_nouveau() helper. It is not called anywhere yet; can
  be re-added when a consumer lands.
- Collapse the Sway+Nvidia confirmation result handling into a single
  expression now that allow_skip=False guarantees a boolean answer.
2026-04-28 21:02:32 +10:00
Softer e1efa34d8a
Install mkinitcpio explicitly in base packages (#4484)
Prevents pacstrap from picking a different initramfs provider
(dracut, booster) when running from a non-Arch host.

Fixes #4368
2026-04-28 21:01:05 +10:00
Softer cb0f3a6eba
Warn when no network configuration is selected (#4408)
* Make network configuration mandatory with explicit "No network" option

* Add network configuration recommendation hint and disable sorting

* Warn when network selection was skipped instead of making it mandatory

Replace the mandatory network_config menu requirement with a yellow
warning on the final confirmation screen, shown only when the user
skipped the network menu entirely. Explicitly picking "No network
configuration" is treated as a conscious choice and does not trigger
the warning.

- Drop mandatory=True from the network_config global menu item
- Rename NicType.NONE menu label from "No network" to
  "No network configuration" (an installed system still has an NIC;
  only the install-time configuration is absent)
- Add ConfigurationOutput.get_install_warnings() and render them in
  confirm_config when show_install_warnings=True
- guided.py and minimal.py enable the warning on the confirm screen
- Reuse the existing "No network configuration" msgid in .pot; add the
  warning string; update Ukrainian translations accordingly

* Drop NicType.NONE from this PR

The NONE option introduced earlier in this branch is being removed per
review feedback (#4408). Whether to add explicit "None" options across
multiple menus (greeter, gfx driver, network, bootloader) is now being
discussed in #4464 and should land as a separate change there.

This PR keeps only the warning-on-confirm behaviour: when the user
skipped the network menu entirely (network_config is None), a yellow
warning is shown on the final confirmation screen.
2026-04-28 20:17:40 +10:00
Hassaan Amin 1b7a32a3b3
Fix typos in known issues documentation (#4488)
First Edit :
- "effort" is singular so use has not have

Second Edit :
- we use "an" before vowel sounds (an old )


Third Edit :  
- use Sometimes because sometimes means occasionally and Some times means  some period or era 

Fourth Edit :
- Plural of ISO is ISOs not ISO's
2026-04-28 20:03:49 +10:00
Softer 08cba236f6
Show install summary when configuration is valid (#4475)
* Show install summary when configuration is valid

Previously the Install menu preview was empty when everything was valid,
leaving the user with no "ready" signal. Now show "Ready to install"
plus a two-column summary of the current configuration.

- New _install_summary() composes an aligned key/value table with rows
  for disks+FS+LUKS, bootloader, kernel, profile, greeter, package
  count, network, locale and timezone. Column width adapts to the
  longest translated label so translations keep the alignment.
- Rows whose underlying config is not set are skipped rather than
  rendered as empty.
- base.pot / uk base.po: add new msgids for summary labels.

* Move install summary into ConfigurationOutput

The summary helper that renders the install preview's two-column
configuration overview lived in GlobalMenu. Move it to
ConfigurationOutput.as_summary() so it sits alongside the JSON
output methods that share the same role. The preview now syncs
menu state to ArchConfig and delegates rendering.
2026-04-28 19:22:01 +10:00
Franco Castillo 8cc35f41d8
Update Spanish translation (#4490)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2026-04-28 17:08:39 +10:00
codefiles 9010ccf9eb
Add kernel enum (#4489) 2026-04-28 17:08:19 +10:00
Anton Hvornum 074dfbb178
Adding a reference to why AUR is not bundled as an option in archinstall (#4468) 2026-04-27 08:44:14 +02:00
Softer 008d303aaf
Remove disabled translation-check workflow (#4483)
The workflow has been fully commented out since #2119 (2023-09-28) when
translation handling was reworked. Because the file has no `on:` triggers,
GitHub Actions creates a failed workflow run for every push, polluting
the Actions tab without affecting PR check-runs.
2026-04-27 09:35:34 +10:00
utuhiro78 3795bfc21a
Update Japanese translation (#4482) 2026-04-27 09:32:10 +10:00
Softer 210329ed80
Add console font selection to Locales menu (#4469)
* Add console font selection to Locales menu

Add a 4th menu item "Console font" to the Locales configuration,
allowing users to select a console font for the target system.
The selected font is written to /etc/vconsole.conf.

If a terminus font (ter-*) is selected, the terminus-font package
is automatically installed on the target system.

* Switch list_console_fonts to pathlib and add @lru_cache

Address svartkanin's review on #4469. Replace os.listdir +
chained removesuffix with Path.glob('*.gz') + split('.')[0],
and cache the result via lru_cache - the kbd consolefonts
directory is static at runtime so re-scanning on every menu
reopen was wasted I/O.
2026-04-27 09:30:20 +10:00
Softer 9e05260df5
Fix argv injection in _create_user and gpasswd loop (#4473)
* Fix argv injection in _create_user and gpasswd loop

Use argv list with run() instead of f-string interpolation into
SysCommand, add debug logging on failure.

* Extract _chroot_argv helper and harden user/file ops

Address svartkanin's review on #4473: factor the
['arch-chroot', '-S', str(self.target), ...] boilerplate into a
private Installer._chroot_argv() helper, and migrate the seven
existing argv-form call sites to it (useradd, gpasswd, chpasswd,
chsh, chown, snapper-create-config, grub-install).

Two related hardening tweaks while in the area:

- Raise gpasswd failure log from debug() to warn(). The group-add
  loop has no return-False feedback channel for the caller, so a
  silent debug() means a half-configured user looks like a
  successful install.

- Add `--` end-of-options separator for useradd and chown so a
  username or path starting with `-` cannot smuggle flags. The TUI
  validates usernames, but parse_arguments() in models/users.py
  does not, so config.json is the residual hole; this closes it
  for these two sites at zero cost.
2026-04-27 09:24:51 +10:00
Softer d836ab0a66
Extend validate_bootloader_layout with UEFI-dependent checks (#4474)
* Extend validate_bootloader_layout with UEFI-dependent checks

Add is_uefi parameter and three new validations: Systemd-boot, Efistub
and rEFInd require UEFI; Efistub additionally requires a FAT boot
partition. Move the rEFInd UEFI-only check out of GlobalMenu so
guided.py and Installer silent-install paths get the same coverage.

* Encapsulate UEFI-only flag in Bootloader enum

Replace module-level _UEFI_ONLY_BOOTLOADERS tuple with an
is_uefi_only() method on the Bootloader enum, mirroring the
existing has_uki_support() / has_removable_support() pattern.

* Drop is_uefi parameter from validate_bootloader_layout

The UEFI flag is a constant system fact for the run, so the
validator retrieves it via SysInfo.has_uefi() directly instead
of having every caller pass it in. Updates all three call sites
in global_menu.py, installer.py and guided.py, and removes the
now-unused SysInfo import from guided.py.
2026-04-26 19:14:23 +10:00
renovate[bot] 3c4c87bdd6
Update dependency arch/python-cryptography to v47 (#4478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-26 19:03:16 +10:00
renovate[bot] efda78cad5
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.12 (#4477)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-26 18:36:10 +10:00
renovate[bot] c8e5c85e20
Update dependency ruff to v0.15.12 (#4476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-26 18:35:31 +10:00
Softer bb46e295d1
Fix OVMF paths in README QEMU examples (#4472)
All three qemu-system-x86_64 examples in README pointed both -drive
if=pflash entries at the same file (/usr/share/ovmf/x64/OVMF.4m.fd).
OVMF needs CODE for the first pflash and VARS for the second; as
written, EFI NVRAM is not initialized correctly.

The path /usr/share/ovmf/x64/ is also stale - the ovmf package has
been replaced by edk2-ovmf, which installs under /usr/share/edk2/x64/.

Fix both in the three examples (testimage loop section, base Boot ISO
block, espeakup variant).
2026-04-24 12:19:01 +02:00
Thierry M de43019094
Update base.po (#4467) 2026-04-23 20:07:54 +10:00
renovate[bot] 6e222bcdd8
Update dependency pre-commit to v4.6.0 (#4459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-23 11:08:51 +10:00
renovate[bot] 6652197e35
Update pre-commit hook pre-commit/mirrors-mypy to v1.20.2 (#4463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-23 11:06:09 +10:00
renovate[bot] 80ae85cc8b
Update dependency mypy to v1.20.2 (#4458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 21:41:09 +10:00
correctmost 00834f9c6e
Use bools instead of time values for SysCommandWorker attributes (#4462)
Only the truthiness of the time values was being evaluated. This
also reduces the usage of time.time(), which makes the codebase
more resilient against clock drift issues.
2026-04-22 21:33:35 +10:00
Softer e7d38d0e82
Fix Limine install with ESP mounted outside /boot (#4442)
* Fix Limine install with ESP mounted outside /boot

Place limine.conf next to the EFI binary on the ESP so it is found
regardless of ESP mountpoint, and block unbootable layouts (non-UKI
Limine with ESP not at /boot and no separate /boot partition) in
GlobalMenu validation, guided.main() and _add_limine_bootloader().

Fixes #4333

* Extract bootloader layout validation into lib/bootloader/utils

* Consolidate Limine layout validation in bootloader utils

Move the boot-partition FAT check from GlobalMenu into
validate_bootloader_layout so all three call sites (GlobalMenu,
guided.py, Installer._add_limine_bootloader) share one function.

Return a BootloaderValidationFailure dataclass (kind + description)
instead of str | None, so callers can match on the failure kind and
the description is built where partition context is in scope.

* Encapsulate FAT filesystem detection in FilesystemType.is_fat()
2026-04-22 21:32:41 +10:00
correctmost d1765323d8
Use staticmethod for PasswordStrength methods (#4461)
The methods don't need access to the class, so they don't need to
be classmethods. This change reduces the number of 'bad return'
warnings seen when running Pyright, Pyrefly, and ty.
2026-04-22 21:31:06 +10:00
javier-anton-ordonez 094798b496
ES Language updated (#4456)
* ES langauje updated and added diferent translations

* Update archinstall/locales/es/LC_MESSAGES/base.po

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Cerrar -> Ocultar

Github copilot suggested

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix Spanish translations and accents in base.po

Github suggestions

* ./locales_generator.sh generated

* Accent updated and ./locales_generator.sh generated

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-22 10:34:41 +10:00
stinga11 fa54c9d6c9
Change Budgie display server and update packages (#4450)
Some changes consistent with other distros.
2026-04-22 10:23:09 +10:00
renovate[bot] b842e54091
Update dependency arch/python-textual to v8.2.4 (#4448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 19:52:17 +10:00
Softer 03b245a77a
Set console font automatically when selecting language (#4356)
* Set console font automatically when selecting language

Add console_font field to languages.json and Language dataclass.
When a language is activated, setfont is called automatically,
falling back to default8x16 on error or for languages without
a custom font. Also activate translation when loading language
from config file.

* Support FONT environment variable for console font override

When FONT env var is set, use it as the console font instead of the language-specific font mapping from languages.json. The font is applied at startup and preserved across language switches.

On exit (success or failure), restore the console font to default8x16.

* CI checks fix

* Try to restore original console font with setfont -O

* Fix for pylint

* Restore console font before Textual exits application mode

Move font set/restore into Textual lifecycle to prevent color
artifacts from 256/512 glyph transitions. Apply FONT env var
and language font in on_mount, restore in _on_exit_app.

Skip font change when loading language from config (set_font=False)
to defer it until TUI starts.

* Fall back to language font mapping when FONT env var is invalid

Add _using_env_font flag to skip mapping only when FONT was
successfully applied. Show info message after TUI exits if FONT
could not be set.

* Use tempfile for console font backup files

* Fix linter errors: use mkstemp, close fds, add @override

* Fix ruff formatting

* Move font state from module singleton into TranslationHandler

* Refactor font handling per review feedback

* Make font methods members of TranslationHandler, skip on non-ISO

* ci: trigger tests

* Move running_from_iso import to module level

No circular dep, simpler than per-method local imports.

* Add explicit ISO guard to restore_console_font

Matches the existing guards in _set_font and save_console_font.
Behaviour was already safe implicitly via _font_backup=None, but
the explicit check makes intent obvious at the call site.

* Skip apply_console_font off-ISO

* Use list form for setfont SysCommand calls
2026-04-21 18:36:29 +10:00
Dylan M. Taylor 7d10f9e08b
ci: Strip Arch pkgrel from Repology versions in Renovate config (#4453)
* ci: Strip Arch pkgrel from Repology versions in Renovate config

* ci: Use .+ instead of .* in extractVersionTemplate

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

---------

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
2026-04-21 15:18:25 +10:00
Anton Hvornum d80bdb4fad
Bumping version to: 4.3 (#4452) 2026-04-20 22:31:22 +02:00
Anton Hvornum 68d137cdce
Bumping version to: 4.3 2026-04-20 22:28:35 +02:00
Softer 82a46c66ca
Fix shell injection in user_set_shell and chown (#4443)
Use argv list with run() instead of sh -c with f-string interpolation,
fix mutable default argument in chown, add debug logging on failure.
2026-04-20 18:36:49 +10:00
Dhruv 86dc1bbc12
locale(hindi): Completed the hindi translation locale (#4446)
* locale: ran generate_locale before making change

* locale: first 1000 confirmed everything is fine

* locale(hi): fixed rest of the fuzzy and empty strings

* locale(hi): ran locale generator
2026-04-20 18:29:26 +10:00
codefiles cd62eff4a7
Fix copying into target directory (#4441) 2026-04-18 12:05:00 +10:00
Softer e8ea33c41c
Enable power management services after package installation (#4440) 2026-04-18 12:04:14 +10:00
Softer 4fcef35af0
Add optional "Additional fonts" selection to Applications menu (#4420)
* Add Fonts application with multi-select for emoji and CJK packages

* Rename to Additional fonts and add package descriptions

* Add noto-fonts to font package selection

* Move font descriptions into FontPackage enum method

* ci: trigger tests

* Add ttf-liberation and ttf-dejavu to font selection
2026-04-18 12:02:47 +10:00
codefiles 9fdd7eb12e
Refactor EncryptionType (#4438)
* Use UPPER_CASE for EncryptionType

* Use StrEnum for EncryptionType
2026-04-17 10:08:23 +10:00
codefiles 8fe8d4e35f
Pin linkify-it-py to Arch Linux package version (#4437) 2026-04-17 10:07:57 +10:00
renovate[bot] 02faf9fbb9
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.11 (#4436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 10:07:09 +10:00
renovate[bot] 9b9f9d6ac0
Update dependency ruff to v0.15.11 (#4435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 10:06:51 +10:00
Dylan M. Taylor 98d72a6b57
ci: Update renovate to track Arch Linux repos using repology (#4434) 2026-04-16 19:17:07 +10:00
Daniel Girtler 06488dfb9a
Fix table column error (#4406) 2026-04-16 07:30:38 +02:00
Daniel Girtler 29588fadee
Fix encrypted partition selection (#4407) 2026-04-16 07:29:53 +02:00
codefiles 3cabe860ae
Refactor LsblkInfo field validators (#4428) 2026-04-16 14:06:23 +10:00
codefiles 7ea171369a
Refactor PartitionType (#4432)
* Use UPPER_CASE for PartitionType

* Use StrEnum for PartitionType
2026-04-16 14:05:08 +10:00
Anton Hvornum 8b3be842ca
Bumping version to: 4.2 (#4433) 2026-04-15 20:47:13 +02:00
codefiles 30f50d9719
Revert pydantic update due to upstream bug (#4427) 2026-04-15 10:16:34 +10:00
tom c1771cf615
locale(german): extend and fix translation (#4421)
* chore(locale): Fix and improve German translation strings

* chore(locale): edit incorrect translations
2026-04-14 17:40:15 +10:00
Ian Dieb H. Rebouças c0d3c14b6e
Update Brazilian Portuguese translation (#4426)
Co-authored-by: Ian Dieb <idbreboucas@gmail.com>
2026-04-14 17:39:23 +10:00
correctmost 113cc7fd94
Fix urllib.parse import to avoid warnings with ty and Pyright (#4425) 2026-04-14 15:39:08 +10:00
renovate[bot] 88366ba575
Update dependency pydantic to v2.13.0 (#4424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-14 15:38:14 +10:00
renovate[bot] 728bb450c7
Update pre-commit hook pre-commit/mirrors-mypy to v1.20.1 (#4423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-14 15:37:56 +10:00
codefiles 2b27e565ae
Refactor ModificationStatus (#4422)
* Use UPPER_CASE for ModificationStatus member names

* Use StrEnum for ModificationStatus

* Replace LvmVolumeStatus with ModificationStatus
2026-04-14 15:37:14 +10:00
renovate[bot] a52bfc3446
Update dependency mypy to v1.20.1 (#4419)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 18:49:04 +10:00
renovate[bot] 5dd94e80d2
Update astral-sh/ruff-action action to v4 (#4416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 18:48:17 +10:00
codefiles 335a7b792c
Refactor FilesystemType (#4417)
* Use UPPER_CASE for FilesystemType member names

* Use StrEnum for FilesystemType

* Use FilesystemType member values
2026-04-13 18:41:59 +10:00
Matteo 5553cb9eae
locale: Update Italian translation (#4415)
-Translated new strings
-Fixed a couple of old translations
2026-04-13 18:38:24 +10:00
Softer 80da3f14a1
Add Pacman settings submenu with Color and ParallelDownloads (#4404)
* Add Pacman settings submenu with Color and ParallelDownloads

Replace the standalone Parallel Downloads menu item with a Pacman
submenu containing ParallelDownloads (default 5) and Color (default on).
Settings are applied to both live and target system pacman.conf.
Hidden behind --advanced flag.

Backward compatible with old configs using "parallel_downloads" key.

* Skip _apply_to_live when user exits Pacman menu without changes

* Use TypedDict for PacmanConfiguration serialization

* Show Pacman menu by default, keep ParallelDownloads behind --advanced
2026-04-13 18:37:51 +10:00
codefiles bf9b9cb7c1
Remove invalid container PATH lookup (#4413) 2026-04-12 14:48:51 +10:00
Softer 9a2d546882
Add translation support for TUI help groups and binding descriptions (#4363)
* Add translation support for TUI help groups and binding descriptions

Help group names shown via F1 (General, Navigation, Selection, Search) and key binding descriptions in the Textual footer (Down, Up, Cancel, Confirm, etc.) were hardcoded in English and never went through the translation system.

* ruff_format_check and mypy fixes

* Refactor _translate_bindings to accept BindingsMap instead of Any

Add TApp.translate_bindings() to avoid exporting private functions
across modules.

* Revert deprecated curses help.py change

* Move TApp import to module level in global_menu

* Change translate_bindings from staticmethod to member method
2026-04-12 14:24:46 +10:00
codefiles d6de03ab76
Use auto() for eligible StrEnum members (#4411) 2026-04-11 22:51:43 +10:00
Koutheir Attouchi 51600ecd2a
Update Arabic translation (#4410) 2026-04-11 18:14:14 +10:00
Softer 60bcded743
Replace tab with spaces in preview package lists (#4409) 2026-04-11 17:48:26 +10:00
codefiles 934407414e
Add constant for mirrorlist (#4403) 2026-04-11 10:17:29 +10:00
renovate[bot] 1a4eedf868
Update actions/upload-artifact digest to 043fb46 (#4402)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-11 10:16:58 +10:00
Daniel Girtler b2f413124b
Allow granular plasma configuration (#4389)
* Flexible plasma profile selection

* Update

* Update

* Update

* Update
2026-04-10 07:07:28 +02:00
renovate[bot] 101f647319
Update dependency ruff to v0.15.10 (#4400)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 07:24:30 +10:00
renovate[bot] 9059a18dfe
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.10 (#4401)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 07:24:01 +10:00
correctmost d6987b4e9d
Fix del-attr-with-constant ruff warnings (#4399) 2026-04-09 10:19:02 +10:00
codefiles 1bf87c6f4a
Use Path.copy() (#4398) 2026-04-08 15:18:09 +02:00
codefiles 6505e17f34
Refactor sync_log_to_install_medium() (#4397) 2026-04-08 14:35:35 +02:00
Daniel Girtler 78987d75fe
Revert enter behavior on multi-select (#4386) 2026-04-08 09:17:38 +02:00
renovate[bot] b906a34a5d
fix(deps): update dependency pytest to v9.0.3 (#4391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 17:05:33 +10:00
correctmost 18c77b94f2
Remove unnecessary 'unused-ignore' mypy directives (#4395)
The directives were added because a PR branch accidentally lagged
behind master and did not contain the mypy python_version bump from
commit 0175949ca.

This fixes commit d70e03fa3.
2026-04-08 08:42:49 +02:00
codefiles 3ef0848ffe
Refactor copy_iso_network_config() (#4394) 2026-04-08 08:13:14 +02:00
codefiles a92cd50aec
Remove deprecated __future__ imports (#4393) 2026-04-08 08:11:05 +02:00
Crystal eda9ee338b
Update German translation for base.po (#4334)
* Update German translations in base.po

Updated German translations for various prompts and messages in the base.po file.

* Apply suggestions from code review

Co-authored-by: Luca Zeuch <l-zeuch@email.de>

* Removed the # fuzzy´s from the already translated sentences.

---------

Co-authored-by: Luca Zeuch <l-zeuch@email.de>
2026-04-07 23:23:22 +10:00
Ghosted Owl caf285a6dc
Czech translation (#4370)
* Complete Czech translation

* Complete Czech translation
2026-04-07 23:21:52 +10:00
codefiles 7609a1634e
Bump ruff target-version to Python 3.14 (#4390)
* Bump ruff target-version to Python 3.14

* Update exception syntax to pass ruff format
2026-04-07 23:09:14 +10:00
Daniel Girtler f37ae8b282
Handle empty mountpoint input (#4388) 2026-04-07 13:54:18 +02:00
codefiles d57709cb2f
Remove quotes from type annotation (#4384) 2026-04-07 12:21:51 +10:00
Lena Pastwa 9e8cbd0181
Update Polish translation (#4383) 2026-04-07 12:21:19 +10:00
HADEON 3ba29f1193
Patch plasma profile (#4358)
* add essentials #4336

* rem unrelated change
2026-04-06 22:43:06 +10:00
codefiles a8d265184c
Add constant for archiso mountpoint (#4377) 2026-04-06 22:41:33 +10:00
codefiles 37159dcb6d
Add LPath execute permissions methods (#4378) 2026-04-06 09:16:21 +02:00
codefiles e2bd7b3405
Remove is_subpath() and use Path.is_relative_to() (#4372) 2026-04-06 16:42:45 +10:00
codefiles 56bec01979
Add constant for /etc/pacman.conf (#4375) 2026-04-05 23:18:22 +02:00
Ghosted Owl 41858db832
Russian translation (#4367)
* Сomplete russian translation

* Сomplete russian translation
2026-04-03 23:41:28 +11:00
renovate[bot] 5a4b6131c1
fix(deps): update dependency ruff to v0.15.9 (#4366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 09:50:16 +11:00
renovate[bot] c91e19e534
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.9 (#4365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 09:41:45 +11:00
Dylan M. Taylor 6c6c8d8000
Stop installing xorg packages for Wayland profiles (#4348)
* Add WaylandProfile to avoid installing xorg packages for Wayland compositors

* Refactor: use composition (is_wayland) instead of WaylandProfile inheritance

* Fix X11 profiles to inherit xorg packages from XorgProfile

* Style: use consistent multi-line super().__init__ for Wayland profiles

* Refactor: replace is_wayland with DisplayServerType enum

Add DisplayServerType enum (Xorg/Wayland) to Profile. All profiles
now inherit Profile directly with an explicit display_server param.
desktop.py installs xorg-server and xorg-xinit for Xorg profiles.
XorgProfile remains for standalone Xorg selection.

* Remove unnecessary super().packages from desktop profiles
2026-04-03 09:38:02 +11:00
Julio Napurí 6c9f66265a
i18n: Updated Spanish translation (#4357) 2026-04-02 18:21:49 +11:00
Softer 5544abd380
Improved translation into Ukrainian (#4355) 2026-04-02 14:40:40 +11:00
renovate[bot] deb8080322
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.20.0 (#4351)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-02 07:52:30 +11:00
correctmost d70e03fa3b
Update mypy to 1.20.0 (#4352)
* Update mypy to 1.20.0

This commit also removes a cast that is no longer needed after
https://github.com/python/mypy/pull/20602

* Ignore os.system deprecation warnings from mypy to fix CI
2026-04-02 07:51:47 +11:00
Dylan M. Taylor 29b73302ae
Don't write encryption keyfiles to an unencrypted root partition (#4349) 2026-04-01 15:35:33 +11:00
Dylan M. Taylor a3c6bd5d45
Use nvidia-open instead of nvidia-open-dkms for mainline kernels (#4347) 2026-04-01 15:24:11 +11:00
Anton Hvornum 0175949cab
Bumping version to: 4.1 (#4346) 2026-03-31 23:02:14 +02:00
Dylan M. Taylor 179d9c7b48
Remove Nvidia proprietary driver option (nvidia-dkms no longer in repos) (#4343)
* Remove Nvidia proprietary driver option (nvidia-dkms no longer in repos)

* Remove libva-mesa-driver (now provided by mesa)
2026-03-31 22:51:57 +02:00
Odyssey bdf6f92991
Update catalan locales (#4344) 2026-04-01 07:33:34 +11:00
Dylan M. Taylor ef4d7cfc3a
Move auth config helpers to AuthenticationConfiguration class (#4340) 2026-03-31 11:29:26 +11:00
Dylan M. Taylor 603c432e18
Warn when a desktop profile's greeter can't log in without a regular user (#4331) 2026-03-31 10:48:01 +11:00
Anton Hvornum e3e9563aa6
Bumping version to: 4.0 2026-03-30 23:35:51 +02:00
renovate[bot] 398d6cfdbe
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.8 (#4329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 14:33:13 +11:00
renovate[bot] c76fd90074
fix(deps): update dependency ruff to v0.15.8 (#4328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 14:32:55 +11:00
Daniel Girtler 4b9087e2f4
Fix AwaitComplete runtime error (#4325) 2026-03-26 13:04:43 +01:00
Daniel Girtler dc64e15327
Handle enter on filter confirm (#4324) 2026-03-26 13:04:09 +01:00
Daniel Girtler dd0da34ed9
Move luks into disk module (#4296) 2026-03-21 18:36:00 +11:00
Daniel Girtler e763c1109c
Refactor interactive module (#4315)
* Refactor interactive module

* Refactor interactive module

* Update
2026-03-21 18:35:44 +11:00
Daniel Girtler 1764b4971d
Refactor mirrors (#4274) 2026-03-21 17:57:33 +11:00
Daniel Girtler 8d6c56ca2b
Allow skip on password confirmation (#4273) 2026-03-21 17:57:17 +11:00
Daniel Girtler e06dd6299f
Zram - remove custom size in config (#4272) 2026-03-21 17:56:59 +11:00
Daniel Girtler 8e34303175
Fix iwd network installation and setup (#4271)
* Fix 4223 - IWD

* Update

* Update
2026-03-21 17:56:41 +11:00
renovate[bot] cfdcebcacd
fix(deps): update dependency ruff to v0.15.7 (#4312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-21 12:35:25 +11:00
renovate[bot] b21ac742c2
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.7 (#4311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-21 12:34:40 +11:00
Rosy 594cf54c8a
Update Turkish translations and refresh locale template (#4310) 2026-03-19 08:36:23 +11:00
Piyush Singh e74a72f482
fix: reintegrate PasswordStrength into password prompt (#4111) (#4291) 2026-03-18 22:48:05 +11:00
Daniel Girtler b186fb3f64
Async menu (#4308)
* Move to async TUI

* Update

* Update
2026-03-16 10:39:36 +11:00
renovate[bot] ffa130fe99
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.6 (#4303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-13 15:51:48 +11:00
amode e718a12b42
Removed unnecessary signal for multi-line comment. (#4298) 2026-03-13 15:01:52 +11:00
renovate[bot] 28f4904a3c
fix(deps): update dependency ruff to v0.15.6 (#4304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-13 15:01:20 +11:00
Valerii bace59aef8
better Ukrainian 1.4.2 (#4301)
* Add files via upload

* Add files via upload
2026-03-13 14:59:26 +11:00
Atharv Singh Negi 8b65bd9a6a
Add nepali translation (#4295)
* Improve Hindi translations (base.po)

* Improve all Fuzzy and more hindi translations

* Update base.po

* Update base.po

* Update Hindi translations in base.po

* Update translation for Network Manager iwd backend

* Create base.po

* Update base.po

* Update base.po

* Update languages.json

* Update base.po

* Complete Nepali translation and generated .mo file

* Update languages.json

* Update languages.json

* Update Nepali translations with system and user strings

* Add translations for Partitioning, Bootloader, and Network

* Add disk and configuration translations

* Reach 500+ lines: User management, NTP, and BTRFS subvolumes

* Reached 700+ strings: Desktop profiles, BTRFS setup, and final installation prompts

* Fix syntax error in base.po and update translations
2026-03-09 21:22:53 +11:00
Atharv Singh Negi a4bfd379f5
Add nepali translation (#4294)
* Improve Hindi translations (base.po)

* Improve all Fuzzy and more hindi translations

* Update base.po

* Update base.po

* Update Hindi translations in base.po

* Update translation for Network Manager iwd backend

* Create base.po

* Update base.po

* Update base.po

* Update languages.json

* Update base.po

* Complete Nepali translation and generated .mo file

* Update languages.json

* Update languages.json

* Update Nepali translations with system and user strings

* Add translations for Partitioning, Bootloader, and Network

* Add disk and configuration translations

* Reach 500+ lines: User management, NTP, and BTRFS subvolumes

* Reached 700+ strings: Desktop profiles, BTRFS setup, and final installation prompts
2026-03-09 12:31:36 +11:00
Atharv Singh Negi 2b63d573af
Locales: Add Nepali (ne) translation (Initial 300+ strings) (#4288)
* Improve Hindi translations (base.po)

* Improve all Fuzzy and more hindi translations

* Update base.po

* Update base.po

* Update Hindi translations in base.po

* Update translation for Network Manager iwd backend

* Create base.po

* Update base.po

* Update base.po

* Update languages.json

* Update base.po

* Complete Nepali translation and generated .mo file

* Update languages.json

* Update languages.json

* Update Nepali translations with system and user strings

* Add translations for Partitioning, Bootloader, and Network

* Add disk and configuration translations

* Reach 500+ lines: User management, NTP, and BTRFS subvolumes
2026-03-07 16:57:37 +11:00
renovate[bot] 33b0131e4e
fix(deps): update dependency ruff to v0.15.5 (#4287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-06 12:06:53 +11:00
renovate[bot] 8638726e7a
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.5 (#4286)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-06 12:06:33 +11:00
codefiles 6d87a062fd
Move all LVM helpers to dedicated module (#4283) 2026-03-05 09:13:04 +11:00
Atharv Singh Negi e133cb0d28
Add nepali translation (#4282)
* Improve Hindi translations (base.po)

* Improve all Fuzzy and more hindi translations

* Update base.po

* Update base.po

* Update Hindi translations in base.po

* Update translation for Network Manager iwd backend

* Create base.po

* Update base.po

* Update base.po

* Update languages.json

* Update base.po

* Complete Nepali translation and generated .mo file

* Update languages.json

* Update languages.json

* Update Nepali translations with system and user strings

* Add translations for Partitioning, Bootloader, and Network
2026-03-05 09:11:45 +11:00
codefiles 452abe4277
Move udev_sync() to disk.utils (#4281) 2026-03-04 12:43:47 +11:00
codefiles 813b9b34b3
Refactor arch_config_handler to use DI (#4280) 2026-03-03 20:11:22 +11:00
codefiles 64567a748a
Remove support for NTFS root file system (#4279)
* Remove support for NTFS root file system

* Fix rootfstype value
2026-03-03 12:21:31 +11:00
codefiles b809c84ad5
Use os.sync() instead of sync command (#4278) 2026-03-02 07:48:22 +11:00
codefiles 501759d979
Remove obsolete GRUB package install (#4277) 2026-03-02 07:04:32 +11:00
codefiles 839e6bfc55
Move get_version() to version module (#4270) 2026-03-01 11:31:13 +11:00
codefiles 74a230dae9
Enable if-key-in-dict-del ruff rule (#4269) 2026-03-01 08:06:49 +11:00
codefiles f19f8d195f
Replace Installer with path parameter in Boot (#4268) 2026-03-01 08:06:15 +11:00
codefiles 76d6f08841
Remove unnecessary post-init (#4267) 2026-02-28 17:30:59 +11:00
codefiles 390b4959bd
Refactor ISO check (#4264) 2026-02-28 11:20:02 +11:00
correctmost d413c01fde
Fix a reportUnnecessaryIsInstance Pyright warning (#4263) 2026-02-27 17:39:46 +11:00
renovate[bot] d781c9d857
fix(deps): update dependency ruff to v0.15.4 (#4259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 15:39:03 +11:00
renovate[bot] 33f3709c31
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.4 (#4261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 15:38:49 +11:00
renovate[bot] ec8bd01ced
chore(deps): update actions/upload-artifact action to v7 (#4260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 12:14:25 +11:00
codefiles 3cd85c023e
Remove unneeded chmod (#4262) 2026-02-27 12:13:59 +11:00
renovate[bot] b6ce255b36
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.3 (#4258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 06:59:38 +11:00
Daniel Girtler e4faba2de0
Convert imports to absolute imports (#4196)
* Enable ruff absolute import check

* Convert all relative imports to absolute

* Update

* Update
2026-02-26 20:17:48 +11:00
Anton Hvornum c92a457142
Revert "Locale timezone python chmod (#4210)" (#4257)
This reverts commit 01d3af9fbb.
2026-02-25 22:48:03 +01:00
Favilances 01d3af9fbb
Locale timezone python chmod (#4210)
* Set timezone during minimal install

* Clean up conflicting boot entries

* Revert "Clean up conflicting boot entries"

This reverts commit e673301b99.
2026-02-25 22:47:25 +01:00
Daniel Girtler 683996c44f
Add missing linkify dependency (#4208)
* Add missing linkify dependency

* Update PKGBUILD
2026-02-25 22:45:28 +01:00
Daniel Girtler 4f87ccba28
Refactor general utility functions (#4212) 2026-02-25 22:45:21 +01:00
renovate[bot] 3447d2f47d
fix(deps): update dependency pylint to v4.0.5 (#4253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 08:45:24 +11:00
codefiles d86daa531a
Add provision() to configure users for profiles (#4254) 2026-02-22 07:53:58 +11:00
renovate[bot] a9c939cb86
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.2 (#4251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-20 17:34:04 +11:00
renovate[bot] 415fefef26
fix(deps): update dependency ruff to v0.15.2 (#4252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-20 17:33:41 +11:00
codefiles 2d18b55fa7
Remove unused advanced member from Profile (#4248) 2026-02-19 12:32:57 +11:00
nubprogrammer bb76f96bd5
locales: Add Nepali (ne) translation (#4222)
* Improve Hindi translations (base.po)

* Improve all Fuzzy and more hindi translations

* Update base.po

* Update base.po

* Update Hindi translations in base.po

* Update translation for Network Manager iwd backend

* Create base.po

* Update base.po

* Update base.po

* Update languages.json

* Update base.po

* Complete Nepali translation and generated .mo file

* Update languages.json

* Update languages.json

* Update Nepali translations with system and user strings
2026-02-19 07:22:43 +11:00
Mário Victor Ribeiro Silva 377b3bee97
feat: add `plasma-login-manager` (#4247) 2026-02-19 07:20:13 +11:00
codefiles 618c0bd5dc
Remove arch_config_handler from installer (#4246) 2026-02-19 07:18:53 +11:00
codefiles bd35473b5d
Move LVM helpers to dedicated module (#4245) 2026-02-18 15:57:10 +11:00
codefiles f2c17c6341
Move get_parent_device_path() to disk.utils (#4243) 2026-02-18 09:12:47 +11:00
HADEON f736b8c4ec
install gfx before DE/WM/Server (#4238) 2026-02-17 13:19:11 +11:00
codefiles 8edab9fafd
Move get_unique_path_for_device() to disk.utils (#4242) 2026-02-17 13:15:07 +11:00
codefiles 083a73eab1
Move unlock_luks2_dev() (#4234) 2026-02-17 07:35:25 +11:00
codefiles 35c2ff3ef5
Move swapon() to disk.utils (#4233) 2026-02-16 14:43:10 +11:00
HADEON 8148b1d9bf
fix efistub bootloader to use backslashes (#4231)
* fix efistub to use backslashes

* comment

* cf1

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

* cf2

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

---------

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
2026-02-16 13:10:52 +11:00
codefiles 3b6f7db942
Move mount() to disk.utils (#4232) 2026-02-16 13:08:59 +11:00
codefiles 9bd2131792
Refactor SysInfo.has_uefi() to DI for bootloader (#4230) 2026-02-15 12:34:40 +11:00
renovate[bot] ec9ee80062
fix(deps): update dependency ruff to v0.15.1 (#4224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-15 09:58:02 +11:00
renovate[bot] cfe61c0993
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.1 (#4225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-15 09:57:47 +11:00
Franco Castillo 6ce0556c2c
Update Spanish translation (#4228) 2026-02-15 08:40:19 +11:00
correctmost a61d4e5314
Revert "Handle whole-disk LUKS root params (#4205)" (#4229)
This reverts commit 0dddc7308d.
2026-02-15 08:38:55 +11:00
Mário Victor Ribeiro Silva 21358f77dd
feat: update `pt_BR` translations (#4221) 2026-02-12 12:30:14 +11:00
Matteo a7901d172d
Translation: Update Italian (#4219)
- Added new strings
- Improved old translation
2026-02-06 07:49:01 +11:00
utuhiro78 c0d47db75d
Update Japanese translation (#4217) 2026-02-04 19:34:31 +11:00
renovate[bot] 66e0dd119f
Update dependency ruff to v0.15.0 (#4214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-03 20:49:30 +00:00
renovate[bot] 13b7c7194a
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.0 (#4215)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-04 07:48:52 +11:00
renovate[bot] 3dab440cbf
Update actions/checkout digest to de0fac2 (#4213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-04 07:06:48 +11:00
Daniel Girtler 1d8352b466
Use TypeAdapter for Json serialization (#4183) 2026-02-03 22:27:51 +11:00
Favilances 0dddc7308d
Handle whole-disk LUKS root params (#4205)
Co-authored-by: favilances <favilances@proton.me>
2026-02-03 22:03:22 +11:00
Daniel Girtler 4a8604ac88
Make list manager run private (#4192) 2026-02-03 11:22:56 +01:00
Daniel Girtler aac6c896d9
Add missing galician mo file (#4209) 2026-02-03 11:18:11 +01:00
gaelgnz f8304b0bd1
Added Galician language support (#4202)
* Added Galician language support

* Delete archinstall/locales/gl/LC_MESSAGES/base.mo
2026-02-03 11:35:33 +11:00
codefiles 0394a735a7
Fix typo locale -> local (#4201) 2026-02-03 11:34:53 +11:00
codefiles 12bd83ca8a
Refactor skip_boot to use dependency injection (#4200) 2026-02-03 11:34:27 +11:00
correctmost b5f710425f
Remove an unused milliseconds member from Installer (#4199) 2026-02-01 22:48:30 +11:00
correctmost 331634fd80
Measure install time with monotonic clock instead of system clock (#4198)
Using time.time() can be inaccurate if the system clock gets
updated in between calls.
2026-02-01 22:48:09 +11:00
correctmost 173c64c847
Avoid union syntax in an isinstance check (#4197)
This is a partial revert of commit 44f4bc86. The UP038 ruff rule
was removed and using union syntax is no longer recommended.
2026-02-01 22:47:39 +11:00
renovate[bot] 47a4caf163
Update astral-sh/ruff-action action to v3.6.1 (#4195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-31 09:40:51 +11:00
Daniel Girtler 449c1bfb36
Rename ask* functions to select* (#4191) 2026-01-31 08:17:11 +11:00
renovate[bot] e2ba6cbc54
Update astral-sh/ruff-action action to v3.6.0 (#4193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-30 21:47:52 +11:00
Federico Berrueta 97dd099c0e
Fix: Resolve fuzzy strings and add note for 'Seat access translation' (#4186) 2026-01-29 09:49:16 +11:00
HADEON 26014aa092
Add sponsors button (#4056)
* Add archlinux funding file

* Fix formatting of custom funding URL
2026-01-28 22:01:56 +01:00
nubprogrammer 6d89770e7a
Update Hindi translations for archinstall (#4185)
* Improve Hindi translations (base.po)

* Improve all Fuzzy and more hindi translations

* Update base.po

* Update base.po

* Update Hindi translations in base.po

* Update translation for Network Manager iwd backend
2026-01-29 07:56:59 +11:00
codefiles 2cb81d8758
Reuse MirrorListHandler instance (#4184) 2026-01-29 07:54:18 +11:00
Daniel Girtler 5612325dc3
Refactor code to reduce circular dep (#4175)
* Refactor to reduce circular dep

* Update

* Update
2026-01-28 13:43:57 +01:00
correctmost 8f104bc829
Remove archinstall.svg from project root (#4180)
The file was accidentally added in commit bde544ca.
2026-01-28 11:43:28 +11:00
codefiles 18105fff22
Use main() as script entrypoint (#4179) 2026-01-28 11:42:51 +11:00
codefiles 76284b601b
Remove superfluous __future__ import (#4178) 2026-01-28 07:23:25 +11:00
codefiles 8ffc20b6c1
Refactor script list (#4177) 2026-01-27 17:47:36 +01:00
Daniel Girtler bde544caca
Refactor syscommand (#4176)
* Refactor SysCommand

* Refactor syscommand
2026-01-27 13:31:33 +01:00
Daniel Girtler 316251f6e0
Refactor network config installer (#4143)
* Refactor network config installer

* Update

* Move network menu

* Remove singleton
2026-01-27 19:39:45 +11:00
Daniel Girtler 5fe42bd2f5
Refactor user menu (#4141) 2026-01-27 18:50:09 +11:00
correctmost 15460e4a88
Fix useless-return warnings reported by Pylint (#4173) 2026-01-27 16:40:38 +11:00
codefiles d7bcd431a7
Refactor application_handler to use DI (#4172) 2026-01-27 16:39:42 +11:00
codefiles ef3b6ab853
Refactor auth_handler to use dependency injection (#4171) 2026-01-27 12:46:31 +11:00
Daniel Girtler 2421e538a8
Move Pacman out of init (#4150)
* Move pacman out of init

* Update archinstall/lib/pacman/pacman.py

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

* Update archinstall/lib/pacman/pacman.py

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

---------

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
2026-01-27 12:34:48 +11:00
codefiles 28f7aec2af
Refactor mirror_list_handler to use DI (#4170) 2026-01-27 11:23:01 +11:00
Daniel Girtler a025c79ac3
Delete dead code (#4144) 2026-01-27 11:22:03 +11:00
nubprogrammer 93736349a2
Improve Hindi translations and resolve all fuzzy entries (#4167)
* Improve Hindi translations (base.po)

* Improve all Fuzzy and more hindi translations

* Update base.po

* Update base.po
2026-01-26 23:35:32 +01:00
Daniel Girtler 9bd16e998c
Fix - Handle cancel from list manger properly (#4160) 2026-01-26 23:34:58 +01:00
Daniel Girtler 7a0b4c2a30
Fix - disk partitioning menu (#4158) 2026-01-26 23:34:23 +01:00
Daniel Girtler 63e3825756
Remove obsolete package functions (#4145) 2026-01-26 23:33:21 +01:00
Daniel Girtler a57bb801c0
[README update] Clarify archinstall upgrade steps (#4138)
* Clarify upgrade steps on Live ISO

* Update

* Update

* Update

* Update README.md

Spelling fix

---------

Co-authored-by: Anton Hvornum <torxed@archlinux.org>
2026-01-26 23:30:27 +01:00
codefiles 2ed6182575
Refactor wifi_handler to use dependency injection (#4161) 2026-01-23 14:40:08 +11:00
renovate[bot] b07bbeecd3
Update pre-commit hook astral-sh/ruff-pre-commit to v0.14.14 (#4166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 13:13:08 +11:00
renovate[bot] 2c2b17b8a6
Update dependency ruff to v0.14.14 (#4165)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 13:12:47 +11:00
nubprogrammer 7fb8fb57ee
Improve Hindi translations (base.po) (#4163) 2026-01-23 06:44:23 +11:00
renovate[bot] 3500bc3b41
Update actions/setup-python digest to a309ff8 (#4157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 18:32:02 +11:00
codefiles 192aff0b94
Replace sys.exit calls with return values (#4156) 2026-01-22 13:58:40 +11:00
codefiles 4d2864ba76
Refactor error message (#4153) 2026-01-21 16:39:49 +11:00
codefiles 78969c58c7
Move script entry point (#4151) 2026-01-21 12:10:19 +11:00
nubprogrammer 7cf1566902
Improve Hindi translations in base.po (#4152)
* Improve Hindi translations in base.po

This PR improves and fixes Hindi translations in base.po.
It also corrects previously incorrect fuzzy translations.
No functional code changes.

* Update base.po

* removed fuzzy from the things i fixed in translation
2026-01-21 12:08:43 +11:00
codefiles c7dbf0105e
Rework has_default_btrfs_vols (#4147) 2026-01-20 11:18:22 +11:00
codefiles 38462db2db
Enable GRUB UKI menu entries (#4139) 2026-01-19 15:46:02 +11:00
Daniel Girtler 0aca992ac5
Migrate UI to textual (#3997)
* Footer textual

* Linting

* Revert pre-commit for pylint

* Add missing textual

* Reinstate example

* Linting
2026-01-19 07:01:40 +11:00
codefiles 9a38b73baf
Enable quoted-annotation ruff rule and fixes (#4137) 2026-01-18 08:19:07 +11:00
codefiles a150a8d9f7
Remove quotes from Installer type annotations (#4136) 2026-01-17 18:52:18 +11:00
codefiles 7b45613996
Use Self for remaining occurrences (#4135) 2026-01-17 18:51:44 +11:00
renovate[bot] e1d9935f30
Update pre-commit hook astral-sh/ruff-pre-commit to v0.14.13 (#4133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-16 10:50:45 +11:00
renovate[bot] 65190a253e
Update dependency ruff to v0.14.13 (#4131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-16 10:50:19 +11:00
Kenraaliskuutteri 7995d6e815
Updated Finnish translation in base.po (#4129)
Updated Finnish translations for various messages in base.po.
2026-01-16 06:36:36 +11:00
codefiles 2c154245cb
Use Self for Tui (#4130) 2026-01-16 06:36:11 +11:00
codefiles 2c85b5eab0
Remove storage module (#4128) 2026-01-15 14:09:35 +11:00
codefiles 972e278555
Remove leftover code from unattended script (#4127) 2026-01-15 12:18:47 +11:00
codefiles e5a14c0cfe
Use Self in tui (#4126) 2026-01-15 07:05:43 +11:00
Hannan c4de093122
Add header and update urdu translations (#4122)
* add header

* update urdu translations
2026-01-14 19:54:33 +11:00
codefiles 90d1b08628
Remove unused installation_hooks property (#4118) 2026-01-14 19:53:43 +11:00
codefiles 20460e1c29
Use Self in default_profiles (#4125) 2026-01-14 16:03:32 +11:00
codefiles 2e9d5e4829
Refactor Boot (#4124) 2026-01-14 13:29:22 +11:00
codefiles 5811f81e59
Use Self for parameters to dunder methods (#4123) 2026-01-14 13:24:56 +11:00
codefiles 8f7d59b718
Replace __enter__ return type with Self (#4121) 2026-01-13 15:45:21 +01:00
Mattyan89 b779345a5b
fixes (#4093) 2026-01-13 20:59:02 +11:00
codefiles f6eca309ac
Use sys.exit instead of exit (#4120) 2026-01-13 07:51:08 +11:00
codefiles 82512eed0e
Remove superfluous list creation in join calls (#4119) 2026-01-12 12:56:55 +11:00
codefiles db6c11345a
Remove superfluous __future__ imports (#4117) 2026-01-12 10:20:07 +11:00
codefiles 3374b47d50
Use Self for return instances of cls (#4116) 2026-01-12 09:06:19 +11:00
codefiles bde3b0ed6e
Change staticmethods to classmethods (#4115) 2026-01-12 07:17:21 +11:00
codefiles b1290672bb
Change classmethods to staticmethods (#4114) 2026-01-11 17:40:43 +11:00
codefiles 43509d8ce1
Use instance method for type_to_text (#4113) 2026-01-11 11:29:39 +11:00
codefiles efd57870d0
Use instance method for _load_config (#4112) 2026-01-11 11:29:01 +11:00
codefiles cb4b7e3db0
Update classmethods to use cls (#4110) 2026-01-11 10:29:32 +11:00
codefiles 01bee60cd1
Fix typos (#4109) 2026-01-11 10:28:53 +11:00
Tobias Stoeckmann e0c1b869a6
Fix typos in comments (#4107)
Typos found with codespell.

No functional change.
2026-01-10 10:17:50 +11:00
correctmost d07a9b4a92
Disable the non-empty-init-module ruff rule (#4106)
This allows ruff check --preview to pass again.
2026-01-10 10:17:00 +11:00
HADEON ef9f704761
hotfix: Firewall (#4100)
* Needed to have default files + enabled status

* Modify conf file directly

* nl

* more thnx to codefiles

* Fix previews in menu
2026-01-10 10:02:35 +11:00
Benjamin Smith 5fbe1deea4
Add missing spanish translations (#4098)
* added some missing Spanish translations

* added missing translations, fixed typos

* added a bunch of missing translations, fixed some too
2026-01-09 15:54:56 +11:00
renovate[bot] 7292a9e449
chore(deps): update dependency ruff to v0.14.11 (#4095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-09 15:54:10 +11:00
renovate[bot] 85d38f063b
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.11 (#4096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-09 15:53:52 +11:00
HADEON 62edc56a52
hotfix: Revert Grub changes (#4099)
* Hotfix grub

* revert changes
2026-01-09 11:30:12 +11:00
correctmost 84c36adb1f
Avoid a reportPossiblyUnboundVariable warning with Pyright (#4092) 2026-01-07 18:49:07 +11:00
correctmost e2e158973f
Remove unused pytest-mock dependency (#4091) 2026-01-07 12:01:10 +11:00
correctmost ef3369b1c5
Add node_modules to .gitignore and Pylint's ignore list (#4089)
This makes it easier to use Pyright locally.
2026-01-07 11:54:54 +11:00
correctmost bb13139339
Fix an invalid-type-form error reported by ty (#4088)
The 'bytes' annotation for the 'bytes' property was actually a
forward reference to the property instead of builtins.bytes:
https://github.com/astral-sh/ty/issues/1747#issuecomment-3609042917
2026-01-07 11:54:15 +11:00
correctmost 0470495cb1
Migrate pytest configs to native TOML and enable strict mode (#4087) 2026-01-07 11:52:46 +11:00
correctmost 8e0ff2d2a9
Update comment in _final_warning (#4086)
Device paths are no longer mentioned as of adbadbf6.
2026-01-07 10:05:58 +11:00
correctmost cec29d123b
Use serialization TypedDicts to reduce Any instances (#4085) 2026-01-07 10:05:13 +11:00
Valerii f2e40742bb
Better Ukrainian v1.4 (#4084) 2026-01-07 09:57:35 +11:00
HADEON 0188459917
fix: bootloader changes (#4073)
* Bootloader changes:

	-> GRUB: Support for UKI
		- Disable 10_linux or breaks at kernel updates
		- Create 09_custom entry
	-> rEFInd:
		- Remove fallback entry similar to other bootloaders
		- With UKI still one dead entry can be hidden with DEL key
	-> All bootloaders:
		- Default to UKI on if supported, if using no UKI and /efi
		Causes systemd boot to not load, because it needs a XTLDRBOOT part
		Safer default for modern setups and simpler sec boot compat

* Add new models

* Modify based on grub-2.14-rc1 -> No need to use chainload
Thanks to codefiles for the heads-up

* Simplify has_uki_support

* Tab

* checks
2026-01-06 20:04:01 +11:00
HADEON cc6e247dcf
State libfido2 dependency (#4082) 2026-01-06 19:55:58 +11:00
HADEON 450664cdc4
feat: firewalls (#4074)
* Firewall Init

* Enable service
2026-01-05 20:04:43 +11:00
HADEON e590277e69
Another small readme change for clarity (#4077) 2026-01-05 12:35:42 +11:00
summoner 9488233a5a
Translation: Update hungarian po/mo (#4078)
Fix typos and mistakes
2026-01-05 12:35:08 +11:00
HADEON 146a2352bc
Change plasma-meta -> -desktop. (#4076)
This avoids to pull in sddm-kcm (to respect user's choice of login manager)
And to not pull in discover and related tools that should also be up to the user.
2026-01-04 19:37:58 +11:00
summoner 5eb3307efd
Translation: Update hu.po (#4071)
Translate new strings
fix typos
fix wording
2026-01-04 19:22:08 +11:00
HADEON d1a74edf9d
fix pre-commit hook (#4070) 2026-01-02 13:33:24 +11:00
walken fd143af05b
Czech localization update (#4068) 2026-01-02 13:29:11 +11:00
scrypt-kitty 4582d60f13
Do not mount btrfs partitions unless required, tested working and solves issue #3689 (#3992) 2026-01-02 13:27:53 +11:00
Luna Jernberg 7889a5417f
Update Arch Installer translation before Jan 2026 release (#4065)
* Update base.po

Update Swedish for January 2026 iso

* Update Swedish translations before release today

Updated Swedish translations for various messages in base.po.
2026-01-01 20:21:49 +11:00
Daniel Girtler bff715ddab
Add instructions for booting Arch ISO in a VM (#4041)
* Add instructions to boot ISO in VM

* Update

---------

Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2026-01-01 10:10:24 +01:00
utuhiro78 051352e218
Update Japanese translation (#4064) 2026-01-01 10:14:31 +11:00
Abdullah Koyuncu 9433f15573
Update Turkish translation (#4062) 2026-01-01 10:13:28 +11:00
Matteo d5b554be1e
Update Italian translation (#4060)
- Translated new strings
- Improved some string
2026-01-01 10:12:37 +11:00
Anton Hvornum aabf6ae19e
Bumping version to: 3.0.15 (#4058)
* Bumping version to: 3.0.15

* ruff formatting
2025-12-31 13:02:10 +01:00
justbispo cb6fe6b34b
Add support for rEFInd boot manager (#3707)
* Add support for rEFInd boot manager

* Fix ruff formatting complaints

* Added support for different mountpoints for /efi and /boot

Also fixed issue where if /boot is located in a BTRFS root partition, the initrd path wasn't including the subvol name.

* Fix ruff formatting complaints

* Replace SysCommand with self.arch_chroot call

* Fix ruff formatting complaints

---------

Co-authored-by: Diogo Bispo <gpg.jta36@slmail.me>
2025-12-31 15:24:22 +11:00
Mariya 446d23c59d
feat(applications): add support for power-profiles-daemon/tuned as a power management daemon (#4015)
* fix(profiles): install power-profiles-daemon by default in the desktop
profile

* fix: only install power-profiles-daemon if a battery is detected

* chore: clean up has_battery method

* fix: make power management daemon a configurable application

* fix: make linter happy after merge

* fix: fix merge issues

* fix: give has_battery a return type to make linter happy

* chore: add locale msgids for power management related strings

* fix: changes requested in review

* fix: cache has_battery result

* fix: changes requested in review

* fix: just return none directly

* fix: add selected power management daemon to applications menu preview
2025-12-31 13:22:27 +11:00
HADEON 83c9bf06b2
Modify archinstall language display to be handled like other sections. (#4048)
* Modify archinstall language display to be handled like other sections.
This fixes a bug where language names that were too long would break curses menu.

* Revert types change
2025-12-31 10:46:46 +11:00
HADEON eb5e88f317
Mirrors sort #4046 (#4050)
* Mirrors sort #4046

* Change logic to be just sorted on bitrate
2025-12-30 15:20:45 +01:00
Vincent Dahmen 9f4f29bd29
lib/network: adds symlink to configure systemd-resovled properly (#4052)
* lib/network: adds symlink to configure systemd-resovled properly

* lib/network: adds overwrite mechanism to enforce resolved symlink

---------

Co-authored-by: Vincent Dahmen <wahrwolf@wolfpit.net>
2025-12-30 16:01:01 +11:00
HADEON 2954e4397b
Feat: Zram algorithm config (#4042)
* Add configuration for swap algorithm. Backward compatible implementation

* Fix interaction to default to Yes and show (default)

* Fix mypy error

* Any -> str, str

* feedback Enums

* test file

* line length warning

* Renames

* Fix default values in TUI menu for display

* Address feedback

* More feedback, really appreciate it.

* Adapt to use same | None = None pattern

* Pytests

* Add missing import for Zram
2025-12-30 15:52:35 +11:00
HADEON 747385a883
Lvm2/LUKS fixes/Mirror Logic (#4047)
* Lvm hotfix attempt

* Use --force and --yes flags

* Changed mirror behavior and more lvm testing

* Handle properly LvmOnLuks to only export in one fo the scenarios

* Idek

* Remove dead block

* Use -f flag and wipefs to remove any existing headers avoid "has signatures"

* oops

* Revert mirror change
2025-12-29 17:35:24 +01:00
HADEON ac984b7622
This commit changes the order of the main menu. (#4043)
Since in the next NVIDIA update, the kernel choice will have an impact on profiles.
The order this way makes it more logical: Bootloader => Kernel => Hw drivers
2025-12-28 22:20:17 +11:00
HADEON 4e52dc7493
README clarifications/corrections (#4038)
* A smaller readme tweak to stop answering the same questions :D

* rem
2025-12-28 11:28:40 +11:00
HADEON 79313c4942
Fix mirrors hang when /status endpoint is down (#4031)
* add explicit _fetched_remote bool

* Attempt 2

* Adds about 15 seconds time-out to fetch_data_from_url with 3 retries (4, 5, 6)
Then fallsback to fully local list

* Feedbacks: 20 -> 30
Do not return early
Add debug
Remove new flag
60 second timeout for reflector

* Clean up install logs by hiding mirror scores behind --verbose
2025-12-28 11:10:03 +11:00
HADEON c1eae10e93
Enable IWD to be used as back-end in network selection (#4025)
* feedback

* feedback2

* Refactor for less duplicate code and more conscise logic
Group NM types and handle configurations appropriatly
	- For IWD -> Copy from ISO + Disable standalone and configure back-end
	- For standard -> Install wpa_supplicant
	- For both install applet only when Desktop profile

Added comments for clearer logic

* Rem comments

* Rem copy to ISO

* the one commit to rule them all
2025-12-28 11:09:37 +11:00
Mintsuki 42a4ee8472
Make removable location the default for bootloader installation (#4030)
Also update the option's description to make it clear that it being enabled is the sane default.
2025-12-27 14:38:14 +01:00
Daniel Girtler 6968a33508
Fix kurdish translation files (#4004)
Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-12-27 12:41:02 +01:00
utuhiro78 4d01d1dbbb
Update Japanese translation (#4040) 2025-12-27 22:37:11 +11:00
Daniel Girtler 7635474772
Explicitly allow selecting any additional repository (#3973)
Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-12-27 09:25:15 +01:00
HADEON a4ad1b3724
Remove whitespace in timestamp (#4039) 2025-12-27 17:38:03 +11:00
HADEON 5fcea379b9
Fix LVM creation/ info (#4024)
* use pull and udev sync

* 30s -> 5min
2025-12-25 13:07:26 +11:00
HADEON e5ccdb0c1c
Adds a timer to post install screen (#4028)
* Add timer to end screen of guided

* ruff check
2025-12-25 11:06:03 +11:00
HADEON 9e7a5f6931
Do not install base-devel by default (#4022)
* replace base-devel with sudo and add disclaimer texts

* revert basepot and add rem comments
2025-12-25 11:00:34 +11:00
HADEON 9412f97771
Set up Zram dynamically based on best practice (#4027)
* Use the total available RAM / 2 for swap size dynamically.

* ws

* - Systems with 8 GB RAM or less will get 4096 MB zram
- Systems with more than 8 GB RAM will get half their RAM as zram

* Add debug print
2025-12-25 10:59:03 +11:00
Luis Antonio 1faac77c0d
Update Portuguese translations (pt and pt_BR) and metadata. (#4021)
* Revise Portuguese translations in base.po

Updated translations for various messages in Portuguese.

* Update Brazilian Portuguese translations in base.po

Updated translations and metadata in the Brazilian Portuguese locale file.

* Update Last-Translator in Brazilian Portuguese locale
2025-12-22 22:08:02 +11:00
HADEON 1227babd8c
Change LVM /root def to adapt dynamically (#4005)
* Change def size from 20 -> 32
Rest is still calculated from available - root.

* Use the existing process_root_partition_size():
For LVM just like regular disk best-effort.
This is only for single disk layouts.
2025-12-22 22:05:30 +11:00
Mariya ba5f924540
fix: enable the cosmic-greeter service (#4023) 2025-12-22 09:07:47 +11:00
HADEON f639290c20
ly.service -> ly@tty1.service (#4006)
* ly -> ly@tty1

* ly -> ly@tty1 with disable getty

* ws

* ws2

* ws3

* ws4

* conditionally disable and define
2025-12-21 21:37:06 +11:00
Luna Jernberg 043cd68a7c
Update base.po (#4020)
Update Swedish for January 2026 iso
2025-12-21 21:36:02 +11:00
Mariya 9876558f74
chore: cosmic is stable now, don't hide it behind --advanced flag (#4017)
* chore: cosmic is stable now, don't hide it behind --advanced flag

* fix: remove --advanced check in GreeterType

* chore: remove unused import to make linter happy
2025-12-21 14:45:51 +11:00
Mariya d7b559c67e
feat(applications): add CUPS installation support (#4013)
* feat(applications): add CUPS installation support

* fix: use translation for print service preview_action

* fix: incorrect action for print service menu item

* chore: refactor naming, printer -> print service

* fix: commit untracked file

* chore: fix formatting to make linter happy
2025-12-21 14:30:11 +11:00
Mariya cf31148e46
fix: fix fido warning message being spammed (#4016) 2025-12-21 14:16:06 +11:00
Mariya dee2a84057
fix: fix translation for bluetooth preview_action (#4014) 2025-12-21 13:57:29 +11:00
HADEON 17dc001857
Cache property of graphics_devices (#4007)
* On horrible hardware this makes it so that the "Graphics drivers" section loads directly.
By initializing it with launch instead of on the fly.

* Init after logs

* This cache the property of graphics drivers properly.
Instead of trying to hack early init.
2025-12-21 12:22:59 +11:00
renovate[bot] 6f768ea87c
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.10 (#4012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 18:36:04 +11:00
renovate[bot] e2cdf42690
chore(deps): update dependency ruff to v0.14.10 (#4011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 18:35:50 +11:00
Odyssey b579773421
Update catalan locales (#4010) 2025-12-19 15:51:21 +11:00
renovate[bot] d13882fca1
chore(deps): update dependency pre-commit to v4.5.1 (#4003)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:50:37 +11:00
HADEON 6b23eff422
H2T (Host-to-target) installs and prevent host pollution (#3978)
* Add host-to-target (H2T) installation mode detection

- Add running_from_host() function to detect if running from installed system vs ISO
- Function checks for /run/archiso existence (ISO mode) vs host mode
- Add clear logging of installation mode on startup
- Skip keyboard layout changes when running from host system
- Fix Pyright type error in jsonify() by using Any instead of object
- Update README to mention installation from existing system

This enables archinstall to be run from an existing Arch installation
to perform host-to-target installs on other disks/partitions.

* match existing style

* rem debug

* info -> debug
2025-12-16 10:59:04 +11:00
renovate[bot] 810a50e46c
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.19.1 (#3998)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-16 08:26:52 +11:00
renovate[bot] 582c54f4e2
chore(deps): update dependency mypy to v1.19.1 (#3996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 16:54:57 +11:00
CYAXXX bc738a48be
Add Kurdish translation (#3994)
* Add Kurdish translation

* Update base.po
2025-12-15 16:34:12 +11:00
CYAXXX 0a6fd6a07e
Delete archinstall/locales/ku (#3995) 2025-12-15 14:23:48 +11:00
scrypt-kitty 20718ead79
Remove /tmp/archlive before building. Otherwise latest changes are not built. (#3993) 2025-12-15 11:23:01 +11:00
CYAXXX fff783ed93
Add Kurdish language (#3991)
* Add Kurdish language

This pull request introduces full Kurdish language integration into archinstall, allowing Kurdish speaking users to navigate and use the installer entirely in their native language.

* Fix translation for timezone selection prompt
2025-12-15 11:20:51 +11:00
renovate[bot] f65cc5f6c7
chore(deps): update actions/upload-artifact action to v6 (#3985)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 11:18:54 +11:00
Jesper Otten cffe47a369
Adding new Dutch translations (#3987) 2025-12-15 11:14:26 +11:00
renovate[bot] 0117205f73
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.9 (#3983)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 11:12:21 +11:00
renovate[bot] 1f1daf1afc
chore(deps): update dependency ruff to v0.14.9 (#3982)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 11:11:46 +11:00
walken c9b0b171b3
Czech localization update (#3980) 2025-12-10 22:46:58 +11:00
HADEON 326232098a
Full disclosure for bootloaders/keymaps (#3979)
* Clarify LUKS2 encryption and keyboard layout context in locales README

* ws

* clarity

* final
2025-12-10 22:46:21 +11:00
HADEON 6b50815eb6
Vconsole.conf KEYMAP= FONT=
_base mkinitcpio.conf v40 error (#3928)

* pr1

* pr2

* pr2-2

* pr2-3

* Revert genfstab and pacstrap command changes

* mistake
2025-12-08 19:25:20 +11:00
renovate[bot] 57bd613679
chore(deps): update dependency pytest to v9.0.2 (#3972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-07 17:07:39 +11:00
renovate[bot] 8872f98c8d
chore(deps): update dependency mypy to v1.19.0 (#3956)
* chore(deps): update dependency mypy to v1.19.0

* Update

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-12-06 21:40:37 +11:00
renovate[bot] 601e033188
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.8 (#3969)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 20:23:52 +11:00
Gabriel A Hernandez 07ab6bf4a0
Menu now filters items and sorts using priority, improving UX. (#3967)
* Menu now filters and sorts using priority, improving UX.

* Refactor: improve logic, removed redundancy

* Refactor: improve logic, removed redundancy

* Improved logic when getting view items in menuItems

* Improved logic when getting view items in menuItems
2025-12-06 20:10:01 +11:00
Gabriel A Hernandez 7398e2785d
Typo and grammar fixes (#3970)
* Menu now filters and sorts using priority, improving UX.

* Refactor: improve logic, removed redundancy

* Refactor: improve logic, removed redundancy

* Typo and grammar fixes

* Typo and grammar fixes

* Fix comment formatting in .gitlab-ci.yml

* Fix comment

* Removed code from separate pull request

* Update menu_item.py

* removed white space

* Remove unnecessary blank lines in menu_item.py

>:(
2025-12-06 20:06:07 +11:00
Mintsuki d176b9514c
Remove GRUB removable fallback path (#3971)
As mentioned by @svartkanin on #3950, given we now have a way for the user to
explicitly specify if they want to install to the removable location, having a
fallback like this seems undesirable.

On top of that, as mentioned by @correctmost on the same PR, the code that said
PR introduced was bugged and would always raise an exception anyways.
2025-12-05 20:05:24 +11:00
renovate[bot] 66fb49617a
chore(deps): update dependency ruff to v0.14.8 (#3968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 20:03:05 +11:00
renovate[bot] dbfa60bfa8
chore(deps): update actions/checkout digest to 8e8c483 (#3965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 20:02:24 +11:00
Abdullah Koyuncu e7442bf5c6
Translation: Update the Turkish base.po/base.mo (#3964) 2025-12-03 12:26:09 +11:00
renovate[bot] 627530fd82
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.19.0 (#3959)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 12:24:06 +01:00
renovate[bot] 94f22fcc55
chore(deps): update dependency pylint to v4.0.4 (#3962)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 18:58:26 +11:00
summoner 8387c8f589
Translation: Update hungarian base.po/base.mo (#3961)
Translate new strings
Fix translation
2025-12-01 18:57:59 +11:00
Anton Hvornum 3290175084
Bumping version to: 3.0.14 (#3960) 2025-11-29 22:19:59 +01:00
renovate[bot] 0221099398
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.7 (#3958)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 11:55:23 +11:00
renovate[bot] 29cb454fda
chore(deps): update dependency ruff to v0.14.7 (#3957)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 11:55:05 +11:00
Mintsuki 6fc0bc3671
Fix GRUB fallback-from-removable logic introduced in c095eb56d8 (#3950)
Commit c095eb56d8 was supposed to introduce logic
such that if the `grub-install` command failed with a `--removable` flag, then
another attempt would be made with such flag removed.

This was broken because the `--removable` flag was kept in both cases (likely a
copy-paste mistake). This has been an issue since, in all future iterations of
the code.

What this commit does is fix this logic, but also invert the cases tested:
first test without `--removable`, then add it should that case fail, as this is
the most sensible thing to do.
2025-11-29 11:10:04 +11:00
Gabriel A Hernandez 7732d50016
Improved regex in _validate_value() that checks user input for partition value and unit. (#3952)
- Allows for white space in between groups, aligning better with displayed example.
- Removed unneeded | symbol, which was checking as literal rather than working as "or %"
2025-11-29 11:04:39 +11:00
Mintsuki d7e5dc3692
Do not unconditionally set `prompt` to `None` in list_manager.py (#3955)
May address issue #3954.
2025-11-29 11:04:12 +11:00
Mintsuki 70a6c3499a
Do not create BLS and Limine entries for fallback initramfs (#3949)
* Do not create BLS and Limine entries for fallback initramfs

Fallback initramfs seem to no longer be built by default.

* Remove initramfs variant logic altogether
2025-11-29 11:00:43 +11:00
renovate[bot] b751ad5dab
chore(deps): update dependency pydantic to v2.12.5 (#3951)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 21:23:38 +11:00
renovate[bot] 147447face
chore(deps): update actions/setup-python digest to 83679a8 (#3946)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-26 10:31:55 +11:00
renovate[bot] 60302060e3
chore(deps): update dependency pre-commit to v4.5.0 (#3944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-23 09:33:20 +11:00
correctmost 5f0742a87a
Use dummy variables instead of unused-awaitable suppressions (#3943) 2025-11-22 21:16:11 +11:00
correctmost 73ceb0c99d
Use ClassVar to avoid mutable-class-default (RUF012) warnings (#3942) 2025-11-22 21:15:41 +11:00
renovate[bot] 2ee66a059e
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.6 (#3941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-22 08:36:34 +11:00
renovate[bot] a94d94a8e1
chore(deps): update dependency ruff to v0.14.6 (#3940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-22 08:36:14 +11:00
Mintsuki eb815d817f
Add dialog to install EFI bootloader to removable location (#3932)
* Add dialog to install EFI bootloader to removable location

This is just for GRUB and Limine for now.

* Move bootloader removable and UKI selections to bootloader submenu

* Update ask_for_bootloader_removable() prompt for ease of translation

* Fix issue where removable and UKI options were always enabled at first

* Minor cosmetic fixes to bootloader removable code

* Add has_removable_support to Bootloader

* Validate UKI and removable options in installer

* Use has_removable_support() where appropriate

* Fix potential AttributeError when bootloader_config is None

* Set default value for bootloader configuration menu item

* Update documentation after EFI removable/Limine changes

* Update limine.conf and non-removable location paths (as per Wiki)

* Do not create fallback boot menu entries when using UKIs on Limine

* Remove useless ask_* wrappers in bootloader_menu

* Improve bootloader menu previews

* Make bootloader menu __init__.py empty
2025-11-21 11:41:24 +11:00
renovate[bot] 840c1c0f7e
chore(deps): update actions/checkout action to v6 (#3939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-21 07:41:57 +11:00
renovate[bot] bf3784fc0c
chore(deps): update actions/checkout digest to 93cb6ef (#3937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-20 21:14:16 +11:00
utuhiro78 4c8fe60a28
Update Japanese translation (#3938) 2025-11-20 21:13:51 +11:00
HADEON 46072132a1
Readme Tweak (#3929)
* pr1

* pr2

* pr3

* pr3-2

* pr3-3

* pr3-4

* pr4

* Revert hardware.py to original state on snapshots branch

* readme

* Revert installer.py to original state on readme branch

* match base branch

* Revert genfstab and pacstrap command changes

* readme tweaks2
2025-11-17 08:50:35 +11:00
HADEON c3aba06a01
Fix f-string in snapshot debug installation (#3934)
* pr1

* pr2

* pr3

* pr3-2

* pr3-3

* pr3-4

* pr4

* Revert hardware.py to original state on snapshots branch

* Revert genfstab and pacstrap command changes

* f string
2025-11-17 06:51:35 +11:00
HADEON 375d64a600
Snapshots Fix Snapper-Grub (#3930)
* pr1

* pr2

* pr3

* pr3-2

* pr3-3

* pr3-4

* pr4

* Revert hardware.py to original state on snapshots branch

* Revert genfstab and pacstrap command changes
2025-11-16 21:40:38 +11:00
HADEON 6bdb756650
Add --needed to pacstrap to prevent re-installs 2025-11-16 21:30:47 +11:00
renovate[bot] 803ff4236e
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.5 (#3927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 12:54:53 +11:00
renovate[bot] 117b9d9a5d
chore(deps): update dependency pylint to v4.0.3 (#3923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 11:03:01 +11:00
Benjamin Smith e6bbd05121
added some missing Spanish translations (#3925) 2025-11-15 10:40:42 +11:00
renovate[bot] 3da27570f7
chore(deps): update dependency pytest to v9.0.1 (#3922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 10:38:53 +11:00
renovate[bot] 566dcb51c3
chore(deps): update dependency pytest to v9 (#3912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-10 08:36:02 +01:00
renovate[bot] b77f03e94a
chore(deps): update dependency pre-commit to v4.4.0 (#3911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-09 13:55:03 +11:00
Luna Jernberg 811c1d95b5
Update Swedish translations for wifi (#3910)
Update Swedish translations for wifi
2025-11-09 13:54:40 +11:00
Matteo 165636b2e6
Update Italian translation (#3904)
- Translated new strings
2025-11-07 20:56:41 +01:00
summoner e7553c114c
Translation: Update hungarian base.po/base.mo (#3908)
Translate new strings
2025-11-07 15:45:32 +01:00
renovate[bot] b2fccb0b3b
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (#3907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-07 09:09:59 +01:00
renovate[bot] 83aab9cd4f
chore(deps): update dependency ruff to v0.14.4 (#3906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-07 09:09:23 +01:00
damachine a996670a60
Fix plural form in device selection message (#3905)
Corrected the plural form in the German translation for device selection.
2025-11-07 09:03:12 +01:00
renovate[bot] 240919826f
chore(deps): update dependency pydantic to v2.12.4 (#3900)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 20:23:08 +00:00
Anton Hvornum c131269c08
Bumping version to: 3.0.13 (#3903) 2025-11-06 20:02:49 +01:00
Anton Hvornum a3d85c1c58
Fixed an issue where re-writing a smaller mkinitcpio.conf than previously existed, the 'no' part at the end became a trailing 'o' causing syntax issues. (#3902) 2025-11-06 15:26:44 +01:00
Rachel bf8f72cc54
Add missing --script option in documentation for pre-programmed scripts (#3895) 2025-11-03 11:21:26 +11:00
summoner 996566291d
Translation: Update Hungarian transaltion (#3894)
* Translation: Update Hungarian transaltion

Translate new string
Fixing translation

* Translation: Fixing typos in hungarian translation

Translation: Fixing typos and wording in hungarian translation
2025-11-02 10:50:33 +01:00
Luna Jernberg 2808442f8b
Update with November 2025 Swedish translations (#3893)
Update with November 2025 Swedish translations
2025-11-01 14:44:55 +01:00
Daniel Girtler 76ab9482e9
Wifi connection menu with textual (#3879)
* Wifi connector

* Update

---------

Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-11-01 13:55:58 +01:00
Anton Hvornum 7af94c8fe5
Bumping version to: 3.0.12 (#3892) 2025-11-01 13:08:48 +01:00
Anton Hvornum c2d3daeb25
Added the new -S flag for arch-chroot (#3891)
* Added the new -S flag for arch-chroot which does: Run in systemd mode.

* Fixed some formatting issues, and removed unused *args and **kwargs for run_command()

* Formatting issue

* Formatting issue
2025-11-01 12:48:20 +01:00
Klaus Zipfel 1174800cca
Skip bootloader config check when 'No Bootloader' is selected as bootloader (#3875)
* Allow installation via TUI when 'No Bootloader' is selected as bootloader (--skip-boot)

* Update global_menu.py

Fixed ruff formatting issue

---------

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2025-11-01 11:59:24 +01:00
Daniel Girtler adbadbf606
Fix 3863 (#3880)
* Modify formatting warning text to be less scary

* Update

---------

Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-11-01 11:55:54 +01:00
Tertle950 ed67e9fd67
replace 'leafpad' with 'l3afpad' (#3890)
seemed like the most obvious replacement but maybe another one would suffice
2025-11-01 11:55:02 +01:00
Daniel Girtler bf6245815b
Save and load UKI setting (#3783)
Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-11-01 11:54:31 +01:00
Daniel Girtler 4ceddacb4e
Only install applications when enabled (#3861)
Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-11-01 11:54:09 +01:00
renovate[bot] 00c90d9e45
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.3 (#3888)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-01 21:46:16 +11:00
renovate[bot] a03e9bcdc6
chore(deps): update dependency ruff to v0.14.3 (#3887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-01 21:45:56 +11:00
renovate[bot] 552c7b7dd9
chore(deps): update actions/upload-artifact action to v5 (#3884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 16:21:30 +11:00
renovate[bot] 772652bc69
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.2 (#3883)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 15:38:12 +11:00
renovate[bot] b0679974d5
chore(deps): update dependency ruff to v0.14.2 (#3882)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 15:37:52 +11:00
renovate[bot] 90bf24b3ce
chore(deps): update dependency pylint to v4.0.2 (#3877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 18:22:59 +11:00
renovate[bot] e0ea072032
chore(deps): update dependency pydantic to v2.12.3 (#3874)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 13:04:32 +11:00
correctmost 1fa8f2013b
Remove an unneeded Pylint suppression (#3873)
The related bug has been fixed in Pylint 4.0.1.
2025-10-18 13:04:09 +11:00
renovate[bot] 6505c073c9
chore(deps): update dependency pylint to v4.0.1 (#3864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 17:13:45 +11:00
renovate[bot] a84a97fdc7
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.1 (#3872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 15:31:20 +11:00
renovate[bot] 0a032b04d5
chore(deps): update dependency ruff to v0.14.1 (#3871)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 15:30:59 +11:00
renovate[bot] 46380f5da3
chore(deps): update dependency pydantic to v2.12.2 (#3869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 07:34:22 +11:00
renovate[bot] 6c43a8c6d3
chore(deps): update dependency pydantic to v2.12.1 (#3868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 16:34:18 +11:00
Vasiliy Stelmachenok 53e8cb3a8c
Do not install Btrfs module and binary in mkinitcpio (#3865)
* Do not install Btrfs module and binary in mkinitcpio

This is what btrfs hook already does.

Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>

* Remove unused properties from FilesystemType

They were only needed for Btrfs

Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>

---------

Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
2025-10-14 07:33:45 +11:00
Vasiliy Stelmachenok daab8e6ff6
Do not re-order amdgpu and radeon modules in mkinitcpio (#3866)
This is not necessary as kms hook for mkinitcpio already takes care
of adding amdgpu and radeon modules.

Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
2025-10-13 09:12:41 +00:00
correctmost 8fb83a7beb
Upgrade Pylint to 4.0.0 (#3867)
This commit also removes the pylint-pydantic plug-in, which is not
yet compatible with Pylint v4.
2025-10-13 09:03:00 +00:00
renovate[bot] b0b87400c2
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.0 (#3859)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 07:58:29 +00:00
renovate[bot] 97790145c4
chore(deps): update dependency ruff to v0.14.0 (#3858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 16:48:13 +11:00
renovate[bot] d7f74b4b32
chore(deps): update dependency pydantic to v2.12.0 (#3856)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 16:47:57 +11:00
Muhammadyoqub 472ffd4e6a
Add Uzbek (uz) language support (#3854)
* Add Uzbek (uz) language support

* Add Uzbek (uz) language support
2025-10-07 21:11:42 +11:00
Pierre Ambroise 68d8af3df3
Update french translation (#3853)
* Update french translation

* Add mo file
2025-10-07 09:56:48 +11:00
renovate[bot] 88266f5c74
chore(deps): update dependency pylint to v3.3.9 (#3851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 09:19:56 +11:00
renovate[bot] a3e219a2e4
chore(deps): update dependency pydantic to v2.11.10 (#3850)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-05 09:31:15 +11:00
renovate[bot] 5777880d18
chore(deps): update dependency ruff to v0.13.3 (#3848)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:25:20 +00:00
renovate[bot] c8429aee23
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.3 (#3849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:25:01 +00:00
damachine 60e70f507f
Fix German translations for consistency and clarity (#3844)
* Fix German translations for consistency and clarity

Corrected capitalization and punctuation in German translations.

* Update German translations for disk configuration messages

sounds better

* Update German translations for clarity and consistency

* Update German translations in base.po

* Update German translation for object selection message

much more understandable

* Update German translations in base.po

friendlier

* Refine German translations in base.po

SORRY for the many changes. I only want the best.

* Update German translation for Btrfs subvolumes

* Update German translation for btrfs subvolume message

correct translation o)
2025-10-01 07:25:11 +10:00
Valerii b03948bbfe
Better Ukrainian v1.3.4 (#3843) 2025-10-01 07:24:41 +10:00
damachine 21f9972040
Fix typo in German translation for network interface (#3842)
sorry. another one has sneaked in.
2025-09-30 13:04:02 +10:00
damachine e0ce0bdd45
Fix typo in German translation for bootable partition (#3841)
small typo fix o)
2025-09-30 11:56:43 +10:00
summoner c86b0be79f
Translation: Update hu_HU.po (#3839)
Translate new strings
Fixing translation
2025-09-28 17:50:02 +10:00
renovate[bot] 853309d311
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.2 (#3838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 17:49:24 +10:00
renovate[bot] 2f1b8cd692
chore(deps): update dependency ruff to v0.13.2 (#3837)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 17:49:06 +10:00
Luna Jernberg e1f7a314a7
Bumping version to: 3.0.11 (archlinux#3835) (Swedish Translation) (#3836)
* Update base.po (Swedish)

Update Swedish Translation

* Update base.po (Swedish)

Updated Swedish translation
Uppdaterad svensk översättning

* Bumping version to: 3.0.11 (archlinux#3835)

Bumping version to: 3.0.11 (archlinux#3835)
2025-09-25 17:20:43 +10:00
Anton Hvornum ebeb4c7daa
Bumping version to: 3.0.11 (#3835) 2025-09-24 23:51:08 +02:00
Matteo 88753b1f40
Update Italian translation (#3832)
Translated new strings
2025-09-24 07:14:37 +10:00
utuhiro78 ca85f39b71
Update Japanese translation (#3831) 2025-09-24 07:14:20 +10:00
renovate[bot] 5f96390719
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.18.2 (#3823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 20:38:59 +10:00
renovate[bot] fceee34dfa
chore(deps): update dependency ruff to v0.13.1 (#3810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 17:43:37 +10:00
renovate[bot] 49ead6fa38
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.1 (#3811)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 16:44:30 +10:00
Bruno Rosa 792db9e8b8
quick fix to run archinstall and enable systemd services (#3815) 2025-09-19 15:52:30 +10:00
renovate[bot] df3b5d7593
chore(deps): update dependency mypy to v1.18.2 (#3816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 15:45:43 +10:00
Daniel Girtler d256e70480
Fix 3785 - F2FS parameters require 'extra_attr' (#3796)
Co-authored-by: Daniel Girtler <dgirtler@atlassian.com>
2025-09-17 10:32:04 +02:00
Monochrome de05dcb7e0
changed version of cryptography package to 45.0.7 (#3795)
Co-authored-by: QuotientParadoxx <117741113+QuotientParadox@users.noreply.github.com>
2025-09-16 10:25:43 +00:00
Rémy Marquis 9ddd41da56
Remove outdated link to video demo installer (#3790) 2025-09-16 10:25:24 +00:00
renovate[bot] cec68b6e9b
chore(deps): update dependency pydantic to v2.11.9 (#3791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 08:38:27 +10:00
renovate[bot] c60d9bd232
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.18.1 (#3792)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 08:37:45 +10:00
renovate[bot] ad02f5bffc
chore(deps): update dependency mypy to v1.18.1 (#3788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 07:29:10 +10:00
renovate[bot] 3c416943e2
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.0 (#3787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 07:28:46 +10:00
renovate[bot] e846a0ec58
chore(deps): update dependency ruff to v0.13.0 (#3786)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 07:28:30 +10:00
BlocksumoGuys d40d77ce25
Finalized French Translation (with improvments) (#3784)
The french translation is hopefully finished, I also improved in some sectors of the translations
2025-09-09 17:03:48 +10:00
veprogames de50a31609
Fundamentally improve German translations (#3780)
* Get rid of all warnings that poedit displayed

Bring translations closer to the English original, also removing some extraneous information. Get rid of all warnings poedit displayed. Correct translation that didn't match at all.

* Fix locales_generator.sh detection

xgettext was not recognizing tr() invocations. Following https://stackoverflow.com/a/11901925 fixed the issue

* Add more German translations

Improve consistency with some translations. Add translations for messages that were just detected in the previous commit. Add translations for Graphics Drivers

* Add more translations

Look for untranslated strings in the source files and add make them recognized by gettext

* Improve conistency of German translations and correct typos

* formatting

* Remove translations from enum members

* More translation tweaks
2025-09-09 17:02:24 +10:00
Dee 1ef52f56cb
gracefully return "undefined" if DMI is not in sysfs (#3771)
* gracefully return "undefined" if DMI is not in sysfs

fixes #3770, in theory

* None works too and is consistent with other behaviour

* None doesn't *just* work
2025-09-08 10:51:28 +00:00
BlocksumoGuys bca3f4b660
Update French Language inside of base.po (#3782)
Some error found inside the base.po file
2025-09-08 19:06:20 +10:00
renovate[bot] 9bb7ced10e
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.12 (#3779)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 21:34:33 +10:00
renovate[bot] b8baf096dd
chore(deps): update dependency ruff to v0.12.12 (#3778)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 21:34:11 +10:00
renovate[bot] 0ad513a8e5
chore(deps): update dependency pytest to v8.4.2 (#3777)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 21:33:54 +10:00
renovate[bot] ed8b6ac045
chore(deps): update actions/setup-python action to v6 (#3776)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 18:39:12 +10:00
veprogames fd2c20a900
Add missing German translations (#3774) 2025-09-04 16:51:11 +10:00
Anton Hvornum f87ece0b95
Bumping version to: 3.0.10 (#3773) 2025-09-02 12:33:50 +02:00
renovate[bot] 4949bb4c2d
chore(deps): update dependency ruff to v0.12.11 (#3767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-30 19:02:21 +10:00
renovate[bot] 5208dfd539
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.11 (#3768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-30 19:02:05 +10:00
Daniel Girtler 6a228aa70a
Handle empty menu when focusing item (#3742) 2025-08-27 10:30:19 +02:00
Daniel Girtler ea8d64a6d3
Fix upgrade version header (#3738)
* Fix header new version display

* Update
2025-08-27 10:29:23 +02:00
Daniel Girtler d342c50aec
Remove beta label from LVM (#3737) 2025-08-27 10:28:45 +02:00
Daniel Girtler e4e30b31d4
Disable btrfs snapshots when no subvolumes defined (#3736) 2025-08-27 10:28:17 +02:00
Daniel Girtler 663e46f86e
Remove unattended script (#3733) 2025-08-27 10:27:25 +02:00
Daniel Girtler 7d94210cd3
Fix parsing of systemd package version (#3732) 2025-08-27 10:23:03 +02:00
Daniel Girtler a4324ec5f1
Setup grub-btrfs correctly for timeshift (#3728) 2025-08-27 10:21:47 +02:00
Luna Jernberg f0f882f68b
Update base.po (Swedish) (#3758)
Update Swedish Translation
2025-08-26 09:45:44 +10:00
renovate[bot] 08b6b617a7
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.10 (#3755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 08:24:30 +10:00
renovate[bot] d09d4a3acd
chore(deps): update dependency ruff to v0.12.10 (#3754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 08:23:22 +10:00
Valerii af54095405
Better Ukrainian v.1.3.3 (#3749)
* Better Ukrainian v.1.3.2

Now, the translation is complete.

* Better Ukrainian v1.3.3
2025-08-22 07:56:34 +10:00
Guillaume BOEHM 0cebaa00f7
Fix documentations and samples mentioning `custom-commands` instead of `custom_commands` (#3745) 2025-08-16 11:59:18 +10:00
renovate[bot] 6910b7a872
fix(deps): update dependency ruff to v0.12.9 (#3740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 12:33:08 +10:00
renovate[bot] 0394eba63c
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.9 (#3739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 12:32:50 +10:00
renovate[bot] 982f10b9d7
chore(deps): update astral-sh/ruff-action action to v3.5.1 (#3730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 07:55:14 +10:00
renovate[bot] bf808110f1
chore(deps): update actions/checkout action to v5 (#3727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-12 11:18:09 +00:00
renovate[bot] c9d28e0cc8
chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v6 (#3721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 06:08:53 +00:00
renovate[bot] 5bb21b69ea
fix(deps): update dependency pylint to v3.3.8 (#3718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 06:08:26 +00:00
neko_0xff d5b8c66d3b
Update base.po (#3723) 2025-08-10 06:08:09 +00:00
Guilherme Licodiedoff 05c25f10ea
Improve pt_BR translation flow (#3722) 2025-08-10 06:07:34 +00:00
renovate[bot] f6697f22ee
fix(deps): update dependency pre-commit to v4.3.0 (#3720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 06:06:54 +00:00
Odyssey c6674ee8e4
Update catalan locales (#3716) 2025-08-10 06:05:50 +00:00
renovate[bot] c172c78012
fix(deps): update dependency ruff to v0.12.8 (#3715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 06:05:30 +00:00
renovate[bot] da8c16400f
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.8 (#3714)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 06:05:13 +00:00
correctmost b0ede3c165
Fix a type annotation for list_available_packages (#3711)
The repositories parameter is a variable-length tuple instead of a
one-element tuple.
2025-08-06 07:02:01 +00:00
Andreamp0 5e96448f37
Fixing 3 lines in the italian translation (#3710) 2025-08-05 12:55:30 +00:00
EK 4c17b75134
move additional packages down (#3709) 2025-08-04 19:45:38 +02:00
renovate[bot] 2f05481329
fix(deps): update dependency mypy to v1.17.1 (#3704)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 11:49:08 +00:00
Hugo Carvalho 1e841a1816
Translation: Update pt.po (#3702) 2025-07-31 11:48:38 +00:00
renovate[bot] d09a512946
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.17.1 (#3703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 11:48:17 +00:00
summoner 6cca6f9866
Translation: Update HU.po (#3701)
Fix translation wording
2025-07-31 06:59:25 +00:00
Daniel Girtler ab1793a4f4
Add version to test (#3699) 2025-07-31 04:52:09 +00:00
summoner 11e33ed9f3
Translation: Update Hu.po (#3698)
Translate new strings
Fix sentences
2025-07-30 17:34:56 +02:00
Anton Hvornum 0cd3f2ea26
Bumping version to: 3.0.9 (#3697) 2025-07-30 10:22:31 +02:00
renovate[bot] 1cd6792bba
fix(deps): update dependency ruff to v0.12.7 (#3696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 07:05:52 +00:00
renovate[bot] 34489d4834
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.7 (#3695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 07:05:30 +00:00
Anton Hvornum 3607029d59
Reverted profiles and application installation order in order to not break DE's vs audioserver setups (#3694) 2025-07-30 08:16:36 +02:00
Daniel Girtler 1ba9d0371a
Correctly populate version in config (#3693) 2025-07-29 20:30:17 +00:00
Daniel Girtler 91609c16b5
Fix circular bootloader dependency (#3686) 2025-07-29 19:48:23 +02:00
renovate[bot] dd5a86165c
fix(deps): update dependency ruff to v0.12.5 (#3682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 18:21:42 +00:00
renovate[bot] d799812f63
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.5 (#3681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 18:21:15 +00:00
Simon Skoczylas 436a28b34c
Update documentation to also mention the --config-url option (#3683)
* Add missing config-url option

* Update example in documentation
2025-07-24 17:19:27 +02:00
VENOIRE ccebb6882e
Fix boot detection to use PartitionFlag.BOOT instead of mountpoint (#3659)
Co-authored-by: VENOIRE <venoire@protonmail.com>
Co-authored-by: Torxed <torxed@archlinux.org>
2025-07-24 16:11:18 +02:00
correctmost b77a43b201
Remove unneeded None annotation from Bootloader.get_default (#3680) 2025-07-23 20:00:21 +02:00
Anton Hvornum 5355c7141a
Add --skip-boot to allow for bypassing installation of a bootloader (#3677)
* Adding the option to skip boot loader

* Fixed a variable complaint

* Fixed ruff and mypy

* Fixed mypy

* Fixed mypy

* Fixed import recursion

* Fixed ruff

* Fixed circular imports

* Fixed ruff

* Hiding the menu option for bootloader when --skip-boot is given. Still setting it default to None to avoid it sneaking into the config file or being set behind the scenes causing if statements to trigger.

* Created an Enum None type for Bootloader called NO_BOOTLOADER

* Fixed ruff

* Spelling error

* Hiding NO_BOOTLOADER if --skip-boot is omitted

* Fixed TUI error when bootloader was missing

* Fixed mypy complaints

* Fixed ruff complaint

* Made the Bootloader option visible during --skip-boot and set the default value to NO_BOOTLOADER when --skip-boot is present
2025-07-23 16:52:01 +02:00
Luiz Felipe ee6dcbe2b2
Improve PT‑BR translation and adjust punctuation (#3679)
Co-authored-by: LuizWT <xluiz452@gmail.com>
2025-07-23 11:10:02 +00:00
Daniel Girtler 3e99cfbba7
Move users menu into authentication submenu (#3678)
* Move users menu into authentication submenu

* Tests

* Update

* Update
2025-07-22 08:57:39 +02:00
Daniel Girtler 725c3fed09
Rename network_configuration -> network (#3641) 2025-07-21 19:26:15 +00:00
renovate[bot] b0908b88c5
fix(deps): update dependency ruff to v0.12.4 (#3674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 11:48:00 +02:00
renovate[bot] 1da69cec18
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.4 (#3673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 00:15:26 +00:00
Daniel Girtler 1e058df92b
Fix imports (#3675) 2025-07-18 21:59:32 +00:00
Daniel Girtler e0c3bb3869
Move root password menu into authentication menu (#3650) 2025-07-18 05:53:31 +00:00
correctmost 8736926fb2
Update mypy to 1.17.0 (#3671)
This commit also removes a type ignore comment that is no longer
needed after python/mypy#18976.
2025-07-17 12:37:06 +10:00
utuhiro78 f059d897fb
Update Japanese translation (#3670) 2025-07-16 10:16:55 +10:00
renovate[bot] 9f83d67c9e
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.17.0 (#3669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 10:16:27 +10:00
Daniel Girtler 231530d5f9
Handle no U2F device available (#3648) 2025-07-15 09:35:54 +02:00
Daniel Girtler 47f4e63006
Rename profile_model -> profile (#3640) 2025-07-15 09:30:15 +02:00
Daniel Girtler 96aaf5b6ac
Rename module device_model -> device (#3639) 2025-07-15 09:29:58 +02:00
renovate[bot] 703c9548c0
chore(deps): update astral-sh/ruff-action action to v3.5.0 (#3667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 08:06:55 +10:00
renovate[bot] b73aa79415
fix(deps): update dependency ruff to v0.12.3 (#3664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-12 12:22:35 +10:00
renovate[bot] 725b95c5a6
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.3 (#3663)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-12 12:22:04 +10:00
Muhammad Salman eb5512f5cd
Install inotify-tools when using grub with btrfs config (#3656) 2025-07-08 20:12:57 +10:00
renovate[bot] 9b0b5e8af2
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.2 (#3652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-05 08:32:21 +10:00
renovate[bot] b0038eb277
fix(deps): update dependency ruff to v0.12.2 (#3653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 18:49:11 +10:00
Matteo 30f0693ce7
Update Italian translation (#3651) 2025-07-03 08:42:30 +10:00
correctmost 3652dbd578
Replace an Any instance in U2FLoginConfiguration.parse_arg (#3649) 2025-07-01 08:54:46 +10:00
correctmost 2bb98bc06e
Remove an unused member variable from AuthenticationHandler (#3644) 2025-07-01 07:55:04 +10:00
correctmost 2072c29745
Use union syntax instead of typing.Optional (#3643) 2025-07-01 07:54:41 +10:00
correctmost c22c6c7399
Remove unneeded container code from ruff format workflow (#3642) 2025-07-01 07:54:09 +10:00
Daniel Girtler 55a383764f
Add support for U2F authentication (#3638)
* Add U2F login support

* Update

* Update

* Update

* Update
2025-06-30 21:51:45 +10:00
Haouari haitam Kouider b3b00aa00f
Add interface to change LUKS iteration time (#3634)
* Added User Interface to change iteration time for LUKS encryption

* removing unneessary try catch and imports

* used the same constant in luks.py file

* fixed issue with error firing in default value

* fixed ruf preview warnings

* preview even if its default value. (iter_time)

* check encryption type is not non before showing iter_time

* using _real_input with input_vp instead of _current_text

* proper check for enc_type

* added Interation time to outer menu preview

* removed (ms) from title. so that we don't need to translate "Iteration time" and "iteration time (ms)".

* a comment slipped in. this was not supposed to be in this pull

* fixed comparison str with EncryptionType
2025-06-30 11:11:24 +10:00
Daniel Girtler 19459731ad
Make type field in lsblk optional (#3633) 2025-06-27 12:31:04 +02:00
Anton Hvornum 9dd92321a5
Added temporary hold on bootctl's --variables=BOOL usage, as it's notin systemd main yet (#3625)
* Added temporary hold on bootctl's --variables=BOOL usage, as it's not in systemd main yet

* Fixed ruff format check

* Fixed mypy type check issue

* Spelling error

* Fixed flake8 complaint
2025-06-27 12:29:35 +02:00
renovate[bot] 9d0e1e5576
fix(deps): update dependency ruff to v0.12.1 (#3632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-27 11:53:03 +10:00
renovate[bot] 8cb899ef39
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.1 (#3631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-27 11:52:47 +10:00
correctmost 572b4b6c29
Remove a ruff check auto-fix from the ruff format workflow (#3628)
Running an auto-fix in CI can cause the format check to pass, even
though the same format check fails locally.
2025-06-24 21:29:06 +10:00
correctmost 85f83214f7
Fix ruff format for local builds (#3626) 2025-06-24 13:30:04 +10:00
Anton Hvornum 63e559e502
Changed quotation marks (#3624) 2025-06-22 17:10:28 +02:00
DarkXero 677f4349be
Add missing xdg-user-dirs (#3484)
* Update cosmic.py

* Reverted incorrect Python logic surrounding the greeter type.

---------

Co-authored-by: Torxed <torxed@archlinux.org>
2025-06-22 15:17:25 +02:00
summoner001 7f189727a2
Update hungarian translation (#3622)
fix wording
2025-06-22 14:17:45 +02:00
Anton Hvornum 7fdfede270
Fixed ruff quotation marks (#3623) 2025-06-22 14:16:27 +02:00
Korbin Bickel 46550221d1
Update bootctl command for new --variables= option (#3396)
Co-authored-by: Anton Hvornum <torxed@archlinux.org>
2025-06-22 13:55:38 +02:00
Daniel Girtler 43963a1d8f
Fix script docs (#3613) 2025-06-22 12:47:00 +02:00
renovate[bot] fbbc3edac2
fix(deps): update dependency flake8 to v7.3.0 (#3618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 08:19:45 +10:00
renovate[bot] 526eb3fb18
chore(deps): update pre-commit hook pycqa/flake8 to v7.3.0 (#3617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 08:05:49 +10:00
Daniel Girtler 9769786ad6
Fix app config (#3614) 2025-06-20 23:59:10 +02:00
Daniel Girtler 77558e2be5
Fix 3598 - Utilize script field from config when present (#3611)
* Fix 3598 - Utilize script field from config when present

* Update

* Update
2025-06-20 15:58:14 +10:00
Daniel Girtler 37b3985625
Move audio configuration to application config (#3612) 2025-06-20 07:27:23 +10:00
renovate[bot] 63848f645f
fix(deps): update dependency pytest to v8.4.1 (#3608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:06:02 +10:00
Daniel Girtler 27f53717b0
Add bluetooth support (#3604)
* Add bluetooth option
2025-06-18 09:57:54 +02:00
renovate[bot] f0cb3ad77a
fix(deps): update dependency ruff to v0.12.0 (#3607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 07:38:42 +10:00
renovate[bot] fa5f9cfaf3
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.0 (#3606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 07:38:24 +10:00
renovate[bot] bf8379a2aa
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.16.1 (#3605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 07:36:33 +10:00
Screamnox 973f4af1f5
fix(lvm): align offset to PE size to avoid LV allocation failure (#3603) 2025-06-17 22:26:16 +10:00
renovate[bot] 4d0a6ceb62
fix(deps): update dependency mypy to v1.16.1 (#3602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 07:38:35 +10:00
Serdar Sağlam dd75371fc1
Turkish language current (#3597)
It was a very bad and wrong translation, but it is good now.
2025-06-16 09:53:20 +10:00
renovate[bot] c800a0357d
fix(deps): update dependency pydantic to v2.11.7 (#3595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-14 23:13:43 +10:00
renovate[bot] aa5a13b732
fix(deps): update dependency pydantic to v2.11.6 (#3594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-13 22:46:46 +10:00
Anton Hvornum 867fc7c691
Bumping version to: 3.0.8 (#3593) 2025-06-12 21:27:28 +02:00
Anton Hvornum 2038e68560
Removed xf86-video-vmware as it's been dropped: https://gitlab.archlinux.org/archlinux/packaging/packages/xf86-video-vmware/-/issues/3 (#3590) 2025-06-12 08:48:21 +02:00
Daniel Girtler 12c8a5c62e
Mount partitions in minimal script before starting installation (#3585) 2025-06-12 07:14:54 +10:00
Daniel Girtler 063b9643b4
Add new version indicator in the title of the main menu (#3587)
* Add new version indicator in the title of the main menu

* Update
2025-06-12 07:14:30 +10:00
Daniel Girtler 7b3b7c9ebf
Fix recursive call in scripts (#3586) 2025-06-11 19:38:28 +02:00
Anton Hvornum a91a922ef4
Spelling error on extras package (#3582) 2025-06-09 13:27:24 +02:00
renovate[bot] d0f1fdf4b4
fix(deps): update dependency ruff to v0.11.13 (#3578)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-07 07:33:18 +10:00
renovate[bot] ee94cd9d4f
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.13 (#3577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-07 07:32:57 +10:00
correctmost 1e7a4831ae
Use a generic instead of Any in MenuHelper (#3574)
This commit also removes an unused _get_table_header method.
2025-06-04 11:55:07 +10:00
correctmost 2843d01600
Enable stricter mypy definition checks in archinstall/lib/ (#3573) 2025-06-04 07:30:14 +10:00
correctmost 557e1cac0d
Honor the sort_items parameter on MenuItemGroup.from_enum (#3572) 2025-06-03 23:17:42 +10:00
correctmost fafb180ffe
Remove unused arguments from internal functions (#3571)
This makes it easier to run Pylint's unused-argument checks on the
codebase.
2025-06-03 23:17:10 +10:00
renovate[bot] fe9b853d25
fix(deps): update dependency pytest to v8.4.0 (#3570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 08:15:27 +10:00
Daniel Girtler 18ef716b0f
Add sync after installation completed (#3569) 2025-06-02 13:50:34 +02:00
Daniel Girtler 92b384d1d3
Fix restore edit content on help menu close (#3568)
* Fix restore edit content on help menu close

* Update
2025-06-02 10:17:17 +02:00
correctmost fef97bed32
Fix return values used with a Textbox.edit callback in curses (#3566) 2025-06-01 11:43:01 +02:00
correctmost a580da2bbd
Enable the bad-exit-annotation ruff rule and fix related warnings (#3564) 2025-06-01 11:41:34 +02:00
Anton Hvornum 55fd59d94e
Moved python-cryptography from makedepends to depends (#3558) 2025-05-31 13:19:37 +02:00
codefiles dd686b291c
Use PEP 639 license expression (#3556) 2025-05-31 08:25:29 +02:00
correctmost a1b83ad29f
Remove unused _DeferredTranslation methods and references (#3557) 2025-05-31 16:04:23 +10:00
correctmost e245a11463
Remove return value check for Installer.minimal_installation (#3555)
The minimal_installation method always returns None.
2025-05-31 08:20:54 +10:00
renovate[bot] 48c3f6367b
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.16.0 (#3551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 23:33:58 +02:00
lubuoren 47e6d82ee5
Update installer.py (#3540)
Fix the bug of installation failure caused by incorrect service name
2025-05-30 17:04:04 +02:00
codefiles 1dccfe6c33
Rework install log (#3550) 2025-05-30 23:08:02 +10:00
correctmost a5d995b546
Remove underscore from _FrameDim because it's used externally (#3547)
This commit fixes a reportUnusedClass warning from Pyright.
2025-05-30 18:42:00 +10:00
codefiles 16405ab435
Refactor command logs (#3549) 2025-05-30 18:39:20 +10:00
correctmost c2ea6ffe9c
Add type annotations to global storage dictionary (#3548)
This will help catch issues like #3530.
2025-05-30 09:18:17 +02:00
correctmost b689656547
Remove some unnecessary None checks from desktop profile code (#3546)
This commit fixes some warnings reported by Pyright's
reportUnnecessaryComparison checker.
2025-05-30 09:12:49 +02:00
correctmost bd36c0c5d3
Remove workaround for mypy 1.15.0 crash (#3545)
This reverts commit ae38e92100.
2025-05-30 09:12:05 +02:00
correctmost 1b39c7dbad
Remove strict_bytes from the mypy config (#3544)
In mypy 1.16.0, strict mode automatically enables strict_bytes
checks.
2025-05-30 07:32:25 +02:00
Daniel Girtler c2443e8902
Reference guided.py script instead of symlink from README (#3543) 2025-05-30 07:31:54 +02:00
renovate[bot] 5805ea4a3f
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.12 (#3538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 21:36:00 +02:00
renovate[bot] 7b9a658c7b
fix(deps): update dependency ruff to v0.11.12 (#3539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 21:35:35 +02:00
renovate[bot] 46f18baca7
fix(deps): update dependency mypy to v1.16.0 (#3541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 21:33:34 +02:00
Daniel Girtler 8bed035e21
Fix 3530 (#3535)
* Fix 3530

* Update
2025-05-29 13:54:28 +02:00
Daniel Girtler d4b16cb406
Fix 3534 (#3537) 2025-05-29 13:53:22 +02:00
Daniel Girtler 3359779594
Fix 3626 (#3536) 2025-05-29 13:52:34 +02:00
codefiles 7316b56274
Fix empty username (#3533) 2025-05-29 12:17:18 +10:00
codefiles e6a9105df4
Fix empty password (#3531) 2025-05-29 12:13:07 +10:00
correctmost 3da78fcb49
Enable truthy-bool checks in mypy and fix related warnings (#3528) 2025-05-29 12:11:32 +10:00
codefiles b2b36a2cef
Refactor default Btrfs subvolumes (#3525) 2025-05-28 22:45:56 +10:00
codefiles 728fee4a7c
Fix root partition device mapper name (#3524) 2025-05-28 22:02:00 +10:00
correctmost 426650a3c4
Fix invalid-annotation warnings reported by Pyrefly (#3523) 2025-05-28 22:00:52 +10:00
correctmost 26c6812827
Remove extraneous None type annotations (#3522) 2025-05-28 21:52:43 +10:00
Daniel Girtler 52face9254
Fix 3513 (#3520) 2025-05-28 20:47:56 +10:00
correctmost c2f4d92fd9
Enable unreachable code checks in lib/ with mypy (#3521) 2025-05-28 20:47:40 +10:00
Anton Hvornum 2cf7c85728
Bumping version to: 3.0.7 (#3519) 2025-05-28 11:15:59 +02:00
correctmost 5c8721a3a8
Enable unreachable code checks in tui/ with mypy (#3518) 2025-05-28 16:23:06 +10:00
Farhan Ghani 50747a5a71
Updated translation and fixed errors in last translation. (#3515)
* still updating

* Updated urdu translation

Because it is very hard to display urdu fonts in consol. I changed urdu
writing to latin script which is also known as "Roman Urdu". For more
information check out https://en.wikipedia.org/wiki/Roman_Urdu.

* Updated errors and translation

As it is mentioned in #3463 the errors has been rectified and more
translation is added.
2025-05-28 16:19:40 +10:00
correctmost 5aa1c90b12
Enable mypy's show_traceback option in pyproject.toml (#3514)
This makes it easier to debug mypy crashes when running 'mypy'
in the project directory.
2025-05-28 16:19:03 +10:00
codefiles df8cb4fb39
Fix home partition device mapper name (#3516) 2025-05-28 07:27:07 +02:00
Luiz Felipe 7a455cb625
adjust PT-BR translations and remove fuzzy markers (#3511)
* adjust PT-BR translations and remove fuzzy markers

* Add "Luiz Felipe" to pt-BR translators list in archinstall
2025-05-27 07:51:47 +02:00
codefiles c8f1f78679
Remove duplicate LUKS unlock check (#3510) 2025-05-27 13:08:45 +10:00
codefiles 2623039fff
luks: rework is_unlocked() (#3509) 2025-05-27 09:36:23 +10:00
renovate[bot] 9f110849e6
chore(deps): update astral-sh/ruff-action action to v3.4.0 (#3508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 09:35:35 +10:00
Daniel Girtler 8c12d15a41
Fix disk encryption emnu (#3506) 2025-05-26 21:21:30 +10:00
Anton Hvornum 6c7260fa33
Added a more humane error message on no initial network (#3501)
* Added a more humane error message on no initial network

* Fixed ruff complaints
2025-05-25 13:30:47 +02:00
Daniel Girtler 6d1a450440
Fix 2304 (#3503) 2025-05-25 21:25:15 +10:00
Daniel Girtler cdb1debe2e
Move disk encryption into disk config menu (#3502) 2025-05-25 21:23:37 +10:00
Daniel Girtler 5a54902935
Add support for Btrfs snapshots (#3500)
* Add btrfs snapshot support

* Update

* Update

* Update
2025-05-25 17:22:41 +10:00
Daniel Girtler d3f32f308c
Update ruff formatter (#3496)
* Update ruff formatter

* Update
2025-05-24 07:58:42 +00:00
Omrifo4 9af23218c4
Generate empty string on empty custom_servers config (#3498) 2025-05-24 09:11:45 +10:00
Daniel Girtler 4c065c3698
Symlink example files to actual scripts (#3495) 2025-05-23 13:09:42 +02:00
renovate[bot] 1308897d79
fix(deps): update dependency ruff to v0.11.11 (#3494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-23 19:15:59 +10:00
renovate[bot] aef3fd6690
fix(deps): update dependency pydantic to v2.11.5 (#3493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-23 19:15:43 +10:00
renovate[bot] ec5a7e6264
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.11 (#3492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-23 19:15:28 +10:00
Daniel Girtler 3e2f792280
Fix qemu command to boot image (#3491) 2025-05-22 11:25:29 +02:00
Anton Hvornum c9b0c9f7b5
Fix pypi auto release (#3490)
* Updated pypi release by also removing the pyparted hardcoded github version link
2025-05-22 00:22:22 +02:00
Anton Hvornum 79a4c7c0ef
Bumping version to: 3.0.6 (#3488) 2025-05-21 19:34:02 +02:00
Anton Hvornum 5a4773cdd3
Added --skip-wkd to skip waiting for the arch linux keyring wkd sync (#3483)
* Added --skip-wkd to skip waiting for the arch linux keyring wkd sync

* Package spelling error

* Forgot to add argument to Arguments()

* Added missing --skip-wkd arg to arg tester

* Corrected help text for --skip-wkd
2025-05-20 11:38:40 +02:00
correctmost 3e5f879d52
Remove remaining bare _ translation references (#3485)
This helps simplify the linter configs and improves compatibility
with type checkers.
2025-05-20 18:44:25 +10:00
correctmost a945606834
Add some missing type annotations for return values (#3486) 2025-05-20 07:37:35 +10:00
Anton Hvornum 97eeef8c76
Fixed missing archlinux container usage (#3480) 2025-05-19 16:31:40 +02:00
Daniel Girtler 57bd2451e9
Simplify translating of strings (#3479)
* Simplify translation fucntion

* Simplify translation fucntion
2025-05-19 22:33:02 +10:00
Daniel Girtler 790a7a2be9
Fix 3474 (#3476)
* Fix 3474 - Parse mountpoint correctly

* Fix 3474 - Parse mountpoint correctly

* Update
2025-05-19 10:59:42 +02:00
Daniel Girtler f7f6b27a8a
Fix refression for sudoers file (#3475) 2025-05-19 17:00:57 +10:00
Luna Jernberg 363a96a0a2
Update base.po - Swedish translation for 3.0.5 (#3471)
Swedish translation for 3.0.5
2025-05-16 22:00:42 +10:00
renovate[bot] f2136e55ed
fix(deps): update dependency ruff to v0.11.10 (#3470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-16 07:36:30 +10:00
renovate[bot] 7decef1dc3
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.10 (#3469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-16 07:36:12 +10:00
Daniel Girtler c67ac97f18
Ruff formatting (#3459)
* Update

* Update
2025-05-15 14:26:41 +02:00
Anton Hvornum f71e91c85e
Bumping version to: 3.0.5 (#3463) 2025-05-15 08:50:34 +02:00
Anton Hvornum 83a45e8f9f
Fixes --silent in conjuction with --config-url (#3465) 2025-05-14 20:30:38 +02:00
Farhan Ghani b062271b2c
Updated urdu translation (#3462)
* Updated urdu translation

Because it is very hard to display urdu fonts in consol. I changed urdu
writing to latin script which is also known as "Roman Urdu". For more
information check out https://en.wikipedia.org/wiki/Roman_Urdu.

* More translation

Some messages were not translated.
2025-05-14 11:58:18 +10:00
walken ffb9697499
Czech localization update (#3461) 2025-05-13 08:36:50 +10:00
Daniel Girtler e61b966575
Ruff use tabs for formatting (#3458) 2025-05-12 21:07:55 +10:00
Daniel Girtler e18c00c4d9
Convert bytes to str (#3457) 2025-05-12 21:07:36 +10:00
Valerii fd9f2893e6
UWSM for Hyprland (#3455)
UWSM
2025-05-12 08:10:36 +10:00
Lena a291857bdc
Update Polish translation (#3454) 2025-05-12 08:09:25 +10:00
renovate[bot] d3f40a217e
fix(deps): update dependency ruff to v0.11.9 (#3453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 13:59:04 +10:00
renovate[bot] 9facf6811c
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.9 (#3452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 13:58:46 +10:00
utuhiro78 3dccbc1247
Update Japanese translation (#3451) 2025-05-10 13:58:24 +10:00
correctmost 5cd5d714e9
Disable the loop-iterator-mutation rule in ruff (#3450)
This allows ruff check --preview to succeed again.
2025-05-09 07:28:56 +10:00
Odyssey 583945028f
Update catalan locales (#3447) 2025-05-09 07:27:54 +10:00
codefiles 2e4603e464
Fix btrfs subvolume creation (#3446) 2025-05-08 15:39:43 +02:00
Valerii 1228a0c75e
Better Ukrainian v1.3.1 compiled .mo file (#3445) 2025-05-08 21:29:35 +10:00
renovate[bot] 2bf2b665e6
chore(deps): update astral-sh/ruff-action action to v3.3.1 (#3444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 09:00:38 +10:00
ncdm-stldr 4dc7cb9ee6
[fix] Sway: dmenu is no longer the default application launcher. It was changed for wmenu. (#3442)
I couldn't start the application launcher with mod+d after a fresh installation using archinstall, where I selected sway as a desktop.
The reason is that the default application launcher for sway changed (see ab9b164e52 and b44015578a).
The fix is simply to install this new application launcher wmenu instead of dmenu.
2025-05-08 09:00:10 +10:00
Valerii a3c1e20ea0
Better Ukrainian v1.3 (#3441)
* Add files via upload

* Add files via upload
2025-05-06 17:56:40 +10:00
summoner001 6f2fe45ce7
Update hungarian translation (#3440)
Translate new strings
2025-05-06 17:56:20 +10:00
Valerii 3adfc21c69
Add files via upload (#3439) 2025-05-06 09:57:34 +10:00
Daniel Girtler 9a98a1500b
Revert wayfire (#3432) 2025-05-05 10:08:42 +02:00
correctmost 781760a157
Break an import cycle between lib/luks and lib/disk/device_handler (#3438) 2025-05-05 17:04:16 +10:00
correctmost 4ed6d0da9b
Remove unused pydantic-settings dependency from pre-commit config (#3437) 2025-05-05 08:25:01 +10:00
renovate[bot] 38213a02bf
fix(deps): update dependency pylint to v3.3.7 (#3433)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-05 08:24:42 +10:00
correctmost ae38e92100
Add an inline annotation to avoid a crash with mypy 1.15.0 (#3434)
The annotation prevents intermittent crashes when running mypy
with a clean cache:

./archinstall/tui/curses_menu.py:723: error: INTERNAL ERROR

RuntimeError: Partial type "<partial list[?]>" cannot be checked with "issubtype()"
2025-05-05 07:04:18 +10:00
Matteo 1e2f9704c8
Another Italian translation update (#3436)
- Translated new strings
- Run locales_generator for all files, so all base.po have been updated
2025-05-05 07:03:09 +10:00
Matteo 6fe680f0ec
Update Italian translation (#3428) 2025-05-04 07:44:10 +10:00
Daniel Girtler 4023cfe2ca
Fix 3412 - Take optional repositories into account (#3427) 2025-05-03 16:06:27 +02:00
correctmost 9a939d8378
Enable tracebacks when running mypy (#3425)
This will make it easier to diagnose intermittent mypy crashes
2025-05-03 08:20:47 +10:00
renovate[bot] 914ff2002f
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.8 (#3422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 15:45:40 +10:00
renovate[bot] c776c46eb9
fix(deps): update dependency ruff to v0.11.8 (#3423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 13:37:36 +10:00
renovate[bot] 9ac2a29ff5
fix(deps): update dependency pydantic to v2.11.4 (#3420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-30 15:28:03 +02:00
correctmost 9c633924ba
Remove extraneous inline type annotations (#3418) 2025-04-30 08:31:28 +10:00
correctmost e8fd1de006
Avoid using generics with EditMenu (#3415)
This is a follow-up to commit 0de90bd55.
2025-04-29 07:12:32 +10:00
correctmost 437bb9c439
Remove a reference to twine (#3416)
This is a follow-up to commit a29a48f45.
2025-04-28 21:20:38 +02:00
Daniel Girtler 4c20331633
Fix 3376 - header alignment (#3414) 2025-04-28 14:04:15 +02:00
renovate[bot] c161d6fbd7
chore(deps): update astral-sh/ruff-action action to v3.3.0 (#3413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-27 20:57:55 +02:00
utuhiro78 e04ee8a18f
Update Japanese translation (#3410) 2025-04-27 13:03:22 +10:00
Celestial.y 557fef5bfc
Update zh-CN translation, fix locales/README.md (#3409)
* Update zh-CN translation

* Fix locales/README.md
2025-04-27 13:02:02 +10:00
correctmost 0de90bd55b
Specify menu return types using generics instead of Any (#3400) 2025-04-27 13:01:17 +10:00
Daniel Girtler fae210dfea
Add optional file encryption for user credentials configuration (#3391)
* Optional encryption of user credentials configuration file

* Update README

* Update

* Update
2025-04-26 20:25:43 +10:00
renovate[bot] b8923807c7
fix(deps): update dependency ruff to v0.11.7 (#3403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-26 20:02:08 +10:00
renovate[bot] f8a478d59a
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.7 (#3402)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-26 20:01:06 +10:00
Anton Hvornum 16e9bbe583
Removed the @.snapshots volume in order to support both Snapper and Timeshift #3363 (#3408) 2025-04-26 11:57:36 +02:00
Celestial.y fd92873ff7
Improve, fix and complete zh-CN translation (#3404) 2025-04-26 19:57:23 +10:00
renovate[bot] d389db4a54
chore(deps): update actions/setup-python digest to a26af69 (#3401)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-26 19:57:00 +10:00
Franco Castillo 1756fe56da
Update archinstall/locales/es/LC_MESSAGES/base.mo & archinstall/locales/es/LC_MESSAGES/ (#3405) 2025-04-26 19:56:06 +10:00
Anton Hvornum a29a48f452
Swapping to python-uv for building and distribution (#3407)
* Swapping to python-uv for building archinstall

* Tweaked UV parameters to not use a venv

* Tweaking uv to not resolve/install any dependencies during installation.

* Added remaining dependencies to the build runner

* Swapped to uv for publishing, using pypi 'trusted publisher' instead of token access

* Installing uv and dependencies for publishing

* Swapped to uv in the building of the test ISO
2025-04-26 11:55:19 +02:00
renovate[bot] 935cda7a05
fix(deps): update dependency ruff to v0.11.6 (#3398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-18 10:46:06 +10:00
renovate[bot] cb29369d26
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.6 (#3397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-18 10:45:49 +10:00
James Knight 3f06d2b058
Add niri package to profile (#3395) 2025-04-17 11:09:43 +10:00
Daniel Girtler 2f18b8d2fe
Fix 1747 | Additional post-installation menu options (#3393)
* Provide more post installation options

* Update
2025-04-16 07:31:49 +10:00
correctmost 130d1a6ff8
Split out unicode_ljust and unicode_rjust to break import cycle (#3388)
* Split out unicode_ljust and unicode_rjust to break import cycle

Previously, there was an import cycle between tui.menu_item and
lib.output.

* Move unicode.py from lib/ to lib/utils/
2025-04-13 15:47:33 +10:00
correctmost e281c2fa6a
Split out Result and ResultType to break import cycle (#3387)
Previously, there was an import cycle between tui.menu_item and
tui.types.
2025-04-13 15:06:48 +10:00
Thierry M 57a63053cd
Add files via upload (#3386) 2025-04-13 15:05:40 +10:00
codefiles bb87cfacaf
Fix GPT end (#3390) 2025-04-13 15:01:42 +10:00
Daniel Girtler a842fb48a2
Fix 3362 (#3377) 2025-04-11 06:58:12 +02:00
neko_0xff bf944a7459
i18n(zh-TW): re-Update base.po (20250411) (#3384)
* Update base.po

* Update base.po

* Update base.po
2025-04-11 14:09:32 +10:00
renovate[bot] 2db14ca2d1
fix(deps): update dependency ruff to v0.11.5 (#3383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-11 10:59:52 +10:00
renovate[bot] 0dcc4862e2
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.5 (#3382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-11 10:57:31 +10:00
correctmost a9fd14fee1
Remove some unnecessary type unions (#3378) 2025-04-09 14:16:23 +02:00
correctmost 3dd8679734
Replace an Any instance with a TypedDict (#3375) 2025-04-09 18:47:53 +10:00
correctmost d35ac2a235
Remove unused SysCommand and SysCommandWorker fields (#3374) 2025-04-09 18:47:30 +10:00
correctmost 0028a572e8
Remove some Any instances from the codebase (#3372) 2025-04-09 15:22:02 +10:00
Matteo 20bd845fbe
Update Italian translation (#3371)
Translated new strings
2025-04-09 07:15:59 +10:00
renovate[bot] dc9d86c4b3
fix(deps): update dependency pydantic to v2.11.3 (#3370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 21:31:43 +02:00
summoner001 409be2196d
Update hungarian translation (#3369)
Update hungarian translation
2025-04-08 21:08:55 +02:00
correctmost d5c210f933
Remove unused variable reported by Pyright (#3368) 2025-04-08 15:14:49 +02:00
correctmost a67b2dea60
Remove unused imports reported by Pyright (#3367) 2025-04-08 22:28:06 +10:00
utuhiro78 ffb2230f33
Update Japanese translation (100%) (#3366) 2025-04-08 22:27:40 +10:00
Valerii a7985233e9
Better Ukrainian v1.1 (#3365)
Ill add more with time
2025-04-08 14:19:35 +02:00
Valerii 03e19c714f
Better Ukrainian (#3364) 2025-04-08 19:29:07 +10:00
Daniel Girtler 4f1d1b4739
Store password as hash instead of plaintext (#3276)
* Rework user password to be hash

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Generate yescrypt hash

* Update

* Update

* Update

* Update
2025-04-08 08:53:18 +02:00
Daniel Girtler bae0e29e18
Fix #3330 (#3360)
* Fix #3330

* Update
2025-04-08 08:46:19 +02:00
Daniel Girtler a3fc658c90
Fix 3350 (#3358) 2025-04-08 08:45:47 +02:00
Daniel Girtler 00e87eb15f
Fix 3334 (#3359) 2025-04-08 08:45:21 +02:00
Daniel Girtler c1de65e5b3
Fix 3313 translation file (#3361) 2025-04-08 08:44:50 +02:00
correctmost 873e7b2c64
Remove unused description fields from profiles (#3357) 2025-04-07 14:26:17 +10:00
killertofus 390f4f15f4
added some more profiles (#3323)
* gave descriptions to profiles

* added some more profiles

* removed the descriptions for all of them and fixed the class name

* made some fixes

* removed the reference to seat

* forgot a comma

* forgot this seat reference

* rewrote river.py

* forgot to include river

* removed lightdm and added upercase X

* added some more fixes

* forgot to add labwc as a dep
2025-04-07 13:48:40 +10:00
codefiles 63b2f986c3
Move system info logging to function (#3356) 2025-04-07 13:19:18 +10:00
codefiles d7a5a59342
Fix disk config validation regression (#3355) 2025-04-07 12:24:17 +10:00
codefiles 5b06ec7c37
Remove check for sphinx and pylint modules (#3353) 2025-04-07 12:23:11 +10:00
Daniel Girtler f985da6f9a
Case insensitive sorting of profiles (#3329)
* Case insensitive sorting of profiles

* Update
2025-04-06 22:37:51 +02:00
mintsuki de3416f55b
Start the boot partition at 1MiB by default on MBR too (#3344) 2025-04-06 22:34:20 +02:00
Matteo da29b315a5
Update Italian translation (#3347)
Translated new strings
2025-04-05 22:55:23 +11:00
renovate[bot] 0ea1a48ead
fix(deps): update dependency ruff to v0.11.4 (#3346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-05 22:55:04 +11:00
renovate[bot] 790051d17a
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.4 (#3345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-05 22:54:50 +11:00
Daniel Girtler f5a16307bd
Add ruff auto sort imports hook (#3342) 2025-04-04 13:46:32 +02:00
correctmost 6cdf9d2889
Use curses.window instead of curses._CursesWindow in annotations (#3341) 2025-04-04 18:50:55 +11:00
correctmost 16d8b209fc
Enable possibly-undefined warnings in mypy (#3340)
This commit also fixes the two remaining possibly-undefined
warnings.
2025-04-04 18:50:29 +11:00
renovate[bot] bdc260e7e8
fix(deps): update dependency ruff to v0.11.3 (#3339)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-04 10:15:11 +11:00
renovate[bot] 34881fb860
fix(deps): update dependency pydantic to v2.11.2 (#3338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-04 10:14:34 +11:00
renovate[bot] 3c9eca8ef4
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.3 (#3337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-04 10:12:35 +11:00
mintsuki fa581021eb
Improve partition type detection, assignment, and misconfig handling (#3336) 2025-04-04 10:03:02 +11:00
mintsuki e6b0ebb5f3
Actually prevent installing if the config is invalid (#3335)
This also makes use of the previously unused _is_config_valid() method.
2025-04-04 09:46:55 +11:00
mintsuki 0f90d5991d
Use default EFI boot app path for Limine if installing to USB (#3331) 2025-04-04 09:43:07 +11:00
correctmost 1678fb5192
Use assert_never to fix some possibly-undefined mypy warnings (#3333) 2025-04-03 11:59:12 +11:00
wszqkzqk 5af2d2bb07
fix(installer): use platform.machine() for target architecture in grub-install (#3320)
Signed-off-by: Zhou Qiankang <wszqkzqk@qq.com>
2025-04-02 19:29:34 +11:00
EK ed0e9bd3c4
replace GTK theme package for Budgie build with an active one (#3327)
* replace GTK theme package with an active one

* add gtk theme to optdepends
2025-04-02 09:54:17 +02:00
utuhiro78 02c6fec0fc
Force to make pipewire symlinks (#3328) 2025-04-02 09:47:31 +02:00
utuhiro78 790a662ce3
Update Japanese translation (#3326) 2025-04-02 12:21:18 +11:00
neko_0xff 28f764fed1
i18n(zh-TW): re-Update base.po (20250401) (#3324)
* Update base.po

* Update base.po
2025-04-02 09:58:10 +11:00
Daniel Girtler 294eea0a1c
Fix 3298 - Add package gruops to selection (#3322) 2025-04-01 07:34:20 +11:00
summoner001 7513ef1cc8
Update hungarian translation (#3321)
Update hungarian translation
*Translating new strings
2025-03-31 22:09:41 +11:00
Anton Hvornum dc104e6967
Bumping version to 3.0.4 (#3319) 2025-03-31 09:51:40 +02:00
Luna Jernberg 5899a82cf2
Update base.po - Swedish (#3318)
Update Swedish translation for the new release
2025-03-31 09:02:05 +02:00
Daniel Girtler f837387d49
Fix 3315 - package loading (#3317) 2025-03-31 07:44:53 +02:00
Anton Hvornum bab3653144
Updated all the locales in prep for release (#3314) 2025-03-30 21:29:56 +02:00
Anton Hvornum f0159e1278
Fixed root_password and users[superuser=True] check (#3312) 2025-03-30 21:06:42 +02:00
Anton Hvornum 1fbb21f38a
Made sure to update the package databases before running --info (#3311) 2025-03-30 20:53:41 +02:00
renovate[bot] da6e2f3618
chore(deps): update pre-commit hook pycqa/flake8 to v7.2.0 (#3310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 10:32:58 +02:00
renovate[bot] b4bec7149d
fix(deps): update dependency flake8 to v7.2.0 (#3309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 09:53:49 +02:00
Lisichka d616de25f6
fix(hardware): Improve Nvidia driver installation (#3302)
Fixes a few issues related to the installation of Nvidia drivers.

1. No longer install the redudant nvidia-open package as it's provided
by the nvidia-open-dkms package.
2. Install vulkan-nouveau when selecting the open-source nouveau driver.
3. Install the libva-nvidia-driver package for hardware accelerated
video decoding.
2025-03-30 09:53:17 +02:00
mintsuki 9f7c3bab0f
Detect boot partition regardless of boot flags if mounted on /boot (#3303) 2025-03-29 21:17:33 +01:00
renovate[bot] c4bea107b0
fix(deps): update dependency pydantic to v2.11.1 (#3306)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-29 11:17:15 +11:00
mintsuki ea94535e26
Improve Limine without boot partition unsupported message (#3305) 2025-03-29 11:16:55 +11:00
renovate[bot] 21249ee2c7
fix(deps): update dependency pydantic to v2.11.0 (#3304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 11:43:36 +11:00
correctmost 4711f7abad
Fix Pydantic deprecation warnings (#3301)
This commit also enables mypy checks for deprecated calls.
2025-03-26 08:14:11 +11:00
correctmost d43482e585
Move run_custom_user_commands to fix an import cycle (#3254) 2025-03-26 08:13:18 +11:00
renovate[bot] cb42003b2b
chore(deps): update actions/setup-python digest to 8d9ed9a (#3300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-25 23:05:05 +11:00
Daniel Girtler 1b890492d0
Refactor code (#3247) 2025-03-25 09:49:18 +01:00
Efe TUROĞLU c15dbf0b0d
Added more Turkish translations (#3299) 2025-03-25 08:00:09 +11:00
Daniel Girtler 3d8ecf12ae
Fix 1591 - add user to wheel only when sudo (#3293) 2025-03-24 10:19:52 +01:00
Daniel Girtler 75b6bbaeff
Fix regression for NTP sync (#3294) 2025-03-24 10:18:52 +01:00
Daniel Girtler d3330ff3ab
Only allow ascii chars in input (#3244) 2025-03-24 10:17:37 +01:00
renovate[bot] 9ee9dcec4d
chore(config): migrate config renovate.json (#3297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-23 12:36:41 +11:00
correctmost 0e8d2c139b
Enable config migration PRs from Renovate (#3296)
This will help keep the config file updated with renamed options
and values.
2025-03-23 12:31:36 +11:00
renovate[bot] 4d37212a9a
chore(deps): pin dependencies (#3295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-23 10:16:59 +11:00
mintsuki c78f78fa9a
More properly support FAT12 and FAT16 ESPs (#3268)
FAT12 and FAT16 are also valid filesystems for ESPs, therefore, try to support them
2025-03-23 10:14:52 +11:00
correctmost 083194f0e8
Pin astral-sh/ruff-action to a specific commit (#3265)
The GitHub docs recommend pinning third-party actions to specific
commits for security hardening purposes.
2025-03-23 10:14:05 +11:00
codefiles 02729f0a50
Do not write passwords to /tmp (#3292) 2025-03-23 09:58:09 +11:00
codefiles 0e71bcff78
Do not write passwords to the command log (#3291) 2025-03-22 15:23:18 +11:00
codefiles 16a84ba662
Disable default credentials save (#3290) 2025-03-22 15:21:43 +11:00
codefiles d326ceff45
Add udev sync after LUKS encrypt (#3289) 2025-03-22 11:16:19 +11:00
renovate[bot] 54e7a94cf8
fix(deps): update dependency ruff to v0.11.2 (#3288)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-22 09:36:14 +11:00
renovate[bot] f6eb99d816
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.2 (#3287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-22 09:35:34 +11:00
codefiles 6615d18246
Dedent Limine hook (#3286) 2025-03-22 09:35:14 +11:00
neko_0xff edf8bf9b0a
Update base.po (#3285) 2025-03-21 22:12:08 +11:00
codefiles dcce29b91c
Refactor creation of BLS entries (#3283) 2025-03-21 22:08:21 +11:00
neko_0xff 51497bd079
re-update zh_TW base.po (#3282)
* Update base.po

* Update archinstall/locales/zh-TW/LC_MESSAGES/base.po

Co-authored-by: pan93412 <pan93412@gmail.com>

* Update base.po

---------

Co-authored-by: pan93412 <pan93412@gmail.com>
2025-03-21 09:16:43 +11:00
mintsuki 931f47a037
Limine: use UUID for accessing boot partition if not same as ESP (#3267) 2025-03-21 08:35:32 +11:00
renovate[bot] 26194d6b47
fix(deps): update dependency pylint to v3.3.6 (#3279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 08:30:51 +11:00
renovate[bot] 469e0f0a67
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.1 (#3278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 08:30:04 +11:00
codefiles cc6716be99
Disable irrelevant validation in mountpoint prompt (#3280) 2025-03-21 08:29:20 +11:00
renovate[bot] 4efc461b98
fix(deps): update dependency ruff to v0.11.1 (#3281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 08:28:26 +11:00
codefiles c8e2c3eca8
Fix loader configuration location (#3275) 2025-03-20 14:21:06 +11:00
codefiles 4ffff49d5f
Add XBOOTLDR to manual partitioning (#3273) 2025-03-20 14:19:28 +11:00
renovate[bot] 2ba40dd8e3
fix(deps): update dependency pre-commit to v4.2.0 (#3271)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 09:24:37 +11:00
Matteo 1891df74da
Update Italian translation (#3270)
-Translated new strings
-Improved some translation
2025-03-20 09:21:24 +11:00
mintsuki 48053fb822
Create proper EFI boot menu entry for Limine (#3263) 2025-03-20 09:18:47 +11:00
mintsuki f046495bda
Put Limine config and BIOS files in a limine/ subdir (#3264) 2025-03-20 09:14:41 +11:00
correctmost 87fb96d249
Fix grammar in existing-session error message (#3262) 2025-03-15 18:59:17 +11:00
correctmost aa444748b9
Replace an Any instance with TypedDict (#3261) 2025-03-15 09:37:32 +11:00
renovate[bot] ae19299e5f
fix(deps): update dependency ruff to v0.11.0 (#3260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 09:36:57 +11:00
renovate[bot] 4899d555eb
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.0 (#3259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 09:36:41 +11:00
correctmost 4938d79873
Fix a blanket type ignore comment (#3258)
This commit allows the ignore-without-code mypy warning to be
enabled. It also allows the pygrep-hooks ruff rules to be enabled.
2025-03-14 09:06:36 +11:00
correctmost b6983a2d5a
Enable additional mypy error codes (#3257) 2025-03-14 08:16:27 +11:00
renovate[bot] 933f2c8cd4
fix(deps): update dependency ruff to v0.10.0 (#3256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-14 08:16:05 +11:00
renovate[bot] 6c9462e9cf
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.10.0 (#3255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-14 08:15:49 +11:00
correctmost 83c3a76197
Enable import checks in __init__.py files with Pylint (#3253) 2025-03-13 15:17:45 +11:00
correctmost f100e5110d
Use __all__ in __init__.py files to fix unused-import warnings (#3252)
This commit allows ruff and flake8 ignores to be removed. It also
allows mypy to be run in strict mode by default.
2025-03-13 14:19:05 +11:00
correctmost e7ca4f56d5
Remove unneeded flake8 ignore for __init__.py files (#3250) 2025-03-13 08:28:44 +11:00
correctmost 057feacf0e
Remove unused stdlib imports from __init__.py files (#3249) 2025-03-13 08:28:24 +11:00
correctmost 269e6f8e54
Enable most flake8-pyi rules in ruff and fix a warning (#3248) 2025-03-13 08:27:53 +11:00
Daniel Girtler e46aa7c1b0
Add timestamp to logs (#3245) 2025-03-12 18:37:13 +11:00
correctmost 7f88e909c6
Remove unused _set_font code (#3243)
This code has been unused since commit dee792658.
2025-03-11 21:26:08 +11:00
correctmost 0b0dc76558
Fix SysCallError import cycle between exceptions.py and general.py (#3242)
This commit updates SysCallError to accept a worker log argument
instead of an entire SysCommandWorker.
2025-03-11 21:25:25 +11:00
correctmost dbf45e23cc
Introduce a string-specific version of clear_vt100_escape_codes (#3241)
This commit helps fix some existing type errors in the code. It
also helps avoid ~280,000 isinstance calls when opening the
additional packages menu.
2025-03-11 12:11:04 +11:00
correctmost 2819ea02b1
Speed up _count_wchars by avoiding east_asian_width calls (#3240)
This commit helps avoid ~390,000 duplicate east_asian_width calls
when opening the additional packages menu.
2025-03-11 12:10:33 +11:00
correctmost a5fcf21a12
Speed up _parse_package_output by caching normalized key strings (#3239)
This commit helps avoid ~260,000 chained strip(), lower(), and
replace() sequences.
2025-03-10 22:04:41 +11:00
correctmost 624143ed96
Speed up clear_vt100_escape_codes by caching an encode() result (#3238)
This commit helps avoid ~280,000 redundant encode() calls when
opening the additional packages menu.
2025-03-10 22:03:29 +11:00
Daniel Girtler 55941cc40e
Fix package text (#3236) 2025-03-10 22:02:40 +11:00
Daniel Girtler 12562f4cae
Add newline after countdown (#3237) 2025-03-10 22:02:26 +11:00
Carlo Teubner 24f479892f
guided.rst: fix formatting & typos (#3235) 2025-03-09 20:57:56 +11:00
renovate[bot] c9ebf3c881
fix(deps): update dependency pylint to v3.3.5 (#3234)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-09 20:53:21 +11:00
correctmost 6a90760e67
Clean up most no-implicit-reexport warnings from mypy (#3233)
This makes it easier to run mypy --strict from the command line
and should hopefully make it easier to clean up import cycles in
future commits.
2025-03-09 19:50:56 +11:00
renovate[bot] 01f1cd314f
fix(deps): update dependency ruff to v0.9.10 (#3231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-08 10:02:29 +11:00
renovate[bot] cdf846eee8
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.10 (#3230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-08 10:02:13 +11:00
Yaron Shahrabani cf75a38a28
Update Hebrew translation. (#3229) 2025-03-06 21:47:33 +11:00
correctmost 54d426e54c
Fix Pyright warning with urllib.parse (#3228) 2025-03-06 18:23:43 +11:00
correctmost 9a3ec27645
Fix repositories typo in debug message (#3227) 2025-03-06 18:23:18 +11:00
correctmost 49347c2f82
Fix falsy-dict-get-fallback ruff warning (#3226) 2025-03-06 13:05:59 +11:00
Daniel Girtler 697ccd1ac5
Fix 2379 - Mirror and region definitions (#3223)
* Fix 2379 - Mirror and repository settings

* Fix alignment
2025-03-05 22:19:50 +11:00
correctmost 5f7b16b152
Remove some Any instances from the codebase (#3221) 2025-03-03 08:24:36 +11:00
renovate[bot] d6ee5a66b2
fix(deps): update dependency pytest to v8.3.5 (#3220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 07:33:59 +11:00
correctmost d9ac33dbe8
Fix a non-pep695-generic-function ruff warning (#3218) 2025-03-02 22:01:56 +11:00
correctmost ddbd465a34
Remove python-simple-term-menu installation from build_iso.sh (#3217)
The dependency is no longer needed as of 0f2e0095.
2025-03-02 10:43:46 +11:00
Alexmelman88 1e830c16a6
Update Russian translation (#3216) 2025-03-02 10:43:10 +11:00
correctmost 70c6a10c3c
Add missing typing.override annotation reported by Pyright (#3215) 2025-03-02 10:41:21 +11:00
correctmost f94e8b8984
Fix Pyright warnings with importlib.util (#3214) 2025-03-02 10:40:53 +11:00
correctmost 1c6085f86c
Fix Pyright warning with curses.textpad (#3213) 2025-03-02 10:40:20 +11:00
renovate[bot] 4f72c0177b
fix(deps): update dependency ruff to v0.9.9 (#3210)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-02 10:39:37 +11:00
renovate[bot] c2672aaa79
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.9 (#3209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-02 10:39:09 +11:00
mintsuki 98d604d097
Do not enable UKI at archinstall start if using BIOS (#3208) 2025-03-02 10:38:38 +11:00
mintsuki 645e8d0144
Enable UKI support for the Limine bootloader option (#3207) 2025-03-02 10:33:07 +11:00
mintsuki 0b551d729e
Do not force install GRUB on BIOS when not chosen as bootloader (#3206) 2025-03-02 10:22:27 +11:00
correctmost 142883c9c3
Fix typing syntax for multiple string literals (#3212) 2025-03-01 17:20:42 +11:00
correctmost d6ea7b011f
Fix a used-dummy-variable ruff warning (#3203) 2025-02-26 07:35:25 +11:00
Daniel Girtler 1ddc74af21
Remove debug output for all commands (#3201) 2025-02-25 11:20:43 +01:00
Daniel Girtler 245b84194a
Remove duplicate loading of archinstall (#3200) 2025-02-25 20:31:38 +11:00
Daniel Girtler 74b41dea96
Add additional package selector (#3196) 2025-02-24 17:57:26 +11:00
codefiles 4a477351e0
Fix manual partitioning device wipe status (#3198) 2025-02-24 12:18:14 +11:00
codefiles 4b07f8a3ae
Rework default partition table (#3197) 2025-02-23 21:16:11 +01:00
Daniel Girtler 8b375c97a5
Fix version parsing for local branches (#3190)
* Fix version parsing for local branches

* Fix tests

* Fix tests
2025-02-23 09:44:25 +01:00
codefiles a51475e0ed
Refactor default partition table (#3194) 2025-02-23 18:51:25 +11:00
codefiles d69441a2da
Fix typing for enc_conf parameter (#3195) 2025-02-23 18:50:32 +11:00
codefiles 201968cf2e
Show device wipe status in Info for Partitioning (#3193) 2025-02-23 10:20:37 +11:00
codefiles b83bc79d91
Fix MBR conditional (#3192) 2025-02-23 10:20:06 +11:00
summoner001 c364917324
Update hungarian translation (#3191)
Fix typos with Lokalize and PO-Edit.
2025-02-22 23:02:54 +11:00
correctmost 4c2ec5deba
Enable --strict-bytes checks in mypy (#3189)
Strict-bytes checks will be enabled by default in mypy 2.0, so this
commit will help prevent violations from being introduced into the
codebase.
2025-02-22 14:24:52 +11:00
renovate[bot] 957fa06ade
fix(deps): update dependency ruff to v0.9.7 (#3187)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-21 08:14:20 +11:00
renovate[bot] 81edc8784a
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.7 (#3186)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-21 08:14:05 +11:00
Moritz 3f762feced
Update base.po (#3184)
-Translation Update
2025-02-20 07:37:13 +11:00
Daniel Girtler b57f7f91cf
Integrate new arguments data structure (#3167)
* Integrate new args dataclass

* Integrate args

* Update

* Update

* Update

* Update
2025-02-20 07:35:59 +11:00
Celestial.y a9ae064359
Improve, fix and complete zh-CN translation (#3180)
* Minor fixing README for translation.

* Improve/fix/add translation for zh-CN

* Compile translation
2025-02-19 08:04:24 +11:00
renovate[bot] c00f609c1b
fix(deps): update dependency flake8 to v7.1.2 (#3178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 17:06:43 +11:00
renovate[bot] 7347259a4b
chore(deps): update pre-commit hook pycqa/flake8 to v7.1.2 (#3177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 17:06:29 +11:00
Odyssey f73800c6dd
Update Catalan translation (#3175) 2025-02-14 12:21:39 +11:00
Luna Jernberg 579f2ba498
Update base.po (#3171)
Update Swedish translation
2025-02-11 18:25:20 +11:00
renovate[bot] 604884fa07
fix(deps): update dependency ruff to v0.9.6 (#3170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 18:24:59 +11:00
renovate[bot] ef5f61d5df
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.6 (#3169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 18:24:44 +11:00
Korsil Vladivostok bcbdf2346b
Update base.po (#3164)
* Update base.po

* Update base.po

Latest review made at base.po pt-br file before Pull Request
2025-02-08 11:54:04 +11:00
renovate[bot] 9e88cd0cc8
fix(deps): update dependency ruff to v0.9.5 (#3162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-08 11:53:12 +11:00
walken 85d89c7b33
Czech localization update (#3163) 2025-02-08 11:52:16 +11:00
renovate[bot] e489f7f33d
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.5 (#3161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-08 11:51:43 +11:00
renovate[bot] 889f0ad5ae
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.15.0 (#3159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 19:32:42 +11:00
renovate[bot] 8c4634c4d6
fix(deps): update dependency mypy to v1.15.0 (#3158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-05 17:00:51 +11:00
utuhiro78 419b320e9e
Update Japanese translation (#3157) 2025-02-02 10:14:49 +11:00
correctmost fb3dd7da4c
Use the official ruff GitHub action instead of custom code (#3156)
This speeds up PR checks and reduces network I/O.
2025-02-01 17:04:28 +11:00
summoner001 94ae4e3dd7
Update hungarian translation (#3153)
Translate new strings and add minor fixes.
2025-02-01 08:30:56 +11:00
renovate[bot] 77059e8819
fix(deps): update dependency ruff to v0.9.4 (#3151)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 17:08:44 +11:00
renovate[bot] 40b6c160e3
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.4 (#3150)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 17:07:58 +11:00
DrakeCoding 71a6c84df0
Fixed grammar under function "get_arguments" (#3152) 2025-01-31 14:24:51 +11:00
Franco Castillo ae3f59ccae
Update .po, base.pot and archinstall/locales/es/LC_MESSAGES/base.mo files. (#3149)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2025-01-31 07:25:44 +11:00
uday e110492b56
Replace Sway with Hyprland in profile seat selection (#3145) 2025-01-29 08:15:31 +11:00
correctmost 7b0efd35f0
Remove unneeded mypy override for archinstall.scripts (#3147)
The override is no longer needed after commit fc63d45fe6.
2025-01-29 08:14:45 +11:00
renovate[bot] 4f53961392
fix(deps): update dependency pylint to v3.3.4 (#3146)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 07:33:20 +11:00
renovate[bot] 0f6f5dae86
fix(deps): update dependency pydantic to v2.10.6 (#3143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 10:04:15 +11:00
Wise 0b89966720
Update missing translation strings for TR (#3142) 2025-01-24 12:32:06 +11:00
renovate[bot] 59b90d65a1
fix(deps): update dependency ruff to v0.9.3 (#3141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 09:58:55 +11:00
renovate[bot] 88eedf04aa
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.3 (#3140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 09:58:40 +11:00
codefiles f05af2e6c4
Consolidate preparations for lvm and partitions (#3135) 2025-01-23 17:50:35 +11:00
Anton Hvornum 6653a4e5a9
Removed requirement for root for pylint (#3138) 2025-01-22 19:46:44 +01:00
Anton Hvornum 7ccc288b14
Bumping to version 3.0.2 (#3137) 2025-01-22 19:03:33 +01:00
Daniel Girtler 6c6ceef6f2
Fix remote mirrorlist parsing (#3136) 2025-01-22 10:04:59 +01:00
correctmost 8aa479bf3e
Use float instead of int for pre-validated mirror score fields (#3079)
This fixes an unnecessary-round ruff warning in validate_score.
2025-01-22 18:54:32 +11:00
Anton Hvornum 6d371da5df
Remove reiserfs as it's been deprecated since 2022 (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a452c4eb404df8a7f2a79a37ac77b90b6db1a2c9) and been removed in the kernel as of 2024-11-21 (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c01f664e4ca210823b7594b50669bbd9b0a3c3b0) (#3134) 2025-01-21 18:53:55 +01:00
Daniel Girtler 4aa8317b7c
Add skip for partitioning menus (#3121) 2025-01-21 18:42:16 +01:00
Daniel Girtler 985775b143
Fix misaligned table headers (#3120) 2025-01-21 18:41:47 +01:00
Daniel Girtler 64f08cc890
Fix scrolling in console (#3113) 2025-01-21 18:41:23 +01:00
Daniel Girtler fb159a8255
Fix 3081 - Local mirrorlist parsing bug (#3104)
* Fix 3081 - shortcircuit on empty mirror options

* Update

* Update
2025-01-21 18:40:54 +01:00
codefiles c9bdaa209e
Replace list with link to contributors page (#3102) 2025-01-21 12:53:36 +01:00
Daniel Girtler fc63d45fe6
Remove deprecated swiss config (#3042)
* Remove deprecated swiss config

* Update
2025-01-21 12:42:31 +01:00
renovate[bot] 2bd4344d43
fix(deps): update dependency pre-commit to v4.1.0 (#3131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 12:17:25 +11:00
codefiles ee69e19f8b
Refactor preparations for fs type and encryption (#3130) 2025-01-20 20:22:43 +11:00
codefiles 19c390e072
disk: add support for creating swap partitions (#3129) 2025-01-18 16:48:48 +11:00
renovate[bot] 8d923ff09e
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.2 (#3127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 09:28:34 +11:00
renovate[bot] 99fe401979
fix(deps): update dependency ruff to v0.9.2 (#3125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 09:28:17 +11:00
correctmost c94d0a56d9
Enable most flake8-commas rules in ruff and fix warning (#3122) 2025-01-15 16:30:13 +11:00
codefiles 41215741f0
disk: add udev sync after partitioning (#3119) 2025-01-14 14:23:25 +11:00
codefiles d5bbda1e2f
Refactor cmd path check using startswith() (#3117) 2025-01-14 14:22:47 +11:00
codefiles b7a5d00676
Remove superfluous /usr/bin/ from commands (#3115) 2025-01-13 14:42:39 +11:00
correctmost c0a2de4330
Enable the set-attr-with-constant ruff rule and fix warnings (#3114) 2025-01-12 15:02:06 +11:00
correctmost fd77b5d4ce
Enable the strip-with-multi-characters ruff rule (#3112)
Commit 4212357c6 fixed the remaining warnings.
2025-01-12 12:39:10 +11:00
correctmost 457e790bd0
Enable most flake8-bugbear rules in ruff (#3110) 2025-01-12 11:51:06 +11:00
correctmost 4212357c6f
Use removeprefix/removesuffix instead of incorrect lstrip/rstrip calls (#3109) 2025-01-12 11:50:09 +11:00
codefiles 6681501904
Fix Btrfs subvolume mount options (#3108) 2025-01-12 11:46:34 +11:00
correctmost 47736c4060
Avoid reassigning a parameter value to fix Pyright warnings (#3106) 2025-01-12 11:45:41 +11:00
renovate[bot] df2791295d
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.1 (#3100)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-12 11:30:59 +11:00
codefiles 3409f84e79
Use list comprehension (#3105) 2025-01-12 11:30:27 +11:00
Melroy van den Berg 7202d964dd
Make libera.chat irc link clickable (#3099)
Fix libera.chat link in markdown
2025-01-12 11:27:30 +11:00
correctmost e7f2a8c203
Fix some mypy warnings in archinstall/lib/ (#3103) 2025-01-11 15:44:43 +11:00
codefiles 22b410d082
Change to import Path for consistency (#3101) 2025-01-11 15:42:50 +11:00
Melroy van den Berg a575ac2c47
Use Matrix channel invite link (#3098) 2025-01-11 15:40:13 +11:00
renovate[bot] 39c7eda352
fix(deps): update dependency ruff to v0.9.1 (#3097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 15:37:33 +11:00
codefiles 700294f19a
disk: validate first partition start (#3096) 2025-01-10 20:12:47 +11:00
renovate[bot] ad015033b8
fix(deps): update dependency ruff to v0.9.0 (#3095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 08:21:18 +11:00
renovate[bot] cb414c1c5b
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.9.0 (#3093)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 08:19:37 +11:00
renovate[bot] 2778ca60f6
fix(deps): update dependency pydantic to v2.10.5 (#3092)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 08:19:21 +11:00
codefiles c081f77d57
pacman/repo: use StrEnum (#3088) 2025-01-08 12:13:11 +11:00
correctmost 10a12dc855
Fix mutable-class-default ruff warnings (#3087) 2025-01-08 10:23:07 +11:00
renovate[bot] 34ef6527ce
fix(deps): update dependency pylint-pydantic to v0.3.5 (#3086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 07:52:24 +11:00
codefiles 6398f6852d
audio: use StrEnum (#3084) 2025-01-08 07:45:19 +11:00
correctmost 40210f8733
Fix used-dummy-variable ruff warnings (#3083) 2025-01-08 07:44:48 +11:00
codefiles 9163e8c84c
disk: rework manual partitioning (#3071)
* disk: rework manual partitioning

* disk: fix end alignment

* disk: validate config

* test: fix disk config partition overlap
2025-01-08 07:44:03 +11:00
correctmost 25b7bbb0ed
Add if-key-in-dict-del ruff rule to ignore list (#3082)
The rule is concerned with code style rather than correctness or
performance.
2025-01-08 07:41:25 +11:00
correctmost e712144e5d
Fix falsy-dict-get-fallback ruff warnings (#3077) 2025-01-08 07:38:40 +11:00
codefiles fd91cbaac1
pacman/repo: update enum members to uppercase (#3076) 2025-01-08 07:37:43 +11:00
codefiles fa515dfdc6
general: remove superfluous callbacks variable (#3075) 2025-01-08 07:36:12 +11:00
renovate[bot] 984fa6af46
fix(deps): update dependency ruff to v0.8.6 (#3074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 07:34:31 +11:00
renovate[bot] 7cba07b730
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.8.6 (#3073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 07:34:12 +11:00
renovate[bot] f1f08c811b
fix(deps): update dependency ruff to v0.8.5 (#3064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 15:52:58 +11:00
codefiles 6dab4650fa
audio: capitalize enums (#3067) 2025-01-03 15:24:10 +11:00
renovate[bot] cb6417be6e
fix(deps): update dependency mypy to v1.14.1 (#3057)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 14:13:00 +11:00
renovate[bot] 77f5b075b6
fix(deps): update dependency pylint to v3.3.3 (#3046)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 14:12:46 +11:00
renovate[bot] 82bcb59044
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.14.1 (#3062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 13:56:33 +11:00
renovate[bot] 9d1a47df13
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.8.5 (#3063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 13:56:16 +11:00
codefiles 547ce8033d
audio: remove incorrect use of dataclass (#3058) 2025-01-03 13:44:25 +11:00
codefiles 18ef7fd469
Use Path.chmod() (#3051) 2025-01-03 13:41:41 +11:00
codefiles 459b84b6fe
Rework mount point argument (#3041) 2024-12-23 11:04:16 +11:00
codefiles d5c5b60d5c
Rework profiles path (#3040) 2024-12-23 09:08:48 +11:00
codefiles 5f8cdcb39b
disk: change from_partition() parameters (#3039) 2024-12-23 09:08:02 +11:00
renovate[bot] a8c2a5a54f
fix(deps): update dependency mypy to v1.14.0 (#3036)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-22 10:38:20 +11:00
renovate[bot] 2996e0ae14
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.14.0 (#3037)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-22 10:37:58 +11:00
codefiles 24ff132f93
general: remove unspecified exception handling (#3035) 2024-12-22 10:21:56 +11:00
codefiles c978c841de
disk: move ENC_IDENTIFIER (#3034) 2024-12-22 10:21:21 +11:00
codefiles 9b5fd6bad5
mirrors: use pydantic model_validate_json() (#3033) 2024-12-20 17:26:45 +11:00
codefiles 367c8d781c
general: rework environment_vars (#3032) 2024-12-20 17:26:11 +11:00
codefiles f685849b8d
luks: remove superfluous _mapper_dev (#3031) 2024-12-20 17:25:12 +11:00
renovate[bot] 75459f4ac2
Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.4 (#3030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 12:01:27 +11:00
renovate[bot] 5a82ce7719
Update dependency ruff to v0.8.4 (#3029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 12:01:09 +11:00
renovate[bot] 05441a4c11
Update dependency pydantic to v2.10.4 (#3026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 17:50:14 +11:00
codefiles ae51af67a3
Remove disk retries and timeouts (#3025) 2024-12-19 17:49:44 +11:00
Mohamed E d2ef961b32
[Feat] Wayfire support (#3020)
* add profile

* fix pylint
2024-12-18 07:04:48 +11:00
lazysixoeight 5288e246ec
Specified GNOME as an acronym (#3023) 2024-12-16 20:49:42 +11:00
renovate[bot] fb27fbdfa8
Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.3 (#3019)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-15 09:18:28 +11:00
renovate[bot] 7b09c5a7ca
Update dependency ruff to v0.8.3 (#3018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-15 09:18:03 +11:00
Daniel Girtler 1ff04c6df0
Use ctrl+h for help menu trigger (#2996) 2024-12-12 09:43:54 +01:00
renovate[bot] 27df486dda
Update dependency pylint-pydantic to v0.3.4 (#3017)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 15:54:31 +11:00
codefiles 4dccd54cbd
Replace commonprefix() with commonpath() (#3016) 2024-12-09 13:25:08 +11:00
codefiles 3716df9bb7
Fix pre-mounted Btrfs subvolumes root detection (#3014) 2024-12-09 10:38:16 +11:00
codefiles 4592280baa
Refactor set_mirrors() (#3011) 2024-12-08 15:07:17 +11:00
codefiles ae3b0f8d75
Remove superfluous try in get_btrfs_info() (#3010) 2024-12-08 09:01:51 +11:00
Daniel Girtler 1d278f8abd
Fix 2991 - Restructure the mirror list handling (#3007)
* Fix 2991 - mirror configuration

* Update

* Update

* Update
2024-12-08 08:58:16 +11:00
codefiles 8f2bf2b737
Refactor set_hostname() (#3009) 2024-12-08 08:57:31 +11:00
codefiles 3400991c9b
Refactor enable_sudo() (#3008) 2024-12-08 08:56:58 +11:00
codefiles 19a0d49509
Update partition flags value (#3006) 2024-12-07 11:48:49 +11:00
codefiles 0a9fae2e57
Replace deprecated pydantic parse_raw() (#3004) 2024-12-07 10:20:23 +11:00
renovate[bot] fbdb3c4f37
Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.2 (#3002)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 17:17:49 +11:00
renovate[bot] 2d4128fd84
Update dependency ruff to v0.8.2 (#3001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 17:17:03 +11:00
renovate[bot] 89cd718462
Update dependency pydantic to v2.10.3 (#2999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-04 21:05:29 +11:00
zbik 3905bfe31a
Update plasma.py (#2998)
changed kwrite to kate as the two packages merged together in 2022 and removed egl-wayland (why was it there in the first place?)
2024-12-03 20:03:42 +11:00
renovate[bot] 03e41d3721
Update dependency pylint to v3.3.2 (#2992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 18:18:21 +11:00
renovate[bot] 7d0acbcc6d
Update dependency pylint-pydantic to v0.3.3 (#2995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 18:17:52 +11:00
renovate[bot] ac75dda390
Update dependency pytest to v8.3.4 (#2989)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 13:12:05 +11:00
Michael Ziminsky (Z) 256f206b9e
btrfs improvements and fixes (#2970) 2024-12-01 18:35:30 +11:00
correctmost 60842bd1cf
Enable bare-except linter rules and fix warnings (#2988) 2024-12-01 18:34:51 +11:00
correctmost 0bc2ad700f
Enable the "unreachable" pylint warning and remove unused code (#2987)
The os.fsync call causes an "invalid argument" OSError when it
actually runs, so it has been removed altogether.

Closes #2773
2024-12-01 18:34:00 +11:00
correctmost 507e4322d6
Remove unused SysCommand.__json__ method (#2986) 2024-12-01 18:33:22 +11:00
correctmost fcf9658f8f
Disable some rules that warn when using ruff's preview mode (#2985) 2024-12-01 17:50:33 +11:00
correctmost 8fa5ec15af
Enable the yield-in-for-loop ruff rule and fix warnings (#2984) 2024-12-01 17:50:11 +11:00
correctmost af043afa88
Enable the unnecessary-lambda pylint rule and fix warnings (#2983) 2024-12-01 17:44:39 +11:00
correctmost e0db642366
Fix "selction" typo (#2981) 2024-12-01 17:43:29 +11:00
correctmost b49b5bfa11
Fix "Pssword" typo (#2980) 2024-12-01 17:42:33 +11:00
correctmost 760963f7a6
Enable the unused-variable pylint rule and fix warnings (#2978) 2024-12-01 17:41:34 +11:00
correctmost f578ac4ade
Remove unused argument from GlobalMenu._get_menu_options (#2977) 2024-12-01 17:41:03 +11:00
correctmost eacc28d577
Remove unused argument from AbstractCurses._confirm_interrupt (#2976) 2024-12-01 11:13:04 +11:00
correctmost a8fad93ae0
Add missing typing.override annotations reported by Pyright (#2974)
This commit also removes duplicated code in Viewport._replace_str.
2024-12-01 11:01:16 +11:00
correctmost e33ac034dc
Replace deprecated stage name in pre-commit config (#2975)
This commit fixes the following warning:

"top-level `default_stages` uses deprecated stage names (commit)
which will be removed in a future version."
2024-12-01 11:01:02 +11:00
correctmost 6a6642a9c1
Replace some Any instances with specific type hints (#2973) 2024-12-01 09:17:10 +11:00
correctmost 0a1d036750
Remove unused VersionDef class (#2972)
This allows the comparison-with-callable pylint rule to be enabled.
2024-12-01 08:40:38 +11:00
renovate[bot] cdd9e0cbcc
Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.1 (#2956)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 22:57:01 +11:00
correctmost 007f2ff797
Use TypedDict to annotate disk-related serializations (#2935) 2024-11-30 22:56:46 +11:00
correctmost 11f8490b59
Enable the bad-indentation pylint rule and fix space indentations (#2968) 2024-11-30 22:54:53 +11:00
correctmost 1e6492d34a
Enable the printf-string-formatting ruff rule and fix warnings (#2967) 2024-11-30 22:54:20 +11:00
correctmost b0222111f5
Enable the redefined-builtin pylint rule and fix warnings (#2966) 2024-11-30 22:53:54 +11:00
renovate[bot] 6f42eba2f4
Update dependency ruff to v0.8.1 (#2955)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 22:52:03 +11:00
correctmost 604526c3c8
Enable the f-string ruff rule and fix warnings (#2965) 2024-11-30 20:03:09 +11:00
correctmost d4c04a83a3
Enable the redefined-outer-name pylint rule and fix warnings (#2964) 2024-11-30 20:01:38 +11:00
correctmost 544400606f
Enable mypy checks for tests/ files (#2963) 2024-11-30 20:00:35 +11:00
correctmost 2825818af6
Enable useless-parent-delegation pylint rule and fix warnings (#2962) 2024-11-30 19:59:28 +11:00
correctmost 45bc9c2e65
Use the ruff version specified in pyproject.toml for CI checks (#2960)
Previously, the ruff system package was used, which could lag
behind the PyPI version.
2024-11-30 19:58:10 +11:00
correctmost 80eebcff4f
Enable the explicit-f-string-type-conversion rule and fix warnings (#2954) 2024-11-29 06:43:13 +11:00
renovate[bot] 7b291a6681
Update dependency pydantic to v2.10.2 (#2942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 22:45:34 +11:00
correctmost e3ff449bc4
Enable the Ruff-specific ruleset (#2951) 2024-11-28 20:15:30 +11:00
correctmost f314b7be54
Replace some Any instances with specific type hints (#2950) 2024-11-28 20:14:58 +11:00
renovate[bot] 8646c9aac2
Update dependency pytest to v8 (#2941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 18:05:12 +11:00
correctmost e49a679fb8
Enable pytest test runs on CI (#2947)
This commit also fixes fixture and test issues that caused failures.
2024-11-27 17:42:22 +11:00
correctmost a28fb27a7a
Use human-friendly names in mypy and Pylint ignore directives (#2946) 2024-11-27 06:48:38 +11:00
correctmost 7bdef2f017
Fix mypy warnings in tests/test_args.py (#2945) 2024-11-27 06:46:17 +11:00
Daniel Girtler 198efb5f53
Fix 2916 - Reinstate prompt in list menus (#2940)
* Reinstate prompt in list menus

* Ruff
2024-11-26 11:10:48 +01:00
Daniel Girtler e51f7adf21
Dataclasses for args and config (#2936)
* Introduce dataclass for arguments and configuration

* Update

* Update
2024-11-26 11:08:36 +01:00
correctmost f2bc5ff280
Remove unused Selector class (#2938)
The code is unused as of 88b91ae201.
2024-11-26 12:22:16 +11:00
correctmost ee2ed3fe54
Start using typing.override to annotate overridden methods and properties (#2934) 2024-11-25 19:51:16 +11:00
correctmost 8d807c08ee
Use precise type hints for most DeferredTranslation references (#2929)
The remaining "_: Any" instances will require accompanying code
changes.
2024-11-25 18:49:22 +11:00
correctmost 46e4e28294
Bump the minimum Python version to 3.12 (#2933) 2024-11-25 18:45:50 +11:00
correctmost 6c37ba68e2
Remove unused singleton utility code (#2931) 2024-11-25 18:45:01 +11:00
correctmost 9cabc981b2
Remove python-simple-term-menu installations from CI workflows (#2932)
The dependency is no longer needed as of 0f2e0095.
2024-11-25 08:26:09 +01:00
correctmost d89ae04e0e
Delete ignore directive for Ruff rule that was removed (#2928)
The unpacked-list-comprehension rule was removed in Ruff 0.8.0.
2024-11-25 14:25:53 +11:00
Anton Hvornum aa80f8cf41
Bump to version 3.0.1 (#2920) 2024-11-23 11:45:32 +01:00
codefiles 7eb1f47084
Use binary units (#2917) 2024-11-23 08:53:32 +01:00
Daniel Girtler 5c83e230df
Fix 2915 - Reinstate partition information in device selection (#2919)
* Fix regresion in device selection - show partition info

* Fix linting
2024-11-23 08:52:53 +01:00
ots25 41600aefa4
Add files via upload (#2912)
Update  and fix Arabic translation
2024-11-23 08:19:36 +11:00
renovate[bot] 4d1318e71a
Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.0 (#2911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-22 22:15:27 +11:00
renovate[bot] 4cbf0f49db
Update dependency ruff to v0.8.0 (#2910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-22 22:15:11 +11:00
renovate[bot] 1579483193
Update dependency pydantic to v2.10.1 (#2901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-22 22:05:11 +11:00
Thierry M b2b3a728a0
Update base.po (French) (#2907)
Hello,
Here is the update on the French language.
Best regards,
Roxfr
2024-11-22 19:07:11 +11:00
codefiles f5447e91c4
Increase suggested root partition size (#2905) 2024-11-22 07:23:21 +11:00
codefiles bda0752eec
Change partition flag name Boot -> BOOT (#2903) 2024-11-21 12:22:50 +11:00
codefiles 7fd726f03f
Fix log disk states (#2902) 2024-11-21 10:50:43 +11:00
utuhiro78 1464806f18
Update Japanese translation (#2900) 2024-11-21 09:01:09 +11:00
codefiles 0eac05cecc
Add linux-home partition flag (#2898) 2024-11-20 15:32:29 +01:00
codefiles 611af783aa
Fix partition flag value (#2897) 2024-11-20 14:49:34 +01:00
codefiles 83d222cec6
Rework partition flag (#2895) 2024-11-20 07:55:09 +01:00
codefiles 3453816b38
Fix hostname None (#2893) 2024-11-20 16:32:05 +11:00
walken f827851560
Czech localization update (#2891) 2024-11-20 13:04:56 +11:00
Hugo Carvalho 1e3fb257a2
Update portuguese translation (#2886) 2024-11-19 23:41:57 +01:00
codefiles 4f704b8501
Refactor partition type GUID (#2890) 2024-11-19 23:41:27 +01:00
Daniel Girtler 20cc124a6d
Fix seat-access selection (#2885)
* Fix seat-access selection

* Format import
2024-11-19 14:50:16 +01:00
BringBack1800s 69b443c1ad
Update hyprland.py (#2879) 2024-11-19 18:49:16 +11:00
summoner001 68a221ea1b
Update hungarian translation (#2884)
Fixing the „custom” word coherence.
Fixing mispelled „zram” -> zRam
2024-11-19 18:48:41 +11:00
codefiles f19f35897b
Add _get_key_file() (#2882) 2024-11-19 18:37:24 +11:00
codefiles 594ca3504f
Fix btrfs skip mount options (#2881) 2024-11-19 18:36:31 +11:00
Odyssey f034c3693c
Update Catalan translation (#2883) 2024-11-19 18:31:11 +11:00
correctmost f3f7700945
Remove unused Any instances from TYPE_CHECKING blocks (#2878)
This will make it easier to start removing more Any instances from
the codebase.
2024-11-19 18:30:41 +11:00
correctmost 3255744278
Sort and format remaining imports (#2877)
This commit also enables isort rules in the Ruff config.
2024-11-19 11:18:47 +11:00
correctmost 955b2cfc3e
Sort and format imports in lib/disk/ (#2875) 2024-11-18 23:29:56 +01:00
correctmost b3421c0a82
Sort and format imports in scripts/, tui/, and top-level files (#2874) 2024-11-19 08:16:38 +11:00
correctmost 0aa6dcc78e
Sort and format imports in examples/ and default_profiles/ (#2873) 2024-11-19 07:54:17 +11:00
Anton Hvornum d3fa738bdd
Changed the invitation link to discord to go from #general to #help channel, as it's not always given how discord works (#2870) 2024-11-19 07:51:33 +11:00
correctmost 7776f82cbc
Reduce the max line length from 220 to 160 by wrapping some lines (#2867)
This will make it easier to auto-format import sections.
2024-11-19 07:50:53 +11:00
utuhiro78 89425912b9
Update Japanese translation (#2869) 2024-11-18 22:01:18 +11:00
correctmost 80b4dab092
Remove remaining Optional and Union usage from the codebase (#2868) 2024-11-18 20:59:08 +11:00
correctmost 97d6d84c3c
Replace most Union[] instances with pipe syntax (#2843) 2024-11-18 20:07:14 +11:00
correctmost 9626965982
Remove remaining deprecated typing.Dict and typing.List usage (#2859) 2024-11-18 20:02:35 +11:00
Daniel Girtler 41e5a0fcfd
Fixes 2849 (#2862) 2024-11-18 09:54:29 +01:00
Daniel Girtler f648eb6d66
Fix 2860 (#2863) 2024-11-18 09:52:32 +01:00
correctmost d79e082837
Remove outdated formatting note from contributors doc (#2857)
Binary operators are formatted consistently as of 6102a08c.
2024-11-18 09:04:44 +11:00
codefiles 6ca80d1fd7
Fix partition creation size end (#2858) 2024-11-18 09:04:12 +11:00
codefiles 8fc3dc4358
Parse lsblk data with pydantic (#2775) 2024-11-18 07:42:09 +11:00
Franco Castillo 74fd463873
Update Spanish translation (#2853) 2024-11-18 07:22:21 +11:00
summoner001 0c9064d6ad
Update Hungarian Translation (#2852)
Translate new strings
2024-11-18 07:22:04 +11:00
codefiles 80bba6c52b
Fix partition creation default size (#2856) 2024-11-18 07:20:12 +11:00
codefiles fad97e8465
Fix EditMenu input text (#2855) 2024-11-18 07:18:42 +11:00
utuhiro78 5aa73a5edc
Update Japanese translation (#2854) 2024-11-18 07:17:49 +11:00
Luna Jernberg 242ecc1ed2
Update base.po (#2848)
Update Swedish translation for 3.0
2024-11-17 12:07:38 +01:00
Anton Hvornum c16df5d80e
Bump to version 3.0.0 (#2847) 2024-11-17 10:02:51 +01:00
codefiles 68e2d8c3fa
Fix _mount_luks_partition() (#2838) 2024-11-17 09:40:52 +01:00
correctmost 80ad332d31
Enable multiple-statements-on-one-line-colon rule and fix warnings (#2845) 2024-11-17 19:39:14 +11:00
correctmost f783042e28
Only skip unused-import checks in __init__.py files (#2844)
This will help catch unused imports in other files when using Ruff.
2024-11-17 12:08:51 +11:00
correctmost f13f3d53b6
Enable arguments-renamed Pylint rule and fix warnings (#2842) 2024-11-17 11:03:18 +11:00
correctmost 0dc77f8e8a
Replace more Optional instances with union syntax in lib/ (#2841) 2024-11-17 11:01:57 +11:00
correctmost 57e4362a49
Remove unreachable return statement in _handle_interrupt (#2840) 2024-11-17 11:00:16 +11:00
correctmost 6383b5e82f
Replace Optional with union syntax in scripts/ and tui/ (#2839) 2024-11-17 09:49:10 +11:00
correctmost 25172bd0f8
Start replacing Optional with union syntax in lib/ (#2837) 2024-11-17 09:03:01 +11:00
correctmost 8cda091e6d
Start replacing Optional with union syntax (UP007 rule in Ruff) (#2836) 2024-11-17 09:02:08 +11:00
Anton Hvornum 58e4a94fdf
Converting systemctl call to a simple ln call for debus reasons (#2835)
* Converting systemctl call to a simple ln call for debus reasons #2764
2024-11-16 18:55:21 +01:00
correctmost 87fe1dbd8a
Enable most of the pyupgrade checks in Ruff (#2834) 2024-11-16 21:21:10 +11:00
correctmost 9bed81522d
Fix unnecessary-class-parentheses (UP039) Ruff warning (#2833) 2024-11-16 20:55:17 +11:00
correctmost b96194d51a
Fix super-call-with-parameters (UP008) Ruff warning (#2832) 2024-11-16 20:54:46 +11:00
correctmost 44eb7f92e9
Fix useless-object-inheritance (UP004) Ruff warning (#2831) 2024-11-16 20:54:14 +11:00
correctmost d644b5cae2
Replace deprecated socket.error exception with OSError (#2830)
This warning was raised by the UP024 rule in Ruff.
2024-11-16 20:53:43 +11:00
Daniel Girtler 0f2e00952f
Remove redundant simple-term-menu package (#2824)
* Remove redundant simple-term-menu package

* Update PKGBUILD

Added missing python package (this simply reflects a change in upstream PKGBUILD)

---------

Co-authored-by: Anton Hvornum <torxed@archlinux.org>
2024-11-16 10:53:33 +01:00
correctmost 2d6eef4672
Fix redundant-open-modes (UP015) warnings from Ruff (#2828) 2024-11-16 20:52:55 +11:00
correctmost 44f4bc8612
Use union syntax for isinstance checks (UP038 rule in Ruff) (#2829) 2024-11-16 10:47:01 +01:00
Daniel Girtler b61b5c82fa
Simplify translation call in f-string (#2826) 2024-11-16 10:46:33 +01:00
correctmost 2408b597be
Enable the E128 flake8 rule for all code except for __init__.py (#2827)
This commit also fixes a few files that had non-uniform indentation.
2024-11-16 19:34:29 +11:00
correctmost 6102a08c6d
Enable the W504 binary operator rule in flake8 (#2825) 2024-11-16 18:57:08 +11:00
correctmost 3d2673ac78
Enable the Pylint-warnings rules in Ruff (#2823)
The rule implementations can differ between Ruff and Pylint, so
enable them both for maximum coverage.
2024-11-16 18:28:00 +11:00
correctmost ecad6762e5
Fix some mypy warnings in the lib/ directory (#2822) 2024-11-16 18:27:26 +11:00
correctmost c682ddf391
Enable the E123 closing bracket rule in flake8 (#2812) 2024-11-16 18:23:52 +11:00
goose3228 a0d88f5ee2
Warn user when UEFI is disabled (#2806) 2024-11-16 18:23:08 +11:00
correctmost a71fe41585
Remove unnecessary mypy overrides for lib/models/mirrors.py (#2821) 2024-11-16 17:07:49 +11:00
correctmost 1af5135013
Enable the flake8-implicit-str-concat Ruff rules (#2819) 2024-11-16 17:07:14 +11:00
correctmost 3b3dca7bc1
Enable the UP025 Ruff rule to flag unnecessary Unicode prefixes (#2820) 2024-11-16 14:04:15 +11:00
correctmost 01b72b9293
Remove most of the remaining deprecated typing imports (#2818) 2024-11-16 14:01:24 +11:00
correctmost e23e5e7f2a
Enable stricter global mypy defaults (#2817)
Some checks only need to be disabled for the lib/ directory now.
2024-11-16 13:56:43 +11:00
correctmost a4935bdd10
Fix mypy warnings in the tui/ directory (#2816) 2024-11-16 12:00:31 +11:00
correctmost 316711d261
Enable flake8-datetimez and flake8-future-annotations Ruff checks (#2815) 2024-11-16 11:59:09 +11:00
correctmost 091a070e4e
Enable the f-string-without-interpolation Pylint rule (#2814) 2024-11-16 11:58:23 +11:00
correctmost c87c723549
Remove most deprecated typing.Dict usage (#2813) 2024-11-16 11:57:46 +11:00
correctmost d9fa2718ec
Make mypy checks more strict for lib/ and tui/ directories (#2811) 2024-11-16 10:14:25 +11:00
correctmost dff101e279
Remove most deprecated typing.List usage (#2810) 2024-11-16 10:13:51 +11:00
renovate[bot] 360118f68f
fix(deps): update dependency ruff to v0.7.4 (#2808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-16 08:31:58 +11:00
renovate[bot] 3ec4b86409
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.7.4 (#2807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-16 07:48:30 +11:00
correctmost 1b40067e5a
Enable the expression-not-assigned Pylint rule (#2809)
Commit 88b91ae201 fixed the last instance that existed in the
codebase.
2024-11-16 07:47:59 +11:00
Daniel Girtler 88b91ae201
Integrate new curses menu (#2663)
* Edit text menu

* Fix alignment

* Scroll functionality

* Fix flake8

* Migrate locales menu

* Fix language translation

* Fix interrupt

* Fix flake8

* Edit mode preset

* Convert print to tui prints

* Fix mypy

* Fix cycling through long menu

* Fix profile view

* Fix scrolling

* Fix scrolling

* Fix mypy

* Fix swiss script

* Display asterisk for passwords

* Corrected a variable usage in the local mirror parsing

* Made sure that curses menu selection on mirrors use url object from mirror.url instead of the class instance

* Fixed mypy type on mirror list

---------

Co-authored-by: Torxed <torxed@archlinux.org>
2024-11-15 08:23:22 +01:00
Jack Desert 591b8317ea
Notify user of LOG_PATH upon completion (#2804)
Co-authored-by: jack <jack>
2024-11-15 13:56:54 +11:00
Thiago Castro 040a6aba27
Package name correction 'xss-lock', i3.py (#2796)
Package name correction 'xss-lock' needed in the base installation of the i3 desktop.

Link to the caused error and related issue:
Issue: https://github.com/archlinux/archinstall/issues/2790
Pull: https://github.com/archlinux/archinstall/pull/2791
Man: https://man.archlinux.org/man/xss-lock.1
2024-11-11 10:57:50 +11:00
Daniel Girtler 28eaa8c0e4
Wait for LVM info to appear (#2778)
* Wait forever for LVM info

* Update
2024-11-09 14:20:25 +01:00
Jack Desert de664dfa39
Include xss-set when installing i3wm (#2791)
Co-authored-by: jack <jack>
2024-11-09 10:16:15 +01:00
Anton Hvornum 4a9aca2f78
Added missing package dependencies related to fs-operations (#2792) 2024-11-09 10:01:25 +01:00
Daniel Girtler 9951c90bf9
Fix local mirror selection (#2789) 2024-11-09 09:49:23 +01:00
renovate[bot] fbc9431697
fix(deps): update dependency ruff to v0.7.3 (#2785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 07:48:01 +11:00
renovate[bot] c8333ee2a6
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.7.3 (#2784)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 07:36:39 +11:00
Vincent 26cf04655a
Document LUKS encryption password in creds-sample.json (#2782) 2024-11-08 07:35:50 +11:00
Vincent 7098a6a848
Document network config in config-sample.json (#2781)
Specifically document the CIDR notation of the IP address
2024-11-07 16:17:32 +01:00
Daniel Girtler 0f4e76f142
Update pre-commit hooks (#2777)
* Add missing pydantic dependencies to pre-commit mypy hook

* Add pylint to pre-commit checks
2024-11-07 13:33:34 +01:00
Daniel Girtler 83ece36ec3
Ignore disk encryption config when no password found (#2779) 2024-11-07 13:08:42 +01:00
correctmost 0370e893ac
Enable the self-assigning-variable Pylint warning (#2772) 2024-11-04 18:34:05 +01:00
Vincent 11987a06d6
Update config-sample.json to comply with the requirements for version 2.8.6 (#2754)
I did not add the 'dev_path' key to each one of the partitions, as this may not be required in the 'default_layout' section, but it was required in my configuration when I chose 'manual_partitioning'.
2024-11-04 14:35:44 +01:00
correctmost aecf3ea553
Add Pylint support and enable Pylint CI checks (#2658) 2024-11-04 14:30:28 +01:00
Suica e3123671bf
Retry when speedtest fails. (#2657) 2024-11-04 12:59:39 +01:00
Daniel Girtler 996b75e18c
Fix issue link reference (#2752) 2024-11-04 12:44:22 +01:00
Daniel Girtler 3d5aa1bd84
Add auto-merge for dev tools (#2749) 2024-11-04 12:43:32 +01:00
Daniel Girtler 4a06131f4d
fix-2740 - Handle empty iface selection (#2747) 2024-11-04 12:42:54 +01:00
Daniel Girtler 6553967be6
Add FAQ entry for keyring out-of-date (#2746)
* Add FAQ for keyring out-of-date

* Update

* Update
2024-11-04 12:42:36 +01:00
Daniel Girtler 918ac5c765
Fix 2735 - Erase luks partition explicitly (#2745) 2024-11-04 12:42:12 +01:00
codefiles 7437668f1e
Handle lsblk output bytes in json.loads() (#2741) 2024-11-04 12:39:31 +01:00
codefiles 481b570dae
Move logging code outside of command execution try-except block (#2739) 2024-11-04 12:38:58 +01:00
Daniel Girtler 8ec1715eb8
Fix 1716 - Retry on mirror list fetching (#2736)
* Fix 1716 - retry on http calls

* Update

* Update
2024-11-03 21:46:08 +01:00
renovate[bot] 69294e1f9f
fix(deps): update dependency ruff to v0.7.2 (#2767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-02 18:51:14 +11:00
renovate[bot] c54d499ae4
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.7.2 (#2766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-02 18:51:00 +11:00
Aindriú Mac Giolla Eoin 2fab780c74
Added Irish/Gaeilge to installer languages (#2761) 2024-10-31 10:39:57 +11:00
Hugo Carvalho b3249badf3
Update Portuguese translation (#2763)
Improvements and corrections
2024-10-31 09:49:05 +11:00
Favilances 59384615a5
Update Turkish translation (#2760) 2024-10-28 22:13:28 +11:00
renovate[bot] 551807fbe9
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.7.1 (#2759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 10:21:55 +11:00
renovate[bot] eaff04a84f
chore(deps): update dependency ruff to v0.7.1 (#2758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 10:21:39 +11:00
renovate[bot] 51ce724562
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.13.0 (#2753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 08:15:24 +11:00
renovate[bot] 2c4a62c049
chore(deps): update dependency mypy to v1.13.0 (#2751)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 22:15:21 +11:00
renovate[bot] d91b6568c2
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.12.1 (#2743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 21:57:49 +11:00
renovate[bot] 912c9c5a83
chore(deps): update dependency mypy to v1.12.1 (#2742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 22:29:16 +11:00
renovate[bot] 292569c64f
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.7.0 (#2738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-18 08:21:40 +11:00
renovate[bot] eb44bc8eb9
chore(deps): update dependency ruff to v0.7.0 (#2737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-18 08:21:24 +11:00
summoner001 b8f0944b19
Update hungarian translation (#2733)
Minor fixes and polishing the text.
2024-10-16 07:48:35 +11:00
renovate[bot] 57bfe2da42
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.12.0 (#2732)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 22:23:59 +11:00
renovate[bot] abfdc1e73a
chore(deps): update dependency mypy to v1.12.0 (#2731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 08:00:57 +11:00
Jakub Klinkovský fa0cd4ff9d
docs: remove line block markup (#2729)
I don't see a point in using [line blocks][1] anywhere in the
documentation. Note that mandoc consequently renders it with a `<pre>`
tag which looks ugly on [man.archlinux.org][2].

Also simplified the URL in `index.rst` which can be written verbatim
without any special markup.

See this [archmanweb issue][3] for details.

[1]: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#line-blocks
[2]: https://man.archlinux.org/man/archinstall.1
[3]: https://gitlab.archlinux.org/archlinux/archmanweb/-/issues/49#note_213730

Co-authored-by: Jakub Klinkovský <1289205+lahwaacz@users.noreply.github.com>
2024-10-14 09:59:08 +11:00
summoner001 e452804625
Update hungarian translation (#2730)
fix misspells
fix coherence in the sentences
simplifying senteces
make more corence with other linux installers (example: ubiquity, calamares)
2024-10-14 09:56:04 +11:00
renovate[bot] e749e67a84
chore(deps): update dependency pre-commit to v4.0.1 (#2724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-10 07:49:32 +11:00
Luna Jernberg a061e8e4f3
Update and Complete -- Swedish Translation (#2725)
* Update base.po

Found a typo when installing Arch Linux to a couple of new NVMEs from Seagate/WD from Inet/Webhallen yesterday and today, found a typo fixed a typo, added some more Swedish while i was at it

* Update base.po

Update and complete Swedish Translation
2024-10-09 12:20:49 +11:00
renovate[bot] 9cf19a7dd0
chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v5 (#2722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-06 11:15:50 +11:00
renovate[bot] d9abf9d5b7
chore(deps): update dependency pre-commit to v4 (#2721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-06 11:15:35 +11:00
renovate[bot] 1a56c86c8a
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.6.9 (#2719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 08:20:52 +10:00
renovate[bot] 0fd306b257
chore(deps): update dependency ruff to v0.6.9 (#2718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 08:20:04 +10:00
Luna Jernberg 155610add0
Update base.po (#2717)
Found a typo when installing Arch Linux to a couple of new NVMEs from Seagate/WD from Inet/Webhallen yesterday and today, found a typo fixed a typo, added some more Swedish while i was at it
2024-10-04 07:43:20 +10:00
codefiles 661328767c
Exclude archiso loop device (#2715) 2024-10-03 16:11:20 +10:00
Rafael Fontenelle 92079b0e8e
Do not try to update github-pages on pull_request (#2711) 2024-10-02 07:25:15 +10:00
Rafael Fontenelle 4959c76c34
Fix PyPI name and installing from, in python.rst (#2710) 2024-10-02 07:21:49 +10:00
summoner001 a93bac15da
Fixing hungarian translation (#2709)
Minor fix
2024-10-02 07:20:47 +10:00
summoner001 7341383d90
Fixing hungarian translation (#2702)
Fixing hungarian translation
2024-09-29 12:05:16 +10:00
codefiles 1682574905
Remove duplicate sector_size (#2701) 2024-09-28 09:39:45 +10:00
renovate[bot] 15ccdd34a6
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.6.8 (#2700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-27 06:45:16 +10:00
renovate[bot] f0672b011e
chore(deps): update dependency ruff to v0.6.8 (#2699)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-27 06:45:06 +10:00
codefiles 8db3c7d65d
Add get_loop_devices() (#2698) 2024-09-25 23:02:51 +10:00
codefiles 8e9b1bc727
Remove lsblk default columns (#2697) 2024-09-24 09:57:45 +10:00
codefiles ff3b44e191
Remove import of pyparted _ped (#2696) 2024-09-23 11:51:54 +10:00
renovate[bot] 5526e39679
chore(deps): update dependency ruff to v0.6.7 (#2694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 10:04:06 +10:00
renovate[bot] 11427ceee9
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.6.7 (#2695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 10:03:55 +10:00
K.B.Dharun Krishna 3d5fa9270d
po: update Tamil translation (#2693) 2024-09-22 07:35:52 +10:00
summoner001 db3c86dd86
Update Hungarian translation (#2692)
Minor sentence fixes
2024-09-22 07:35:33 +10:00
renovate[bot] 92db197f75
Update dependency ruff to v0.6.6 (#2690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 17:50:06 +10:00
renovate[bot] 9deb8c081a
Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.6 (#2691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 17:49:45 +10:00
renovate[bot] a1c9e1cf8d
Update dependency pydantic to v2.9.2 (#2688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 07:14:13 +10:00
renovate[bot] 3f2b4c1e55
Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.5 (#2683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-14 08:09:11 +10:00
renovate[bot] 9de2df7ef0
Update dependency ruff to v0.6.5 (#2682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-14 08:08:48 +10:00
renovate[bot] 3c94e96064
Update dependency pydantic to v2.9.1 (#2677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 21:55:18 +10:00
codefiles a45bd248c7
Convert lsblk mountpoint str to Path object (#2676) 2024-09-09 07:28:09 +10:00
correctmost 7235e21c3a
Remove some deprecated typing.Dict and typing.List usage (#2673) 2024-09-08 08:10:38 +10:00
correctmost 6ba0e5c441
Fix minor copy/paste errors in GitHub workflow configs (#2672) 2024-09-08 08:08:55 +10:00
codefiles 876d155be9
Move device after options in lsblk command (#2670) 2024-09-07 09:26:27 +10:00
codefiles 6a2a204f18
Add udev_sync() (#2669) 2024-09-06 23:29:12 +02:00
renovate[bot] 7c08822d08
Update dependency pydantic to v2.9.0 (#2667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 11:50:46 +10:00
renovate[bot] 6857938ab0
Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.4 (#2666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 10:54:32 +10:00
renovate[bot] a817fe2404
Update dependency ruff to v0.6.4 (#2665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 10:54:16 +10:00
Thierry Massart 6a7a65f619
French language update (#2664)
A translated word
2024-09-03 16:46:52 +10:00
renovate[bot] 342122e0b0
Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.3 (#2661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-30 02:24:49 +10:00
renovate[bot] 588d69bd7d
Update dependency ruff to v0.6.3 (#2660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-30 02:24:32 +10:00
correctmost 8391668a2e
Add ruff linting support (#2654) 2024-08-29 13:51:12 +02:00
Anton Hvornum 3d35da71df
Bumping version to: v2.8.6 (#2656) 2024-08-28 22:45:46 +02:00
correctmost 35c8eb3394
Fix unnecessary f-strings and enable flake8 rule (#2653) 2024-08-29 03:01:55 +10:00
correctmost 62b4099c8d
Fix whitespace issues detected by flake8 (#2652)
This commit also removes exclusions that are no longer needed.
2024-08-29 01:40:53 +10:00
correctmost 7b5f1f72f9
Expand mypy checks to include more files and more checks (#2651)
This commit also centralizes the mypy configuration in one spot.
2024-08-29 00:39:22 +10:00
correctmost 62d66e1caf
Fix most mypy errors in archinstall/scripts/, docs/, and the __init__ file (#2641) 2024-08-29 00:24:08 +10:00
Suica 0601708a02
Use `0` instead of `None` when the speedtest fails. (#2650) 2024-08-28 11:57:21 +02:00
Daniel Girtler 0fc9d6f4f4
Fix 2625 - server profile selection (#2647) 2024-08-28 09:41:37 +02:00
Anton Hvornum 74f4fb02cd
Bumping version to: v2.8.5 (#2645) 2024-08-28 07:57:05 +02:00
Anton Hvornum 905479c1b2
Added error handling for invalid certificates during speedtest. Also added a generic error handler to catch all network errors (#2644) 2024-08-28 07:50:13 +02:00
correctmost c7aeead7d2
Fix various mypy errors in archinstall/lib/ (#2640)
* Fix various mypy errors in archinstall/lib/

* Additional mypy fixes in archinstall/lib/ to pass CI checks
2024-08-28 05:43:54 +10:00
correctmost 63b4184f70
Fix most of the mypy errors in archinstall/lib/disk/ (#2639) 2024-08-28 05:40:51 +10:00
correctmost 1e7f1194d7
Fix most of the mypy errors in archinstall/tui/ (#2638) 2024-08-28 00:55:53 +10:00
correctmost 7835784be5
Fix most of the mypy errors in archinstall/default_profiles/ (#2636) 2024-08-27 15:07:49 +10:00
Franco Castillo 446aa44007
Update Spanish translation (#2635)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2024-08-27 04:20:33 +10:00
Anton Hvornum fe5e7cdbf7
Bumping version to: v2.8.4 (#2633) 2024-08-26 13:03:49 +02:00
Vasiliy Stelmachenok 3fa70722a9
Do not overwrite the contents of mkinitcpio.conf (#2532) 2024-08-26 12:57:45 +02:00
Anton Hvornum 9abd3a82cc
Added error handling for mirrors that time out mid-read (#2632) 2024-08-26 12:50:37 +02:00
summoner001 949337ddf3
Update Hungarian translation (#2630)
After testing Archinstal v2.8.3, I fixed some minor translation and typo mistakes.
Sorry for my mistakes.
This translation is ready to use.
2024-08-26 02:37:48 +10:00
Hugo Carvalho dd5cbc93fa
Update Portuguese translation (#2629) 2024-08-26 02:37:27 +10:00
renovate[bot] a55922cd56
chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.11.2 (#2628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 02:36:46 +10:00
Anton Hvornum 1097e5ca17
Bumping version to: v2.8.3 (#2627) 2024-08-25 10:20:32 +02:00
renovate[bot] 211ce2d65b
chore(deps): update dependency mypy to v1.11.2 (#2626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-25 15:21:01 +10:00
codefiles 179ba3cd9a
Fix load_devices() lsblk (#2565)
* Fix load_devices() lsblk

* Add udev sync before load_devices() lsblk call
2024-08-23 17:22:26 +02:00
Odyssey b9183f4df3
Add Catalan translation (#2623) 2024-08-23 08:29:23 +02:00
codefiles d2acdb4977
Refactor create_btrfs_volumes() (#2621) 2024-08-22 16:41:10 +10:00
Anton Hvornum 6d0cf26eba
Added a advanced=bool flag to Profile() class and enabled it on the cosmic-epoch profile (#2619)
* Added a advanced=True flag to Profile() class, to be able to hide certain profiles behind --advanced

* Removed debugging sleep

* Made sure cosmic-greeter was hidden behind --advanced, and cleaned up --advanced checks on Profile()

* storage['arguments'] is not defined during code-init, falling back to sys.argv for cosmic-greeter check
2024-08-22 08:28:16 +02:00
utuhiro78 00eeae0abd
Update Japanese translation (#2620) 2024-08-21 17:49:37 +02:00
arlsdk ff24ceb8d4
#2587 Sugesstions for Cinammon default_profile (#2612) 2024-08-20 18:41:01 +10:00
summoner001 5707372bb4
Update hungarian translation (#2618)
Translating the new string

Ready to merge.
2024-08-19 13:48:29 +02:00
killertofus b1ead53846
added cosmic for a desktop (#2615)
* cosmic is out of the aur
2024-08-17 16:40:07 +02:00
Anton Hvornum f6776f3801
Bumping version to: v2.8.2 (#2616) 2024-08-17 10:07:02 +02:00
Daniel E Rodriguez Rivera 58d74ea237
Refactor Argument Parsing Logic (#2605)
* Update Spanish translation for 'greeter'

* Moved the os.execve call below the debug logging statement in SysCommandWorker

* Fix call to removed function in DesktopProfile class

* Refactor: Move precondition check for '=' to the beginning of the loop

This commit moves the check for the '=' element to the start of the while loop in the `parse_unspecified_argument_list` function. This change improves code readability and ensures that the precondition is evaluated before processing other elements, enhancing the overall flow of the argument parsing logic.

* Refactor: Remove redundant 'else' statement in argument parsing logic

This commit simplifies the control flow in the `parse_unspecified_argument_list` function by removing a redundant 'else' block. The logic is streamlined to improve readability and maintainability while preserving the original functionality. The removal of unnecessary nesting helps clarify the conditions under which elements are processed.

* Refactor: Remove redundant 'else' statement in argument parsing logic

This commit simplifies the control flow in the `parse_unspecified_argument_list` function by removing a redundant 'else' block. The logic is streamlined to improve readability and maintainability while preserving the original functionality. The removal of unnecessary nesting helps clarify the conditions under which elements are processed.

* Replace conditional validation with filtering

This commit modifies the `parse_unspecified_argument_list` function to filter out unwanted elements from the `unknowns` list instead of using a conditional check with an `if` statement. This change improves code readability and efficiency by utilizing list comprehension to create a new list that excludes elements equal to "=".
2024-08-05 12:38:53 +02:00
renovate[bot] 65b09ca618
chore(deps): update pre-commit hook pycqa/flake8 to v7.1.1 (#2608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 07:34:38 +10:00
renovate[bot] 727368e09d
chore(deps): update dependency dev/flake8 to v7.1.1 (#2607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 07:34:19 +10:00
mintsuki fed39f21c9
Updates for new Limine 8.x config filename and syntax (#2606) 2024-08-03 11:56:07 +02:00
Anton Hvornum 98518e444a
Use `/mirrors/status/json/` instead of `/mirrorlist/` to get mirror lists (#2599)
* Using JSON endpoint instead of ASCII endpoint for mirror listing, as the JSON endpoint is cached and easier to parse

* Added a TODO to handle unknown regional mirrors (which lacks info in the backend)

* Filtered out 'bad' mirrors. Also added a sorting mechanism that uses the mirrors 'score' rather than just the URL name. This will emulate the reflector.service/rankmirrors behavior and thus reducing the need to re-rank the mirrors.

* Added the ability to sort mirrors via latency or download speed using sorted(mirror_list, key=lambda mirror: (mirror.score, mirror.speed)) - but I have not implemented the sorting via the menu yet, and I have not integrated the new MirrorStatus model into the handling of URL's. I still need to figure out where the {region: [url, url]} is being used, so that i can convert to {region: [mirror.url, mirror.url]} logic.

* Converting MirrorStatus model to {mirror: [url, url]}

* Added debug information for /var/log/archinstall/install.log

* Fixing flake8

* Fixed issue where 'dead' mirrors have no score, and thus can't be round():ed

* Forgot to return model validation data after validation

* Improving debug/info output

* Reverting change in #2350 - Writing over instead of appending to mirrorlist

* Mirror URL's reported by the JSON endpoint does not contain the repo format, only the base location for the mirror. So we have to adjust for this.

* pydantic did not honor 'private' variables in 'before' model validator, had to change to 'after' instead.

* Sorted out mypy typing matching the new MirrorStatus model

* Added pydantic as a dependency, it's time!

* Updated workflow to include pydantic

* Added return values from model @property decorators.
2024-08-02 15:24:44 +02:00
NorwayFun 4af3b02707
po: Update Georgian translation (#2604)
* Add files via upload

* Update Georgian translation
2024-08-02 16:09:31 +10:00
Tristan d'Audibert a72d798ee6
fix(lib/installer.py) Patch mkinitcpio.conf with putting encrypt after keymap (#2601)
Signed-off-by: Tristan d'Audibert <tristan.daudibert@gmail.com>
2024-08-02 14:47:00 +10:00
renovate[bot] 997e28d8dd
Update pre-commit hook pre-commit/mirrors-mypy to v1.11.1 (#2603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-31 21:00:28 +10:00
renovate[bot] 2f4bb97483
Update dependency dev/mypy to v1.11.1 (#2602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-31 12:32:01 +10:00
Daniel E Rodriguez Rivera 74ba8fb3b4
Fix call to removed function in DesktopProfile class (#2596)
* Update Spanish translation for 'greeter'

* Moved the os.execve call below the debug logging statement in SysCommandWorker

* Fix call to removed function in DesktopProfile class
2024-07-30 21:55:34 +10:00
walken a5fd20595d
Czech localization update (#2597) 2024-07-30 21:52:34 +10:00
codefiles a2e539a2bd
Fix mount order (#2595) 2024-07-29 08:24:29 +02:00
Daniel E Rodriguez Rivera 3bdead0390
Reposition os.execve call to enable debug logging before child process termination (#2593)
* Update Spanish translation for 'greeter'

* Moved the os.execve call below the debug logging statement in SysCommandWorker
2024-07-29 08:16:46 +10:00
renovate[bot] 0e8efecfa1
Update dependency dev/pre-commit to v3.8.0 (#2594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-29 08:15:37 +10:00
Daniel Girtler 32bc37545e
Upgrade mypy 1.11 (#2588)
* Upgrade mypy 1.11

* Update

* Update

* Remove TProfile type
2024-07-27 07:23:47 +10:00
Daniel E Rodriguez Rivera 494cc29a3f
Update Spanish translation for 'greeter' (#2592) 2024-07-26 07:37:41 +10:00
renovate[bot] 48f510bd37
Update pre-commit hook pre-commit/mirrors-mypy to v1.11.0 (#2582)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-23 18:05:00 +10:00
Wellinton Kricowski 552930a98a
PT BR translation improvements (#2586)
* Update pt-BR translation

* [pt_BR] locales_generator + translation improvements

* PT BR translation improvements
2024-07-23 15:55:43 +10:00
*=0=1=4=* 8ecc77992f
`disk.Size(1, disk.Unit.GiB, sector_size)` for issue #913 (#2583)
* `disk.Size(1, disk.Unit.GiB, sector_size)` for issue #913

* default boot sector size is same for all partition layouts
2024-07-23 14:33:45 +10:00
Alexmelman88 ef252f5d0a
Update Russian translation (#2578) 2024-07-20 17:16:16 +10:00
Wise 5c85026582
Update Turkish translation (#2577) 2024-07-19 07:19:36 +10:00
GandalfBaum12371723613 52a795da66
Corrected one translation and added some more (#2574) 2024-07-12 07:26:01 +10:00
Martin f3fa5d5dec
Run oxipng/svgo against the images to save 40KB (#2420) 2024-07-11 20:05:26 +02:00
renovate[bot] 48e46ac067
Update pre-commit hook pycqa/flake8 to v7.1.0 (#2573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 20:03:33 +02:00
renovate[bot] 4bfefc5470
Update pre-commit hook pre-commit/mirrors-mypy to v1.10.1 (#2572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 20:03:13 +02:00
GandalfBaum12371723613 490e67e832
Update base.po (#2571) 2024-07-11 20:03:00 +02:00
Daniel Girtler 713f23b7ad
Enable pre-commit renovate support (#2570) 2024-07-11 19:57:49 +02:00
Daniel Girtler b9ab1e2b16
Curses menu - Continued (#2569)
* Edit text menu

* Fix alignment

* Scroll functionality

* Fix flake8
2024-07-11 19:54:24 +02:00
Kenneth Seet 0f1c8ab4be
Update user permission check for --help (#2568)
* Update user permission check for --help

* Fix code style

* Fix code style

* Fix docstring

* Fix newline

* Fix newline

* Fix argument error

* Fix formatting
2024-07-11 11:43:58 +10:00
Alexmelman88 50d269957a
Update Russian translation (#2564) 2024-07-07 15:31:47 +10:00
Anton Hvornum cc4925855e
Adding bug and feature request templates (#2560) 2024-07-02 12:45:48 +02:00
K.B.Dharun Krishna 755ce76e31
l10n/po: update Tamil translation (#2551) 2024-06-28 17:54:19 +02:00
Franco Castillo 18478dcb20
Update base.pot and base.po (es) (#2552)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2024-06-28 17:54:02 +02:00
summoner001 3dce07f6ba
Fixing mistakes (#2555)
Fixing mistakes after testing Archinstall v2.8.1
2024-06-28 17:53:33 +02:00
utuhiro78 31917a7e94
Update Japanese translation (#2550) 2024-06-26 07:57:10 +10:00
summoner001 054701f991
Translation of the new strings (#2545)
Translation of the new strings and minor fixes.
2024-06-25 18:30:24 +10:00
Roxfr 79ddbf724f
Add files via upload (#2548) 2024-06-25 18:29:42 +10:00
renovate[bot] aae4c5d35b
Update dependency dev/mypy to v1.10.1 (#2549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 12:03:40 +10:00
Anton Hvornum e938074123
Updated all language files in prep for release (#2544) 2024-06-23 10:16:49 +02:00
Anton Hvornum 354fa5a2e4
Bumping version to v2.8.1 (#2543) 2024-06-23 10:13:22 +02:00
summoner001 0af6cfbc35
Cleaning translation (#2541)
I fixing misspells, typos, and make the text more readable.
I have reworded it in several places to make it easier to understand, and to make it more similar to the Hungarian text of other more common Linux installers.

Ready to use.
2024-06-20 22:10:32 +10:00
renovate[bot] 8c9802078c
Update dependency dev/flake8 to v7.1.0 (#2537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 08:53:41 +10:00
Daniel Girtler aa87fb1db5
Strict mypy - Phase 1 (#2533)
* Strict mypy for examples/
2024-06-13 21:35:54 +02:00
Daniel Girtler 9c5a66b145
Add beta label to LVM support (#2531) 2024-06-08 09:18:19 +02:00
arlsdk 4d35409a53
Improved Turkish Translation for archinstall (#2530) 2024-06-08 09:24:47 +10:00
Daniel Girtler 5c180f0741
New menu implementation with curses (#2506)
* TUI

* Fix menu iterating

* Add help menu

* Add column menu

* Fix filter

* Tweaked import statement

---------

Co-authored-by: Anton Hvornum <torxed@archlinux.org>
2024-06-06 22:31:15 +02:00
616C6C 6524ada762
Update base.po (#2528) 2024-06-05 07:36:46 +10:00
codefiles 6747c9e5d8
Skip devices that fail to get pyparted Disk (#2526) 2024-06-05 07:36:06 +10:00
Alexmelman88 b2d29eeba3
Update Russian translation (#2521) 2024-05-28 22:49:13 +10:00
Alexandre Petit 6b48d788b5
Update mkinitcpio.conf hooks for upstream consistency (#2515)
This commit adjusts the hooks in mkinitcpio.conf to follow the changes
in the upstream mkinitcpio repository.
It also add the consolefont hook if udev is used instead of systemd.

Addresses upstream commits:
[mkinitcpio.conf: add kms to the default HOOKS array](b99eb1c0d5)
[mkinitcpio.conf: adjust the placement of the modconf hook for consistency](0b052b1461)

Additionally, it replaces the missing `consolefont` hook if the
`keyboard` hook is used instead of the `sd-vconsole` hook.
For more details, see the Arch Wiki:
[dm-crypt/System configuration - 1.1 mkinitcpio](https://wiki.archlinux.org/title/Dm-crypt/System_configuration#mkinitcpio)
2024-05-25 17:57:04 +10:00
Raven 6863994118
Adds dosfstools to the PKGBUILD depends (#2439)
One of the tools needed by archinstall is mkfs.fatXX and this wasn't automatically installed.

Co-authored-by: Raven <github.onereddime@rubicon.aleeas.com>
2024-05-25 17:50:51 +10:00
AbderrazakBouasker ffe8279127
arabic translation updated and fully completed (#2518)
* added 50% of the translation

* 51% done

* completed arabic translation
2024-05-22 22:11:06 +10:00
codefiles cee32670f3
Refactor umount() (#2516) 2024-05-19 11:29:02 +10:00
codefiles 63cfee434e
Convert partition path string to a Path object (#2514) 2024-05-19 08:04:48 +10:00
codefiles 09fdb9e80c
Refactor format() (#2512) 2024-05-19 08:03:11 +10:00
codefiles 15ee84b7c9
Refactor suggest_single_disk_layout() (#2508) 2024-05-17 22:57:03 +10:00
Franco Castillo 8b8b668414
Update base.pot and base.po (es) (#2509)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2024-05-16 11:54:35 +10:00
ngn 39d096b79f
Use the current layout instead of the us layout (#2495)
* use the current layout instead of the us layout

* fix linting erros and add exception handling for SysCommand
2024-05-15 21:41:42 +10:00
Daniel Girtler bab06e4d75
Fix 2496 - umounting all partitions (#2498)
* Fix 2496 - umounting all partitions

* Update
2024-05-15 12:47:20 +02:00
codefiles 06baa08750
Set root partition type GUID (#2505) 2024-05-15 13:06:27 +10:00
arlsdk af9d741175
Turkish translate has been improved (#2502) 2024-05-15 12:16:24 +10:00
Anton Hvornum 195eb0ba6d
Fixing issue with `python -m build --wheel` generating "_Warning: Package 'archinstall.default_profiles' is absent from the `packages` configuration" (#2499)
* Fixing issue of: _Warning: Package 'archinstall.default_profiles' is absent from the 'packages' configuration. x50+

* Corrected the package name from 'where' to 'archinstall'

* Undoing change to 'package-data'
2024-05-13 15:17:05 +02:00
renovate[bot] 20f802dfc3
chore(deps): update dependency dev/pre-commit to v3.7.1 (#2497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-11 16:27:04 +10:00
Anton Hvornum 3381cd5567
Changing to use github archive as dependency-url for pyparted as there hasn't been an update on pypi.org for pyparted in almost 12 months. Tracking issue https://github.com/dcantrell/pyparted/issues/106 (#2494) 2024-05-09 23:49:43 +02:00
Daniel Girtler fd23efdcfb
Fix 2479 - remove unnecessary partiton info field (#2485) 2024-05-09 23:06:06 +02:00
Kevin FERRIER 3af850632f
change default root partition size (#2415) 2024-05-09 13:37:38 +10:00
simonfogliato 9543f59a17
Corrected minor bash formatting warnings reported by shellcheck. (#2493) 2024-05-08 16:15:09 +10:00
Uday Jadhav e5b6f46032
Add applications to Hyprland desktop profile (#2481) 2024-05-05 15:08:03 +10:00
a 3ccb5140aa
Update base.po (#2468)
* Update base.po

* Update base.po

* update tr

* tr update
2024-05-02 08:14:51 +10:00
utuhiro78 b8052c566c
Update Japanese translation (#2478) 2024-04-27 08:47:05 +10:00
renovate[bot] eb36a94781
chore(deps): update dependency dev/mypy to v1.10.0 (#2476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-25 10:12:15 +10:00
correctmost bf368a94f5
Fix debug message for unknown device type (#2472) 2024-04-24 07:32:57 +10:00
Roxfr 473074a945
Update for the french language (#2473) 2024-04-24 07:20:23 +10:00
Daniel Girtler beeb9d7fde
Fix 2191 - Handle unknown device/partition type (#2470) 2024-04-23 09:02:07 +02:00
Martin 0ea6dbbd76
Rename "Kde" profile to the correct "KDE Plasma" / "Plasma" (#2421)
* schema.json: Remove dead misspelled i3-gasp profile

* schema.json: Rename KDE Plasma profile to the correct "Plasma" shorthand

* Rename to KDE Plasma in user facing parts and keep the old "Kde" profile for now

* Add back an accidental deleted character

* Backwards compat v2
2024-04-19 22:47:18 +10:00
MahtiAnkka f7913f46ee
New Arch install Finnish language package (#2466)
Translated into Finnish using the Poedit program.
2024-04-17 22:14:12 +10:00
Daniel Girtler cd587792e1
Fix master merge conflicts from LVM branch (#2463) 2024-04-16 14:06:03 +02:00
Daniel Girtler db798eec71
Fix 2445 - handle no free spaces and deleted parittions (#2448) 2024-04-16 14:05:19 +02:00
Hao Xiang 8f5bc523db
Fix null fs_type of partition (#2458) (#2459) 2024-04-16 20:56:44 +10:00
renovate[bot] 5aa616e70d
chore(deps): update dependency dev/pre-commit to v3.7.0 (#2434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 20:28:10 +10:00
summoner001 f4ce69b5c7
Update Hungarian translation (#2462)
After testing the text in the new version of Archinstaller.

I fixing misspells, typos, and make the text more readable.
I have reworded it in several places to make it easier to understand, and to make it more similar to the English text of other more common Linux installers.

Ready to use.
2024-04-16 20:02:02 +10:00
Martin 7011ac095f
Fix up locale generator to exit on error instead of ignoring it, handle filenames better (#2422)
Don't mix tabs and spaces, use tabs, just like the main script
2024-04-16 19:05:50 +10:00
renovate[bot] 3f4fbed7b7
chore(deps): update peaceiris/actions-gh-pages action to v4 (#2451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 19:00:55 +10:00
Daniel Girtler b470b16ec9
LVM support (#2104)
* Submenu for disk configuration

* Update

* Add LVM manual config

* PV selection

* LVM volume menu

* Update

* Fix mypy

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update LVM

* Update

* Update

* Btrfs support

* Refactor

* LVM on Luks

* Luks on LVM

* Update

* LVM on Luks

* Update

* Update

* mypy

* Update

* Fix bug with LuksOnLvm and Btrfs

* Update

* Update

* Info -> Debug output
2024-04-15 18:49:00 +10:00
Anton Hvornum 7d9e9d8ba0
Bumping version to: v2.8.0 (#2460) 2024-04-15 06:50:17 +02:00
utuhiro78 1542f6c027
Update Japanese translation (#2410) 2024-04-15 06:48:37 +02:00
K.B.Dharun Krishna 2c87f0e13c
l10n/po: update Tamil translation (#2392) 2024-04-15 06:48:27 +02:00
Alexmelman88 b3894c8d08
Update Russian translation (#2409) 2024-04-15 06:48:16 +02:00
Giovanni Scafora d265b2038e
Update Italian translation (#2414)
Update
2024-04-15 06:48:09 +02:00
Brock Vojkovic 4505f6febb
Switch from weekly official to daily official image (https://github.com/archlinux/archinstall/issues/2443) (#2453) 2024-04-11 07:33:00 +02:00
codefiles df2884085d
Add udev sync before lsblk that follows formatting (#2412) 2024-03-12 10:25:15 +01:00
codefiles 613bec6562
Fix GRUB boot directory (#2408) 2024-03-11 19:38:10 +01:00
codefiles c210cdcb8f
Fix Btrfs mount options (#2404) 2024-03-11 08:09:26 +01:00
codefiles 1064f74846
Increase ESP size to 1 GiB (#2401) 2024-03-10 15:20:13 +01:00
codefiles b87c41e92f
Fix fstab line endings (#2400) 2024-03-10 15:19:22 +01:00
codefiles 2a33d7cd97
Set keyboard layout in minimal installation (#2399) 2024-03-10 09:34:32 +01:00
renovate[bot] 635ae335be
chore(deps): update dependency dev/mypy to v1.9.0 (#2395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-10 09:33:41 +01:00
codefiles 624d3d5bf6
Rename Hungarian translation files (#2398) 2024-03-09 21:35:20 +01:00
codefiles fef9269d38
Fix home partition start and length (#2391) 2024-03-08 11:24:35 +01:00
Franco Castillo c3c175047e
Update base.pot and Spanish translation (#2389)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2024-03-07 23:46:16 +01:00
fortifiedhill 85fda53847
Update microcode handling (#2384)
As of mkinitcpio v38, microcode is handled by a hook
and inserted into the initrd. Therefore, we don't have to
add microcode entries to bootloaders anymore.
2024-03-07 23:45:45 +01:00
renovate[bot] 1c071f3bb3
chore(deps): update dependency dev/mypy to v1.8.0 (#2308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 15:10:19 +01:00
fortifiedhill 0e8d7aac16
Update resize root partition ArchWiki link (#2385) 2024-03-07 15:09:57 +01:00
renovate[bot] 214f82d43e
chore(deps): update actions/upload-artifact action to v4 (#2369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 15:07:14 +01:00
renovate[bot] 3df7d91bff
chore(deps): update dependency simple-term-menu to v1.6.4 (#2303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 15:06:41 +01:00
renovate[bot] e4f072315d
chore(deps): update dependency dev/pre-commit to v3.6.2 (#2297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 15:06:29 +01:00
renovate[bot] 9ae1048262
chore(deps): update actions/setup-python action to v5 (#2289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 15:06:19 +01:00
Daniel Girtler 08a6d402c4
Fix 2215 | Display installed packages for all profile submenus (#2355)
* Display all packages to be installed

* Display all packages to be installed
2024-03-07 14:43:51 +01:00
Daniel Girtler f927fb6e6a
Fix 2307 - Custom mirrors (#2350)
* Fix 2307 - Custom mirrors

* Update
2024-03-07 14:43:16 +01:00
Daniel Girtler 21dd295259
Fix 2337 (and similar) - Ignore existing partitions (#2342)
* Fix 2337

* Update
2024-03-07 14:42:25 +01:00
codefiles 9b1fd2e44f
Fix enabling of testing repositories (#2340) 2024-03-07 14:41:25 +01:00
codefiles b39e3dc886
Fix partition table commit (#2294) 2024-03-07 13:49:14 +01:00
aidanthewiz 1bf68311c2
Improve the README (#2174)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2024-03-07 13:47:45 +01:00
Rafael Fontenelle 0d5e1cf752
Fix misspellings (#2306) 2024-03-07 13:19:44 +01:00
Chaman Vétéran 98f2431728
fixed mistake in fr locale (#2295)
Co-authored-by: Chaman-veteran <maillen@bde.enseeiht.fr>
2024-03-07 13:17:03 +01:00
utuhiro78 169068d755
Update Japanese translation (#2291) 2024-03-07 13:16:47 +01:00
walken e1a50210b1
Czech localization update (#2366) 2024-03-07 12:58:48 +01:00
Ansh Goel e58892faec
po: Update Hindi translation (#2357)
* Added first Hindi language support

* po: Update Hindi translation
2024-03-07 12:58:34 +01:00
Yaron Shahrabani fbc005d2f1
Added Hebrew translation. (#2348)
* Added Hebrew translation.

* Updated README with simpler instructions

* cd instruction restored

Restored the required instruction.

---------

Co-authored-by: Yaron Shahrabani <yaron.shahrabrani@axonius.com>
2024-03-07 12:58:19 +01:00
summoner001 cea1ded104
Add Hungarian translation files (#2313)
The hungarian translation is complete and ready to use
2024-03-07 12:56:46 +01:00
Dominik Stasiak 1387652b7b
Update Polish translation (#2311) 2024-03-07 12:56:30 +01:00
Wise 6c2a0d9b97
Update translation of tr (#2299) 2024-03-07 12:56:10 +01:00
Rafael Fontenelle 2cd0d3fdad
Update Brazilian Portuguese translation (#2287) 2024-03-07 12:55:19 +01:00
Christos Longros d02b0d2359
Update greek base.po, add translations, fix typos (#2284)
* Update greek base.po, add translations, fix typos
2024-03-07 12:54:22 +01:00
Anton Hvornum 74476de1f1
Version bump 2.7.2 (#2387) 2024-03-07 12:27:26 +01:00
Dylan M. Taylor 8e25f2e992
plasma-workspace replaces plasma-wayland-session (#2386) 2024-03-07 07:49:51 +01:00
Alessio Cuccovillo f107104103
UPD it/LC_MESSAGES/base.mo (#2276)
UPD it/LC_MESSAGES/base.po
2023-12-01 16:17:38 +01:00
Florijan Demidov 7b0d092d6e
Add Lithuanian translation (#2274)
* Add Lithuanian translation

* Update languages.json
2023-12-01 16:17:14 +01:00
codefiles 5db4456dba
Restrict UKI to supported options (#2280) 2023-12-01 15:59:44 +01:00
codefiles 2aeb1b5762
Minor fixes for UKI (#2279) 2023-12-01 14:32:08 +01:00
codefiles dc477fb1d9
Fix UKI default value (#2278) 2023-12-01 13:03:13 +01:00
Anton Hvornum 4955b64a8c
Added --skip-ntp to docs (#2273) 2023-11-29 13:04:56 +01:00
Anton Hvornum c13d5fae05
Preparing release: v2.7.1 (#2272) 2023-11-28 17:02:54 +01:00
K.B.Dharun Krishna 8637cd06e7
po: update Tamil translation (#2271) 2023-11-28 10:13:39 +01:00
Hugo Carvalho e76ca0ad94
Update Portuguese (pt) translation (#2270) 2023-11-27 16:46:46 +01:00
Wellinton Kricowski 749efaca30
Update pt-BR translation (#2267) 2023-11-27 13:44:50 +01:00
utuhiro78 4aa8b9fc5b
Add Japanese translation (#2265)
* Add Japanese translation

* Update Japanese translation

* Update Japanese translation

* Update Japanese translation

* Update Japanese translation

* Update Japanese translation

* Update Japanese translation

* Update Japanese translation
2023-11-27 13:44:10 +01:00
Mário Victor Ribeiro Silva 8885d92485
build(gh-pages): change rule to docs build (#2269) 2023-11-27 13:41:34 +01:00
Daniel Girtler 5605958b98
Fixes #2262 and GFX rewrite (#2266)
* Rework GFX installation

* Update

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-11-27 13:31:26 +01:00
renovate[bot] 03c1989270
Update actions/setup-python action to v4 (#2236)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 08:13:41 +01:00
renovate[bot] f27c55d170
Update dependency dev/mypy to v1.7.1 (#2256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 08:13:19 +01:00
Daniel Girtler b0c8f33de6
Fix 2253 (#2259)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-11-24 07:59:12 +01:00
Alan Barzilay f6446323fc
pyproject.toml: add missing dependencies (#2257)
we were missing 2 dependencies, pyparted and systemd-python(optional), that would lead pip installations to fail sometimes. 

I added them and attributed systemd_python to a new optional dependency group called log since it only seems to be used for system logging:

64c91cdbcb/archinstall/lib/output.py (L133)
2023-11-23 23:28:12 +01:00
renovate[bot] 64c91cdbcb
Update actions/checkout action to v4 (#2235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-23 18:14:41 +01:00
renovate[bot] 61d549fbab
Update dependency dev/mypy to v1.7.0 (#2209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-23 18:14:31 +01:00
Alexmelman88 084cffc363
Update Russian translation (#2254) 2023-11-23 17:25:34 +01:00
Anton Hvornum 62296cfa12
Prepare for release 2.7.0 (#2252)
* Preparing release

* Bumping version to: v2.7.0
2023-11-23 09:45:47 +01:00
walken 22e2b7fc29
Czech localization update (#2204)
* Updates and corrections for Czech localization
2023-11-23 09:42:40 +01:00
Roxfr e30654d497
French language update (#2219)
* Delete archinstall/locales/fr/LC_MESSAGES/base.po

* Delete archinstall/locales/fr/LC_MESSAGES/base.mo

* Add files via upload

* Rename archinstall/locales/base.po to archinstall/locales/fr/LC_MESSAGES/base.po

* Delete archinstall/locales/base.mo

* Add files via upload
2023-11-23 09:42:25 +01:00
Anton Hvornum a62f833332
Fixing --skip-ntp. Changed nargs -> action in argparse! (#2250) 2023-11-22 23:45:13 +01:00
Anton Hvornum 2437e901d9
Added a --skip-ntp parameter to deal with #2144 (#2225)
* Added a --skip-ntp parameter to deal with #2144

* Made info/warn strings translateable

* Corrected spelling mistake
2023-11-22 22:52:21 +01:00
Anton Hvornum e28ba95370
Restoring back the docs with a commit, as I'm clearly incapable of grasping git's reset/revert features.. (#2249) 2023-11-22 22:45:25 +01:00
Anton Hvornum f3b4858a26
Removed readthedocs.io's requirements.txt (#2248) 2023-11-22 22:36:58 +01:00
Anton Hvornum 1489883571
Removed requirements from .readthedocs.yaml, can we remove this file without readthedocs being sad? (#2247) 2023-11-22 22:35:51 +01:00
Anton Hvornum d7eb35f4ee
Nuking docs to allow for redirect (ouff) (#2245) 2023-11-22 22:24:29 +01:00
Anton Hvornum db326590ba
Redirect readthedocs (#2244)
* Adding permanent redirect for readthedocs

* Have to remove pyparted because readthedocs can't build it

* Removed pyparted from pyproject.toml as readthedocs read that one too afterall.
2023-11-22 22:12:29 +01:00
Anton Hvornum 8b774a9cfa
Redirect readthedocs (#2243)
* Adding permanent redirect for readthedocs

* Have to remove pyparted because readthedocs can't build it
2023-11-22 21:56:07 +01:00
Anton Hvornum bb67c5a3a9
Added nvidia-dkms when installing propri driver to (#2241)
* Added nvidia-dkms when installing propri driver to fix #2233, #2214 and #2002

* Forgot class-name infront of NvidiaDKMS
2023-11-22 21:52:27 +01:00
Anton Hvornum 2b3142527a
Adding permanent redirect for readthedocs (#2242) 2023-11-22 21:52:01 +01:00
Anton Hvornum 922f6082b5
Added a CNAME file, as well as removed some debugging (#2240) 2023-11-21 23:56:39 +01:00
Anton Hvornum e73ac39a7e
It appears jekyll might be needed? (#2239)
* It appears jekyll might be needed? https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-enable-built-in-jekyll-enable_jekyll

* Added some debugging

* Maybe jekyll is not needed?
2023-11-21 23:45:55 +01:00
Anton Hvornum 349c21d7a2
GitHub pages improvement (#2237)
* Moved to arch container

* Swapped branch for testing

* Removed publish if condition for now

* I think I got it this time, publish_branch has to be separate in order for the runner to create it and have access to pushing things?

* Missing 'git' depndency, to work with git heh
2023-11-21 23:02:47 +01:00
Anton Hvornum f02af54356
Testing github pages (#2234)
* Testing github pages

* Adding libparted-dev to the ubuntu machine (I'd like to move away from ubuntu, but the runner recommended it)

* Debugging

* changed to master branch
2023-11-21 22:27:10 +01:00
Anton Hvornum d62a5ff838
libparted -> pyparted (#2232) 2023-11-21 19:55:26 +01:00
Anton Hvornum 344b1cf296
Fix readthedocs runner (#2231)
* The new build system requires a requirements.txt

* .txt is in .gitignore, had to force it in

* Missing requirements. I don't like this odd side loading of requirements.. but need to get docs built quickly.
2023-11-21 19:52:53 +01:00
Anton Hvornum 5077219a5f
Fix readthedocs runner (#2230)
* The new build system requires a requirements.txt

* .txt is in .gitignore, had to force it in
2023-11-21 19:47:15 +01:00
Anton Hvornum f3ad97fc3f
The new build system requires a requirements.txt (#2229) 2023-11-21 19:42:31 +01:00
Anton Hvornum 40715549cb
Add sphinx-rtd-theme to conf.py (#2228)
* According to https://sphinx-rtd-theme.readthedocs.io/en/stable/installing.html - extension = [] needs to be added too

* Fixed wonky indentation
2023-11-21 19:34:02 +01:00
Anton Hvornum 9b2d192817
New format requires build.os instead of build.image (#2227) 2023-11-21 19:24:48 +01:00
Anton Hvornum 94ae8f800f
Renamed readthedocs file to comply with strict file endings (#2226) 2023-11-21 19:19:59 +01:00
Anton Hvornum cc806d9c4c
Started a re-write of the docs (#1967)
* Started a re-write of the docs, using CSV for tables and re-organizing parameter definitions

* Added final config options in --config, some have external references which needs to be populated

* Forgot to escape a comma

* Clarified a note

* Added disk configuration and disk encryption docs

* Changed way of installing using source and python

* Added a 'list script' that lists available scripts. This could be converted to a argparse later. But this does the trick for now. And it's added to ease documentation and listing of available options.

* Added a 'Known issues' section, as well as renamed the issues tab

* Finished up the known issues section

* Added a section regarding --plugin

* Added plugin description, tweaked disk_config to the latest changes from #2221

* Added custom-commands docs, and improved some creds and known issue links
2023-11-21 14:34:30 +01:00
czapek e6344f93f7
Fix Limine bootloader deployment (#2216)
* Add `get_unique_path_for_device` to `DeviceHandler`

* Fix Limine bootloader deployment

* Fail if UKI is enabled with Limine

* Support more configuration options with Limine

* Fix linter errors

* Fix boot partition fs_type check for Limine
2023-11-21 10:19:17 +01:00
codefiles f16af43949
Fix GPT end alignment (#2210) 2023-11-20 12:58:09 +01:00
codefiles f876ddc68e
Remove superfluous use of `partprobe` (#2212) 2023-11-20 12:56:12 +01:00
codefiles 6ee6d1eda0
Remove `select_language()` duplicate of `select_kb_layout()` (#2151)
* Remove `select_language()` duplicate of `select_kb_layout()`

* Added a deprecation warning on select_language()

* Moved select_language() back into it's original location, just to keep the PR diff minimal

* Removed import for now, to please flake8

---------

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-11-20 12:55:45 +01:00
codefiles 30a374a65b
Fix parsing pre-mounted disk configuration from configuration file (#2221) 2023-11-20 12:54:04 +01:00
renovate[bot] f6106324eb
chore(deps): update dependency simple-term-menu to v1.6.3 (#2208)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 20:10:21 +01:00
renovate[bot] af6713e8df
chore(deps): update dependency simple-term-menu to v1.6.2 (#2203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 12:50:26 +01:00
codefiles 940468117a
Fix logic error in `encrypt()` loop (#2207) 2023-11-09 12:47:30 +01:00
Wellinton Kricowski c9755b35e7
PT BR translation improvements (#2199) 2023-11-06 17:55:50 +01:00
codefiles 5b6cab27f1
Fix logic error in `_fetch_lsblk_info()` loop (#2196) 2023-10-31 17:57:59 +01:00
codefiles 2831c97338
Fix password preview (#2190) 2023-10-25 09:27:18 +02:00
Celestial.y 474861c155
Update translation of zh-CN (#2165) 2023-10-23 09:26:51 +02:00
renovate[bot] 78ab858b3b
chore(deps): update dependency dev/mypy to v1.6.1 (#2184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 08:00:16 +02:00
Daniel Girtler ce9828c293
Fixes for prev PR (#2175)
* Fixes for prev PR

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-10-18 16:57:44 +11:00
codefiles 8117c0eed8
Fix EFISTUB `cmdline` (#2181) 2023-10-18 07:54:29 +02:00
codefiles bc3b3a35e6
Add support for unified kernel image (#1519) 2023-10-17 11:23:09 +02:00
codefiles 332ec0d623
Fix reset in locales menu (#2178) 2023-10-17 11:21:39 +02:00
codefiles 5dda32f17e
Refactor `_add_systemd_bootloader()` newlines (#2173)
* Refactor `_add_systemd_bootloader()` newlines

* Revert f-string change
2023-10-16 16:42:42 +02:00
Daniel Girtler c4c5cc4224
User error info and version check (#2169)
* Add user information for error

* Show output if newer version available

* Update

* Update

* flake8

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-10-15 20:26:27 +11:00
codefiles 07b0bb1835
Fix `MOUNT_POINT` for pre-mounted disk configuration (#2168) 2023-10-15 09:26:34 +02:00
renovate[bot] 3c2ed1c121
chore(deps): update dependency dev/pre-commit to v3.5.0 (#2164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 20:44:04 +02:00
renovate[bot] d1ea6db9aa
chore(deps): update dependency dev/mypy to v1.6.0 (#2155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 09:56:36 +02:00
codefiles 7930ea58fd
Fix install text initialization (#2162) 2023-10-13 18:50:35 +11:00
codefiles 5e59acf937
Add handling of signal interrupt and EOF at input prompts (#2154) 2023-10-10 10:00:22 +02:00
codefiles dc69acd4b4
Fix keyboard layout and timezone menus (#2153) 2023-10-09 21:40:59 +11:00
Daniel Girtler edbc135903
Extend the mypy checks (#2120)
* Extend the mypy checks

* Update

* Update

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-10-03 18:31:17 +11:00
Daniel Girtler 5c903df55f
Simplify SysCommand decoding (#2121) 2023-10-02 21:01:23 +11:00
Dylan M. Taylor a095e393d8
Fix ArchInstall ISO build (#2142) 2023-10-02 07:50:58 +02:00
codefiles 8257e9f73f
Fix missing info for pre-mounted disk configuration (#2143) 2023-10-02 07:50:20 +02:00
Ansh Goel 71048721ec
Added first Hindi language support (#2134) 2023-10-01 20:51:28 +11:00
Alexmelman88 66fd201045
Update Russian translation (#2136) 2023-10-01 20:51:04 +11:00
K.B.Dharun Krishna a34e374634
po: update Tamil translation (#2105)
* po: update Tamil translation

* po: update translation files

* po: update translation files, Tamil translation

* Revert "po: update translation files, Tamil translation"

This reverts commit 98ef415138.

* po: update Tamil translation

---------

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
2023-10-01 07:57:35 +11:00
Anton Hvornum a78ab490be
Bumping version to: v2.6.3 (#2135) 2023-09-30 15:56:22 +02:00
codefiles 9f5c2bb70b
Add support for ESP partition flag (#2133) 2023-09-29 16:09:28 +02:00
codefiles 5f5b95f245
Fix GRUB boot directory (#2130) 2023-09-29 07:11:30 +02:00
codefiles 7a9a934ae3
Refactor `_add_efistub_bootloader()` use cmd list (#2127) 2023-09-29 08:29:54 +10:00
codefiles 3695c37bc4
Fix mount command whitespace (#2126) 2023-09-28 21:00:06 +10:00
Daniel Girtler 1e296b2637
Fix 2118 (#2119)
* Update locales generation

* Update README

* Disable translation check

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-28 08:44:18 +10:00
Anton Hvornum 72856ed5ec
Bumping version to: v2.6.2 (#2123) 2023-09-27 23:17:26 +02:00
codefiles 072519ad11
Simplify command in `README.md` example (#2122) 2023-09-27 17:20:13 +02:00
T13nou 2394e64dc2
FR Translation updated (#2112) 2023-09-27 08:50:14 +02:00
Wise 454b4bf7e9
tr translation files updated (#2115) 2023-09-27 08:49:55 +02:00
codefiles 0b4909b492
Use unpacking for list creation (#2117) 2023-09-27 08:49:20 +02:00
codefiles a811decea5
Fix mount debug message (#2116) 2023-09-27 07:39:35 +02:00
Daniel Girtler bc8d4ea234
Fix 2103 (#2114)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-26 10:57:50 +02:00
codefiles 717a22371f
Fix `mountpoint` for pre-mounted disk configuration (#2113)
* Fix `mountpoint` for pre-mounted disk configuration

* Add missing commas
2023-09-26 10:57:45 +02:00
Anton Hvornum c427391543
Disabled fstrim on BTRFS by default (#2109)
* Disabled fstrim on BTRFS by default

* Changed variable name to conform with suggestion in #2109
2023-09-26 09:56:34 +02:00
Daniel Girtler b141609990
Fix 1669 | Refactor display of sizes in tables (#2100)
* Use sector as default display

* Display tables in sector size

* Refactor size

* Update

* Update

* fix flake8

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-24 19:47:38 +10:00
codefiles 9e3e4a5df5
Refactor microcode (#2099) 2023-09-24 19:18:52 +10:00
Daniel Girtler 360a1b4f33
Unify json functions (#2102)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-24 10:14:02 +02:00
Daniel Girtler 877e34de63
Fix line break (#2101)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-24 09:36:32 +02:00
K.B.Dharun Krishna abd5aeba6a
po: update Tamil translation (#2096)
* po: update Tamil translation

* Update translation workflow check

* Update translation workflow check

* Update translation workflow check

* Update translation files

* Update translation workflow check

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-24 11:03:04 +10:00
codefiles ab5de3e2e6
Add support for loop devices (#2097) 2023-09-24 10:51:20 +10:00
Niko Hoffrén f078c74692
Fix small typo in README.md (#2095) 2023-09-24 08:48:09 +10:00
Anton Hvornum 7f5b100743
Bumped version to: v2.6.1 (#2094) 2023-09-23 15:16:58 +02:00
Anton Hvornum 5513ac0af5
Bumped version to: v2.6.1 2023-09-23 15:15:11 +02:00
Thomas Aldrian ad6cbcfd3d
Fix GRUB with non-/boot ESP (#2015)
* Fix GRUB with non-/boot ESP

Fixes #2001

* GRUB EFI fixes

* Fix flake8 and mypy

---------

Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-23 12:11:21 +10:00
Anton Hvornum ca3051ebf3
Added kitty, dolphin, wofi to hyprland (#2092) 2023-09-22 16:47:50 +02:00
Sxmourai d6e3a4651f
Renamed hyperland to hyprland, fixed seatd via post_installation and added waybar-hyprland (#1824)
* Renamed hyperland to hyprland, fixed seatd via post_installation and installed waybar

* Removed the launching of seatd on the installation process

* Starting to add nvidia support, and automatic configuring of hyprland

* Starting to add auto configuration of hyprland... But this will need maintenance

* Added hyprpaper auto config
Gonna make waybar auto config next

* Waybar auto config is starting...
I can't test rn I'm on vacation and my connection is quite bad (68 days for arch iso)

* Added wlogout support (and swaylock)

* Fixed file managers printing

* Starting to add a shell config... Definitely don't push this

* Reverted custom-shell config (create a separate PR)

* Removed systemd-logind, as that was just for testing the selector

* Added polkit as an option for the seat. As it's a dependency of the hyprland package

* Flake8 fix

* The name change wasn't propegated to the menu

* Added newline at the end of general_conf.py to not alter it

* Removed newline at the end of general_conf.py to not alter it

* Renamed the Hyprland class

---------

Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2023-09-22 11:46:59 +02:00
renovate[bot] 4f9e8d2381
chore(deps): update dependency dev/pre-commit to v3.4.0 (#2090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 11:46:10 +02:00
renovate[bot] d6ef345fc3
chore(deps): update dependency dev/mypy to v1.5.1 (#2089)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 11:45:03 +02:00
renovate[bot] db057aee1e
Add renovate.json (#2086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 11:43:27 +02:00
Daniel Girtler 8e40de85fb
Only parse profile classes when loading modules (#2088)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-22 11:43:12 +02:00
codefiles 6d908e8cd7
Fix `_add_efistub_bootloader()` partition number with partn (#2084) 2023-09-21 17:13:22 +02:00
Daniel Girtler c75ae97f00
Sort the profiles with ignore case (#2080)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-21 19:48:49 +10:00
Daniel Girtler 0e93d5b468
Update instructions to run archinstall from ISO (#2076)
Update instructions to run archinstall from ISO
2023-09-21 18:34:11 +10:00
codefiles da9599a9f6
Rework `_get_kernel_params()` for `_add_grub_bootloader()` (#2079)
* Rework `_get_kernel_params()` for `_add_grub_bootloader()`

* Remove uncommenting of GRUB config line for encrypted /boot support
2023-09-21 09:46:55 +02:00
codefiles 3e2999bc27
Fix acquisition of UUID (#2077)
* Fix acquisition of UUID

* Fix inadequate solution

* Add check for UUID
2023-09-20 20:49:29 +02:00
codefiles b1e0068795
Use `_preset` for defaults in `LocaleMenu` (#2071)
* Use `_preset` for defaults in `LocaleMenu`

* Fix adjacent typos
2023-09-20 08:04:23 +02:00
codefiles 33d084f16a
Use `SUPPORTED` file for locale options (#2069)
* Use `SUPPORTED` file for locale options

* Add glibc to `PKGBUILD` depends
2023-09-20 06:51:20 +10:00
Daniel Girtler c0ff55d55b
Allow assigning mountpoint on existing partitions (#2067)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-19 06:47:46 +10:00
Daniel Girtler f6acdf5b5e
Update README with instructions (#2066)
* Update README with instructions

* Update

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-19 06:47:24 +10:00
codefiles 6ec2bd4b55
Add `_get_kernel_params()` (#2064) 2023-09-18 23:22:55 +10:00
Alexander Seiler 12b7017240
Fix many typos (#1692)
Signed-off-by: Alexander Seiler <seileralex@gmail.com>
2023-09-18 22:04:36 +10:00
codefiles ca09e1e63d
Refactor `_add_efistub_bootloader()` kernel parameters (#2061)
* Refactor `_add_efistub_bootloader()` kernel parameters

* Remove obsolete comment
2023-09-18 07:02:29 +10:00
codefiles 71ecfcc24e
Remove git install from `build_iso.sh` (#2063) 2023-09-17 21:38:19 +02:00
Daniel Girtler 91c2906f3c
Fix broken action check (#2060)
* Fix broken action check
2023-09-17 22:12:34 +10:00
codefiles 15e52b7768
Refactor `_add_efistub_bootloader()` cmdline (#2059) 2023-09-17 17:17:48 +10:00
codefiles b9d962bec2
Refactor `_add_grub_bootloader()` installation (#1968)
* Refactor `_add_grub_bootloader()` installation

* Remove whitespace
2023-09-17 17:14:47 +10:00
Himadri Bhattacharjee f4a6d11373
fix: make nodatacow and compress mutually exclusive (#1998)
* fix: make nodatacow and compress mutually exclusive

* fix: raise ValueError when both compress and nodatacow flags are set
2023-09-17 09:21:08 +10:00
Wu Xiaotian 47ed711743
Support CJK text alignment (#2012)
* Add functions for unicode string alignment

* use unicode alignment function to show menu

* Allow table content to support unicode text alignment
2023-09-17 09:08:38 +10:00
codefiles c9e2027725
Fix encryption debug message in `_add_efistub_bootloader()` (#1991) 2023-09-17 07:30:46 +10:00
Anton Hvornum 2cc0d64619
Added a forced buffer flush on each worker stdin write (#2057) 2023-09-16 14:58:20 +02:00
Campbell Jones 06d46ac762
Add option to use slick-greeter with lightdm (#1970) 2023-09-15 21:51:36 +10:00
Hugo Carvalho 418351d5ef
Update Portuguese translation (#1976)
More corrections
2023-09-15 18:41:20 +10:00
Christian Heusel f270a47f27
add the option to use ly as display manager (#2004)
Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-09-14 22:10:26 +10:00
yenaras 9e079020b1
fix instructions for Using a Live ISO Images (#2021)
replaced `--break-operating-system` with the correct flag
`--break-system-packages` and also added the flag as required for
`pip uninstall --break-system-packages`
2023-09-14 21:49:46 +10:00
Stephen Houser 31bd5e80e3
fix custom-commands issue #2025 (#2026) 2023-09-14 21:41:48 +10:00
Adrian Sausenthaler 4e243fa868
'Packete' made my eyes bleed; fixed common german mistakes; added missing (#2029)
Signed-off-by: Adrian Sausenthaler <gpg@sausenthaler.de>
2023-09-14 21:16:35 +10:00
Roxfr c3d18fecdf
New translation for the French language (#2024)
* French language translation update

Hello,
Here is the update of the translation for the French language.
Regards,
Roxfr

* Add files via upload

Hello,
Here is the new translation for the French language:
- Update of the translation via the latest .pot file,
- Improved translation.
Regards,
Roxfr
2023-09-14 21:16:08 +10:00
Andrei Iancu 9518a4bf39
Add romanian translation to archinstall (#2034)
* Add romanian translation for installer

* Ad romanian translation.

* Update translation
2023-09-14 21:13:03 +10:00
Kazunari Sasa 386fbccffb
Correct the simple typo in the comment (#2042) 2023-09-14 21:11:42 +10:00
Daniel Girtler f185538355
Rename profile in sub-menu (#2033)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-14 20:56:06 +10:00
Daniel Girtler 56567221b6
Fix 1971 - manual partitioning (#2031)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-14 20:06:23 +10:00
Daniel Girtler 0258b0335e
Fix Bootloader installation (#2032)
* Fix broken path

* Update

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-14 20:05:53 +10:00
Daniel Girtler dcf3dfef57
Fix 2035 - Profile configuration (#2036)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-14 20:05:05 +10:00
Daniel Girtler c8e0b9a4d6
Default to unknown on partition types (#2037)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-14 20:04:25 +10:00
Ikko Eltociear Ashimine 2252dcf9bb
Fix typo in README.md (#2050)
interative -> interactive
2023-09-14 20:03:59 +10:00
Daniel Girtler 3ba1a3718e
Fix 1973 - pipewire (#2030)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-09-14 19:59:32 +10:00
Daniel Girtler 9bfd8c622a
Merge pull request #2038 from svartkanin/fix-github-action
Fix github action
2023-09-14 07:02:35 +10:00
Daniel Girtler be7ffbdd7e Update 2023-09-05 21:38:56 +10:00
Daniel Girtler bcf1eb3e36 Update 2023-09-05 21:32:30 +10:00
Daniel Girtler d93bf84e59 Fix github action 2023-09-05 21:21:08 +10:00
Hugo Carvalho 81ef09c336
Fix and update Portuguese translation (#1972) 2023-08-02 12:27:47 +02:00
Pedro Chaparro f7604c81a6
Translate: Add some missing Spanish translations (#1969)
* feat(locales/es): Add some missing spanish translations

* feat(locales/es): Run `locales_generator.sh` script to update the `base.mo` file

Follow the `archinstall/locales/README.md` instructions to add / update languages.

* feat(locales/es): Add some new missing translations

* feat(locales/es): Run `locales_generator.sh` script to update the `base.mo` file
2023-07-31 20:45:32 +02:00
Hasan Oruc 0852a7cacb
Updated and corrected translation. (#1910)
* Updated and corrected translation.

* Updated and corrected translation.
2023-07-31 09:41:26 +02:00
Himadri Bhattacharjee f8d2690920
move preview text method for profiles into xorg superclass, override when needed (#1918)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-07-31 09:40:45 +02:00
Wu Xiaotian d878496a2f
Improve the Chinese, Japanese and Korean text menu layout (#1945)
Before this patch, menus in Korean language would not be aligned:

```
  Archinstall 언어            Korean (71%)
> Mirrors
  Locales                   Defined
  Disk configuration
  부트로더                      Systemd-boot
  스왑                        True
```

After apply this patch, menus in Korean language are aligned:

```
  Archinstall 언어          Korean (71%)
> Mirrors
  Locales                   Defined
  Disk configuration
  부트로더                  Systemd-boot
  스왑                      True
```
2023-07-31 09:39:06 +02:00
Mário Victor Ribeiro Silva 9cbb2b7594
Parallel downloads (#1952)
* refactor: remove max_downloads limit

* Update parallel downloads

* Update parallel downloads
2023-07-31 09:38:42 +02:00
codefiles 7dd95f8c69
Refactor `_add_grub_bootloader()` configuration (#1962) 2023-07-31 09:38:29 +02:00
Anton Hvornum ada1ffeaad
Bumping version (#1965) 2023-07-30 23:44:52 +02:00
Anton Hvornum 3cea9baff6
Muted partprobe (#1964)
* Muted partprobe

* Missing import
2023-07-30 23:40:40 +02:00
Anton Hvornum a1ad25ff45
Mkinitcpio turn on output (#1963)
* Turning on output for mkinitcpio, otherwise the prompt stand still for a while after enabling fstrim.

* Added error message for when mkinitcpio errors out (but also say we're continuing)

* Pleasing mypy
2023-07-30 22:08:51 +02:00
Wu Xiaotian 355a0dbe06
Update Simplified Chinese translation (#1943) 2023-07-30 09:59:31 +02:00
Anton Hvornum a43344c5ae
Adding pack packages to profiles after they were removed (#1956)
* Added back xinit for awesome, since it can be used without a greeter, as well as other useful tools we've had in previous releases

* Fixing xinitrc for awesome profile

* Attempting to grab xorg packages when installing the desktop profile

* Spelling error on xorg-server

* Fixed sway value error on seat selection
2023-07-30 00:28:21 +02:00
codefiles 29b5280725
Add `awesome` package to Awesome profile (#1954) 2023-07-29 12:20:55 +02:00
codefiles 7326d51161
Fix boot loader disk encryption conditional (#1950) 2023-07-26 15:22:01 +02:00
Wu Xiaotian 1af21c3e95
Let the Chinese translation show in the menu item (#1944)
Even though the translation files exist, we still can't find Simplified or
Traditional Chinese translations from the language menu, this patch fixes that.
2023-07-26 09:19:45 +02:00
Alexmelman88 08b84d239c
Update Russian translation (#1947) 2023-07-25 13:29:22 +02:00
Mário Victor Ribeiro Silva 728e5773e9
feat: add more translations (#1936) 2023-07-25 13:24:57 +02:00
Daniel Girtler a548d7df70
Fix 1916 (#1920)
* Do not stdout when menu is active

* Handle missing libfido2 gracefully

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-07-25 11:19:14 +02:00
Daniel Girtler 439bb5428b
Fix 1934 - audio server regression (#1946)
* Audio configuration

* Update

* Update schema

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-07-25 11:17:09 +02:00
codefiles d76f4a0296
Fix boot partition regression (#1942)
* Fix boot partition regression

* Fix spelling
2023-07-25 11:16:02 +02:00
codefiles 69c37e7c79
Uncomment `/etc/locale.gen` entry and use first column for `LANG` variable (#1939) 2023-07-19 08:49:40 +02:00
Anton Hvornum e41900a25c
removed str() around objects to be serialized. As None should stay intact rather than become 'None' (#1932) 2023-07-17 10:13:22 +02:00
Anton Hvornum 10fca1611d
Added some debug output to see why the locales check errors out on no bash script (#1931) 2023-07-17 09:34:10 +02:00
Daniel Girtler 2f273868d4
Fix network settings loading from config file (#1921)
* Fix network config error and simplify code

* Update schema and exmaple

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-07-17 09:27:21 +02:00
codefiles c67bb0b549
Refactor `_add_systemd_bootloader()` loader configuration (#1911) 2023-07-17 00:17:21 +02:00
Anton Hvornum afaf42e646
Enable separate /boot and /boot/esp via XBOOTLDR in systemd-boot (#1859)
* 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-07-17 00:14:44 +02:00
Anton Hvornum 21735c57ca
Added missing python-simple-term-menu (#1919) 2023-07-05 14:17:39 +02:00
uranderu 64fc585fa7
Update README.md (#1755)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-30 20:37:39 +02:00
Anhad Singh ba9f2eea59
global_menu: wrap invalid config error message with the translation shim (#1908)
* 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-30 20:29:18 +02:00
codefiles 10fc344097
Refactor `_add_systemd_bootloader()` entries options (#1909)
* 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-30 20:27:49 +02:00
codefiles a04e68495b
Refactor `_add_systemd_bootloader()` entries creation (#1907) 2023-06-30 14:36:38 +02:00
Anhad Singh a0e4e6ee76
installer: add Limine bootloader (#1815)
* 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-30 09:53:53 +02:00
codefiles ffb9366280
Skip rom devices (#1906) 2023-06-29 15:33:14 +02:00
Anton Hvornum 58bccccd5d
Revert "Created dwm.py (#1902)" - This reverts commit 2450c7bdff. (#1905) 2023-06-29 09:49:22 +02:00
Anton Hvornum 025ee8f064
Fixed indentation issues from #1902 (#1904) 2023-06-28 23:07:25 +02:00
Sumit Patel 2450c7bdff
Created dwm.py (#1902)
Created dwm.py for suckless users.
2023-06-28 20:04:32 +02:00
codefiles 0785b35eb4
Bump Python in workflow (#1863)
* Bump Python in workflow

* Attempting fix to build runner failing

* Appended --break-system-packages since the new changes was introduced in Arch

---------

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-28 14:51:07 +02:00
Anton Hvornum 5b102b0228
Adding python-simple-term-menu to the dependency list (#1901)
* Adding python-simple-term-menu to the dependency list

* Added dependencies to all binaries we call, such as 'ps' and 'mkfs' etc

* Sorted the depends list - just for peace of mind

* Bumped version in prep for release of rc1, also updated README a bit

* Removed older python versions from classifiers
2023-06-28 14:22:07 +02:00
Himadri Bhattacharjee 1ae1f2ff11
Refactor installer and general design patterns (#1895)
* 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-28 13:42:53 +02:00
Daniel Girtler 57ebc42ffd
Fix 1875 (#1880)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-28 13:34:54 +02:00
Rodrigo Broggi 82a5320764
Document new pip install flag (#1897)
See [this thead](https://github.com/archlinux/archinstall/issues/1734#issuecomment-1605709792) 

Including `--break-operating-system` flag in `pip install` instructions in doc.
2023-06-25 11:06:52 +02:00
Himadri Bhattacharjee 27a474ed4a
fix: define ret as Optional[str] before reassignment in get_fido2_devices (#1894) 2023-06-23 09:46:30 +02:00
ArtikusHG 748f03cdb1
Fix crash when libfido2 is not installed (#1893)
Co-authored-by: ArtikusHG <artiomoleynic@gmail.com>
2023-06-22 22:49:08 +02:00
Himadri Bhattacharjee 72661dbf9b
Simplify object serialization before JSON encoding (#1871)
* 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-22 14:09:14 +02:00
mosfet80 23f98082cc
Update autoflake (#1889) 2023-06-21 09:55:17 +02:00
Daniel Girtler 885f89c3a1
Rename encryption method (#1888)
* Rename encryption method

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:54:42 +02:00
Diogo Silva 4eae8f656f
chore: update translation for pt_BR (#1886) 2023-06-21 09:53:29 +02:00
Daniel Girtler c7c34c9e70
Make Gfx driver handling saver (#1885)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:52:48 +02:00
Daniel Girtler 16132e6fc9
Fix 1862 (#1884)
* Fix 1862

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:52:06 +02:00
Schwarzeisc00l 4435dc3e2d
Update base.po (#1883) 2023-06-21 09:51:08 +02:00
Daniel Girtler 21bf87f234
Fix workflows and checks (#1872)
* Update translation workflow

* Fix broken checks

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:50:28 +02:00
Nikita Triblya 96cb6cc943
Update lxqt.py (#1878)
Removed the comma after the "slock" package, since it is the final package
2023-06-21 09:49:06 +02:00
Nikita Triblya 64a0d097f0
Update budgie.py (#1877)
Removed the comma after the "papirus-icon-theme" package, since it is the final package
2023-06-21 09:48:48 +02:00
Daniel Girtler 1b5ecb65aa
Always verify permissions and check for log dir (#1874)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:47:30 +02:00
Daniel Girtler 03d228fee8
Update contributing doc (#1873)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21 09:45:17 +02:00
Daniel Girtler 92b0d0f833
Fixes 1861 (#1870)
* Fix translation files

* Add github action

* Update

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-14 00:26:15 +02:00
codefiles c8bb8d7a0c
Use pathlib in `_add_systemd_bootloader()` (#1866) 2023-06-12 22:50:11 +02:00
K.B.Dharun Krishna 9164c63f2a
po: update Tamil translation (#1867) 2023-06-12 22:20:38 +02:00
Roxfr 6e06d6d7c6
Resolved merge conflict (#1730)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-12 16:52:31 +02:00
Rafael Fontenelle 768cb15843
Update Brazilian Portuguese translation (#1736)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-12 15:49:34 +02:00
Lena f5936966a4
Added changes only to PL language (#1750)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-12 15:44:04 +02:00
wc7086 99fbc189c6
Update Simplified Chinese translation (#1757)
Co-authored-by: wc7086 <190022474@qq.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-12 15:33:28 +02:00
Wellinton Kricowski aa1c6b014d
PT BR translation improvements (#1760) 2023-06-12 15:25:46 +02:00
K.B.Dharun Krishna e0a3bd1114
Update Tamil translation (#1765)
Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-12 15:24:55 +02:00
Eren İnce 84bf24cbbb
Updated Turkish translation (#1771)
* Update base.po

* Update base.po

* Delete base.mo

* Add files via upload

---------

Co-authored-by: Eren İnce <63284001+ernince@users.noreply.github.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-12 15:21:41 +02:00
codefiles 77710883b0
Update bootctl --path option to --esp-path (#1854) 2023-06-12 11:36:19 +02:00
Nikita Triblya 1b0c8f3ce3
Removed comma at the end of package listing in i3.py (#1839)
Removed comma at the end of package listing in i3.py
2023-06-12 10:54:38 +02:00
Anton Hvornum f9ce7679fe
Added a service-started wait timer for keyring.timer (#1858)
* 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-12 10:49:53 +02:00
Tuğşat Enes 195d779d85
Reverted changes to other languages (#1857)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-12 09:33:27 +02:00
Daniel Girtler 5087c86263
Fix 1830 (#1831)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-08 11:00:21 +02:00
Himadri Bhattacharjee 701d1e4ec3
Installs correct dkms package for nvidia and nvidia-open (#1847) 2023-06-08 10:54:52 +02:00
codefiles de9b8d4f0e
Fix paths used for steps in keyfile creation (#1851)
* Fix paths used for steps in keyfile creation

* Simplify
2023-06-08 10:48:56 +02:00
Alexmelman88 96d0eb1de9
Update Russian translation (#1849) 2023-06-08 10:47:22 +02:00
Kefaku bc4f80441f
Add some german translations (#1848) 2023-06-07 20:31:34 +02:00
George Angelopoulos b60a055348
remove accidentally added space (#1845) 2023-06-05 16:58:35 +02:00
George Angelopoulos b02e00d22e
Rephrase NetworkManager dependency message for clarity. (#1834)
The phrase "X necessary to configure Y in Z" is at best ambiguous and
could mean that Y and Z are required by X, while the intended message is
the reverse. The phrase "necessary for configuring" makes the
relationship clearer.
2023-06-05 12:27:58 +02:00
Kefaku 3bc624298a
Add some translations for locales/de (#1844)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-05 10:54:20 +02:00
Daniel Girtler 91ee3575d3
Fix 1749 (#1840)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-05 10:47:14 +02:00
Hegert Taresalu 7af5490fef
Add Estonian translation (#1827)
* create et locale and added 56 translations

* add more et translations(55-67)

* add et translations

* add translated_lang

* update readme language list

* Fixed merge conflicts

---------

Co-authored-by: Hegert Taresalu <htaresalu@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-06-05 10:16:37 +02:00
Error504TimeOut 4da7d537a5
Updated German Translation (#1825)
* Add files via upload

* Fixed errors and completed German translation

* fixed minor error
2023-06-05 10:11:02 +02:00
Xuan-Rui Fan 11cecbb3dc
Add traditional Chinese translation (#1823)
* Add Traditional Chinese (Taiwan)

* Update languages.json
2023-06-05 10:06:37 +02:00
codefiles f51fd1a278
Detect more modules requiring `alsa-firmware` (#1822) 2023-06-05 10:05:38 +02:00
Daniel Girtler 06eadb31d4
Move locales and cleanup menu (#1814)
* 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-06-05 10:02:49 +02:00
codefiles 5276d95339
Remove partial upgrade from `build_iso.sh` (#1809) 2023-05-15 15:53:42 +02:00
bd-g 3267ee215a
Improve Save configuration UI - (re)allow for directly specifying custom 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-15 15:53:06 +02:00
Anton Hvornum b1f26d94e6
Allowing for fg='color' in info, warn, error and debug. (#1818)
* 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-15 15:50:11 +02:00
Daniel Girtler 8a292a163e
Add custom mirror support (#1816)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-15 09:16:18 +02:00
Pedro Dutra d65359896a
simple fix in README.md (#1813) 2023-05-12 20:32:11 +02:00
codefiles 06f35fd289
Install the package `alsa-firmware` if required (#1812) 2023-05-12 14:01:24 +02:00
codefiles 128db1cdf6
Install the package `sof-firmware` if required (#1811) 2023-05-12 08:24:14 +02:00
Daniel Girtler 89cefb9a1c
Cleanup imports and unused code (#1801)
* Cleanup imports and unused code

* Update build check

* Keep deprecation exception

* Simplify logging

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-11 18:30:09 +02:00
Daemon Coder 6e6b850a8f
Add `set -e` to `build_iso.sh` (#1806) 2023-05-08 16:06:34 +02:00
Daemon Coder 1df53c1406
Remove Flit from `build_iso.sh` added packages (#1804) 2023-05-07 14:02:56 +02:00
Daemon Coder dc19d5f0fa
Refactor `build_iso.sh` archinstall archiso profile package (#1803) 2023-05-07 10:16:52 +02:00
Daemon Coder c10acfa5ae
Refactor `build_iso.sh` zprofile (#1799) 2023-05-07 09:04:44 +02:00
Daemon Coder a968dccbf1
Fix default value idx in `_determine_cursor_pos()` (#1800)
Co-authored-by: Daniel Girtler <blackrabbit256@gmail.com>
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07 08:48:46 +02:00
Daemon Coder 232939e910
Refactor `build_iso.sh` added packages (#1797) 2023-05-07 08:41:50 +02:00
Daniel Girtler c0a7d45a83
Fix 1792 (#1795)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07 08:40:44 +02:00
Daniel Girtler 525c94bf36
Fix 1793 (#1794)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07 08:39:25 +02:00
Daniel Girtler eb23b2d7c9
Update version 2.5.6 (#1791)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07 08:38:29 +02:00
Daniel Girtler 235c1190b0
Fix 1763 (#1790)
* Fix 1763

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-06 08:09:58 +02:00
Daemon Coder f0fc6a77f2
Fix NTP option (#1788) 2023-05-06 08:09:34 +02:00
Daemon Coder 1330c68084
Fix `LsblkInfo` size field (#1787) 2023-05-05 07:47:35 +02:00
xenium 15199081e5
Adding Hyperland wm (#1785) 2023-05-04 17:30:40 +02:00
Daemon Coder f211906a5a
Remove obsolete enabling of NTP in ISO (#1729)
* 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-04 16:04:35 +02:00
Daemon Coder fd83f073f3
Update `SysCommand()` calls in remaining files (#1707) 2023-05-04 10:42:37 +02:00
Daemon Coder adceed22ad
Fix logic errors in `_fetch_lsblk_info()` (#1754) 2023-05-04 09:45:43 +02:00
Daniel Girtler 9e5d45c5d8
Fix 1780 (#1782)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-04 07:23:43 +02:00
Anton Hvornum 2531a57050
Fixing starting of service via str argument (#1779) 2023-05-03 17:52:51 +02:00
Daniel Girtler 2d06cf592a
Fix 1772 (#1773)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-03 16:37:55 +02:00
Daniel Girtler ec4ecbcb7a
Full mypy compliance and small fixes (#1777)
* Fix mypy compliance

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-03 16:36:46 +02:00
Daniel Girtler e78ddb03e1
Attempt to fetch partuuid multiple times (#1770)
* Attempt to fetch partuuid multiple times

* Update

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-28 14:18:48 +02:00
Daemon Coder 02af5fb6b2
Fix README.md links (#1768) 2023-04-27 17:16:05 +02:00
Daniel Girtler 32982b880b
Fix import and configuration loading issues (#1764)
* Fix import and configuration loading issues

* Fix mypy

---------

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-22 08:04:36 +02:00
Daniel Girtler 00b0ae7ba4
PyParted and a large rewrite of the underlying partitioning (#1604)
* 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-19 12:55:42 +02:00
codefiles 5253e57e9f
Remove superfluous time sync steps (#1752) 2023-04-19 12:52:51 +02:00
Callum Andrew 98f13ece6e
profiles/sway: update packages (#1745) 2023-04-16 09:36:56 +02:00
牧瀬紅莉栖 c241203ded
Add runtime dependency for dmenu (#1514) 2023-04-16 09:36:01 +02:00
codefiles 5689d4f59f
Fix sd-boot code duplication (#1721) 2023-04-04 09:46:49 +02:00
Jefferson Michael e77f90cef0
PT BR translation improvements (#1717) 2023-04-04 09:19:16 +02:00
r0t0r-r0t0r 6e3c6f8863
Fix i3 profile (#1714) 2023-04-02 00:04:53 +02:00
bd-g 7ad00d96e1
Make it easier to save configuration files (#1659)
* 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-04-01 10:13:18 +02:00
Anton Hvornum dc5291f781
Removing legacy build files setup.py and setup.cfg (#1711)
* Removing legacy build and dist files

* Bumped requirement for setuptools to deal with dynamic license inclusion

* Added dynamic versioning and licensing to pyproject.toml

* Clarified the license according to the LICENSE file, GPL-3.0-only
2023-03-31 18:14:34 +02:00
Anton Hvornum 1c6b0bae73
Replaced double-grep with awk (#1710) 2023-03-31 11:29:07 +02:00
Anton Hvornum 9efbe9e6e8
Improved PKGBUILD and correctly identify __version__ without git (#1709) 2023-03-31 11:13:59 +02:00
Anton Hvornum 315f87ce82
Fixed a indentation in a table of docs (#1708) 2023-03-31 11:05:52 +02:00
laymoth c3e3ac67c6
Update id translation (#1700) 2023-03-30 12:55:14 +02:00
laymoth 60cdb81c78
Update locale files (#1699) 2023-03-30 10:55:28 +02:00
Bao a822735dfe
Guard against null in config processor (#1705)
Fixes #1704
2023-03-30 10:08:08 +02:00
codefiles c5348564c9
Update `SysCommand()` calls in `installer.py` (#1703) 2023-03-30 09:35:01 +02:00
Anton Hvornum 4f539a1931
Added missing pkgver definition (#1697) 2023-03-29 15:41:55 +02:00
Anton Hvornum 4429b3897c
Updated PKGBUILD with a pkgver, depends and hashsums (#1696)
* Fixing some values that trigger issues in PKGBUILD

* license dynamic

* Updated PKGBUILD to contain a pkgver() as well as update hashsums and added systemd as depends
2023-03-29 15:30:11 +02:00
Anton Hvornum 9f102a66a4
Add some tweaks to make PKGBUILD more manageable (#1695)
* Fixing some values that trigger issues in PKGBUILD

* license dynamic
2023-03-29 14:39:47 +02:00
Anton Hvornum 9fe9fd6e62
Version bump v2.5.4 (#1694) 2023-03-29 13:29:13 +02:00
codefiles 194f132577
Use `pacstrap -K` (#1693) 2023-03-29 12:48:42 +02:00
Daniel Girtler 83f4b4178f
Save encryption configuration (#1672)
* Save encryption configuration

* Fix deserialization problem

* Added .part_uuid to MapperDev

---------

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>
2023-03-29 12:48:11 +02:00
Anton Hvornum b2fc71c9e5
Added .part_uuid to MapperDev (#1691) 2023-03-27 13:47:07 +02:00
Anton Hvornum fdb1b48330
Removed the archlinux-keyring package update
it should no longer be needed as there's a service populating keys. (#1690)
2023-03-26 23:00:52 +02:00
Anton Hvornum ef5011114d
Improved handling of .json() helper handling. By dumping it with the JsonEncoder and loading it back in we ensure that any recursive objects also meers the json friendly dict criterias. (#1689) 2023-03-26 22:05:52 +02:00
Lautron 942112f871
Check if line begins with 'warning' before adding it to package info (#1674)
* Check if line begins with 'warning' before adding it to package info,
fix #1673

* Implement @Torxed suggestion from #1674

* Replaced 4 spaces with 1 tab

---------

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-03-26 21:47:36 +02:00
Murphy 6fdfd93e69
Partition creation prompt text (#1683)
* new prompt text

* remove quotes
2023-03-26 21:42:24 +02:00
codefiles f6113107d6
Change exit status indications to exit codes (#1685) 2023-03-26 21:40:08 +02:00
codefiles 79eb6bba62
Fix `exit_code` (#1679) 2023-03-14 21:24:15 +01:00
Yunus Emre Aydın f0a6adb96d
Fixed flake8 warnings (#1676) 2023-03-14 11:05:17 +01:00
Steven Deobald 8f6cc07062
The Live ISO image does not have 'python-setuptools' installed (#1533) 2023-03-10 15:08:24 +01:00
chestwood96 6884cd52cb
Initial swapfile prototype (#1558)
* Initial swapfile prototype

* add_swapfile different exception handling

* Added error handling to add_swapfile prototype

---------

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2023-03-10 15:07:36 +01:00
mrvantage e4f3198505
Error handling cmd history (#1560)
* If we encounter a FileNotFoundError, the cmd_history.txt file or parent directory does not exist. This leads to vague errors upstream of cmd executable file not existing if this is the case. Probably this is a valid situation and we should just pass on the error.
2023-03-10 14:58:41 +01:00
Escape0707 5669f3ba46
Generate -fallback variant of boot entries for systemd-boot (#1583)
* Generate -fallback variant of boot entries for systemd-boot

---------

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-03-10 11:50:24 +01:00
Murphy 6c87996201
Add sector unit (#1668) 2023-03-10 10:45:48 +01:00
bd-g 114e3626e2
Sway profile - select seat (#1661)
* sway profile choose seat
2023-03-10 10:17:19 +01:00
Chengjun Xie 9b08c244e6
rename `keyboard-language` to `keyboard-layout` (#1670)
`keyboard-language` doesn't work.
2023-03-08 15:30:10 +01:00
Alexmelman88 f9975e22b0
Update ru locale (#1660)
* Update general_conf.py

* Add files via upload
2023-03-01 17:48:50 +01:00
Himadri Bhattacharjee 08769f3107
Fixes mypy errors. (#1658) 2023-02-28 19:49:59 +01:00
Anton Hvornum 70213ee114
Fixed indentation issue after #1657 2023-02-28 15:52:30 +01:00
Himadri Bhattacharjee 2559e0dc10
Uses dict setdefault instead of manually checking if key-value pair exists. (#1657) 2023-02-28 15:46:38 +01:00
Alexander Speshilov b41d701727
fix example in docs/examples/python.rst (#1606) 2023-02-28 14:20:53 +01:00
Campbell Jones 60d76d907a
Revise packages in Budgie profile (#1585)
* Revise packages in Budgie profile

* Use budgie pkg group, remove nm-applet
2023-02-28 06:49:45 +01:00
Roxfr b81ee19dad
French translation update (#1608)
* Add files via upload

* Add files via upload
2023-02-28 06:48:54 +01:00
NorwayFun 870e8fc46e
Add Georgian translation (#1625) 2023-02-28 06:48:25 +01:00
Victor B e0c20f9236
Modify "Española" to "Español" (#1607) 2023-02-28 06:46:07 +01:00
ettoc00 f212a01a56
Removed i3-gaps configuration choice (#1635)
Fix to issue #1621
2023-02-28 00:08:49 +01:00
Anton Hvornum 2a17ba9833
Replacing flit (#1655)
* Replacing flit

* Removed python-flit as a dependency

* Removed note about flit

* Removed flit references in pyproject.toml
2023-02-27 23:51:22 +01:00
jaybent f26b530859
Rename "peak_output" to "peek_output" (#1648)
* Rename "peak_output" to "peek_output"

* Added backwards compatability

* Added deprecated warning to peak_output

---------

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2023-02-27 23:13:00 +01:00
Anton Hvornum fa1bec9679
Bumped version to v2.5.3 2023-02-27 19:38:02 +01:00
Anton Hvornum 3f5170f422
Added 'exited' as a viable status code for services 2023-02-27 11:56:44 +01:00
Anton Hvornum 50d20f0b80
Added more services that we need to wait for. (#1647)
* Added more services that we need to wait for.

* Fixed small issue with previous commit not checking if disk_encryption is None or not.
2023-02-27 09:43:26 +01:00
Anton Hvornum ea029ed3f9
Patch for 1557 (#1645)
* Attempting a retry-attempt on the broken part of lsblk

* Improved logging

* Adding a retry to Partition._call_lsblk()

* Added error checks if lsblk returns nothing, also handles empty Partition().info instance.

* Added missing check of disk encryption is None or not.

* Added tweak to catching output from lsblk.stderr

* Added missing check of disk encryption is None or not.

* Fixed a logic test for empty lsblk info

* Fixed instances of None being interated

* Added some errro handling for weird block devices

* Fixed flake8

* Added /etc/vconsole.conf generation in Installer.mkinitcpio() as it's a dependency for it to generate properly without errors. Otherwise we'll get ==> ERRROR: file not found: '/etc/vconsole.conf'

* Prep for tagging RC1 of 2.5.3

* Corrected helpers.py get_blockdevice_info() to deal with empty lsblk results
2023-02-27 09:39:48 +01:00
ShiftHackZ 0e706b2da5
Add Ukrainian translation (#1642)
* Add Ukrainian translation

* Add translated_lang for Ukrainian translation
2023-02-21 21:49:00 +01:00
jaybent db5e54ab56
Sort contributers, Add maintainer section (#1646)
Corrects alphabetical sort order, and adds section for current maintainers.
2023-02-21 13:05:29 +01:00
Anton Hvornum 126f56169d
Removed absolut imports and used relative paths to preserve library usage
See #1520
2022-11-17 13:11:18 +01:00
Daniel Girtler 9718c64ca7
Fix 1562 (#1564)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-11-15 14:34:24 +01:00
Daniel Girtler e05df22986
Remove HSM from global menu (#1559)
* Remove HSM from global menu

* Update

* Update

* Removed sys import

Unused import

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-11-13 13:56:21 +01:00
Daniel Girtler c3862c5779
New encryption menu (#1520)
* New encryption menu

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-11-11 09:40:05 +01:00
Wu Xiaotian ee1eea2130
Add Chinese translation (#1534) 2022-11-11 09:31:21 +01:00
Andrey 4c6b7112c8
PT BR translation improvements (#1537)
* added missing pt br translations

* fix missing accent in pt br

* improvements in pt br translations
2022-11-11 09:30:46 +01:00
JaeBeom An 2f90cb31fb
Add Korean translation (#1539)
* Add Korean translation

* update languages.json
2022-11-11 09:29:46 +01:00
Gianmatteo Palmieri 8f5d70665c
Remove intel_pstate kernel parameter (#1541) 2022-11-11 09:29:21 +01:00
ions21 eeb6c2cec5
Update Polish translations (#1543) 2022-11-11 09:14:33 +01:00
Daniel Girtler dee7926589
Remove custom font setting (#1552)
* Remove custom font setting

* flake8

* Remove default preview

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-11-11 09:11:41 +01:00
Anton Hvornum 9db6a25a08
Fixed broken imports (#1548) 2022-11-04 17:25:14 +01:00
Anton Hvornum 16ca69540c
Version bump v2.5.2 (forgot before tagging the release) 2022-10-12 20:28:55 +02:00
Anton Hvornum 4addd2d7cb
Removed debug output 2022-10-12 15:08:48 +02:00
Anton Hvornum 14be423a6c
Muted a log output 2022-10-12 15:07:44 +02:00
Anton Hvornum db32bc4dda
Muted a log output 2022-10-12 15:07:11 +02:00
Anton Hvornum eec45643e9
Updating Partition() information after mount and unmount. (#1508)
* Updating Partition() information after mount and unmount.

* Cleaned up raw_parted() to gracefully output relevant partition error information.

* Adding timestmap to cmd_history.txt as it's impossible to debug properly otherwise

* Adding more verbose debugging information

* Reinstating the lsblk retry code for PARTUUID and UUID on Partition()'s information

* Added error handling for JSON parsing
2022-10-12 14:17:14 +02:00
Jucgshu 5c8eb7144d
Fix typo (#1501)
* Fix typo

* Fix typo
2022-10-06 18:59:28 +02:00
Anton Hvornum faa93d9e24
Improved speed in --skip-mirror-check (#1505) 2022-10-06 18:56:53 +02:00
codefiles 977976f88e
Add hostname and locales as parameters to `minimal_installation()` (#1458) 2022-10-03 16:42:10 +02:00
Daniel Girtler 40e4046633
Exclude archiso devices from selectable blockdevices (#1481)
* Exclude liveusb from disk selection

* Exclude arch iso from being an option

* Update

* Update

* Update

* Mypy

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-10-03 16:37:57 +02:00
K.B.Dharun Krishna 5959cde5cb
Update ta locale (#1486)
Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
2022-10-03 16:25:37 +02:00
Giovanni c7275e7e10
Update Italian translation (#1490) 2022-10-03 16:25:05 +02:00
Oskar fcb53e4d56
Fix Polish translation (#1492)
* Fix Polish language name

* Fix message "Should this user be a superuser (sudoer)?"
2022-10-03 16:22:37 +02:00
Nahuel Pastorale bd3c278ccd
Fix languages and delete whitespace (#1494)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-10-03 16:17:24 +02:00
Arnau b69775abe6
Fixed typo (#1499)
española -> español
2022-10-03 16:09:36 +02:00
Nicolas MF cfea7b2f7b
Fixed typo (#1500) 2022-10-03 16:07:30 +02:00
benni347 4a5d38ff8a
Fixed spelling mistakes (#1496)
* Fixed spelling mistakes

* Fixed the spelling of JSON so it comforms to the offical spelling of it.
2022-10-02 22:10:04 +02:00
Anton Hvornum 53a2797af6
Updating version to v2.5.1 2022-09-25 12:05:25 +02:00
Anton Hvornum 985ff449db
On certain hardware where virtual and physical harddrives share the same common name, a smart mapping is done and block devices will show up under /sys/class/block/ but not always under /dev/* and thus breaking the all_blockdevices() logic. This should fix that. (#1475) 2022-09-21 12:36:54 +02:00
Anton Hvornum c1f21e7ca4
Add compression to /etc/fstab for btrfs subvolumes (#1473)
* Adding a btrfs compression plugin to genfstab

* Allowing the genfstab plugin to break on success
2022-09-19 23:42:08 +02:00
Ali e83a41f3f5
Add Indonesian translation (#1468)
* Add Indonesian translation

* Update README

* Update id translation
2022-09-11 21:35:05 +02:00
Daniel Girtler 94df913e0f
Update handling of unsupported translations (#1467)
* Handle unsupported fonts

* Update archinstall/locales/README.md

Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
2022-09-11 21:23:21 +02:00
Alexmelman88 c373607f8c
Update pot file, ru locale (#1465)
* Update general_conf.py

* Add files via upload

* Add files via upload
2022-09-10 10:26:10 +02:00
Joel Larson 2d9804f880
Update locale files with ./locales_generator.sh to be current (#1372) 2022-09-09 09:17:31 +02:00
tajnymag 2685871e6a
Updated czech translation (#1463) 2022-09-08 19:36:51 +02:00
Daniel Girtler d2484f67cb
Update the action text (#1462)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-09-07 16:29:04 +02:00
Daniel Girtler a2adeca5eb
Fix translation fonts (#1461)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-09-07 15:48:14 +02:00
Daniel Girtler 4dcd5e684f
Move deserialization into init (#1456)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-09-06 08:31:08 +02:00
Wise 24d478d037
Fix Turkish local typos (#1459)
* Update languages.json

Little typo fix

* Update README.md

Little typo fix
2022-09-06 08:28:46 +02:00
Alexmelman88 fa53ce9ab8
Update ru locale (#1455)
* Update languages.json

* Update base.po

* Add files via upload

* Update README.md
2022-09-05 13:32:29 +02:00
K.B.Dharun Krishna dba30fdcf0
locales: AddTamil translation (#1454) 2022-09-05 12:20:08 +02:00
Orestis Ousoultzoglou 883a8b692e
Add Greek translation (#1427)
* Add el translation: 50%

* Add el translation: 50%

* Add el translation: 100%

* Add el translation: add .mo file

* Add el translation: fixes

* Add el translation: include Greek in README
2022-09-02 12:36:53 +02:00
zer0-x 8b33e53d25
Translate few strings to Arabic (#1442)
* Translate few strings to Arabic

* Compile the Arabic localization to `.mo` file
2022-09-02 12:36:26 +02:00
Rafael Fontenelle e12a0e6b7a
Update pt br (#1396)
* Update locales

* Update pt_BR
2022-09-02 12:32:17 +02:00
Oskar bc97bbabb7
Update polish locale (#1385) 2022-09-02 12:31:34 +02:00
Sven Serlier 01d44c5a3a
Update actions (#1362)
* Update actions/checkout to v3

* Update actions/checkout to v3

* Update actions

* Update actions/checkout to v3

* Update actions/checkout to v3

* Update actions

* Update actions
2022-09-02 12:30:47 +02:00
Anton Hvornum a335f100fc
Version bump to v2.5.1rc1 in prep for release 2022-08-30 23:58:00 +02:00
Anton Hvornum ea407f5c9d
Version bump to v2.5.1rc1 in prep for release 2022-08-30 23:57:44 +02:00
Anton Hvornum 0f5b91c7d7
Fixing issue where blkid causes SysCallException (#1445)
* Moving a partprobe() call to better allow for cache updates

* Trying to improve Partition()._fetch_information()

* Removed a sleep() for debugging purposes

* Tweaked a sleep
2022-08-30 22:59:23 +02:00
Anton Hvornum f6e695871c
Homogenize language option during handling (#1446)
* Adding a more elaborate fix

* Added recovery function to selecting language too

* Tweaked return value of display_language() to return the Language() object.
2022-08-30 19:34:25 +02:00
Anton Hvornum ee64276f0e
Value comparison error for dropping into shell (#1441)
* Changed choice to choice.value.
2022-08-29 00:19:20 +02:00
Anton Hvornum 6f41262229
Removed debugging 2022-08-28 22:30:19 +02:00
Anton Hvornum 13703fbb04
Fix permission flags on all the log files created (#1440)
* Changed permissions on the logs stored in /var/log/archinstall. Also cleaned up one of the saves to have the same syntax as the others

* Tweaked secondary encryption password detection logic, as it wouldn't take it from the main arguments[] otherwise.

* Changed permission on cmd_output.txt

* Changed permission on cmd_history.txt
2022-08-28 22:04:25 +02:00
Anton Hvornum 65212a46aa
Fix boot entry containing subvolume definition when no subvolumes were selected (#1424)
* Attempting fix by looking at the subvolume 'name', <FS_TREE> should indicate it's a root block and not a root subvolume
2022-08-14 11:56:24 +02:00
Anton Hvornum b1ab5ba372
Fixing double insertion of encoding in locale.gen/locale.conf (#1421)
* A temporary fix for #1200, in the long run we need something like what was mentioned in the issue comments: https://github.com/archlinux/archinstall/issues/1200#issuecomment-1212754806

* Enabled the use of modifier detection and getting it in right

* Mistaken a split

* Adding less strict decoding of output log, this in order to handle the more correct locale generation introduced in this PR.
2022-08-12 22:36:06 +02:00
Anton Hvornum 7b4940ef6d
Spelling error on .replace() 2022-08-12 19:32:42 +02:00
Anton Hvornum 7b06da280d
Fix flake8 issue that slinked in. 2022-08-12 18:11:27 +02:00
Anton Hvornum a78f7d193b
Fixed small issues with how Installation.chown() was called. 2022-08-12 16:58:41 +02:00
Anton Hvornum f0111c179e
Github doesn't seam to trigger on "fixes" but "fix" 2022-08-12 15:04:16 +02:00
Anton Hvornum 1086fd686d
Cleaned up argument loading slighly. (#1419)
* Cleaned up argument loading slighly. Also flipped some --silent logic to avoid double negatives. --plugin and --conf {'plugin': ...} should now both work.

* Tweaked xorg profile to use list instead of strings. Because strings causes some issues through add_additional_packages() as it ends up as [(xorg, xorg-xinit), nano] instead of a flat list of packages or string.

* Tweaked xorg profile to use list instead of strings. Because strings causes some issues through add_additional_packages() as it ends up as [(xorg, xorg-xinit), nano] instead of a flat list of packages or string.
2022-08-11 18:06:02 +02:00
codefiles 397cceca90
Fix check for additional repositories (#1391)
* Fix typos

* Fix check for additional repositories
2022-08-11 11:32:33 +02:00
Anton Hvornum 259aaa4884
Fixing a list access issue (#1416) 2022-08-10 12:57:32 +02:00
Anton Hvornum 242f8076bb
Adding better error output for when loading remote configurations goes wrong. (#1415) 2022-08-10 11:02:24 +02:00
Abhay Mohandas 6213560a05
Fixes for known issues in the Parallel Download option (#1403)
* Adding menu

* Working on parallel downloads

* error updates

* updates

* update

* Few more updates

* bug fixes

* More bug fixes

* Minor bug fixes

* Few changes

* Minor changes

* Cleaned up add_number_of_parrallel_downloads() and hid it behind --advanced

* Forgot one import

* Fixed flake8

* Bug fixes

* I'm trying...

* trying again

* trying even more

* Bug fixes

* Fixed known issues

* Code improvements

* Few fixes

* Minor changes

* Minor changes

* Trying to fix flake8

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-08-09 20:15:49 +02:00
Metin Yazici 3e10fc106b
Add command line option to get the program version (#1406) 2022-08-09 20:14:28 +02:00
Anton Hvornum 437ac124c6
Converted paths to pathlib.Path and mount points to detect properly (#1412)
* Converted a path to pathlib.Path

* Using Partition.mountpoints instead of Partition.mountpoint

* Update mapperdev.py

* Added .mountpoints to MapperDev

* Spelling error
2022-08-09 20:05:05 +02:00
Anton Hvornum a31bf94fa3
Adding a .json() call for our JSON serializer for the Language class (#1410)
* Adding a .json() call for our JSON serializer

* Update translationhandler.py
2022-08-09 14:58:09 +02:00
Anton Hvornum 4ab250d427
Update the PR template
Since most of the guidelines are in the contribution guidelines anyway, we'll keep the PR template to a minimum.
2022-08-01 16:24:02 +02:00
长柳 32f268377c
Update pull_request_template.md:11 ~20 -> twenty (#1398)
I don't think this is a good way of writting like 'If the PR is larger than ~20 lines', it looks weird
2022-08-01 15:40:26 +02:00
Abhay Mohandas 463114356c
Option for Parallel Downloads (#1397)
* Adding menu

* Working on parallel downloads

* error updates

* updates

* update

* Few more updates

* bug fixes

* More bug fixes

* Minor bug fixes

* Few changes

* Minor changes

* Cleaned up add_number_of_parrallel_downloads() and hid it behind --advanced

* Forgot one import

* Fixed flake8

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-08-01 15:39:39 +02:00
Samaoo 5626c10927
fix `valid_parted_position()` (#1382)
* fix `valid_parted_position()`

* make lines shorter

* change `pos` to `pos.lower()`

* revert changing `if not len(pos):` to `if not pos:`

* `b` can not have decimal places

* add `.lower()`
2022-08-01 14:07:04 +02:00
Werner Llácer 68d89a07df
enhacements to FormattedOutput (#1376)
* enhacements to FormattedOutput

* flake8 complain
2022-08-01 10:41:44 +02:00
Werner Llácer 7bf0fe3c56
restoring ability to use a predefined installation directory (#1373) 2022-08-01 10:38:22 +02:00
0xShree 94d611d22f
Change regex expression only to match #[multilib] string (#1364)
* Changed regex expression only to match [multilib] string

* Update multilib regex expression

* Update regex expression

Add raw string format
2022-08-01 10:33:38 +02:00
Daniel Girtler 31e6eca3af
Handle no internet connection gracefully (#1361)
* Handle no internet connection gracefully

* Update

* flake8

* Update

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-08-01 10:29:58 +02:00
Daniel Girtler 1bd2210e5f
Downstream merged simple menu changes (#1356)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-08-01 10:28:41 +02:00
Werner Llácer 3da03a192e
Solves issue 1343. Could not locate partition after creation (#1355)
* Solves issue 1343. Could not locate partition after creation

* Added some flake fixes.

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-08-01 10:26:51 +02:00
virtual-meme-machine 956b34905b
- Fix KeyError exceptions (#1354) 2022-08-01 09:56:08 +02:00
Daniel Girtler cfea0d6d1a
Update translations (#1348)
* Show translations in own tongue

* Fix flake8

* Update

* Update

* Update

* Update

* fix mypy

* Update

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-08-01 09:44:57 +02:00
Werner Llácer 3bc3922545
Enhacements to list_manager: (#1346)
* Enhacements to list_manager:
method filter_option. To filter options based on selected entry
attrib. last_choice. Which is the last action executed before exiting the loop

* last_choice is now a calculated attribute, therefore readonly

* Added last_choice to selection_menu

* bug at selection_menu handling. Translations can be a problem
2022-08-01 09:44:26 +02:00
Fabian Bornschein d2f58362c9
Remove the hash/number sign at the line-start (#1345)
Currently the helper remove the first character of each line, this can
lead to cases, where important characters are removed. For example if
the locale is already set up. (hash is already removed) in that case the
helper would remove the first character of the locale and lead to a
broken attempt to set the locale later on. This change should avoid that
and only remove the hash.

Co-authored-by: Fabian Bornschein <2440175-fabiscafe@users.noreply.gitlab.com>
2022-08-01 09:42:58 +02:00
Daniel Girtler 9194f6d859
Cleanup partition (#1333)
* Cleanup partition

* Update

* Remove unused method

* Update partitioning

* Update

* Update

* Fix mypy

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-07-26 10:46:50 +02:00
Daniel Girtler 5c3c1312a4
Update list manager (#1331)
* Rework partition management

* Update

* Update list manager

* Update

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-14 14:38:39 +02:00
Dylan M. Taylor 86531ef62f
Remove packagekit (#1322)
* Remove packagekit

* Update kde.py
2022-06-09 18:32:01 +02:00
Daniel Girtler 0bdb46f308
Fancy user interface (#1320)
* Display submenus as tables

* Update

* Update

* Update

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-09 14:54:12 +02:00
Daniel Girtler aec86eb04e
Fix disk layout display (#1314)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-07 12:15:39 +02:00
Franco Castillo c26200d5f1
Update Spanish translation (#1293)
* Update Spanish translation

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>

* Update Spanish translation

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2022-06-07 11:01:57 +02:00
Alexmelman88 99a9d3ff37
Updated base.pot, languages.json, global_menu.py, ru locale (#1292)
* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload
2022-06-07 11:01:42 +02:00
Daniel Girtler fd131c8fe9
Update blockdevice (#1289)
* Update blockdevice class

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-07 11:00:48 +02:00
Daniel Girtler 644b80d0bd
Don't generate any backup locales files (#1313)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-07 10:56:15 +02:00
LittleboyHarry 766176cfe2
Update swiss.py (#1295)
fix bug
2022-06-06 20:07:18 +02:00
Daniel Girtler a7ca037a26
Update the subvolume menu - fix for #1278 (#1297)
* Update subvolume

* Add mypy compliance

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-06-06 17:28:46 +02:00
Daniel Girtler 2d4b262046
Handle cyrillic characters (#1309)
* Handle cyrillic characters

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-06 17:26:27 +02:00
Daniel Girtler f2492ca574
Fix #1304 - Make password validation less intrusive (#1308)
* Make password validation less intrusive

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-06 13:04:50 +02:00
LittleboyHarry 32442ac7f3
Add `packagekit-qt5` for kde (#1300)
fix #1041
2022-06-03 08:50:59 +02:00
Anton Hvornum 7943dd8236
Added more offline functionality, such as skipping package search (#1296)
* Added more offline functionality, such as skipping package search

* Disabled list_mirrors() from going online if --offline is given. Defaults to /etc/pacman.d/mirrorlist instead.

* Forgot import of pathlib

* Made list_mirrors() open /etc/pacman.d/mirrorlist in byte mode to better emulate the result of urllib response reading.

* Forgot variable declaration

* Made list_mirrors include activated server definitions
2022-06-02 13:32:42 +02:00
Roxfr c2be07e7dc
Update for french language (#1291)
Hello,
Here is the update for the French language.
Regards,
Roxfr
2022-05-31 09:00:56 +02:00
toto6038 4448dd2ef4
Divide Chinese locales into 2 variants (#1290) 2022-05-31 08:58:32 +02:00
Anton Hvornum c75e6a1da3
Made sure generate-encryption-key-file is set for supplementary partitions to / (#1281) 2022-05-29 13:59:25 +02:00
Anton Hvornum 7dbea73514
Cleanup and version changes in prep for release 2022-05-29 11:25:28 +02:00
Daniel Girtler 5171458796
Fix subvol selection (#1277)
* Fix subvolume selection

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-29 10:59:55 +02:00
Anton Hvornum 0601956b5b
Moved genfstab() to guided.py instead of __exit__ of Installer(). This is a breaking change. 2022-05-29 09:44:31 +02:00
demostanis 7daf9b32d0
Fix "Unknown device" error when using erofs (#1232) (#1275) 2022-05-29 09:34:32 +02:00
Kian-Meng Ang 2de153003e
Fix typos (#1265) 2022-05-29 09:31:18 +02:00
Dylan M. Taylor b2f85889a7
Don't offer to encrypt /boot, exlude it from the set available to the user (#1273)
* WIP: Don't offer to encrypt /boot

* This filter might work

* Ref: https://github.com/archlinux/archinstall/blob/master/archinstall/lib/storage.py

* Use list comprehension

* I wonder if I can use this filter_ argument that exists already

* flake8 fix

* Show index
2022-05-29 09:25:22 +02:00
walken 121e077b4e
Czech localization update (#1266)
* Updates and corrections for Czech localization

* Updates and corrections for Czech localization
2022-05-28 16:33:25 +02:00
Dylan M. Taylor 2e77393cf8
Fix issue with multiples spaces in additional packages (#1262)
* Try to fix issue 1259

* trim -> strip
2022-05-28 16:29:46 +02:00
Anton Hvornum 486ad7dd6d
Removes btrfs subvolume warnings on incorrect subvolume locations (#1267)
* Adding debug information

* Adding debug information

* Adding debug information

* Removed a 'already-a-subvolume' check as it requires more information.

* Adding debug information

* Adding debug information

* Made sure Partition().subvolumes() only attempts to retrieve btrfs subvolume information if fstype==btrfs.

* Removed debug information
2022-05-28 15:40:36 +02:00
Anton Hvornum 5c9bd235d3
Fixes additional encryption prompt even tho partitions was marked for encryption (#1264)
Corrected the check for partitions marked with `encrypt: true`
2022-05-28 10:06:22 +02:00
Franco Castillo 78449f75bc
Update Spanish translation (#1255)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2022-05-27 22:02:20 +02:00
tajnymag f1ee17ab51
Czech localization (#1253)
* First czech localization draft

* Minor fixes for czech locale after a brief setup click-through
2022-05-27 22:01:27 +02:00
Anton Hvornum 79fc663e3f
Version bump in prep for release + fixed a variable issue 2022-05-27 21:58:51 +02:00
Anton Hvornum 4d57630c90
Removed usage of deprecated function 2022-05-27 21:44:47 +02:00
Anton Hvornum 3c04a6b196
Fix mixup of mount options and fstype during mount (#1258)
Fixed issue where `options` wasn't passed as `options=options` and got mixed up as fs-type.
2022-05-27 21:37:38 +02:00
Anton Hvornum da8043ede9
Removed debug information 2022-05-27 20:40:43 +02:00
Anton Hvornum 03c1944dae
Removed nemo configuration from awesome profile, after #1247 2022-05-27 20:38:25 +02:00
Anton Hvornum 339469d6ee
Creates partition label on drives with zero partitions before adding partitions (#1256)
* If BlockDevice.partitions is zero, we set a new partition label to ensure new drives are setup correctly

* Added a sleep after mklabel.

* Removed redundant log message.

* Tweaked log message from print() to log().

* Trying PARTUUID in reusage of partitions.

* Debugging.
2022-05-27 20:37:04 +02:00
Alexmelman88 db7ecb6bac
Updated base.pot, ru locale (#1251)
* Update list_manager.py

* Update base.pot

* Update base.po

* Update base.pot

* Update base.pot

* Update base.po

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Update base.po

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Create base.po

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-27 17:09:32 +02:00
Anton Hvornum 9b3db344ab
Fix dual-booting (#1250)
# Fixes

 * Optimized partition lookups
 * Fixed re-use of partition UUID's
 * `BlockDevice().get_partition()` now supports looking up both `PARTUUID` and `UUID` for a partition under itself
 * Partitions listed in `--disk-layout` that doesn't have a PARTUUID/UUID should no longer cause an exception, but instead logs a warning and they will simply be ignored
 * `Filesystem().add_partition()` now handles `DiskError` raised by `partition.part_uuid`
 * Fixed issue on normal partitions where the device was not properly frozen in `lambda` calls, meaning two or more mount-points shared the same `device_instance`.
 * Lowered global `DISK_RETRY_ATTEMPTS` to 5, as the timeouts are linear *(`range(DISK_RETRY_ATTEMPTS) * DISK_TIMEOUTS`)*
2022-05-27 12:24:01 +02:00
Daniel Girtler 870da403e7
Rework user management (#1220)
* Rework users

* Update user installation

* Fix config serialization

* Update

* Update schemas and documentation

* Update

* Fix flake8

* Make users mypy compatible

* Fix minor copy

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-26 21:48:29 +02:00
Anton Hvornum 353c05318c
Fix MapperDev.subvolumes (#1249)
* Fixed a silent try/except, and MapperDev.subvolumes should now work.

* MapperDev.subvolumes now properly sends a pathlib.Path.
2022-05-26 19:53:24 +02:00
Anton Hvornum e19ef44630
Forgot to check for HSM while mounting ordered layout 2022-05-26 18:56:15 +02:00
Anton Hvornum c93482a8b9
Rework btrfs handling (#1234)
* Restructuring btrfs.py into lib/btrfs/*.py

* Reworking how BTRFS subvolumes get represented, and worked with. Subvolumes are now their own entity which can be used to access it's information, parents or mount location.

* Added BtrfsSubvolume.partition and other stuff.

* Reworking the way luks2().unlock and .format() returns device instances. They should now return BTRFSSubvolume where appropriate.

* Fixed a missing import

* Fixed an issue where mkfs.btrfs wouldn't trigger due to busy disk.

* Fixing subvol mounting without creating a fake instance.

* Added creation of mountpint for btrfs subvolume

* Fixed root detection

* Re-worked mounting into a queue system using frozen mounting calls using lambda

* Removed old mount_subvolume() function

* Removed get_subvolumes_from_findmnt()

* Fixed Partition().subvolumes iteration

* Adding .root to BtrfsSubvolume

* Fixed issue in SysCommandWorker where log output would break and crash execution due to cmd being a string vs list

* Changed return-value from MapperDev.mountpoint to pathlib.Path
2022-05-26 18:46:10 +02:00
Giovanni f1608e7664
Add Italian translation (#1244) 2022-05-26 09:14:51 +02:00
edl2 d38943bbad
Dmenu not needed (#1243)
Qtile comes with simple run prompt already, want to keep as vanilla as possible.
2022-05-26 09:14:21 +02:00
AlperShal 31e545c6f5
Better translation for Turkish (#1238)
* Better translation for Turkish in the meaning of following source text, grammer (tense), vocabulary and meaning. Also left some linux/partitioning terminologies in English with translation given in paranthesis so power-users who decides to use setup in Turkish can also easily understand.

* A few edits on some details and an important change on msgid "" "\n" "\n" "Select a graphics driver or leave blank to install all open-source drivers".

* Better translation for Turkish by both @wiseweb-works and @AlperShal.

Co-authored-by: Alper Şal <34231577+AlperSal@users.noreply.github.com>
2022-05-26 09:12:46 +02:00
edl2 0c7506fe1c
Remove unneeded packages from awesome profile? (#1247)
This profile currently installs a nemo - file manager, gpicview - image viewer, and maim - screenshot taker. all of these items do not typically come with awesome and aren't awesome specific and should be installed by the user. (also not required for the system to work). Especially since these are not even the most popular tools for each use.
2022-05-26 09:11:38 +02:00
Wise da6285e0e7
Turkish language support add (#1231)
* Create base.po

* TR languages files

* Update base.po
2022-05-22 19:34:42 +02:00
Luna 33ce7dbd8b
Don't check for exit code since SysCallError will be raised (#1228) 2022-05-21 17:51:11 +02:00
Alexmelman88 9e7565a9fb
Updated base.pot, added pt_BR locale (#1221)
* Update list_manager.py

* Update base.pot

* Update base.po

* Update base.pot

* Update base.pot

* Update base.po

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Update base.po

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Create base.po

* Add files via upload

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-21 10:34:05 +02:00
cain-dev f20e0e97cc
Create pt-BR translation file (#1216)
* início da tradução ptbr

* more things translated

* sp to pt-BR

* More Lines Translated

* Add files via upload

* Rename archinstall/locales/base.pmo to archinstall/locales/pt_BR/LC_MESSAGES/base.pmo

* Delete base.po

* Update base.pmo

* Rename bas to tradução.txt

* Update tradução.txt

* Update tradução.txt

* around 80% complete

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* Update archinstall/locales/pt_BR/LC_MESSAGES/tradução.txt

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>

* finished my half made translation

* Rename tradução.txt to base.po

* typo

Co-authored-by: Alexmelman88 <99257010+Alexmelman88@users.noreply.github.com>
2022-05-21 08:39:44 +02:00
Franco Castillo a0eda01b4d
Update Spanish translation (#1214)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2022-05-19 23:14:56 +02:00
Didr 21ac931b9b
Clarify info message about profile installation (#1219) 2022-05-19 21:46:55 +02:00
Daniel Girtler 65a5a335aa
Enhance view (#1210)
* Add preview for menu entries

* Fix mypy

* Update

* Update

* Fix mypy

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-18 13:59:49 +02:00
Anton Hvornum 089c46db4a
Added PIN support for FIDO2 devices (#1209)
* Adding support for PIN for FIDO2 unlock

* Added a more clear output since systemd-cryptenroll isn't clear on it's output
2022-05-18 13:57:44 +02:00
Anton Hvornum e154a6809d
Version bump to RC1 for v2.4.3 2022-05-18 12:08:48 +02:00
Anton Hvornum ac8432b97e
Version bump to RC1 for v2.4.3 2022-05-18 12:07:37 +02:00
Anton Hvornum 493cccc18f
Added a HSM menu entry (#1196)
* Added a HSM menu entry, but also a safety check to make sure a FIDO device is connected

* flake8 complaints

* Adding FIDO lookup using cryptenroll listing

* Added systemd-cryptenroll --fido2-device=list

* Removed old _select_hsm call

* Fixed flake8 complaints

* Added support for locking and unlocking with a HSM

* Removed hardcoded paths in favor of PR merge

* Removed hardcoded paths in favor of PR merge

* Fixed mypy complaint

* Flake8 issue

* Added sd-encrypt for HSM and revert back to encrypt when HSM is not used (stability reason)

* Added /etc/vconsole.conf and tweaked fido2_enroll() to use the proper paths

* Spelling error

* Using UUID instead of PARTUUID when using HSM. I can't figure out how to get sd-encrypt to use PARTUUID instead. Added a Partition().part_uuid function. Actually renamed .uuid to .part_uuid and created a .uuid instead.

* Adding missing package libfido2 and removed tpm2-device=auto as it overrides everything and forces password prompt to be used over FIDO2, no matter the order of the options.

* Added some notes to clarify some choices.

* Had to move libfido2 package install to later in the chain, as there's not even a base during mounting :P
2022-05-18 11:28:59 +02:00
Alexmelman88 561ea7e8f5
pl and fr locale fixed (#1208)
* Update list_manager.py

* Update base.pot

* Update base.po

* Update base.pot

* Update base.pot

* Update base.po

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Update base.po

* Add files via upload

* Add files via upload
2022-05-17 17:22:25 +02:00
Alexmelman88 008e9d5d50
Fixed base.pot (#1207)
* Update list_manager.py

* Update base.pot

* Update base.po

* Update base.pot

* Update base.pot

* Update base.po

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload
2022-05-17 14:12:09 +02:00
Dylan M. Taylor ea2b7489e4
Fix since consistency issues with 1195 (#1206) 2022-05-17 13:23:34 +02:00
Daniel Girtler 32432b2fdc
Fix padding calculation (#1205)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-17 12:56:41 +02:00
Daniel Girtler 72a44e34ef
Fix #1162 (#1204)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-17 11:11:45 +02:00
Anton Hvornum 47928b0bcc
Fixing swedish translation (#1202) 2022-05-17 10:42:27 +02:00
Anton Hvornum 3d102854a7
Reworking select_encrypted_partitions() to use the new Menu system, (#1201)
* Reworking select_encrypted_partitions() to use the new Menu system, and allow granularity.

* Listing partitions and enabling a index selection. Also when selecting 'delete all partitions' wipe=True will get set on the blockdevice now. Otherwise the new partitions won't be able to be created without deleting them first.

* flake8 fix

* Removed old select_encrypted_partitions()
2022-05-17 10:06:37 +02:00
Daniel Girtler 4e39bfb563
Fixes #1127 (#1194)
* Fixes #1127

* flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-17 07:48:48 +02:00
Alexmelman88 6bf5949842
Fixed base.pot (#1191)
* Update list_manager.py

* Update base.pot

* Update base.po

* Update base.pot

* Update base.pot

* Update base.po

* Add files via upload
2022-05-16 23:13:28 +02:00
Reza bdf11913d4
Fix lengthy translations in Main Menu (Important) (#1195)
* Fix lengthy translations in Main Menu

* rename 'Additional repositories' to 'Optional repositories'

* rename 'Drives' to 'Drive(s)'

* rename 'Choose keyboard layout' to 'Select keyboard layout'
2022-05-16 23:11:09 +02:00
MicroPanda123 ac609b637c
Transfer commit (#1199) 2022-05-16 23:08:59 +02:00
Anton Hvornum 86eff2a903
Don't assume children exists (#1193) 2022-05-16 13:03:08 +02:00
Anton Hvornum fb867f7d5d
Enabling retry for package downloads (#1188)
* Adding in a re-try on pacstrap calls

* Made pacman -Syy also retry:able
2022-05-16 10:40:48 +02:00
kpcyrd 8d4a62e504
Add network-manager-applet to NetworkManager profile (#1120)
* Add network-manager-applet to NetworkManager profile

* Converted _configuration.is_desktop_profile() into profile.is_desktop_profile

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-16 10:23:15 +02:00
Roxfr 960b48da5e
Update for french language (#1163)
Hello,
Here is the update for the French language.
Regards,
Roxfr

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-16 09:53:09 +02:00
Daniel Girtler 0cc9870838
Remove print (#1172)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-16 09:45:48 +02:00
Gonçalo Candeias Amaro b29c4af770
Internationalized portuguese and made it less formal (#1179) 2022-05-16 09:16:14 +02:00
Anton Hvornum 5eac5df9a8
Adding safe methods for __repr__ to call so that it doesn't break (#1190) 2022-05-16 09:09:51 +02:00
Dylan M. Taylor a748f3fba0
Adds nvidia-open package as an option. (#1176)
* Adds nvidia-open package as an option.

Apologies for making the installation even more confusing for Nvidia users. This adds an option for the new open-source kernel module for Turing or later cards, https://github.com/NVIDIA/open-gpu-kernel-modules. nvidia-open is currently in the testing repository.

* Change description

* Clarify that the other open option is noveau

* Added a check to see if the package we include exists in testing or not, and if it does, we allow that repo and warn about it.

* Forgot to put level= on log output

* Adding __future__ to the top again

* Expose package functions from archinstall.lib.packages to avoid explicit imports.

* Trying to get menu to show additional changes

* Trying a flexible option of setting the menu listings

* Trying a flexible option of setting the menu listings

* Revert "Trying a flexible option of setting the menu listings"

This reverts commit 330080697d.

* Revert "Trying a flexible option of setting the menu listings"

This reverts commit 701b105b1d.

* Revert "Trying to get menu to show additional changes"

This reverts commit b038987561.

* Revert "Expose package functions from archinstall.lib.packages to avoid explicit imports."

This reverts commit 9244c0b190.

* Revert "Adding __future__ to the top again"

This reverts commit 1679f00f2e.

* Revert "Forgot to put level= on log output"

This reverts commit 6561894388.

* Revert "Added a check to see if the package we include exists in testing or not, and if it does, we allow that repo and warn about it."

This reverts commit 652308ee40.

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-14 07:34:41 +02:00
Anton Hvornum 6e3a5a8c2f
Removed dead links 2022-05-13 19:53:43 +02:00
Reza 1ff84d0246
Add how to pass declarative configuration files as arguments to archinstall (#1174) 2022-05-12 14:52:08 +02:00
Daniel Girtler 53b57a3cec
Fix menu selection (#1173)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-12 13:04:05 +02:00
Anton Hvornum 81b7524b53
Made sure remote sourcing works for --creds, --config and --disk-layout. (#1170)
* Made sure remote sourcing works for --creds, --config and --disk-layout.

* Spelling error when moving around source code.
2022-05-12 10:46:33 +02:00
Franco Castillo 08452de09c
Update Spanish translation (#1158)
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2022-05-10 22:12:56 +02:00
Alexmelman88 1b9c8f302b
Updated ru locale and minor fixes (#1157)
* Add files via upload

* Add files via upload

* Update global_menu.py
2022-05-10 21:22:02 +02:00
Daniel Girtler f80144e7c7
Fixes #1048 and translation updates (#1156)
* Remove comments from translation files

* Add german translations

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-10 16:20:53 +02:00
Anton Hvornum 1320057218
Disable UniCyr font for now 2022-05-10 14:38:56 +02:00
Daniel Girtler 2492f571ea
Set the unicode cyrillic font by default (#1153)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-10 07:07:03 +02:00
Roxfr 5bf9382dd6
Update base.po (#1155)
Hi,
Following the update of the .pot file.
I renewed the .po file for the French language.
Regards,
Roxfr
2022-05-09 21:04:23 +02:00
Daniel Girtler 0fa52a5424
Introduce ctrl+c and other bug fixes (#1152)
* Intergrate ctrl+c

* stash

* Update

* Fix profile reset

* flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-09 12:02:48 +02:00
Alexmelman88 20ffebac50
Updated base.pot, added new translation strings from *.py files, updated ru locale (#1146)
* Create base.po

* Add files via upload

* Delete base.po

* Add files via upload

* Delete base.mo

* Add files via upload

* Update base.pot

* Update base.po

* Delete base.mo

* Add files via upload

* Delete base.mo

* Add files via upload

* Update base.po

* Delete base.mo

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Update desktop.py

* Update minimal.py

* Update xorg.py

* Update server.py

* Update desktop.py

* Update server.py

* Update guided.py

* Add files via upload

* Add files via upload

* Update guided.py

* Add files via upload

* Add files via upload
2022-05-09 09:58:06 +02:00
Anton Hvornum 80cee500e0
SysCommand now sets working_directory on SysCommandWorker. Also made it so the parent process moves back to the original working directory, leaving the child process in the target working directory. (#1142) 2022-05-08 18:36:32 +02:00
Roxfr 5a1bd83132
Update base.mo (#1141)
* Delete base.mo

* Update base.mo
2022-05-08 14:15:04 +02:00
Roxfr 3e52a7399a
Update base.po (#1140)
Hello,
Here is the update for the French translation.
Regards,
Roxfr
2022-05-08 10:59:27 +02:00
Daniel Girtler 7f6c49e677
Fix alignment (#1139)
* Fix alignment

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-08 08:39:04 +02:00
cain-dev c354c2bbfe
typo (#1137) 2022-05-07 06:57:05 +02:00
cain-dev f05b6a64b5
another typo (#1136) 2022-05-07 06:56:51 +02:00
cain-dev 3d242018a0
typo (#1135) 2022-05-07 06:56:25 +02:00
Владислав 2316f54164
Change the logging text of CPU vendor check (#1094)
* Fix small typo in the logging text of CPU vendor check

* Make CPU check logging text unified
2022-05-06 14:50:00 +02:00
Heimen Stoffels 0bed6a7c9a
Updated Dutch translation (#1054)
* Added Dutch translation

* Updated Dutch translation
2022-05-06 14:49:22 +02:00
Alexmelman88 5127ffde95
Added ru locale (#1014)
* Create base.po

* Add files via upload

* Delete base.po

* Add files via upload

* Delete base.mo

* Add files via upload

* Update base.pot

* Update base.po

* Delete base.mo

* Add files via upload

* Delete base.mo

* Add files via upload

* Update base.po
2022-05-06 14:48:08 +02:00
Oskar 32a1cc63e1
add Polish locales (#1124) 2022-05-06 14:47:41 +02:00
Franco Castillo 4bab0349d9
Update Spanish translation (#1122)
* Update Spanish translation

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>

* Update Spanish translation
Update the files archinstall/locales/es/LC_MESSAGES/base.mo and archinstall/locales/es/LC_MESSAGES/base.po.

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2022-05-06 14:47:25 +02:00
Lucas Pires Camargo bd7d1d8aa5
[locale] added Portuguese (pt) translation (#1128) 2022-05-06 14:47:06 +02:00
Daniel Girtler 050d7c9c13
Fix minor issues (#1132)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-06 14:37:40 +02:00
Daniel Girtler 184373ee84
Fix menu alignment (#1102)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-06 09:06:59 +02:00
Daniel Girtler bcd810d2d2
Fix 1117 (#1126)
* Fix 1117

* Update

* flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-05 12:48:01 +02:00
Daniel Girtler 2d37157178
Fix 1091 and other minor fixes (#1103)
* Fix 1091

* Update

* flake8

* Only display btrfs options if there is a filesystem

* Fix 1118

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-02 13:02:21 +02:00
Daniel Girtler f00717ff6f
Fix #1106 (#1119)
* Fix #1106

* flake8

* flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-02 13:01:50 +02:00
Anton Hvornum 48b1001734 Hotfix for plugins, forgot group= 2022-05-01 17:08:05 +02:00
Anton Hvornum c40d27b074
The dict object is deprectrecated, instead .select() is suggested. (#1107)
* The dict object is deprectrecated, instead .select() is suggested.

* removed copy paste issue

* Removed tests, they'll be added in a separate PR
2022-05-01 17:06:23 +02:00
Anton Hvornum 7fc65fad0c
Updated PKGBUILD to handle symlink issues for now 2022-04-29 11:26:34 +02:00
Anton Hvornum 58a734e90e
Version bump to v2.4.2 2022-04-29 11:22:46 +02:00
Anton Hvornum fb76f46b77
unlocked luks2 partitions were missing a BlockDevice parameter. It's technically not the true block device, as the mapper dev belongs to a partition, but in this context blockdev means the harddrive/medium that the partition (unlocked or otherwise) lives on. (#1100) 2022-04-29 11:12:24 +02:00
Daniel Girtler fc08aeef4e
Fix #1096 (#1099)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-04-29 09:05:50 +02:00
Anton Hvornum 9e942d190a
Version bump to v2.4.1 (due to pypi.org having a yanked 2.4.0) 2022-04-27 23:40:11 +02:00
Anton Hvornum 21da87df5e
Version bump to v2.4.1 (due to pypi.org having a yanked 2.4.0) 2022-04-27 23:39:48 +02:00
Anton Hvornum 621adc9580
Adding pacman-key --init to ISO runner 2022-04-26 22:24:28 +02:00
Anton Hvornum 3b5d7cdb16
--noconfirm to pacman upgrade 2022-04-26 22:19:03 +02:00
Anton Hvornum a9f2e0db2e
pacman-key --ref.. -> pacman -S archlinux-keyring 2022-04-26 22:16:35 +02:00
Anton Hvornum 166cf4a590
archlinux-keyring -> pacman-key 2022-04-26 22:06:22 +02:00
Anton Hvornum 4b00564994
Adding in a refresh of keyring before building ISO 2022-04-26 22:03:45 +02:00
Anton Hvornum a63e8ae7f9
Torxed issue 1083 (#1090)
* Optimized a bunch of partprobe calls. Namely fixed sleep calls, added optional path to the general archinstall.partprobe() call. And fixed some error handling in a few places which should tell us where #1083 might be going wrong.

* Fixed some flake8 complaints

* Fixed sleep having a min() of 0.1 or given value.

* Fixed sleep having a correct range variable.

* Fixed sleep logic to use max() instead of min() as it will never use the higer sleep values otheride

* Added error handling to Partition().partprobe() as it would cause certain issues with USB disks. Also made Partition()._safe_uuid more safe by eliminating exceptions being raised.
2022-04-26 21:57:33 +02:00
Anton Hvornum 59c35df067
Optimized a bunch of partprobe calls. (#1088)
* Optimized a bunch of partprobe calls. Namely fixed sleep calls, added optional path to the general archinstall.partprobe() call. And fixed some error handling in a few places which should tell us where #1083 might be going wrong.

* Fixed some flake8 complaints

* Fixed sleep having a min() of 0.1 or given value.

* Fixed sleep having a correct range variable.

* Fixed sleep logic to use max() instead of min() as it will never use the higer sleep values otheride
2022-04-26 17:13:47 +02:00
Anton Hvornum eafbf49cdc
Adding back 'timedatectl set-ntp true' but with the condition of it being activated. This is because the default NTP value is set to True. And will subsequently never be triggered through the menu system. So we'll have to activate it (again) if set to True before installer starts. 2022-04-26 15:13:29 +02:00
Anton Hvornum 010f6eaf97
Added a NTP status check before processing to installation. (#1086) 2022-04-26 15:07:12 +02:00
Anton Hvornum 9a6e85fb46
Removed NTP by default. Instead, if NTP is selected or de-selected it will activate/de-activate ntp accordingly. 2022-04-26 14:49:03 +02:00
Anton Hvornum c095eb56d8
Added a try-rerun-except block to grub-install (#1085)
* Added a try-rerun-except block to grub-install first with --removable and then without if it fails. I have a sneaky suspicion that it's due to USB drives being the destination medium, but I cannot confirm yet. I've also added peak_output=True and --debug to GRUB so we can catch the issues in the future.

* Fixed flake8 complaint
2022-04-26 14:13:33 +02:00
Anton Hvornum 12b5e2e4e9
Adding compression as an option (#1084)
* Adding compression as an option

* Ignore 'misaligned' ending parenthathese

* Moved the 'mark compressed' logic into the sub block within manual disk operations.

* Fixed flake8 complaints

* Muting a complextion warning on manage_new_and_existing_partitions(). It is too complex, but not something that we'll bother with for v2.4.0. As this whole function could be replaced with a new and improved menu system split into tasks rather than one huge if/else.
2022-04-26 13:17:40 +02:00
Anton Hvornum 1bce561a0c
Bumped up default timout, as 5 seconds is not enough for some platforms. 2022-04-25 10:20:00 +02:00
Anton Hvornum 44727e64ea
Require superuser or root password fixed. (#1082) 2022-04-25 09:58:36 +02:00
Anton Hvornum f10d8abb13
Set a 'default' argument for audio and removed it as a requirement to continue. (#1081) 2022-04-25 09:29:12 +02:00
Werner Llácer a14604a1b6
Created a routine to check if a partition includes a certain mountpoint (#1069)
For a btrfs volume with a subvolume to be mounted on /, we will not generate a keyfile anymore
2022-04-25 08:57:49 +02:00
Werner Llácer 15c594bcba
When using disk_layout files but not config file, we autofill the harddrives argument (#1067) 2022-04-25 08:41:20 +02:00
Werner Llácer 99dfa7368d
We make the last action available beyond the run loop, so we can check why run was exited (#1066) 2022-04-25 08:34:52 +02:00
Daniel bbedc0bb19
Flexible order of menu options (#1078)
* Allow custom ordering of the menu entries

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-04-22 13:24:43 +02:00
Daniel 477b5b120e
Support for multiple network interfaces (#1052)
* Support for multiple network interfaces

* Fix mypy

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-04-22 13:24:12 +02:00
Daniel 2529d6a5f5
Fix blockdevice key error (#1079)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-04-22 13:23:38 +02:00
godalming123 0604ed45c3
fix incorrect use of an (#1071) 2022-04-14 11:45:05 +02:00
Daniel 4f899e3866
Downstream new simple menu feature (#1055)
* Downstream new simple menu feature

* Fix flake8

* Update

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-04-12 11:46:55 +02:00
Anton Hvornum f644022e0c
This should address and resolve #587 (#1070)
* This should address and resolve #587

* Forgot one line from copying from local test script

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-04-11 22:46:06 +02:00
Werner Llácer 57b16d5468
Partition.boot works now for GPT and MBR disks (issue #1061) (#1063) 2022-04-03 23:17:25 +02:00
j-james 656047163a
Rebase bspwm profile on master (#604) 2022-04-03 12:58:48 +02:00
Anton Hvornum 28c63b2354
Made build version dynamic as pointed out in https://github.com/pypa/build/issues/453 2022-03-29 11:22:36 +02:00
Anton Hvornum 7f0ccbe87e
Reverted mypy runner changes 2022-03-29 10:35:18 +02:00
Anton Hvornum c241d96982
Version bump to v2.4.0 RC2 2022-03-29 10:32:20 +02:00
Anton Hvornum af4b8a7251
Fixed flake8 2022-03-29 10:31:29 +02:00
Werner Llácer e0d723f9a0
Correct exit when no disk is selected and we don't wish to continue (#1049) 2022-03-29 10:25:18 +02:00
Anton Hvornum 02c715e224
Fixed an import of not yet loaded module 2022-03-28 17:04:28 +02:00
Anton Hvornum 77b9826ab1
Fixed an import of not yet loaded module 2022-03-28 17:04:02 +02:00
Anton Hvornum a61db89a7f
moved the ur language due to #1048 2022-03-28 16:55:11 +02:00
Anton Hvornum 34909aea57
Updating language file 2022-03-28 16:49:38 +02:00
Anton Hvornum 5504b9ac6b
Removed GlobalMenu from selection_menu.py as it's moved to it's own file. 2022-03-28 16:48:55 +02:00
Anton Hvornum a1ab6a5f8a
Updated locales 2022-03-28 16:46:23 +02:00
Anton Hvornum 609a380a15
Fixed an import of not yet loaded module 2022-03-28 16:43:11 +02:00
Anton Hvornum 500da432bf
Fixed an import of not yet loaded module 2022-03-28 16:42:09 +02:00
Anton Hvornum 66289c13d8
Fixed an import of not yet loaded module 2022-03-28 16:41:41 +02:00
Anton Hvornum 1bf6e20bde
moved GlobalMenu into lib/menu/global_menu.py instead 2022-03-28 16:41:03 +02:00
Anton Hvornum e873e30c39
Fixed an import of not yet loaded module 2022-03-28 16:13:26 +02:00
Anton Hvornum fe164a700c
Fixed an import of not yet loaded module 2022-03-28 16:08:05 +02:00
Anton Hvornum de80fdc153
Fixed an import of not yet loaded module 2022-03-28 16:04:24 +02:00
Anton Hvornum 6c71f42b47
Fixed an import of not yet loaded module 2022-03-28 16:01:55 +02:00
Anton Hvornum 5456920681
Added missing imports (#1046) 2022-03-28 15:04:14 +02:00
Anton Hvornum 77bfa10d53
Added error handling to fstab (#1045)
* Added error handling to fstab

* Checking the exit code for == 0
2022-03-28 14:43:33 +02:00
Daniel c92c448f29
Fix some mypy things (#1023)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-03-28 14:14:45 +02:00
Patrick Schneeweis c614b3ed55
Clarify prompt text when providing superusers. (#1044)
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-03-28 14:00:34 +02:00
Farhan Ghani f2ad219d8e
added translation for urdu (#1043) 2022-03-28 13:57:04 +02:00
Werner Llácer 4b4473632d
Subvolume User Interface (#1032)
* Deflate the user interactions file

* Fix flake8

* GlobalMenu split from selection_menu.py

* Upgrades to ListManager:
Can now show an empty list if there is no null action.
More information to the user at the header

* Put only_hd.py  and swiss.py to use new config printing mechanism
Solved a couple of bugs at
ListManager adding a str and a DeferredTranslation
ManageUser was missing an self argument in _check ...

* Create list and menus to manage subvolumes in btrfs partitions
Needed to modify manage_new_and_existing_partitions
Added a new parameter filter to select_partition, to allow filtering there

* Update internationalization strings

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-03-28 13:55:15 +02:00
Daniel 3dc0d957e8
Deflate user interactions (#1019)
* Deflate the user interactions file

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-03-28 13:49:05 +02:00
Werner Llácer e85c9b6531
Issues with Network Management and user management in menu (#1036)
* A problem with default values treatment at superusers (and users) on the main menu

* Solving issues when changing the selection of nic, ask_to_configure_network failed in several places.
Solved, temporarily with the creation of __getitem__ and get methods at NetworkManager

* Accept old style definitions for nic

* flake8 complains

* log string corrected (issue 1039)

* Correct exit when no disk is selected and we don't wish to continue
2022-03-28 13:44:10 +02:00
Anton Hvornum 69bd88a7f9
Version bump for release candidate of v2.4.0 RC1 2022-03-28 10:43:59 +02:00
Anton Hvornum 8d15683752
Made archinstall build reproducable when generating docs 2022-03-28 09:24:17 +02:00
Anton Hvornum ac0162aba7
Improved color coding a bit. Added 5 more color options (not usable outside of 256-bit enabled terminals) 2022-03-16 21:21:26 +01:00
Werner Llácer a6b1cab077
Additions to Listmgr et alia (#1028)
* Permit multiple default actions as a list

* Define headers for list at ListManager and Menu

* small corrections for default values

* Make subvolume info work.
The real marker that signifies that a mounted subvolume exist is the bracket notation nor the at sign
2022-03-10 09:42:03 +01:00
Eugênio Pacceli Reis da Fonseca f7aba1d31c
Adding sudoers.d file instead of appending to sudoers (#1025)
* Addresses issue #985: Add sudoers.d file instead of appending to sudoers

* Fixed comment

* Added string safety check for illegal chars before attempting to create a file.

* Fixing commentaries

* More fixes to the sudoers.d modification: adds an includedir to sudoers if sudoers.d did not exist previously, waits for python to close and release the new rule file before attempting to set its permissions to 440.

* Regex fix and better code formatting.
2022-03-07 09:15:14 +01:00
Daniel d9d59bee68
Fix #1018 (#1021)
* Fix #1018

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-03-03 13:54:43 +01:00
Werner Llácer 47a9fba94b
A couple of corrections for the user interface (#1017)
* Preview size is now an argument for GeneralMenu
Parameter missing in call to save_config

* Update selection_menu.py

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-03-01 12:36:58 +01:00
Werner Llácer 86d991f442
User Management via lists (#1008)
* Fix user/superuser config

* Fix flake8

* Remove timezone check since we have a default value now

* Remove unused

* add new widget ListManager

* flake8 complains

* Null_action appears now in the main list (to simplify additions to the list)
Formatted data are now at the from to the actions submenu

* Manage users thru a ListManagers

* Define a default action in the menu, potentially independent of a null_action
Both default and null actions don't have to be part of the element's action list
Some cleanup

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-28 23:11:25 +01:00
Werner Llácer 76a6c37893
Solves issue 1013 (#1016) 2022-02-28 22:38:04 +01:00
Garvit Joshi 6cd20c7ffb
Fixed Readme.md with Absolute Path (#1015) 2022-02-28 19:18:15 +01:00
Anton Hvornum f61bce3fbc
Moved order in .flake8 2022-02-28 17:14:09 +01:00
Anton Hvornum 5cf3fbfb41
Only set presets if presets are given. We should probably fix tghis in selection_menu.py line 636. But this solves an issue with broken harddrive selection for now. 2022-02-28 17:10:28 +01:00
Daniel 35a19a616a
Menu option save config (#1009)
* Add new save config menu option

* Update

* Fixed issue with merging

* Fixed merge issue (I think)

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-02-28 17:03:37 +01:00
Anton Hvornum 04e3880d8f
Added back _ as a builtin 2022-02-28 16:48:42 +01:00
Werner Llácer f07704529f
add new widget ListManager (#1005)
* add new widget ListManager

* flake8 complains

* Null_action appears now in the main list (to simplify additions to the list)
Formatted data are now at the from to the actions submenu

* Define a default action in the menu, potentially independent of a null_action
Both default and null actions don't have to be part of the element's action list
Some cleanup
2022-02-28 16:17:10 +01:00
Daniel 537b9cab03
Rework network config (#1001)
* Update network configuration

* Rework network configuration

* Update documentation

* Fix flake8

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-02-28 15:57:57 +01:00
Daniel fa87d85708
Fix (some) mypy things (#996)
* Fix mypy things

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-28 15:45:08 +01:00
Daniel 0fed839110
Rework the user/superuser configuration (#993)
* Fix user/superuser config

* Fix flake8

* Remove timezone check since we have a default value now

* Remove unused

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-02-28 15:42:49 +01:00
komeil Parseh 7e19bf6e2e
Add password strength check (#983)
* Add password strength check

* Delete time.sleep and log, use the select class instead

* Ignore W503 in flake8

* Solve some problems of the password strength check algorithm

Part of the code was written by @phisch. This code tries to measure the strength of the user's password and suggests that the password is weak.

* rename function

* Restore the flake8 configuration file to its previous state
2022-02-28 15:33:09 +01:00
Werner Llácer f06aabb4d4
enhacements to the menu infraestructure (#978)
* Correct definition of btrfs standard layout

* Solve issue #936

* make ask_for_a_timezone as synonym to ask_timezone

* Some refining in GeneralMenu
secret is now a general function

* Revert "Some refining in GeneralMenu"

This reverts commit e6e131cb19.

* Activate load of preset values in GeneralMenu
Changed all select_functions definitions to the need of passing the preset value
Corrected problems at ask_to_configure_network, and management of preset values added

* minor glitches in menu processing, plus flake8 complains

* Changes to ask_to_configure_network following  @svartkanin code

* select_language adapted to preset value.
changes to the infraestructure to solve bugs

* functions adapted for preset values
* select_mirror_regions
* select_locale_lang
* select_locale_enc
* ask_for_swap

* Updated to preset values
* ask_for_bootloader
Won't use it
* set_root_password()

* Updated to preset values
* ask_for_audio_selection
* select_kernel
* ask_for_a_timezone

* Updated to use preset values
* select_ntp
* ask_ntp
* ask_for_swap
flake8 complains

* Adapted to preset values
* ask_additional_packages_to_install (from svartkanin)
* ask_to_configure_network (adapted from svartkanin version)

* Updated to preset values
* ask_hostname
* select_additional_repositories

* bug in nic conversion
_select_harddrives adapted to preset_menu
2022-02-28 15:02:39 +01:00
Daniel 391699497d
Fix #1006 (#1007)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-27 07:41:15 +01:00
Werner Llácer 6a0e3d9e4b
Issue992 (#1004)
* Solves issue 992

* flake8 complains

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-23 08:41:03 +01:00
Anton Hvornum 86a21711b5
removed note about EFI being required 2022-02-22 11:24:52 +01:00
Anton Hvornum bb722a36c7
Forgot to .gitignore a debug file
child process debug file
2022-02-22 11:11:17 +01:00
Daniel 4b3b21ed75
Check if pacman is available (#958)
* Check if pacman is available

* Update pacman call

* Added a graceful wait to `run_pacman`

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-02-18 11:33:28 +01:00
pancho horrillo 62a6aec197
profiles/sway: replace alacritty with foot (#987)
In Sway 1.7, the terminal emulator in the default config file has been changed to foot.

See https://github.com/swaywm/sway/releases/tag/1.7
2022-02-16 11:30:40 +01:00
Daniel 6489a417aa
Fix #966 - DeferredTranslation errors (#976)
* Fix #966

* Add types to parameters

* Update network configuration

* Backwards compability for nic config

* Update

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-15 08:44:58 +01:00
Dylan M. Taylor d9118a33b3
Switch from flags to an 'additional repository' menu (#977)
* Add multilib flag to enable this repository and enable multi-lib testing if testing flag is also passed

* Fix comments

* Attempt to force pacman to use the config file from the host

* Make sure the pacman configuration is copied to target

* flake8

* Call enable on additional-repositories

* Add method to select additional repositories

* Add menu option for additional repos

* This is a bit cleaner than having it all on one line

* Add import

* Use [] as default instead of None

* Use empty array for default option here

* Try this to ensure a valid array is returned on skipping

* Add additional-repositories to schema

* Missed changing this comment earlier
2022-02-13 16:30:49 +01:00
Dylan M. Taylor 67b922002a
Set the default timezone to UTC in the menu (#981)
It's already the default, this just keeps the user from needing to make the selection
2022-02-13 10:12:49 +01:00
Dylan M. Taylor 30e518f324
Use archlinux as the default hostname (#979) 2022-02-13 10:12:38 +01:00
Dylan M. Taylor fb72cc4204
Add multilib flag and enable multilib-testing if testing flag is also passed (#975)
* Add multilib flag to enable this repository and enable multi-lib testing if testing flag is also passed

* Fix comments

* Attempt to force pacman to use the config file from the host

* Make sure the pacman configuration is copied to target

* flake8
2022-02-13 10:10:35 +01:00
Dylan M. Taylor 8457aa5660
Set default bootloader based on presence of UEFI (#980)
* Set default bootloader based on presence of UEFI

* Correct a comment
2022-02-13 10:09:05 +01:00
Dylan M. Taylor 2c897cdcc6
Leverage same build system used by PyPi in the ArchInstall ISO (#973)
* Leverage same build system used by PyPi in the ArchInstall ISO

* 3.6.0 is not in the archinstall repos yet. Use 3.5.1 so ISOs don't need networking to build.
2022-02-12 23:43:22 +01:00
Dylan M. Taylor a741b1a530
Don't enable multilib-testing unless we want multilib enabled. (#974)
* Don't enable multilib-testing unless we want multilib enabled.

* flake8

* Rename variable to make code more clear
2022-02-12 23:42:48 +01:00
Dylan M. Taylor 3e6e6b4ec7
Minor: missing space in 'audio server' (#972) 2022-02-12 22:40:05 +01:00
Dylan M. Taylor 532f0fdc3a
Various Build System Improvements (#971)
* Convert workflow from flit to twine for publishing

* This could be split into two different tasks

* Change build-system toml block to setuptools

* Switch to standardized project block

* Some corrections

* Add build module

* Remove symlinks

* Move example and profiles folders to archinstall

* Create symlinks outside of the archinstall folder

* Add new workflow to build archinstall but not publish for regular commits

* Add build artifacts

* Rename, so it's just archinstall.zip

* Replace symlinks with copies

* Also replace symlinks with copies in python-build.yml

* Revert "Create symlinks outside of the archinstall folder"

This reverts commit d76cf18eaa.

* Revert "Move example and profiles folders to archinstall"

This reverts commit c41c1c9102.

* Revert "Remove symlinks"

This reverts commit fd959e3230.

* Switch up how I'm replacing symlinks with copies

* Explore using flit as the build backend still

* Drop tools.flit.metadata block

* tool.flit.scripts is incompatible with project block

* Remove symlink copy workaround

* This seems to cause an error, until I figure it out, license is specified in classifiers.

* Make authors a list of dicts

* URL correction

* Use more of the new style metadata for flit

* This is redundant; build downloads these in a venv

* project.scripts replaces tool.flit.scripts

* whitespace

* Try explicitly adding symlinks as includes

* Minor whitespacce tweaks

* Add newer build packages to ISO

* Update comment on python-build.yml
2022-02-12 22:29:12 +01:00
Dylan M. Taylor c3310d01b7
Modify setuptools configuration to fix development ISOs (#969)
* Testing modifying setup.py to see if it fixes development ISOs

* Update setup.py

* Try this workaround

* This is ugly and I hate it, but it seems to work.

* Drop extra '
2022-02-12 18:58:41 +01:00
Dylan M. Taylor 1df17eb987
Add a flag to install testing repositories (#967)
* Add a boolean to install testing repos, default to false

* More work on adding structure

* Add logic to enable testing repos.

* Corrections

* Make flake8 happy about regex escapes

* Flake8 doesn't like whitespace around equals

* Fix trailing whitespace character
2022-02-12 18:11:34 +01:00
Daniel 003a35be3d
Fix errors on selection of additional packages (#959)
* Fix errors on selection of additional packages

* Fix flake8

* Added the new /groups/search/json/?name=x endpoint merged today

* Fixed flake8 complaint

* Forgot to do json.loads() on the HTTP request result

* Update package selection

* Fix flake8

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-12 11:47:51 +01:00
Anton Hvornum 16716d94eb
Added swedish locale (#965)
* Added swedish locale

* Fixed swedish locale
2022-02-12 11:28:18 +01:00
Daniel ca0cdf6b08
Fix dutch translation files (#964)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-12 00:21:06 +01:00
Anton Hvornum 49a93480a8
Added better error output (based on #963) 2022-02-11 20:26:33 +01:00
Werner Llácer 5990491292
Some refinements to the Menu infraestructure (#962)
* Correct definition of btrfs standard layout

* Solve issue #936

* make ask_for_a_timezone as synonym to ask_timezone

* Some refining in GeneralMenu
secret is now a general function

* Revert "Some refining in GeneralMenu"

This reverts commit e6e131cb19.

* New version of the FlexibleMenu
* Added new functionality to Selector
* Created a GeneralMenu class
* GlobalMenu is made a child of GeneralMenu

* Some refining in GeneralMenu
secret is now a general function

* log is invoked in GeneralMenu directly

* Materialize again _setup_selection_menu_options. Gives more room to play

* Callbacks converted as methods
Synch() (data area and menu) decoupled from enable()
and made general before any run

* Only_hd gets a new implementation of the menu
flake8 corrections

* New version of the FlexibleMenu
* Added new functionality to Selector
* Created a GeneralMenu class
* GlobalMenu is made a child of GeneralMenu

* changes from the rebase left dangling

* Adapt to PR #874

* Adapted to nationalization framework (PR 893).
String still NOT adapted

* flake8 complains

* Use of archinstall.output_config instead of local copy at swiss.py

* Problems with the last merge

* git complains

* Menu admits now preset values and cursor positioning

* Now GeneralMenu moves to the next entry after each selection

* flake8 complains

* Control of limits for cursor position at GeneralMenu

* Make auto cursor positioning optional at GeneralMenu.
True for GlobalMenu

* Code cleanup after rebase, and flake8 complains
2022-02-11 13:22:35 +01:00
Heimen Stoffels 18e033d2f0
Added Dutch translation (#960) 2022-02-10 13:48:01 +01:00
Roxfr 65ccd3df75
Add files via upload (#955)
Hello,
Here is the French translation.
Regards,
Roxfr
2022-02-09 23:40:15 +01:00
Anton Hvornum d3b6832345
Change usage `lsblk` to `blkid` where possible. And general improvements to disk handling. (#949)
* Renamed all_disks() to all_blockdevices() as it's technically a bit more correct. As it would return partitions as well. And it now distinguishes between BlockDevice() and Partition() when returning values. Also lsblk has been replaced with blkid and glob.glob() on /sys/class/block/

* Added handling of loop devices

* Added device information enrichment

* Removed old code

* Updated the usage of blockdevice.info['type'] to 'DEVTYPE' as per returned by blkid instead of lsblk

* Created a MapperDev() and DMCryptDev() 'disk' classes. This should help differentiate between BlockDevice(), Partition() and crypt-specific devices. Due to some new helper functions (mentioned later) BlockDevice().device_or_backfile has been simplified thanks to the information being pre-existing instead of having to call losetup. BlockDevice().mountpoint has been added as a dummy function. archinstall.enrich_blockdevice_information() has been added to enrich information extracted from blkid. archinstall.uevent() has been created to parse blkdid data when in -o export format, also eats up /sys/class/x/y/uevent data which is of the same format. all_blockdevices() now returns mapper devices found under /dev/mapper/ and properly returns the different types, not just BlockDevice() for everything. archinstall.get_parent_of_partition() has been added, which can translate /dev/sda1 to /dev/sda via strings by using /sys/class/block/ - note here tho that it has to be a blockdevice. Other parents won't return properly. archinstall.find_mountpoint() was created to be able to find mountpoints for a device, rather than the other way around which get_mount_info() handles. find_mountpoint() will convert /dev/sda1 -> /boot for instance, whereas get_mount_info('/boot') will convert /boot -> /dev/sda1. archinstall.get_partitions_in_use() will now properly traverse the entire structure, not just one level deep. This called for the creation of get_all_targets() which will take a dictionary structure and look for 'target': '/path' and return all '/path' values, recursively without being trapped in get_partitions_in_use() which has recursive targets. get_partitions_in_use() now returns a dictionary instead of a list, as it also returns the mountpoint and associated device. It will also prioritize MapperDev over DMCryptDev (as MapperDev is a child of DMCryptDev and can be resolved, other way around is 'trickier').

* Reverted Installer().partitions to return only the partitions. It's a slight speed defecit by not returning the mountpoints directly as {mntpoint: partition}, because the partition.mountpoint is a bit slow. But it avoids breaking legacy code :)

* Fixed a few imports, and added MapperDev.filesystem

* Fixed so that Installer().detect_encryption() uses the new separated logic of MapperDev/DMCryptDev/Partition

* Fixing a translation issue on hostname

* Added DMCryptDev.filesystem

* Added back archinstall.all_disks() for legacy reasons.

* Added a deprecation warning to archinstall.all_disks()

* Added a enrichment check for dm-crypt specific devices, which in turn sets DMCRYPT_NAME on the device information, making it easier to detect and target DMCryptDev when needed. This should avoid issues with loopdevices being detected as DMCryptDev. Also some minor tweaks to variable names on unencrypted setups

* Made debug output hidden without --verbose. Also added get_subvolume_info() which takes a path and returns any 'btrfs subvol show' information on the path

* Partition().subvolumes has been added. Which generates an iterator over potential subvolumes based on mountpoint. Partition().mount_information is now a list of mount-destinations, as one partition should be allowed to be mounted to several places (more commonly used in btrfs subvolumes). BtrfsSubvolume() has been added as a 'device type', which should make it more easy to recognize a BtrfsSubvolume object right out of the gate. Only found from Partition().subvolumes currently.

* Parameter fix for --verbose in log()

* Made sure loopdev devices have a PATH key as well, to make dealing with them as blockdevice as seamless as possible.

* Added backup information grabbing on uninitated devices

* Tweaked backup option if losetup cannot find the blockdev

* looks like losetup doesn't exit with a bad code even when it should. Raising ourselves when information is empty.

* Fixed structure returned from get_blockdevice_uevent()

* Made sure that fallback to blkid and loopdev info returns a PTTYPE (Partition Table Type) that is None, since we can't locate it yet (empty drive). But it's not False either, which is what logic after is looking for

* Deprecated split_bind_name() and added more debugging

* get_partitions_in_use() now only iterates over Partition() objects. And properly checks all mountpoints, not only the first.

* Flipped SysCallError to show the last 500 bytes if data rather than the first, to catch the actual errors.

* Removed anonymous parameters to all_blockdevices()

* Added .mount_information to MapperDev

* Added typing annotations

* Partition().mountpoint is now a @property that will live-report the current mountpoint.

* Removed the need for setting Partition().mountpoint = X when calling .mount() and .unmount(), as it's live-reported instead.

* Added .subvolumes to MapperDev()

* Added debug information

* Muting F841 in helpers.py

* Tweaked debug information in get_mount_info()

* Minimized log output by moving Partition().mountpoint to DEBUG, as partitions are allowed to not be mounted

* Simplified Installer().add_bootloader() to act as a router to the new split function, one for each bootloader type. This since flake8 complained about complexity and I agree that it became to wild.
2022-02-08 23:21:20 +01:00
Erick G. Islas-Osuna feffa69042
Spanish translation file (#941)
* wip: add base.po for spanish

* feat: spanish translation

* fix: ignore backup files

* Resolve merge conflicts for spanish translation PR

* new translations

Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-08 21:06:45 +01:00
Anton Hvornum 1515fb9fde
Calling Partition().partprobe() instead of general partprobe. This avoids read-only issues and lets Partition().partprobe() deal with the error checks. 2022-02-07 09:10:39 +01:00
Werner Llácer ef558fdb45
Solving some issues after merging flexible_menu (#948)
* Correct definition of btrfs standard layout

* Solve issue #936

* make ask_for_a_timezone as synonym to ask_timezone

* first batch of changes due to the last merges
selector.text is a call to selector.menu_text
A number of Generalmenu methods reappeared in their old version at Global

* disk encryption password menu option restored
2022-02-07 01:58:33 +01:00
Daniel 20e23dcecd
Add locale script (#945)
* Add locales script

* Add gitignore exception

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-06 15:17:43 +01:00
Werner Llácer 1ea6fea1d8
Flexible menu 2 (#916)
* Correct definition of btrfs standard layout

* New version of the FlexibleMenu
* Added new functionality to Selector
* Created a GeneralMenu class
* GlobalMenu is made a child of GeneralMenu

* Some refining in GeneralMenu
secret is now a general function

* log is invoked in GeneralMenu directly

* Correction at GeneralMenu

* Materialize again _setup_selection_menu_options. Gives more room to play

* Callbacks converted as methods
Synch() (data area and menu) decoupled from enable()
and made general before any run

* script swiss added to the patch set

* Only_hd gets a new implementation of the menu
flake8 corrections

* swiss.py description added

* New version of the FlexibleMenu
* Added new functionality to Selector
* Created a GeneralMenu class
* GlobalMenu is made a child of GeneralMenu

* changes from the rebase left dangling

* Modify order of execution between exec_menu and post_processing.
Added selector_name as parameter for exec_menu

* minor corrections to the scripts

* Adapt to PR #874

* Solve issue #936

* make ask_for_a_timezone as synonym to ask_timezone

* Adapted to nationalization framework (PR 893).
String still NOT adapted

* flake8 complains

* Use of archinstall.output_config instead of local copy at swiss.py

* Problems with the last merge

* more flake8 complains. caused by reverted changes re. ask*timezone

* git complains

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-06 11:54:13 +01:00
Daniel 9fb8d3164c
Update nationalization (#944)
* Update nationalization

* Update translations

* Finish german translation

* Fix errors #943

* Add remaining translations

* Fix alignment in menu

* Update README

* Update translations:

* Fix flake8

* Update tz function

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-02-06 11:30:26 +01:00
Werner Llácer ec73bdab4c
Routine to properly print and save config data (#888)
* Created a standard function to show/save the config parameters

* flake8 complains

* Correct definition of btrfs standard layout

* Solve issue #936

* Moved output_configs to lib/configuration.py
2022-02-05 13:52:14 +01:00
Anton Hvornum 0ec9549dc4
Renamed ask_timezone() 2022-02-05 11:17:41 +01:00
Daniel f6d133804b
Provide nationalization (#893)
* Nationalization

* Add _ as builtins to flake8

* Removing conflict hash tag

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-05 00:27:29 +01:00
Victor Gavro 68c2988358
disk layout: allow to omit partition "start" option to start from previous partition end (#895)
* disk layout: allow to omit partition "start" option to start from previous partition end

* mixed tabs/spaces fixes

* Update filesystem.py

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-02-04 23:58:44 +01:00
Werner Llácer 85f2938df9
Moving load_config from guided to \__init__.py (#887)
* The initializations done at the start of guided.py are now at archinstall/__init__.py
The scripts have been changed accordingly

* Correct definition of btrfs standard layout

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-04 23:48:41 +01:00
Tuhana GAYRETLİ 7fda1e42a4
add `qtile` to schema.json file (#939) 2022-02-03 18:11:54 +01:00
Werner Llácer 3cd7dc24c7
Command locales (second batch) (#886)
* flexibilize the definition of execution locale for OS commands executed via the SysCommand* interface.
Defined a storage argument which holds the default
Added functions to
unset the program own locales
reset to the program default locales
set a specific locale
A decorator to execute functions in the host locale environment

* rename decorator local_environ to host_locale_environ
created a simmetric decorator c_locale_environ, to make a routine work with the C locale whatever is set

* Correct definition of btrfs standard layout

* Added error handling

* Fixed issue where archinstall.Boot() would raise an exception in vain

* Added debugging for SysCommandWorker()

* Added some debugging

* Tweaking debug a bit

* Tweaking debug

* Adding more debug

* Adding more debug

* Removed some debugging

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Adding more debug

* Removed soem debugging

* Removed soem debugging

* Testing a revert

* Adding back the reverted change, adding lofile

* Redirecting stdout to /dev/null for testing (to avoid interrupting the fork)

* Reverted debug changes

* Testing os.system()

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-03 00:02:30 +01:00
Anton Hvornum 389feef035
Torxed pydantic to dataclass (#935)
* Converted pydantic things to @dataclass definitions.

* Added import for the dataclasses

* flake8 fixes
2022-02-02 15:01:17 +01:00
Daniel 37d6da7e4e
Migrate old input to new menu (#874)
* Migrate old input to new menu

* Fix imports

* Remove imports

* Update

* Fixed import by changing 'import archinstall', to 'from ..menu import Menu' and use Menu() directly

* Converted archinstall.<thing> to from ..where import <thing>. This enables us to use archinstall as a module, a git repository in testing and other things without having to install archinstall as an actual module.

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-02 14:26:09 +01:00
Anton Hvornum d3cf8a3655 Removed dead import 2022-02-02 14:24:20 +01:00
Anton Hvornum c08520f990
SysCommand() to remove ANSII VT100 Esc codes & archlinux-keyring fix (#933)
* Fixed SysCommandWorker() so that it removes ANSII VT100 escape codes. I also moved package.py into it's own folder, as that's something I want to expand on a lot, so package related stuff should go in there. I created a installed_package() function which gets information about the locally installed package. I changed so that find_packages() and find_package() returns a data-model instead for the package information. This should unify and make sure we detect issues down the line.

* Working on structuring .version constructor that works with BaseModel

* Added version contructors to VersionDef(). Also added __eq__ and __lt__ to LocalPackage() and PackageSearchResult().

* removed debug and added a TODO

* Removed whitespace

* Removed mirror-database function from myrepo
2022-02-02 14:22:52 +01:00
Dylan M. Taylor dfd064a57f
Minor: change the qtile xorg comment (#934)
Similar to GNOME, qtile supports a pure wayland session, so I correct the comment to reflect that.
2022-02-02 14:19:30 +01:00
edl2 860dc1449c
Added a qtile profile (#924)
* Added a qtile profile

* Removed unneeded packages

* Removed xorg requirement

* Removed blank lines

* applied patch to qtile profile

* Revert "Removed xorg requirement"

This reverts commit 34e87b13ac.

* Fixed flake8

* Added qtile to the desktop selection/options.

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-02-02 08:42:13 +01:00
Tuhana GAYRETLİ 39b1150a43
profiles/kde: replace `kate` with `kwrite` (#929) 2022-02-02 08:40:53 +01:00
Anton Hvornum a76b7e1da0 Changed working version in master to v2.4.0-dev0 2022-02-02 08:30:38 +01:00
Anton Hvornum 08ffffe5b3 Changed working version in master to v2.4.0-dev0 2022-02-02 08:30:26 +01:00
Anton Hvornum 364bc23b48
Updated configuration example "custom commands" 2022-02-02 08:22:08 +01:00
Anton Hvornum 7f01747efc
Torxed fix sys command calls (#932)
* Fixed exceptions in is_vm() and virtualization()

* Added exception handling for parted in BlockDevice.free_space
2022-02-02 08:18:12 +01:00
Anton Hvornum a7c57bac53 forgot import of log() 2022-02-02 08:12:06 +01:00
Anton Hvornum 6830a8050c forgot import of log() 2022-02-02 08:10:57 +01:00
Anton Hvornum 5cfec48ac4
Added a by-path import to support git clone - import of the library (#931) 2022-02-02 08:09:12 +01:00
Werner Llácer e3adab13e8
Issue923 (#927)
* Correct definition of btrfs standard layout

* Solving issue 923.
Standarize keyword "wipe" to signal the need of formatting a FS

* flake8 complains
2022-02-01 16:44:39 +01:00
Timothy Pidashev 64bde666ac
Add --noconfirm flag to update_keyring() (#922) 2022-01-30 17:28:59 +01:00
Anton Hvornum 281ccf99a4 Fixed an issue where SysCommand() never utilized the SysCommandWorker() context, which means SysCommandWorker() never closed the pty, hogging all system handles for it. 2022-01-30 17:24:01 +01:00
Timothy Pidashev 179c103cdd
Synchronize `archlinux-keyring` when running guided.py (#917)
* Update guided.py

* Update guided.py

* Update guided.py

* Fix typo

* Format string properly; elaborate log msg

* Make change consistent to mirror-check

* Update documentation
2022-01-30 11:01:04 +01:00
Sebas-h 275a960e6c
Fix trailing comma in schema.json (#915)
(Tried to [generate docs](https://github.com/coveooss/json-schema-for-humans) and noticed the comma preventing that)
2022-01-27 21:41:13 +01:00
Dylan M. Taylor fe9fb988c9
Move from the basic pipewire media session manager to wireplumber (#914) 2022-01-27 18:01:06 +01:00
OneLongneck f0886f3a7f
Update installer.py (#1) (#793)
Added "--removable" after "--bootloader-id=GRUB" on Line 669, because it would throw an input/output error without it on my laptop
2022-01-26 09:38:01 +01:00
Dylan M. Taylor 90e320dd11
Allow mirror reachability check to be skipped (#910)
* Allow network check to be skipped

* Technically it is a mirror check - not a check for general connectivity
2022-01-26 07:53:38 +01:00
Werner Llácer e629729d55
Correct definition of btrfs standard layout (#906) 2022-01-25 18:12:45 +01:00
Anton Hvornum 1aa738691e
Fixing the 'device_instance' being None in some partition places (#902)
* Added a new return value from add_partition. Also added an exception to make sure `add_partition` can't continue silently

* Added a log of debugging to add_partition

* Removed a blank line (flake8)

* Misconfigured variable

* Added some more debugging information to partprobe

* FIX: disk layout: partprobe should be called and checked only for target device (#896)

* disk layout: partprobe should be called and checked only for target device

* disk layout: partprobe: removed unnecessary bash subprocess

* Properly defined BlockDevice() on Partition() creation. Also made sure mount-checks got some rrro handling and non-block devices should no longer attempt to return a size

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Victor Gavro <vgavro@gmail.com>
2022-01-25 16:09:34 +01:00
Dylan M. Taylor 5406f1ed45
Make text for getting filesystems more grammatically correct (#903)
* Make text for getting filesystems more grammatically correct

Use 'Retry attempt {count} of 10.' instead of Waiting for the {count} time". It's more grammatically correct since we're not doing '1st', '2nd', etc.

* Maybe mention waiting still
2022-01-25 15:31:38 +01:00
Victor Gavro eb712a9ca5
FIX: disk layout: partprobe should be called and checked only for target device (#896)
* disk layout: partprobe should be called and checked only for target device

* disk layout: partprobe: removed unnecessary bash subprocess
2022-01-25 14:45:28 +01:00
Anton Hvornum 26f9b681a4 Removed last lsblk to grab PARTUUID (#901)
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-25 12:40:04 +00:00
Werner Llácer b5f50889eb
get rid of an exit() (#899) 2022-01-24 12:36:23 +01:00
Werner Llácer bb98594054
Solve issue #894 (#898)
some references to archinstall.storage turned to archinstall.arguments
2022-01-24 10:33:46 +01:00
Thomas 34488d25c5
Disable zswap (#883)
Disable zswap when using zram.

The swap device is now initialised before the bootloader, inline with the
installation guide.
2022-01-20 17:49:18 +00:00
Thomas 671bf7595c
Enable periodic TRIM (#882) 2022-01-20 16:32:07 +01:00
Werner Llácer c776e30191
Some issues at Guided.py (#878)
* Solves issue #873 (error by key sys-language
Now disk_layouts file contents are loaded before calling the menu

* Solves issue #873 (error by key sys-language. Solution in previous commit was still too restrictive
2022-01-18 20:57:30 +01:00
Werner Llácer 3d30a4eb28
Missing arguments after GlobalMenu execution (issue #868) (#871)
* Install.__init__ parameter kernel as a list everywhere.
I've dropped the string check, as it shouldn't happen again, and it's good that it fails, when it happens

* Global Menu now loads in the arguments dict all options enabled with default value and no manually selected (issue #868)
2022-01-15 21:44:13 +01:00
Werner Llácer 31f55e8d6b
Activate file write into only_hd and upgrade to guided.py level (#867) 2022-01-15 14:20:06 +01:00
Werner Llácer 6b4f09ef01
Changes to take correctly the 'kernels' argument (cf. isssue 868) (#869) 2022-01-15 14:17:04 +01:00
Anton Hvornum b533bd0553 Moved lib.plugin import to the top 2022-01-14 13:23:30 +01:00
Anton Hvornum da0c08e79a Added in version history in the configuration 2022-01-14 12:54:22 +01:00
Anton Hvornum f175ea8b7d
Created a save_user_configurations (#856)
* Created a save_user_configurations

This should avoid accidental placement of individual json outputs in a way that some doesn't get saved before installation continues etc.

* Was looking for disk_layouts in the wrong place.
* changed numerous other references to disk_layouts looking in the wrong place.
2022-01-14 11:48:56 +01:00
Anton Hvornum 8fae958571 Unified filesystem names by using get_mount_fs_type() function before .format() is called 2022-01-14 11:19:34 +01:00
Anton Hvornum bb37dae16b Added instructions on how to post logs publicly. 2022-01-14 10:23:16 +01:00
Anton Hvornum 7c20c8fb56 Improved mentions of logs and configuration files. This fixes #839 2022-01-14 10:03:56 +01:00
Anton Hvornum ae35f11e1a Changed the default btrfs layout to have @ as / 2022-01-14 08:47:34 +01:00
Anton Hvornum c88b250eac Version decrease in docs for master 2022-01-14 08:13:58 +01:00
Anton Hvornum 4bd07ea19f Merge branch 'master' of github.com:archlinux/archinstall 2022-01-14 08:11:30 +01:00
Anton Hvornum 0bc3e94c79 Version bump in docs 2022-01-14 08:11:23 +01:00
Werner Llácer e8b6b1b334
Restore generic_select function (#857)
* recreate generic_select and generic_multi_select functions

* flake8 complains

* Addressed some review issues
-> Options checks propagated to Menu(()
-> Options parameter inmutable at Menu()
-> Some text adapted
-> Sort will be handled by Menu()
-> Better handling of default value

* Solved the two problems found:
lack of list(dict.[keys/values] and impact in copy()
sideffects of renaming menu parameter options into p_options

* Now the problem of the copy was with a generator

* Add a log message whenever an "strange" object type is sent into Menu

* Validation of types has been streamlined.
Default values are now accesible to generic_select without restriction
2022-01-12 23:24:38 +01:00
Romain Goncalves c6fdf775c8
partition.py: Use exit code for mkfs.fat exception (#853)
When using archinstall on an existing Arch Linux installation, (e.g. for
migrating the current system on a new drive), no exception is raised if
mkfs.vfat is missing in the base install (no dosfstools package currently
installed).
2022-01-08 21:16:19 +01:00
Werner Llácer 116246b0e8
obsolete call for timezone changed (#850) 2022-01-07 12:54:45 +01:00
Anton Hvornum a14533818b Wrongly spelled import 2022-01-07 10:55:51 +00:00
Anton Hvornum 93f9d159bd
Fixed import error ModuleType (#848)
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-07 10:54:29 +00:00
Daniel 1234261a7a
Global menu (#806)
* Global menu

* Fix flake8

* Refactor code

* Add documentation

* Fix flake8

* Add support for user flow mentioned in #799

* Move import

* Fix flake8 (again)

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-07 10:48:23 +00:00
Werner Llácer 2190321eb4
Btrfs II (#838)
* Btrfs with encrypted partitions.
We have changed installer.mount_ordered_layout into a series of loops
* open the encrypted devices
* manage btrfs subvolumes
* mount whatever
* create kyefiles for encrypted volumes
We have simplified the btrfs subvolume manager

We merged the locale branch as it is needed here

* We allow only the creation of keyfiles if the partition does not contain the root mount point.
Also, adapt examples/only_hd to the new __init__.py
Also, assorted flake8 warnings

* Cleanup code

* Naming schema for encrypted volumes
revert global locale association (provisional)

* We introduce the option of defining mount options in the partition dictionary.
It has forced us to define two new entries in this dictionary:
* format_options (formerly options) for mkfs options and
* mount_options for mount -o ones.
The different meaning of compress between partition and subvolumes is treated

* Function lib/disk/btrfs.py mount_subvolume marked as deprecated
Code cleanup.

* format_options now filesystem.options

* format_options now filesystem.format_options
mount_options  nof filesystem.mount_options

* flake8 uncovered a slip in the code
2022-01-07 10:29:30 +00:00
HTV04 08d7375e62
Fix partition layout (#794)
* Fix partition layout

* Tweaked the numbers to match the alignment of previous partitions.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2022-01-07 09:55:51 +00:00
Liam McNair 762cea1da8
Created config schema (#727)
* Created config schema

* Tweaked the schema to suit v2.3.0+

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-01-07 09:44:54 +00:00
Werner Llácer b63cf7cb15
- No treatement of disk_layouts_file (#844)
- Ordered exit
2022-01-06 23:27:56 +01:00
Werner Llácer a8862e9b24
Define an standard locale for all the commands executed (#827)
* Define an standard locale for all the commands executed inside the application

* Allow LC_ALL to be overriden during call

* flake8 corrections
2022-01-06 23:26:49 +01:00
Anton Hvornum e32cf71ae7
Added type annotations to all functions (#845)
* Added type annotations for 1/5 of the files.

There's bound to be some issues with type miss-match, will sort that out later.

* Added type hints for 4/5 of the code

* Added type hints for 4.7/5 of the code

* Added type hints for 5/5 of the code base

* Split the linters into individual files

This should help with more clearly show which runner is breaking since they don't share a single common name any longer. Also moved mypy settings into pyproject.toml

* Fixed some of the last flake8 issues

* Missing parameter

* Fixed invalid lookahead types

* __future__ had to be at the top

* Fixed last flake8 issues
2022-01-06 22:01:15 +01:00
Anton Hvornum 015cd2a59f
Update simple_menu.py 2022-01-06 16:57:50 +01:00
Anton Hvornum 33c27db1ba
Update README.md 2022-01-05 23:44:37 +01:00
Anton Hvornum ddb0810af0
Improve documentation v2.3.1 (#843)
* Updated documentation

Mostly I've moved things around, cleaned up some dead paths and added more clarity.

* Cleaned up !superusers section

* Mentioning of accessibility
2022-01-05 23:42:06 +01:00
HTV04 a68a23d10a
Add prompt for /home partition (#801) 2022-01-04 13:31:21 +00:00
Ilario Gelmetti 3474176e64
examples/guided: if selected, activate NTP also in installer system (#831)
* Ask for NTP even if timezone is unset
* Ask for NTP before retrieving mirror list
* Activate NTP in the installer as soon as asked
* Removed excessive import
SysCommand is exposed through archinstall
* Removed f-string

Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
2022-01-02 22:45:44 +01:00
Anton Hvornum 240f688cce Adding a Pipewire application profile (#821)
* Adding a Pipewire application profile

This to better manage the pipewire setup process and minimize guided a bit. This also adds the concept of @archinstall.plugin decorators to add a plugin in run-time. Which pipewire uses to detect user creation and enable the pipewire-pulse service for new users.

* Forgot to run .install() on pipewire Application()
* Backwards compatible variable insertion for installation session
2022-01-02 16:38:02 +01:00
Anton Hvornum 93aa4aa6cc
Fix inspired by #804 to tweak the fix in v2.3.1-dev 2022-01-02 14:14:00 +01:00
Anton Hvornum b1af3eda83 Fixed issue #799. Where user prompt wouldn't be shown if a root password was set. 2022-01-02 14:11:00 +01:00
Werner Llácer b89408ab7b
Improved command line argument parsing (#725)
* An update to PR 715, making the handling of the *--mount-point* parameter less error prone.
I added a synomym (accepting the name both with underscore and dash) and ignoring when no value specified
I added it explicitly to the list to accept both the --parm value and --parm=value syntax
DOES NOT check the contents of the parameter
* Explicitly set all the know parameters
* Define explictly all parameters.
Make all non explicitly defined parameters behave as standard parameters, with on exception, names are not changed
Some cleanup of the code
In guided.py the reference to the dry_run parameter is updated to the standard naming convention for parameters
* Linter with flake8. corrections
* Linter with flake8. corrections (II)
* Linter with flake8. corrections (and III)
* Added --disk_layout argument. Was missing
I moved its loading from guided.py to __init__.py as it happens to the other json related arguments
* Better handling of errors during processing of the --disk_layouts parameter.
I define a routine to read an store a JSON file or stream. Tested on disk_layout
* Expand the former commit to all JSON file arguments
* Moved the function we created to read json files/streams to general.py. Add some comments
* flake8. A reference now unneded
* The merge process for the dry-run argument was causing the issue, not solving it
The del is just a cleanup for version upgrade without consequence (I hope)
* flake8 warning
* Correcting the last correction . Worked for old config files, but only for them
* New parameter parsing algorithm. More flexible and accepts multiple arguments (optionallY)
plus some documentation effort
* flake8 warning. For once is significant ( != None to not None)
2022-01-02 12:28:49 +01:00
Werner Llácer e388537bc3
better handling the skip partitioning option. (#778)
* better handling the skip partitioning option. plus sending some warnings to the user
* device configuration options taken out from ask_user_questions.
Forced by flake8
* Revert "device configuration options taken out from ask_user_questions."
This reverts commit 1b3cffb3df.
* Adapted to new selection ui
* Cleanup of obsolete code
* Changed colour of skip messages from red to yellow
* Flake8 comments
2022-01-02 12:01:19 +01:00
Anton Hvornum b7cb77caf9
Update README.md 2022-01-02 11:53:55 +01:00
Anton Hvornum 66ec8663e2
Update README.md 2022-01-02 11:41:14 +01:00
Anton Hvornum 32135f0b46
!= -> is not 2022-01-01 22:05:01 +01:00
Anton Hvornum ffa29e2cd4
Ignoring complex-functions in guided.py (couldn't find a way to specifically ignore C901 for ask_user_questions() alone) 2021-12-31 16:08:27 +01:00
Anton Hvornum ec4feade61 Adds amdgpu and radeon to the kernel modules, in the right order. (#823) 2021-12-31 16:05:35 +01:00
Daniel 638a05243c
Enable multiple mirror selection #457 (#809)
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2021-12-31 15:36:05 +01:00
Werner Llácer 7f9b7991e9
Btrfs2 (#787)
* All the changes needed to make btrfs subvolumes work. It boils down to two points;
the handling of the addressing of subvolumes re. physical partitions, and the small changes at the bootloader level
* We added a new script only_hd for testing purposes. It only handles hadrd drive management
* restoring an escape hatch during subvolume processing
* hipercommented manage_btrfs_subvolumes
* Ready to be able to select and process options in subvolume mounting
* Separte nodatacow processing
* Solving a flake8 complain
* Use of bind names @ get_filesystem_type
* compress mount option bypass
* Preparations for encryption handling
* Compatibility to master version re. encrypted btrfs volumes
* Now we can create subvolumes and mountpoints inside an encrypted btrfs partition
* changes for entries file generation with systemd-bootctl
* flake8 corrections plus some comments

Co-authored-by: Anton Hvornum <anton@hvornum.se>
2021-12-31 13:47:41 +01:00
Anton Hvornum c3e2b99316 runas -> run_as 2021-12-31 12:50:48 +01:00
Anton Hvornum cad911893d
Bringing in changes from v2.3.1-dev branch. This fixes a selection of things mentioned in #819. 2021-12-31 12:33:01 +01:00
remLse c6b499cf47
Update documentation (#803)
* Add guide for building docs locally

* Update documentation

- Fix typos
- Fix some formatting
- Fix broken links
- Improve readability of json profile specification
2021-12-18 19:01:40 +01:00
Anton Hvornum 7a01841586
Changed lsblk to blkid where possible (#802)
* Swapped lsblk for blkid
* Added a hefty sleep on partprobe()

And added a TODO for the future
2021-12-16 09:00:10 +00:00
Anton Hvornum 3c2e71b4bb
PR #797 - Remove network-manager-applet from XFCE4 package list 2021-12-12 20:43:52 +00:00
Dylan M. Taylor dff2d2bd0e
Remove network-manager-applet from XFCE4 package list
Based on discussion in #777 it seems like this forces NetworkManager which is not desired. We need a way to detect network manager being selected and install this only in that case.
2021-12-12 13:58:08 -05:00
Wilhelm Åkermark b0c8346fa7
Fixing possible race condition with partprobe (#796)
* Update partition.py

* Added sleep after partprobe

Added sleep after partprobe. Without this tools such as lsblk may be unable to retrieve certain properties of devices (such as partuuid).
2021-12-12 08:58:24 +01:00
Anton Hvornum c0b83e7f2f
Merge pull request #792 from MichaelMai2000/patch-1
fix logic: could not detect root **or** boot
2021-12-10 14:37:23 +00:00
MTC 9e840bd9ef
Merge branch 'archlinux:master' into patch-1 2021-12-11 00:12:16 +11:00
MTC 5a70efe284
fix logic: could not detect root **or** boot 2021-12-11 00:10:43 +11:00
Anton Hvornum dbb3c0a30e
Merged PR #790 - Fixes `(default)` issues in menu selection
Add handling of default options in multi-choice menus
2021-12-07 14:43:17 +00:00
Didr e344021b58
Add handling of default options in multi-choice menus
In multiple choice menu: Return `self.default_option` instead of visible name if visible name contains " (default)".
2021-12-07 14:54:59 +01:00
Anton Hvornum b1b820f4cb
Fixing some mypy complaints (#780)
* Fixed some mypy issues regarding SysCommand* and logging
* Fixed imports and undefined variable
2021-12-02 21:20:31 +01:00
Daniel 908c7b8cc0
Add simple menu for better UX (#660)
* Add simple menu for better UX
* Add remove external dependency
* Fix harddisk return value on skip
* Table output for partitioning process
* Switch partitioning to simple menu
* fixup! Switch partitioning to simple menu
* Ignoring complexity and binary operator issues
Only in simple_menu.py
* Added license text to the MIT licensed file
* Added in versioning information
* Fixed some imports and removed the last generic_select() from user_interaction. Also fixed a revert/merged fork of ask_for_main_filesystem_format()
* Update color scheme to match Arch style better
* Use cyan as default cursor color
* Leave simple menu the same

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com>
2021-12-02 21:17:51 +01:00
Anton Hvornum 22ee2d90a1
Merged PR #775 - Adds version to user_conf.json
Adds version to user_configuration.json
2021-11-28 10:32:48 +00:00
Anton Hvornum 5aaa8d9814 Adds version to user_conf.json
The key is never read anywhere, but would be useful in debugging purposes.
2021-11-28 11:31:23 +01:00
Anton Hvornum 7fd26817a1
Merge pull request #773 from archlinux/torxed-fix-examples
Updated examples - fixes #772
2021-11-26 14:26:18 +00:00
Anton Hvornum 87e75a7d09 Updated examples, fix #772 2021-11-26 14:24:47 +00:00
Anton Hvornum e285d84651
Merge pull request #769 from dylanmtaylor/patch-2
Set the version for master to 2.3.1 development
2021-11-25 12:08:59 +00:00
Anton Hvornum 5d4673cfff
Only create pypi releases on publishing a release
Since we can create them, but as draft or locally through tagging. It's best to safe bet this to only published releases. Worst case manual submission has to be done.
2021-11-25 12:08:43 +00:00
Dylan M. Taylor 93714133f4
Set the version for master to 2.3.1 development 2021-11-24 16:37:29 -05:00
Anton Hvornum c4ba14e62a
Bumped the version to v2.3.0 2021-11-24 22:27:38 +01:00
Anton Hvornum 8bb631ad7f Re-phrased btrfs subvolume question to only allow for a default layout 2021-11-24 22:24:11 +01:00
Anton Hvornum bf9d53ae0b
Removed silent 'ok' on mkdir and path for chmod on crypttab setup (#768)
* Removed silent 'ok' on mkdir for encryption key dir
* Fixed chmod path during crypttab setup
2021-11-24 21:52:38 +01:00
Anton Hvornum 070d088462
Added error handling to guided surrounding disk_layouts 2021-11-24 21:33:53 +01:00
Werner Llácer 2058e61dc7
Issue #764 Modify inclusion of self.BINARIES entry due to a mistype (#765)
* Modify inclusion of self.BINARIES entry due to a mistype
2021-11-24 20:29:20 +01:00
Anton Hvornum e729457b6c
Support encrypting multiple partitions (#759)
* Added support for storing disk encryption keyfiles and add them to a keyslot.
* Added a luks2().add_key() function in order to inject a keyfile into a keyslot on a encrypted volume.
* Simplified 'missing encryption password' logic in Filesystem(). Added a call to luks2().add_key() after the root-password is set on the volume, to add the keyfile in slot 2
* Adding in password handling in luks2().add_key(). It's required to enter a previous passphrase to unlock the volume and add a new keyslot. Also simplified the handling of partition in Installer().mount_ordered_layout()
* Adding in encryption on all partitions except /boot when encryption is opted in
* Removed setting size on Partition() as it's a read only value. No idea how Partition().size = size hasn't caused an issue before. Removed size=X argument to Partition()
* Added a uniqueness to the loopdevice name. This should ensure that multiple encrypted volumes can be opened at the same time, except for Partition().detect_inner_filesystem() operations which can only happen one at a time since they share namespace. This should never be an issue since archinstall is single threaded and no concurrent operations can/should happen.
* Added partprobe() as part of disk/helpers.py, added a /dev/ -> UUID mapper function called convert_device_to_uuid(path). Added a luks2().crypttab() function that sets up a /etc/crypttab entry.
* Moved the responsability for telling archinstall to generate a keyfile from Filesystem() to user_interaction.py. This should in the future be a user-input based value, and not something the Filesystem() automatically dictates.
* Added a retry mechanism to luks2().encrypt() to avoid having to re-start the installation when a device simply wasn't up yet.
* Swapping UUID= lookup from loopdev to physdev.
2021-11-24 00:09:33 +01:00
Anton Hvornum 29736c4a05
Merge pull request #763 from dylanmtaylor/archive-tools
Add archive tools to close #654
2021-11-23 20:52:40 +00:00
Anton Hvornum 2328570520
Merge pull request #762 from dylanmtaylor/fix-import
Fix error at end of installation from missing method import
2021-11-23 20:51:40 +00:00
Dylan M. Taylor d46b712f78 Add archive tools to close #654 2021-11-23 15:36:05 -05:00
Dylan Taylor 04c2b19dbe Fix error at end of installation from missing method import 2021-11-23 15:27:02 -05:00
Dylan M. Taylor 72d02a391d
Add accessibility packages to installed system if using the on the live ISO (#760)
* Add group of accesibility tools
* Conditionally extend base packages
* Enable it if accessibility in use in guided
* Fix circular import
2021-11-23 21:10:21 +01:00
Anton Hvornum 6b6c9c84be
Adding a warning when /boot is reasonably too small (#738)
* Moved convert_size_to_gb() into disk/helpers.py, Added a Partition().size property meta function. Using the .size value to check if /boot is too small which will raise an exception. The only drawback is that it's done post-formatting. This in order to catch scenarios where formatting isn't used.
* Changed /boot warning from 0.15GB to 0.25GB
* Changed the wording in the warning when /boot is too small.
2021-11-23 11:37:51 +00:00
Anton Hvornum e156971191
Merge pull request #756 from Firminator/patch-1
Update filesystem.py
2021-11-23 06:46:11 +00:00
Anton Hvornum 2be4576c42
Merge pull request #755 from dylanmtaylor/advanced-efistub
Rewrite bootloader selection to allow efistub if advanced flag is set
2021-11-23 06:45:28 +00:00
Firminator 7774165b96
Update filesystem.py
just a few typos
* label instead of labling
* make UUID consistent
2021-11-22 20:51:26 -05:00
Dylan Taylor 45ba4a3f1b Rewrite bootloader selection to allow efistub if advanced flag is set 2021-11-22 20:25:43 -05:00
Anton Hvornum 77e4bf6fa9
Merge pull request #754 from dylanmtaylor/patch-1
Mention the --advanced flag in the README
2021-11-22 20:26:28 +00:00
Dylan M. Taylor 5226fffec3
Mention the --advanced flag in the README 2021-11-22 15:16:04 -05:00
Dylan M. Taylor e532b76158
Make NTFS an advanced option (#753)
* Make NTFS an advanced option
2021-11-22 21:08:41 +01:00
Dylan M. Taylor 0c96ae049d
NTFS Root Filesystem Support (#748)
* For fun, allow NTFS as a root filesystem type
Add ability to format a filesystem as NTFS
Try to force filesystem type
Fix FAT mounting
* Split out mount fs type method
* Handle rootfstype on non-GRUB bootloaders
* Add -Q to mkfs.ntfs command line for quick formatting
* I believe this will fix GRUB with NTFS root
* Remove the fsck hook if NTFS is used as the root partition
* Looks like the string is ntfs3 not ntfs so this logic wasn't running
2021-11-22 17:22:51 +01:00
Anton Hvornum 29d0b3d155
Simplified size definition in dict. (#752)
* Simplified size definition in dict. Also changed from MiB to MB and GiB to GB on places where they were used, as BlockDevice().size now returns GB by default, so no math operations needed
* Appended the /boot offset to /root when specifying /home start.
2021-11-22 11:27:49 +00:00
Anton Hvornum c264fd466a
Fix #746 - Can't create a filesystem on a new partition during the manual partitioning (#751)
* Changed default value of info in largest_free_space()
* Fixing bad assumption that a disk always contain a minimum of two partitions.
2021-11-22 09:33:00 +00:00
Anton Hvornum 66e23af422
Merge PR #739 - Added @staticmethod decorators
source code improvement
2021-11-20 22:21:00 +00:00
Anton Hvornum 627b6b5207
Incorrect location usage of AVAILABLE_GFX_DRIVERS
#710
2021-11-20 10:32:28 +01:00
Steven Lee 91d030a09c
source code improvement 2021-11-19 14:09:47 +11:00
Anton Hvornum 5ec690da93
Adding a cmd_history.txt log under /var/log/archinstall/ (#737)
* Adding a cmd_history.txt log under /var/log/archinstall/ to get a clear picture of which commands was executed.
2021-11-18 22:18:41 +01:00
Anton Hvornum 4e3d2cff0c
Merged PR #736 - Partially addresses #710
Adding in a hard exception if `--config` can't be loaded when given.
2021-11-18 16:15:41 +00:00
Anton Hvornum 08468dc1cc Fixed spelling error on variables 2021-11-18 16:09:25 +00:00
Anton Hvornum caa83221a7 Added an exception if configuration cannot be loaded, to avoid confusion 2021-11-18 15:56:38 +00:00
Anton Hvornum 69810abb16
Merged PR #735 - Removes delays from Partition()._safe_uuid
Adds Partition()._safe_uuid as a addon to Partition().uuid without exceptions
2021-11-18 15:34:26 +00:00
Anton Hvornum 96332670c3 Added docstring 2021-11-18 15:33:21 +00:00
Anton Hvornum ee2eba6baf Reworked _safe_uuid() to be it's own function without timeouts. 2021-11-18 15:32:47 +00:00
Anton Hvornum 61bc59f5bf Reworked the last uuid fix, and introduced _safe_uuid which does the same thing but handles the DisKerror. This way we can use it in more places. 2021-11-18 15:29:59 +00:00
Anton Hvornum 37c84e1781
Merge pull request #734 from archlinux/torxed-fix-luks
Error handling when PARTUUID is missing during __repr__
2021-11-18 15:26:06 +00:00
Anton Hvornum c90fe07055 Error handling when PARTUUID is missing during __repr__ 2021-11-18 15:21:57 +00:00
Anton Hvornum b7e7909512
Merge PR #733 - Adds GNOME Software via packagekit
Add `gnome-software-packagekit-plugin`
2021-11-18 15:12:19 +00:00
Atirut Wattanamongkol a387205d6c
Add `gnome-software-packagekit-plugin`
This allows GNOME Software to work out of the box. I don't know why it's not a dependency, but GNOME Software is kinda borked without it.
2021-11-18 21:20:16 +07:00
Anton Hvornum bd48a6918f
Merge PR #732 - Fixed #718
Swapped .get() statement for a verification om Partition().uuid
2021-11-18 13:46:28 +00:00
Anton Hvornum b3d4155114 Swapped .get() statement for a verification. This ensures Partition().uuid doesn't immediately return None 2021-11-18 13:45:21 +00:00
Anton Hvornum d2a4572e98
Added a log message for when xorg fails a certain step. (#731)
* Added a log message for when xorg fails a certain step.

* Fixed f-string issues.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2021-11-18 13:34:07 +00:00
Anton Hvornum 776823adfb
Increased disk delays by 100% (for unsuccessful operations), successful should still be quick. (#730)
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2021-11-18 13:07:28 +00:00
Anton Hvornum 7d991ecb9f
Fixing broken encryption support in GRUB (#724)
* Added multiple `partprobe` calls and added a `.partprobe()` function on partitions, filesystem and blockdevice.
* Adding retry attempts to all UUID related operations tied to the boot process
* Tweaked logging for mounting and disk related operations
* Removed potential SysCall exception disruptor causing exceptions to go by unnoticed
* Increased the start position from 1MiB to 5MiB of /boot partition
* Optimized the GRUB installation & config code
* Improved Partition().uuid to never return None. Instead it will raise an exception if it can't get a PARTUUID within X retries with Y delay per attempt.
* Increased sleep timer for partition uuid retrieval, because even with a 3 second sleep it wasn't long enough even on fast devices.
* Make GRUB install to /dev/sda instead of /dev/sda1.
* Added 10 retries for retreiving PARTUUID with a one second sleep. Instead of increasing the sleep simply add more retries until we find a good balance on slower disks.
2021-11-17 19:02:20 +01:00
Anton Hvornum 5cc88a74ab
Merge PR #716 - Support for efistub-bootloader (API only)
Add EFISTUB bootloader support through config/api calls using:

```json
{
  "bootloader": "efistub",
  "kernels": [
    "linux",
    "linux-lts"
  ]
}
```
2021-11-17 15:38:32 +00:00
Anton Hvornum a18a652bb0
Merge pull request #723 from archlinux/torxed-fix-boot-entries
Clarification on boot entries when using multiple kernels
2021-11-16 15:47:18 +00:00
Anton Hvornum ad7d25fa92 Clarification on boot entries when using multiple kernels 2021-11-16 15:45:06 +00:00
Anton Hvornum 8799973895
Merge PR #722 - Fixes #721
Safe dictionary retrieval
2021-11-16 15:18:17 +00:00
Anton Hvornum 2891265409 Safe dictionary retrieval 2021-11-16 15:17:42 +00:00
Anton Hvornum c16872531e
Merge PR #714 - Fix empty drives causing issues
* Removed the GPT vs MBR lookup on __enter__
* Removed redundant `boot_partition` lookup during GRUB configuration
2021-11-16 15:15:21 +00:00
Anton Hvornum 4adb75c34b Accidental stdout redirect into 1 2021-11-16 15:06:54 +00:00
Anton Hvornum 8619dcc579 removed redundant import 2021-11-16 14:55:56 +00:00
Anton Hvornum c70b360879 Removed redundant boot-partition retrieval. 2021-11-16 14:41:00 +00:00
Anton Hvornum af514cf65e Linting issues 2021-11-16 14:14:13 +00:00
Anton Hvornum ba88e0a353 Added more logging for debugging purposes 2021-11-16 14:07:58 +00:00
Anton Hvornum 29aa991ab5 Improved error message when failing to detect mount information. 2021-11-16 14:06:02 +00:00
Ettore Forigo 436cabb8d0
Fix unknown-ucode message for EFISTUB bootloader 2021-11-16 02:13:34 +01:00
Anton Hvornum fd2eb74203
Merge pull request #715 from archlinux/torxed-add-mntpoint-arg
Adding in --mount-point argument, which overrides storage['MOUNT_POINT']
2021-11-15 18:49:39 +00:00
Ettore Forigo 44109b851a
Fix boot partition detection for EFISTUB bootloader 2021-11-15 01:58:06 +01:00
Ettore Forigo 34cd2c18d3 Add EFISTUB bootloader support 2021-11-14 15:19:54 +01:00
Anton Hvornum 1bc4e114fe Adding in --mount-point argument, which overrides storage['MOUNT_POINT'] 2021-11-13 10:46:11 +01:00
Anton Hvornum 1168efb01e Removed the GPT vs MBR lookup on __enter__ as it's no longer necessary to validate this on instance creation. load_layout() Uses this only to detect what partition table format it should use when wiping the drive. Other than that we only check if MBR and part numbers are > 3, that's the only use of this variable at this moment. 2021-11-12 11:22:30 +00:00
Anton Hvornum ca52c796a5
Merged PR #711 - Fixing disk "ghosting" issues using partprobe
* Adding partprobe at strategic places.
* Swapped `for partition in blockdevice` to `for uuid, partition in blockdevice.partitions.items()` instead as `__iter__` for debugging purposes.
* `get_mount_info()` now causes a exception rather than returning nothing if there is nothing to be shown. This to avoid issues where in places this is crucial information and it went by unnoticeable. Using exception handlers where it doesn't matter if there's any information or not.
2021-11-11 18:11:38 +00:00
Anton Hvornum 9b944b90b1
Merged PR #713 - Fixes #712
Removed assumptions that !user and !super-users exists.
2021-11-11 18:00:37 +00:00
Anton Hvornum b22500babd Removed assumptions that !user and !super-users exists. 2021-11-11 18:59:53 +01:00
Anton Hvornum c0bf44e0ae Converted partprobe call into a function. 2021-11-11 18:40:41 +01:00
Anton Hvornum 6d2126a597 Dealt with exception in partition 2021-11-11 15:31:51 +00:00
Anton Hvornum 6f8b064ec5 Added a hard exception for when mount information can't be detected 2021-11-11 15:26:07 +00:00
Anton Hvornum 91887bf0b3 Added more partprobe's 2021-11-11 15:14:06 +00:00
Anton Hvornum 960c4e6a3d Added more debug output for get_mount_info() 2021-11-11 15:11:42 +00:00
Anton Hvornum fd904ca787 Improved partition.uuid handling of lsblk information 2021-11-11 14:51:57 +00:00
Anton Hvornum e0782f234b Tweaked partitions usage in blockdevice 2021-11-11 14:30:52 +00:00
Anton Hvornum c2bfc4e340 Tweaked partitions usage in blockdevice 2021-11-11 14:29:41 +00:00
Anton Hvornum 4ea7feb04e Added more debugging (some duplicate, but that's fine) 2021-11-11 14:16:14 +00:00
Anton Hvornum 15e569d0bd Adding in debugging 2021-11-11 14:07:08 +00:00
Anton Hvornum 5809953440 elif -> if 2021-11-11 11:37:23 +00:00
Anton Hvornum 610e161d44 Removed legacy code related to disk wiping. Also added in partprobe in strategic places (not sure this is enough, will have to test) 2021-11-11 10:10:12 +00:00
Anton Hvornum e3e62039f9
Merged PR #707 - Fixes password leakage to terminal
Created a new JSON serializer called `UNSAFE_JSON` that will serialize everything, including sensitive information. And `JSON` which is the default up to this point now safely ignores any sensitive information in dictionaries marked with `!`, for instance `{"!password" : "mypassword"}` will be omitted from any output.
2021-11-11 09:59:42 +00:00
Anton Hvornum ad09c8cfa2 Bad copy paste of code prohibited credentials from being stored. 2021-11-11 09:59:22 +00:00
Anton Hvornum 813afa1507 Only adding disk encryption to user_credentials.json when supplied. 2021-11-11 09:43:06 +00:00
Anton Hvornum 9fe4dbc50e Modified last few places where password gets set. 2021-11-11 09:39:56 +00:00
Anton Hvornum 273b7aaa99
Merge pull request #709 from wllacer/master
Solves issue #689. Attribute Error.'None type' has no attribute 'form…
2021-11-11 07:55:16 +00:00
Anton Hvornum faadc2b968
Fixed linting issue 2021-11-10 11:40:47 +00:00
Werner Llácer 671c7b3854 Solves issue #689. Attribute Error.'None type' has no attribute 'format' ...
It seems the system does not syncronus update its internal information after a partitioning.
Two places are affected. Directly on filesystem.add_partition (the uuid of the new partition isn't available after the parted command)
and blockdevice.get_partition, where the list of partitions for the iterator might not be available in the query.
The patch places both sections under controlled loops, giving the system the chance to update the information.
Should be more controlled via application parameters
2021-11-10 11:20:38 +01:00
Anton Hvornum df59809206 Changed partition password to !password
And also added a check to grab !encryption-password if no partition-specific password was given.
2021-11-09 22:19:40 +01:00
Anton Hvornum 4b4c66caa1 Forgot to change the cls=JSON inside the recursive call of UNSAFE_JSON 2021-11-09 19:23:29 +01:00
Anton Hvornum b7fcbf13bc
Merge pull request #706 from archlinux/torxed-add-credentials
Adding in storage of user supplied credentials in a separate file.
2021-11-09 18:04:11 +00:00
Anton Hvornum 71a86f65aa Forgot the disk encryption password, also escaped with ! 2021-11-09 19:01:48 +01:00
Anton Hvornum 389aa1080b Adding in storage of user supplied credentials. This separates credentials from user_configuration.json into user_credentials.json. As well as the JSON serializer will omit the credentials from the user_configuration.json by detecting ! in the dictionary keys (which is why they are important). UNSAFE_JSON will leave those keys in there, good for storing credentials in a separate file." 2021-11-09 17:43:28 +01:00
Anton Hvornum d1716eeeef Revert default automatic hostname in user_config.json, I realized it's better to use --silent than forcing something in there. Some users might want to get poked on every machine. 2021-11-09 17:20:48 +01:00
Anton Hvornum 07255391cc Automatically fill the hostname in user_config.json 2021-11-09 17:16:25 +01:00
Anton Hvornum cd07dafaac
Merge pull request #704 from archlinux/torxed-fix-689
Fix #689 by adding a exception to filesystem.parted() on failure
2021-11-09 14:46:57 +00:00
Anton Hvornum 75604a906d Adding a exception to filesystem.parted() if it fails. We can't let these go by unoticed 2021-11-09 14:11:22 +00:00
Anton Hvornum c9a4e38497 Linting fix 2021-11-09 11:10:19 +00:00
Anton Hvornum 992c945b52
Merge pull request #695 from wllacer/master
Solves issue #674
2021-11-09 07:49:30 +00:00
Anton Hvornum 8e5869d106
Merge pull request #703 from dylanmtaylor/patch-2
Fix user_interaction import as well - this is also in the parent directory
2021-11-09 06:35:25 +00:00
Dylan M. Taylor 4689d837e1
Fix user_interaction import as well - this is also in the parent directory. 2021-11-08 20:58:54 -05:00
Anton Hvornum a6629815e3
Merge pull request #702 from dylanmtaylor/subvolume-disk-size
If using subvolumes, make root partition 100% instead of using home
2021-11-08 23:25:36 +00:00
Dylan M. Taylor 01b620ba81 If using subvolumes, make root partition 100% instead of using home 2021-11-08 17:57:27 -05:00
Anton Hvornum 68a1e42cfe
Merge pull request #699 from dylanmtaylor/patch-2
Fix luks import so that encryption works correctly
2021-11-08 22:16:02 +00:00
Dylan M. Taylor e9e46f0dd7
Fix luks import so that encryption works correctly 2021-11-08 16:41:20 -05:00
Werner Llácer 80a406c930 Followup to the previous one. Output of size function is rounded to the first decimal so output doesn't look too cluttered 2021-11-08 19:58:11 +01:00
Werner Llácer 6d0c55e5d6 Solves issue #674
We turned the size query of the devices to byte mode in lsblk (lsblk -b)
It avoids problems with the localized output of the lsblk utility.
2021-11-08 14:32:47 +01:00
Anton Hvornum 565464c72d
Fixes #690 by Clearing storage['active_boot'] if shutdown was successful (#691)
* Clear storage variable if shutdown was successful

* Adding shutdown monitoring and debug output.

* It seams systemd-run gets a connection reset from running 'shutdown now', but in a good way - so it doesn't raise any exceptions. Or at least that's what it looks like.
2021-11-07 12:23:29 +01:00
Anton Hvornum c62cef3cfd Revert "Added a delay on systemd-nspawn", did not help
This reverts commit d9aa7e6b34.
2021-11-06 21:49:57 +01:00
Anton Hvornum d9aa7e6b34 Added a delay on systemd-nspawn
This to avoid "Transport endpoint is not connected"
2021-11-06 12:14:04 +01:00
Anton Hvornum d363bad27c
Merged #679 - Fix #109 Wrapper to create files inside installation
Added a wrapper to create files inside the installation
2021-11-06 09:50:12 +00:00
Anton Hvornum 129326b93f Merge branch 'master' of https://github.com/archlinux/archinstall into torxed-fix-109 2021-11-06 10:47:19 +01:00
Anton Hvornum 97a91aab60
Added mimic function for file operations 2021-11-06 09:48:42 +01:00
Anton Hvornum 0c1139ffaf
Update installer.py 2021-11-06 09:42:54 +01:00
Anton Hvornum 17fe62c641
Merge pull request #678 from archlinux/torxed-fix-175
Adding support for swap on zram
2021-11-06 00:08:13 +00:00
Anton Hvornum 0fed0b3ce5
Fixed default zram conf location and imports 2021-11-05 23:07:04 +01:00
Anton Hvornum e29f440c0b
Fixed newline in zram conf 2021-11-05 22:09:51 +01:00
Anton Hvornum dbe8ce9982
Fixed broken import from master 2021-11-05 22:04:45 +01:00
Anton Hvornum a5730dec85
Misspelled variable name 2021-11-05 22:03:24 +01:00
Anton Hvornum f1422d955f
Fixed broken import from master 2021-11-05 22:00:59 +01:00
Anton Hvornum 007e75b6f1
Fixed broken import from master (GRUB non-EFI might be wonky) 2021-11-05 21:59:09 +01:00
Anton Hvornum 93fcc4cb54
Fixed a broken import 2021-11-05 21:50:56 +01:00
Anton Hvornum 5259549466
Fixed some import errors that snuk in master 2021-11-05 21:47:30 +01:00
Anton Hvornum 5df69abfee
Stripped down the default zram configuration for zram-generator 2021-11-05 21:41:19 +01:00
Anton Hvornum 0067e34970
Merged latest master 2021-11-05 21:37:40 +01:00
Anton Hvornum e411ff0abb
Merged PR #680 - improved installation.arch_chroot()
Improved run_as for installation.arch_chroot()
2021-11-05 16:33:41 +00:00
Anton Hvornum bf52588926
Merged in master changes 2021-11-05 17:29:53 +01:00
Anton Hvornum 3e53d45413
Merge PR #684 - swap ntpd for systemd-timesyncd
Fix #682 - swap ntpd for systemd-timesyncd
2021-11-05 16:22:43 +00:00
Anton Hvornum 37c40b8894
Fix import systemd.Boot 2021-11-05 17:17:18 +01:00
Anton Hvornum 4f4842f6bf
Added more information to the NTP log line. 2021-11-05 17:05:20 +01:00
Anton Hvornum 93efce92a9
Renamed the ntp function, as it doesn't install/enable ntp any longer. Even tho it uses the NTP protocol. 2021-11-05 17:03:07 +01:00
Anton Hvornum 2f677e2e86 Merge branch 'master' of github.com:archlinux/archinstall into torxed-fix-682 2021-11-05 16:56:56 +01:00
Anton Hvornum 31a7a85e04
Merge pull request #688 from archlinux/torxed-fix-93
Fixed quotation marks
2021-11-05 15:56:16 +00:00
Anton Hvornum f234b63169 Merge branch 'master' of github.com:archlinux/archinstall into torxed-fix-93 2021-11-05 16:52:19 +01:00
Anton Hvornum 5db146a0eb
Just swapped quotation marks. Easier to copy paste into JSON syntax highlighting. 2021-11-05 16:52:01 +01:00
Anton Hvornum 0071a06908
Merged PR #650 - flake8 fixes and tightening
Tighten up flake8 tests used by GitHub Action lint_python
2021-11-05 15:48:03 +00:00
Anton Hvornum b6ab678631
Ignoring flake8 on blockdevice.py. 2021-11-05 16:44:51 +01:00
Anton Hvornum 2fcd8198b2
Cleaned up all flake8 issues/warnings. Did some code cleaning as well, mostly how we called things in guided.py but also some SysCommand calls 2021-11-05 16:27:01 +01:00
Anton Hvornum 3993917462
Merge pull request #687 from Brainfrazzle/patch-1
Update discord.rst
2021-11-03 08:52:04 +00:00
Brainfrazzle d9aec3fe21
Update discord.rst
Just edits for readability and grammar.
2021-11-02 20:28:02 -10:00
Anton Hvornum ccbf9d1f19
Merge pull request #685 from TheEvilSkeleton/typo
Fix typos
2021-11-02 16:23:18 +00:00
TheEvilSkeleton 675db53f1d
Fix typos 2021-11-02 12:01:07 -04:00
Anton Hvornum aa1afdbeb0 flake8 fix, trailing semicolon 2021-11-02 09:30:38 +00:00
Anton Hvornum 7e85002dcb Made sure there's a default config that's 'sane' 2021-11-02 09:29:28 +00:00
Anton Hvornum d7449cc887 Removed pacstrap of ntpd as it's redundant. Also enabled the systemd-timesyncd service before running a command against it. 2021-11-02 09:23:02 +00:00
Anton Hvornum 0d80eba219 Changed from ntpd service to systemd-timesyncd. 2021-11-02 09:21:24 +00:00
Anton Hvornum e70cfa65bb
Merge pull request #681 from Didr/patch-1
Add import for all_disks
2021-11-01 14:30:28 +00:00
Didr a868bc095d
Add import for all_disks 2021-11-01 13:05:09 +01:00
Anton Hvornum b573421df2 Fixed flake8 issues in networking, plugins and profiles. 2021-11-01 12:03:40 +00:00
Anton Hvornum 0c4ba29978 Fixed general.py flake8 issues. 2021-11-01 11:57:21 +00:00
Anton Hvornum b42b3a2ce5 Merged upstream master into PR branch. 2021-11-01 11:57:04 +00:00
Anton Hvornum b3aba8d855 Improved run_as for installation.arch_chroot() 2021-11-01 10:59:51 +00:00
Anton Hvornum 0d691fc487 Added a wrapper to create files inside the installation as/for a specified used 2021-11-01 10:42:04 +00:00
Anton Hvornum 9bc46a3eb6 Adding in enabling of zram service 2021-11-01 10:08:53 +00:00
Anton Hvornum b4eb8557f5 Adding support for swap on zram 2021-11-01 09:59:32 +00:00
Anton Hvornum b880849193
Merge PR #677 - Fixes #380
Adding support for passing arguments to .format() via configs
2021-10-30 21:06:10 +02:00
Anton Hvornum 32aa91bdde Adding support for passing arguments to .format()
This should enable people to use custom option arguments in their config files when scripting installations or using the API.
2021-10-30 21:04:31 +02:00
Anton Hvornum 85c97b5630
Merged PR #637 - BTRFS support fix #93
+ BTRFS support
+ Refactoring of `disk.py` into `lib/disk/*.py`
+ `get_mount_info()` was reworked to support traverse backwards until mountpoint information is found (reverse-recursiveness)
+ `suggest_single_disk_layout()` was added/fixed to support BTRFS options
+ - `suggest_multi_disk_layout()` does not yet support BTRFS subvolumes in suggestive mode
+ `Installer()` now calls `create_subvolume()` and `mount_subvolume()` during loading of file structure on `mount_ordered_layout()`
2021-10-30 20:52:07 +02:00
Anton Hvornum 2a2239dd03 Merge branch 'master' of https://github.com/archlinux/archinstall into torxed-fix-93 2021-10-30 20:36:21 +02:00
Anton Hvornum 62f5bf4c83 Merging in parts of Master related to disk.py 2021-10-30 20:26:54 +02:00
Anton Hvornum 522ca2e41c
Adding error handling for paths and btrfs subvolume creation. 2021-10-30 17:55:16 +02:00
Anton Hvornum 29a9fbddb2
Failed to create directory structure on subvolume create. Only on subvolume mount. This fixes that. 2021-10-30 17:50:24 +02:00
Anton Hvornum dbebe8cf37
Raising DiskError if subvolumes cannot be created. 2021-10-30 17:46:25 +02:00
Anton Hvornum 9f9c637bfd
Fixes tuple issue 2021-10-30 17:22:21 +02:00
Anton Hvornum 3ee1a5c18e
Tweaked get_mount_info() and mount_subvolume(). mount info now returns the path it found after traversal. mount_subvolume will no longer assume installation.target is of pathlib.Path and converts it if it isn't. 2021-10-30 17:15:33 +02:00
Anton Hvornum 4bc164cccc
Forgot to include {installation.target} in subvolume mounting 2021-10-30 16:57:51 +02:00
Anton Hvornum c2596be1f1
Added more logging (will change INFO to DEBUG later) 2021-10-30 16:32:55 +02:00
Anton Hvornum e6de28287d
Wrong lib import path 2021-10-30 16:29:52 +02:00
Anton Hvornum c4f688ce4c
Added some error handling to mount points not getting mounted properly. 2021-10-30 16:28:55 +02:00
Anton Hvornum 6be071b6e0
Enhanced get_mount_info() to recursively get the information 2021-10-30 16:16:43 +02:00
Anton Hvornum d3aec52d98
Forgot an import 2021-10-30 13:54:18 +02:00
Anton Hvornum 5d124f8106
Added debugging to the btrfs functions. 2021-10-30 13:51:39 +02:00
Anton Hvornum 05a8739231
Wrong exposed variable corrected. 2021-10-30 12:02:00 +02:00
Anton Hvornum 76dc426a0f
Added creating and mounting of subvolume structure for BTRFS. 2021-10-30 11:00:22 +02:00
Anton Hvornum 68b891837c Finalized the create_subvolume and mount_subvolume functions. Remaining is to call these functions during the disk setup process to create the subvolumes and mount them in place, rather than doing the normal steps. 2021-10-27 13:13:10 +00:00
Anton Hvornum d25a20a7f2
Merge pull request #666 from olekthunder/re_rank_mirrors_fix
Fix re_rank_mirrors
2021-10-27 11:58:17 +02:00
Anton Hvornum ea1cf70ae3
Merge pull request #672 from conqp/hardware_refactoring
Hardware refactoring
2021-10-27 11:56:51 +02:00
Anton Hvornum ae0d700c7e
Merge pull request #668 from olekthunder/use_mirrors_fix
Fix use_mirrors
2021-10-27 11:52:44 +02:00
Anton Hvornum 72849083e6
Merge pull request #662 from theaeonsolution/master
Remove duplicate package
2021-10-26 16:11:30 +02:00
Anton Hvornum 7149b76f3b
Forgot some imports that didn't show up on a static run without going through a few of the menu's 2021-10-22 21:54:16 +02:00
Anton Hvornum 8b96080ec8
Forgot some imports that didn't show up on a static run without going through a few of the menu's 2021-10-22 21:02:39 +02:00
Anton Hvornum 2ef793b76a
Forgot some imports that didn't show up on a static run without going through a few of the menu's 2021-10-22 20:55:00 +02:00
Anton Hvornum 3ec8df9753
Removed the old disk.py 2021-10-22 20:45:44 +02:00
Anton Hvornum 7ac06d75d0
Restructured disk.py into lib/disk/<splits>.py instead. Shouldn't be any broken links as we expose all the functions through __init__.py - but you never know so I'll keep an eye for issues with this. 2021-10-22 20:43:01 +02:00
Oleksandr Zinkevych a822b8edae
use_mirrors: return None instead of True 2021-10-22 14:53:18 +03:00
Richard Neumann 8eea325924 Improve type hint 2021-10-21 22:56:46 +02:00
Richard Neumann 63c6f39f98 Generalize CPU vendor detection
Implement has_amd_cpu() and has_intel_cpu() as partials.
2021-10-21 22:54:00 +02:00
Richard Neumann 4f6cec5069 Remove useless initialization of mem_info = {} 2021-10-21 22:50:49 +02:00
Richard Neumann ca25c356b6 Update type hints
meminfo() returns ints.
2021-10-21 22:48:52 +02:00
Oleksandr Zinkevych 165d47f4bb
Fix use_mirrors 2021-10-15 18:21:35 +03:00
Oleksandr Zinkevych 427492d7c9
Fix re_rank_mirrors 2021-10-15 18:03:08 +03:00
Christian Clauss 566693c4f8
max-complexity = 40 2021-10-14 15:42:37 +02:00
Anton Hvornum 448917487a
Tweaked the ignores and made it less forgiving 2021-10-14 13:05:45 +00:00
Anton Hvornum ba725517fd
Merge pull request #644 from JakobDev/cutefishterm
Remove Konsole from cutefish profile
2021-10-14 13:02:34 +02:00
Anton Hvornum 7e096e4f6d
Merge pull request #643 from Svintooo/svintooo-fix
Various bug fixes
2021-10-14 13:01:43 +02:00
theaeonsolution fce7accce1
Remove duplicate package 2021-10-12 19:59:31 -05:00
Christian Clauss 52dbccea5e Tighten up flake8 tests used by lint_python GitHub Action 2021-10-04 11:08:21 +02:00
JakobDev 94cf38c171
Remove Konsole from cutefish profile 2021-09-25 11:49:52 +02:00
Hugo Ankarloo 5bcbb50936 Fix Bug: 'Suggest partition layout' crashes
File: lib/user_interaction.py

When function manage_new_and_existing_partitions() is used, and
'Suggest partition layout' is selected, the installer crashes.

REASON
Bug was introduced in commit 9e67ce3, when partition layout was
changed to use device.path as keys (instead of device).

It seems all necessary changes were made for this, except this one.
2021-09-21 00:38:20 +02:00
Hugo Ankarloo e71a41377d Merge branch 'master' into svintooo-fix
Sync branch svintooo-fix with latest code changes on master.
2021-09-20 21:52:14 +02:00
Hugo Ankarloo 26244212cf Fix Bug: Cannot get partuuid from loop device
File: lib/disk.py

When installing on a loopback device (a.k.a loop device), function
Filesystem.partuuid_to_index() crashes with a JSON parsing error.

REASON

1) For loop devices, the property BlockDevice.device returns the
   actual image file (back-file) of the loop device instead of the
   /dev/X device.

2) Function Filesystem.partuuid_to_index() executes `lsblk --json`
   against BlockDevice.device .

3) `lsblk` fails and prints the error "not a block device" to stderr.
   This causes the output to not be valid JSON.

4) Code crashes when JSON parser tries to parse the output.

SOLUTION

- Make sure property BlockDevice.device only returns a valid block
  device.

- Create new function BlockDevice.device_or_backfile that mimics
  the present behaviour of BlockDevice.device.

- Use BlockDevice.device_or_backfile in function
  BlockDevice.__repr__().

SOLUTION REASONING

I can only see one reason behind BlockDevice.device returning
the back-file of a loop device, and that is to show the back-file
to the user (instead of /dev/X) when printing the string
representation of a BlockDevice.

All other parts of the code can use the /dev/X file just fine.

And IMO it makes more sense that a property named `device` only
returns devices, and not normal files.
2021-09-20 21:46:56 +02:00
Hugo Ankarloo 915ae88947 Fix Bug: Set filesystem crashes if no partitions
File: lib/user_interaction.py

When function manage_new_and_existing_partitions() is used, and
no partitions are configured, and 'Set desired filesystem for a
partition' is selected, the installer crashes.
2021-09-20 20:17:39 +02:00
Hugo Ankarloo ffbfafb354 Fix Bug: config b0rked by Suggest partition layout
File: lib/user_interaction.py

When function manage_new_and_existing_partitions() is used, and
'Suggest partition layout' is selected, the partition info is not
correctly stored in the config.

Instead of: {"partitions": [{...}, {...}]}
You get: {"partitions": {"partitions": [{...}, {...}], "wipe":True}}
2021-09-20 19:58:56 +02:00
Hugo Ankarloo d2d80113b3 Fix Bug: Timezone is ignored, always same as host
Bug affects normal interactive usage (example/guided.py).

The timezone configured in the installer is not the timezone that
ends up in the new installed system. Instead, the timezone
used in the host system (from where the installer is run) is the
one that finally ends up being used.

Reason: systemd-nspawn by default copies the host timezone into
the target. And systemd-nspawn is run when keyboard-layout is
changed (which is done after changing the timezone).

Solution: Add option `--timezone=off` to systemd-nspawn, which
hinders affecting the timezone in the target.
2021-09-20 19:30:07 +02:00
Anton Hvornum c33ab997c9
Merge pull request #642 from SecondThundeR/misc-fixes
general: remove all found white-spaces
2021-09-19 15:01:53 +02:00
SecondThundeR ffe38c879a general: remove all found white-spaces
Also this change adds new line at the end for some scripts
2021-09-19 15:49:44 +03:00
Anton Hvornum ed823be3ba Refactoring and cleaning up a bit
I'm making sure that the JSON structure of the user config can get a say in how the subvolumes should be used later on. As well as splitting up where the logic should be to make it easier to maintain.
2021-09-18 15:52:29 +02:00
Anton Hvornum aacbc2f29d
Adding network applet support in xfce #639 from falieri/patch-1
Update xfce4.py
2021-09-18 15:48:09 +02:00
Falieri a93225d1de
Update xfce4.py
add network support to the xfce panel
2021-09-18 10:36:42 -03:00
Anton Hvornum 68212dd32c Preparing to split up ./lib/disk.py
And added some sane(?) defaults, which I'll massage into code some how.
2021-09-18 14:54:42 +02:00
Anton Hvornum 6a125d5bd2 Adding in options for BTRFS subvolumes 2021-09-18 11:22:18 +02:00
Anton Hvornum f6ceb8bba6 Removing hardcoded btrfs for suggested partition layouts. 2021-09-18 10:37:55 +02:00
Anton Hvornum ad534f0804
Merge pull request #636 from archlinux/torxed-fix-616
Removing /tmp from fstab
2021-09-17 23:52:49 +02:00
Anton Hvornum e21cf77e77 Removing /tmp from fstab
Since systemd takes care of mounting /tmp as a tmpt, there's no point in having a manual entry in fstab.
2021-09-17 23:52:10 +02:00
Anton Hvornum 7be52655c0
Merge pull request #635 from archlinux/torxed-fix-593
Added gvfs to fix "trash" in xfce4
2021-09-17 17:29:21 +02:00
Anton Hvornum b4481506ff Added gvfs to fix "trash" in xfce4
https://wiki.archlinux.org/title/Xfce#Trash_icon_not_visible_and_trash_applet_does_not_work
2021-09-17 17:28:46 +02:00
Anton Hvornum ffc43bc041 Adding linux -headers for nvidia-dkms
This should address #585, as I don't see any nvidia-dkms other than when linux-zen and linux-lts is chosen, I chose to put the -headers logic in the same section. If this is needed for vanilla `linux` kernel as well, then move the logic one line up.
2021-09-15 22:17:30 +02:00
Anton Hvornum 9e67ce3f05 Making sure the drive paths are in the JSON structure, and not the class object, as it won't work seamlessly to access for instance storage['disk_layouts'][ClassInstance()] if it's not the identical mem copy of the object we're accessing, so strings are better for storage/comparisons. 2021-09-15 20:11:40 +02:00
Anton Hvornum 70af00f33d Tweaked the logic for parsing the --harddrives parameter. 2021-09-15 19:23:35 +02:00
Anton Hvornum e6549c1edb Fixing type issue with conversion to multiple disk logic. 2021-09-15 19:17:32 +02:00
Anton Hvornum 2cfbafc653 More error handling and fixed a spelling error. 2021-09-15 19:16:30 +02:00
Anton Hvornum 1a7056efc4 Might be redundant, but if the JSON file given to --config contains a list it will break the .split(), but if --harddrives is given as an argument, then we need to split. So adding a type-check 2021-09-15 19:09:57 +02:00
Anton Hvornum d6acfec799 Updating support for --disk_layouts. It now supports file paths as well as JSON in string format via --disk_layouts=<json> 2021-09-15 19:01:14 +02:00
Anton Hvornum 8dd097da05 Reverted last change, and improved it. By passing it through load_config and tweaking the read structure a bit, it worked out better if the accessed values are in archinstall.storage instead. 2021-09-15 17:36:54 +02:00
Anton Hvornum c09a36b7b1 Changed from internal storage to parameter-friendly arguments for disk_layouts, so we can support JSON for disk layouts on the new logic. 2021-09-15 13:33:34 +00:00
Anton Hvornum 7d3f2b6f29 Added a 'hidden' variable called --disk-sleep for delaying disk partition up time before continuing after a format. This is an ugly hack to get around some disk issues, for now. 2021-09-14 14:07:50 +00:00
Anton Hvornum 6d2a2f327c Moved --noconfirm at the end of the pacstrap command to get piped properly to pacman inside pacstrap. 2021-09-14 11:47:16 +00:00
Anton Hvornum e0f00ad1fe Merging latest changes 2021-09-13 14:56:03 +00:00
Anton Hvornum 168379d43d Added --noconfirm to pacstrap and increased logging verbosity when packages fail, and adding a exception so that the installation doesn't continue silently. This causes too much confusion (even tho I liked the idea that people could recover the missing parts without having to re-run the installer for subsequent steps. 2021-09-13 14:55:09 +00:00
Anton Hvornum 995edaf316 Removed legacy need to add_bootloader
`add_bootloader` no longer needs to have a harddrive given as a argument. It will (and should) auto-detect what's mounted in the `self.target` (aka mountpoint) of the installation.
2021-09-12 15:42:13 +02:00
Anton Hvornum ea41a6c268
Merge pull request #628 from kusakata/patch-1
Update ReadMe document link
2021-09-07 20:41:53 +02:00
Shohei Kusakata 243284d2fd
Update ReadMe document link
fix readthedocs link
2021-09-08 02:43:41 +09:00
Anton Hvornum e3b6a46b74
Update README.md 2021-09-06 18:23:19 +02:00
Anton Hvornum 009dc0ab37
Merge pull request #623 from conqp/clean_hardware_imports
Remove unused import of json
2021-09-06 18:01:46 +02:00
Anton Hvornum 6aa028d29d
Merge pull request #626 from conqp/refactor_meminfo
Refactor meminfo() to allow direct key access
2021-09-06 18:01:31 +02:00
Anton Hvornum 6ead767907
Merge pull request #625 from conqp/fix_tab_indentation
Fix indentation with tabs instead of spaces
2021-09-06 17:59:43 +02:00
Richard Neumann 712e5d4a70 Fix indentation with tabs instead of spaces 2021-09-06 17:15:40 +02:00
Richard Neumann 0a8fe402a4 Refactor meminfo() to allow direct key access 2021-09-06 17:13:26 +02:00
Richard Neumann 93496087e5 Remove unused import of json 2021-09-06 16:52:41 +02:00
Anton Hvornum e39e49ecc7
Merge pull request #426 from archlinux/torxed-rework-partitioning
Re-work partitioning logic, introducing more granularity (and stability)
2021-09-06 16:42:31 +02:00
Anton Hvornum e10daf4c57 Merged in master 2021-09-06 14:41:29 +00:00
Anton Hvornum 51565314b4 Merged in master. 2021-09-06 14:40:05 +00:00
Anton Hvornum 4505c3a11f
Merge pull request #622 from conqp/refactor_cpu_data_detection
Refactor cpu data detection
2021-09-06 16:29:14 +02:00
Richard Neumann 8841e209ee Refactor cpu_model() to use cpuinfo() 2021-09-06 16:12:53 +02:00
Richard Neumann 086dcc3325 Refactor cpu_vendor() to use cpuinfo() 2021-09-06 16:12:16 +02:00
Anton Hvornum 81f3ccad40
Merge pull request #615 from conqp/native_cpu_detection
Native cpu detection
2021-09-06 15:55:05 +02:00
Anton Hvornum 1030bd19c5
Merge branch 'master' into native_cpu_detection 2021-09-06 15:54:52 +02:00
Anton Hvornum 40cd801184
Merge pull request #614 from laxect/patch-1
Fix wrong default in kernels (guide.py)
2021-09-06 15:48:49 +02:00
Anton Hvornum a7d2f5ea03
Merge pull request #613 from RustyRaptor/master
fixed the git checkout non-existent branch
2021-09-06 15:48:11 +02:00
Anton Hvornum 355f502d80
Merge pull request #610 from luckspt/patch-2
Typo
2021-09-06 15:45:53 +02:00
Anton Hvornum 000eb14668
Merge pull request #608 from archlinux/deepin-profile
Remove lightdm packages from Deepin profile
2021-09-06 15:43:29 +02:00
Anton Hvornum bf18260510
Merge pull request #605 from CYPT71/patch-1
Update hardware.py
2021-09-06 15:42:15 +02:00
Anton Hvornum 8d7ccde162
Added exception handling to check_output
I tweaked the optimized return of check_output. Worth mentioning that `check_output()` will raise an exception `subprocess.CalledProcessError: Command 'lscpu | grep AMD' returned non-zero exit status 1.`.
2021-09-06 13:40:45 +00:00
Anton Hvornum 5fe752cf72
No need for try/catch any longer.
The old behavior of SysCommand was that exit codes raised an exception, which needed to be handled by each individual caller. We now utilize `.exit_code` instead to manually detect faulty commands and raise exceptions where needed.
2021-09-06 13:22:53 +00:00
Anton Hvornum 0f5e0c0d3f
Merge pull request #603 from j-james/master
Mention GNOME and KDE's soft dependency on NetworkManager in the installation process
2021-09-06 15:01:43 +02:00
Anton Hvornum 48fd68124a
Merge branch 'master' into master 2021-09-06 15:01:37 +02:00
Anton Hvornum 05c923524b
Merge pull request #600 from monosans/comprehension
Replace for loops with comprehensions
2021-09-06 14:26:30 +02:00
Anton Hvornum 025dc83194 Corrected some minor modifications mentioned in #595 as well as merged in latest changes from master. For future PR's do create a patch-branch for upstream patches to avoid changes to your local repo. 2021-09-06 12:22:57 +00:00
Anton Hvornum cc6491f0a5
Merge pull request #578 from l4zy0n3/patch-2
created load_config() to load configuration
2021-09-06 12:11:58 +02:00
Anton Hvornum 8a0a9b16e1 Merge branch 'master' of github.com:archlinux/archinstall into torxed-rework-partitioning 2021-09-04 20:58:05 +02:00
Anton Hvornum e88ac430f2
Fixed edge case where size of disks could be exactly 40GB and a /home would never be created on single devices. 2021-09-04 20:54:25 +02:00
Anton Hvornum 278ded8e74
Added a PARTUUID -> parted index, this in order to properly set the boot flag on the correct partition. Perhaps there's a smarter way. I suspect parted can operate on a given partition ID, but haven't found the docs for it yet. 2021-09-04 19:09:16 +02:00
Anton Hvornum 429006fe4b
Simplified lambda and made it filter out non relevant disks for the selection process. 2021-09-04 17:03:52 +02:00
Anton Hvornum 1814a19d6a
Fixed filtering if largest disk selection 2021-09-04 16:39:15 +02:00
Richard Neumann a5a56728f1 Remove excess newline 2021-08-20 18:16:45 +02:00
Richard Neumann 61947ab944 Rewrite CPU vendor detection functions
Use cpuinfo() function rather than a subprocess.
2021-08-20 18:16:00 +02:00
Richard Neumann b8ede1b333 Add cpuinfo() 2021-08-20 18:13:23 +02:00
Yash Tripathi c461cc49e7
only prompt if _selected_servers is not set 2021-08-20 03:54:23 +05:30
Yash Tripathi 78bbf26c1a
Update guided.py 2021-08-20 03:48:13 +05:30
Yash Tripathi 6d462ac1cc
added servers key 2021-08-20 03:34:50 +05:30
ギャラ 79f70cee21
Update guided.py
Fix wrong default in kernels.
2021-08-18 20:52:10 +09:00
Anton Hvornum 81e52bc3ff
Reworking logic that selects / and /home for multi-disk configurations. Also added some more debugging 2021-08-18 08:17:50 +02:00
RustyRaptor 71ec22a349
fixed the git checkout non-existent branch
It looks like the `torxed-v2.2.0` branch doesnt exist anymore and I assume its now just `v2.2.0` instead so I changed this command in Using a live ISO
2021-08-17 13:54:26 -06:00
Anton Hvornum 59c366da35
Fixed a prompt error in one of the parted calls. Also started on a more reliable size-conversion that isn't limited to Gigabytes in free_space(). 2021-08-17 20:23:20 +02:00
Felix Yan 339e9f8a42
Add back lightdm, be more explicit 2021-08-05 15:23:50 +08:00
Lucas Pinto 64e6b7b456
Typo
Fix a tiny typo
2021-07-28 01:35:26 +01:00
Felix Yan a1667a25f1
Remove lightdm packages from Deepin profile
As of deepin-session-shell 5.4.42-2 (which is in the deepin group), lightdm is added as a dependency because of lightdm-deepin-greeter. A configuration (usr/share/lightdm/lightdm.conf.d/60-deepin.conf) in startdde (also in the deepin group) should override default lightdm configuration to use lightdm-deepin-greeter instead of the gtk greeter. Thus these two packages could be removed from the profile now.

This effectively reverts #441
2021-07-24 20:41:35 +08:00
CYPT71 bbce3aa26a
Update hardware.py
Rewrite some function 

if condition is True then return true else return false, transform in return condition directly 

Also I don't understand why we need a try/except at line 151 and why we not write return condition ??
2021-07-22 11:47:56 +02:00
j-james b0aa5dcbbb Mention GNOME and KDE's soft dependency on NetworkManager in the install 2021-07-19 16:09:44 -07:00
Yash Tripathi a67a2693db fixed profile selection 2021-07-18 22:41:18 +05:30
Yash Tripathi b60e8dfd10 changed dry_run to dry-run 2021-07-18 21:45:24 +05:30
Yash Tripathi b2476313a7 added new key for desktop-environment 2021-07-18 21:40:44 +05:30
Yash Tripathi b1998ddebf fix for #602, running mklabel before formatting 2021-07-18 17:15:01 +05:30
Yash Tripathi e4eadbb5a8
Merge branch 'master' into patch-2 2021-07-18 01:30:16 +05:30
Yash Tripathi d55b1786c5 created load_config() to load configuration 2021-07-18 01:28:41 +05:30
monosans 3d4f58a04e Replace for loops with comprehensions 2021-07-16 10:42:29 +03:00
Hamad Al Marri 51eb05691a Fix encryption + grub both in UEFI and BIOS systems.
We need to have two partitions in BIOS one for boot (grub)
and the other for root (/). The format of the boot partition
is ext2 (so it is added).

If disk is chosen to be encrypted, `then /etc/default/grub` is edited
as the followings: https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system#Configuring_GRUB_2

Issue: https://github.com/archlinux/archinstall/issues/586

This work is done while working on CachyOS which is Arch based and
it is using customized archinstaller.

To test these changes you can try CachyOS installer which supports
encrypted disk with grub (https://wiki.cachyos.org/).

Hamad
2021-07-07 18:38:55 +03:00
Anton Hvornum a53ee624ef Removed debugging 2021-07-04 15:15:21 +02:00
Anton Hvornum f2b0fcc652 Added a filesystem check when marking for formatting, this should ensure that encrypted volumes get a proper filesystem without having to go through an extra step of selecting filesystem. 2021-07-04 15:15:07 +02:00
Anton Hvornum 57bad26553 Added options to mark/unmark partitions for formatting (useful when re-using partitions, and fine tune which data to save and which to wipe). Setting a desired filesystem for a partition (both new ones and the ones being re-used). 2021-07-03 15:10:23 +02:00
Anton Hvornum 51f2eca60e Saving partitioning layout in a layout file (JSON format) 2021-07-03 14:27:49 +02:00
Anton Hvornum e965eaf546 Missing .format() on 'use entire disk' step 2021-07-03 14:00:03 +02:00
Anton Hvornum 20e759d4cc Added more detail to BlockDevice.__repr__ 2021-06-15 11:51:29 +02:00
Anton Hvornum 0079f3d95c Added fs-type and formatting on encrypted partitions that haven't been given a fs-type prior when re-using partitions. 2021-06-15 10:55:36 +02:00
Anton Hvornum 6cf50618b1 Change of variable 2021-06-14 21:37:34 +02:00
Anton Hvornum fa8862a460 moved valid_parted_position to disk. And made it handle float numbers. 2021-06-14 19:04:51 +02:00
Anton Hvornum 6176ac5e5d Since all fs-type's appear to be lower-case in 'man parted', we'll check against a lowered list in general for supported fs-types. 2021-06-14 19:01:06 +02:00
Anton Hvornum 2ac1f453cf Added BlockDevice.largest_free_space and BlockDevice.free_space (iterator). Also added additional supported filesystems to parted. Apparently the online manpages doesn't agree with the local manpages, my previous statement that these gets ignored is false so added those in and removed some that isn't supported by my local manpages, 'ufs' for instance. 2021-06-14 18:53:34 +02:00
Anton Hvornum eb4c134c80 Unifying partioning logic into one function when managing partitions. Rather than giving the option between wiping and creating, and re-using and creating 2021-06-14 16:20:26 +02:00
Anton Hvornum 00b1dfde6d Merged in master 2021-06-14 16:05:19 +02:00
Anton Hvornum 0c203384e0 Re-structuring partition flow 2021-06-14 16:04:43 +02:00
Anton Hvornum 630dedadd1 Legacy re-name of function. 2021-06-14 14:49:49 +02:00
Anton Hvornum 51cb64cc97 Instructed to use truncate instead of dd, as dd is a bit slow. 2021-06-14 09:52:29 +02:00
Anton Hvornum 3a40764194
Merge pull request #580 from dylanmtaylor/patch-1
Change graphics driver prompt to better indicate default action
2021-06-14 09:37:47 +02:00
Anton Hvornum d4f0d411f6 Synced master into partitioning branch 2021-06-14 09:26:03 +02:00
Dylan M. Taylor 8617e0c2b7
Change graphics driver prompt to better indicate default action 2021-06-13 21:51:40 -04:00
Anton Hvornum 1450387fae Started on multiple-disk-re-usage selection process. 2021-06-13 22:06:40 +02:00
Anton Hvornum 8489137b87
Merge pull request #577 from chingnux/fix-silent
fix the case when there's --config but --silent is not set
2021-06-13 16:28:12 +02:00
Yash Tripathi d30a22cae3
Setting proper keys in exported config (#557)
* Set the resolved profile path to the actual desktop environment

* split Nvidia driver list into proprietary and open-source

* Updated select_driver to use archinstall.arguments for driver selection

* Adding default value that works with later .get()

* audio will now be prompted irrespective of profile
2021-06-13 14:52:24 +02:00
Dylan M. Taylor 4e17355796
Implement is_desktop_profile helper function (#575)
* Implement is_desktop_profile helper function

* Make ask_for_audio_selection use generic_select

* Fix default value for audio selection

* Leverage list of supported desktops to perform is_desktop_profile check

* is_desktop_profile was missing a default return value

* Store return value for audio server
2021-06-13 14:32:38 +02:00
Anton Hvornum d76760b45f Removed old safety logics for partitions. Partitions will now always be formatted when .format() is called on them. The safety now lay in the code parsing the declerative partition layouts. Also added the encrypt/mount logic for encrypted partitions, which by default will be unencrypted unless a password is specified. 2021-06-13 14:25:07 +02:00
Anton Hvornum af790faf7a Added multi-disk suggested layout. It's sorted on performance, and the first relevant disk with the closest size to a desired size will be used for root, and the same (exluding the one already used) will be used for /home 2021-06-13 11:25:33 +02:00
Iru Cai c4edf34764 fix the case when there's --config but --silent is not set 2021-06-13 16:51:57 +08:00
Anton Hvornum 9b6d7021a8 This fixes https://github.com/archlinux/archinstall/pull/426#discussion_r650372664 2021-06-13 10:37:30 +02:00
Anton Hvornum 8cc51cbcdc Merge branch 'torxed-rework-partitioning' of github.com:archlinux/archinstall into torxed-rework-partitioning 2021-06-13 10:34:12 +02:00
Anton Hvornum 858171986c Working suggested single disk layout, preparing for multiple selections. 2021-06-13 10:34:08 +02:00
Anton Hvornum ba60d82bb9 Added BlockDevice.spinning and BlockDevice.bus_type 2021-06-11 21:33:37 +02:00
Anton Hvornum 24476ac1f6 Made it so that the .partitions property of Install() fetches from live data, rather than storing and caching partitions on initation. Since it now supports mounting a partition layout given by external usage. 2021-06-11 17:22:20 +02:00
Anton Hvornum b9af735d85
Merge pull request #569 from dylanmtaylor/patch-1
Add a message when running check_mirror_reachable to let users know it's not frozen
2021-06-10 21:15:53 +02:00
Anton Hvornum 0a8c061ab4 Fixed format detection on commands, should be using exit codes instead? 2021-06-10 21:00:33 +02:00
Anton Hvornum adae29c205 vfat -> fat32, updated minimal 2021-06-10 20:40:28 +02:00
Anton Hvornum 4e9b1c1635 Renamed vfat -> fat32 for the purpose of consistency. Most actions are referring to fat32, it's only mkfs that has the notion vfat and then -F32 for format 32. And I think vfat confuses more people than it does good, so sticking with fat32 which works better with parted as well. Also added the partitioning logic, started on the mounting logic 2021-06-10 20:38:35 +02:00
Anton Hvornum 4691bad46b Added wipe support to layout definitions. Also changed default start positions of partitions to 1MiB in. 2021-06-10 19:29:10 +02:00
Dylan M. Taylor 2eec8ffd6c
Clarify driver recommendations (#572) 2021-06-10 15:43:50 +02:00
Anton Hvornum 857b5c0c3e Skipping bootloader selection if --bootloader was given. 2021-06-10 15:30:58 +02:00
Anton Hvornum 0946b73095 Merging in latest changes from master. 2021-06-10 15:27:02 +02:00
Yash Tripathi fcd0acfef2
added --dry-run flag (#570)
* added --dry-run flag
2021-06-10 15:06:15 +02:00
Dylan M. Taylor 3023e57033
Add a message when running check_mirror_reachable to let users know it is not frozen. 2021-06-10 07:44:23 -04:00
Anton Hvornum e8d38ea1a7 Started working on partitioning logic from declarative layouts. 2021-06-10 13:39:50 +02:00
Anton Hvornum 14d0685edc
Merge pull request #552 from l4zy0n3/patch-1
added support for optionally seperating credentials from config
2021-06-10 13:34:59 +02:00
Anton Hvornum 67b1a9395f
Merge pull request #551 from m1ten/patch-1
adds python-sphinx in make dependency and manual
2021-06-10 13:32:39 +02:00
Anton Hvornum 5ae3d11ab2
Merge pull request #537 from archlinux/torxed-fix-517
Introduces the use of HTTP mirrors additionally
2021-06-10 13:31:27 +02:00
Anton Hvornum dc10725bf9
Merge pull request #538 from archlinux/torxed-fix-536
Attempt to fix issue regarding broken output
2021-06-10 13:27:48 +02:00
Anton Hvornum 4668ea235c
Merge pull request #568 from dylanmtaylor/patch-1
Only run publish_pypi when a tag is created on the master branch
2021-06-10 13:20:26 +02:00
Dylan M. Taylor e5e818a52a
Only run publish_pypi when a tag is created on the master branch 2021-06-10 07:14:51 -04:00
Anton Hvornum d3dddcf425
Merge pull request #565 from dylanmtaylor/patch-1
Exit codes are an 8 bit value and could be 0 through 255
2021-06-10 12:54:33 +02:00
Dylan M. Taylor 0563d307e8
Exit codes are an 8 bit value and could be 0 through 255
We also don't need to check the exit code - this message should just be displayed if we are not root
2021-06-10 06:53:05 -04:00
Anton Hvornum 14aeb3b177
Merge pull request #562 from dylanmtaylor/hide-requires-root-if-root
Only print requires root messages if effective user id is not root
2021-06-10 11:53:43 +02:00
Anton Hvornum 4572a41159
Merge pull request #559 from dylanmtaylor/patch-1
Proposal: Split Nvidia so that there are two options for it
2021-06-10 10:02:56 +02:00
Anton Hvornum 50d378c676
Merge pull request #548 from dylanmtaylor/umount-before-mklabel
Try to solve issue with mklabel while partitions are mounted.
2021-06-10 09:59:47 +02:00
Anton Hvornum adcd07930d
Merge pull request #561 from dylanmtaylor/port-workspaces-gitlab-ci
Initial port of GitHub Actions to GitLab CI/CD
2021-06-10 09:57:34 +02:00
Dylan Taylor a8dda07169 Only print requires root messages if effective user id is not root 2021-06-09 23:37:35 -04:00
Dylan Taylor 35b9cf43af Initial port of GitHub workspaces to GitLab CI/CD 2021-06-09 22:42:22 -04:00
Dylan M. Taylor 65407b4054 Try to unmount devices before attempting to run mklabel 2021-06-09 19:28:09 -04:00
Dylan M. Taylor fe76c517e0 Split Nvidia so that there are two options for it
This makes selecting an Nvidia driver simpler and makes it apparent that we support both open-source and proprietary from the initial selection.
2021-06-09 19:27:41 -04:00
Anton Hvornum 3909333ae3
Merge pull request #558 from JakobDev/cutefish
Add Cutefish profile
2021-06-09 21:02:08 +02:00
Anton Hvornum 26c522969f
Linter hates on us if there's no comma at the end 2021-06-09 20:53:23 +02:00
JakobDev 53c2452098
Remove cutefish from desktop.py 2021-06-09 18:04:36 +02:00
JakobDev 3059fa6953
Use group instead of package list 2021-06-07 16:42:38 +02:00
JakobDev 17bf73ee82
Add noto-fonts to package list 2021-06-07 14:42:06 +02:00
JakobDev e26a007ad9
Add Cutefish profile 2021-06-07 14:07:38 +02:00
Anton Hvornum 5701ef9539 Started working on the load_layout function 2021-06-07 12:40:24 +02:00
Anton Hvornum 1a25470025
Merge pull request #555 from m1ten/patch-3
version bump v2.3.0.dev0
2021-06-07 08:23:10 +02:00
m1ten 453ff15371
version bump v2.3.0.dev0 2021-06-06 17:05:15 -07:00
Anton Hvornum 25e835ce3e Removed the bulk of disk-operations from guided, and will move the logic into the Filesystem() class instead. 2021-06-06 17:35:44 +02:00
m1ten b8631f6bb6
Remove source check (not required) 2021-06-06 11:16:17 -04:00
Anton Hvornum 0552d040ac Added a json.dumps() helper that wraps JSON cls. Also tweaked the logic for the size creation so that they don't overlap 2021-06-06 17:13:42 +02:00
Anton Hvornum ce4b1fbcff Added sorting logic for BlockDevice. Also swapped sys_command() to SysCommand() and refined the logic around those calls. 2021-06-06 16:19:53 +02:00
Anton Hvornum f9774af2cc As of Python 3.6 and 3.7, dictionaries are ordered by insertion by default. We there for no longer need to use OrderedDict for our dictionaries where this logic is required. 2021-06-06 15:31:51 +02:00
Yash Tripathi 9bec42ad08
updated creds help 2021-06-06 08:41:37 +05:30
Yash Tripathi 158dbbf8f1
changed block location 2021-06-06 08:35:26 +05:30
Yash Tripathi 419b058b6f
added support for seperating credentials from config 2021-06-06 08:18:34 +05:30
m1ten f541df4e7b
updated makedepends and added manual 2021-06-05 13:11:57 -04:00
Anton Hvornum 71b6efab69 Merge branch 'master' of github.com:archlinux/archinstall into torxed-rework-partitioning 2021-06-04 15:08:04 +02:00
Anton Hvornum 7d60287a3d Merged in changes from master 2021-06-04 15:07:42 +02:00
Anton Hvornum a4033a7d3a
Merge pull request #546 from dylanmtaylor/patch-1
Attempt to avoid crashing when encountering swap partitions in has_content
2021-06-03 14:27:39 +02:00
Dylan M. Taylor f1503349da
Attempt to avoid crashing when encountering swap partitions in has_content() 2021-06-03 08:25:36 -04:00
Anton Hvornum 7b4564c0fc
Merge pull request #542 from dylanmtaylor/bootloader-directory-creation
Add some safeguards to create directories before writing files
2021-06-03 13:52:29 +02:00
Dylan Taylor dcf178c7e8 Add some safeguards to create directories before writing files 2021-06-03 07:20:16 -04:00
Anton Hvornum 2731f82d0f
Merge pull request #539 from archlinux/torxed-improve-logging
Adding --debug and other log enhancements
2021-06-03 10:32:09 +02:00
Anton Hvornum f85f99dd40
Merge pull request #543 from dylanmtaylor/hardware-detection
Add additional hardware debugging functions
2021-06-03 10:31:44 +02:00
Dylan Taylor 3e505d4321 Clean up graphics driver output 2021-06-02 21:43:46 -04:00
Dylan Taylor 118cc17eb2 Fix my Quadro T1000 not being detected 2021-06-02 21:26:24 -04:00
Dylan Taylor 5f4a24d5cc Add graphics device listing 2021-06-02 21:23:56 -04:00
Dylan Taylor e90b17ca1c Add hardware logging to beginning of installation 2021-06-02 21:17:54 -04:00
Dylan Taylor c851a38a9e Add additional hardware functions 2021-06-02 21:00:42 -04:00
Anton Hvornum abcf3ea88a Wrong variable name 2021-06-02 23:53:13 +02:00
Anton Hvornum bedc5cd132
Merge pull request #540 from dylanmtaylor/description
Add a description to top-level profile listing
2021-06-02 22:59:31 +02:00
Dylan Taylor 81269b972c Remove line explaining desktop profile 2021-06-02 16:56:39 -04:00
Dylan Taylor f88da81645 Add description to profile listing 2021-06-02 16:52:26 -04:00
Anton Hvornum 6a0f6b161c Adding more granular debugging 2021-06-02 21:31:28 +02:00
Anton Hvornum 8bbc26ca59 Attempt to fix issue regarding broken output
Since pacman and some other commands these days write multiple lines and goes back and fourth, it's not reliable to say the "peaked" line is a single line. And if it's not, it will make the output look like garbage.

So instead, we'll write any output - as is - and let the command deal with fancy printing.
2021-06-02 00:21:15 +02:00
Anton Hvornum 434ebb3419 Added docstrings 2021-06-02 00:08:45 +02:00
Anton Hvornum 0901723ff4 Windows fix + Sorting based on list
This fix introduces changes so that development can be done (and tested) on other platforms than Linux. This is a convenience fix and shouldn't break anything (simply a few Linux-specific imports that have moved into the functions where they are used).

This commit also introduces sorting based on a list of priorities (where the default will be last if not matched).
2021-06-01 23:56:15 +02:00
Anton Hvornum 7b0863f289 Added a tribute logo
Used in discord and other social gatherings.
2021-06-01 22:24:26 +02:00
Anton Hvornum 32dce85257 Introduces HTTP mirror selection 2021-06-01 20:11:25 +02:00
Anton Hvornum 615d0d38dd
Merge pull request #535 from dylanmtaylor/patch-4
Remove comment that no longer applies
2021-06-01 07:32:32 +02:00
Dylan M. Taylor ec2b00c117
Remove comment that no longer applies 2021-05-31 19:45:49 -04:00
Anton Hvornum fca6eba86c Removed Libera chat challenge as per request 2021-05-31 12:49:45 +02:00
Anton Hvornum a67677cb2d
Merge pull request #531 from Kibouo/master
Fix typo in error msg
2021-05-31 12:47:16 +02:00
Anton Hvornum 17c65a0abb
PR #534: Fixes hardcoded kernels in boot config for systemd
Fixing hardcoded kernel in boot-config
2021-05-31 12:45:15 +02:00
Anton Hvornum 62c22f78b1 Moved return logic to not abort the iteration of kernels. 2021-05-31 12:26:49 +02:00
Anton Hvornum 7b1bb4af97 Fixed a plugin issue where there are no plugins found. 2021-05-31 12:17:18 +02:00
Anton Hvornum 3006e5b4c3 Creating multiple boot configs, based on the selected kernels. Not 100% sure both initramfs and vmlinuz will have the trailing definitions, but made both {kernel} 2021-05-31 11:15:01 +02:00
Anton Hvornum baca0cc514 Creating PR 2021-05-31 10:09:03 +02:00
Csonka Mihaly f60cd10afb Fix typo in error msg 2021-05-30 17:37:44 +02:00
Anton Hvornum 630045f4a6
Added Libera information 2021-05-29 11:43:35 +02:00
Anton Hvornum 200dfd5711
Merge pull request #529 from dylanmtaylor/patch-1
Make this template usable to users of more platforms
2021-05-28 20:22:06 +02:00
Dylan M. Taylor 5729b0bb4d
Make this template usable to users of more platforms
In case someone is trying to edit this as a template, this will work for more people.
2021-05-28 13:52:01 -04:00
Anton Hvornum 7a40f1dc0b
Merge pull request #393 from archlinux/torxed-plugins
Adding in plugin support and on_<event> calls in installation.
2021-05-28 09:30:56 +02:00
Anton Hvornum e993590f5f
Pulled in latest master changes 2021-05-28 09:30:35 +02:00
Anton Hvornum a89f87c145
Update __version__ to become a dev-version again
To avoid accidental pypi snafu's
2021-05-28 09:03:10 +02:00
Anton Hvornum 595bd657c6
Merge pull request #526 from dylanmtaylor/export-configuration
Write user configuration JSON to a file in logs directory
2021-05-28 08:48:26 +02:00
Anton Hvornum 59bb9262e6
Merge pull request #521 from l4zy0n3/patch-1
Updated custom-command-sample.json with newly added keys
2021-05-28 08:42:48 +02:00
Dylan M. Taylor 8d7045b64c
Merge pull request #6 from l4zy0n3/patch-2
added support for setting mirror-region to a dict or a string in config
2021-05-27 23:24:26 -04:00
Yash Tripathi 3aee3611c4
added support for setting profile to a dict or a string in config 2021-05-28 08:50:27 +05:30
Yash Tripathi c3c55f5992
added support for setting mirror-region to a dict or a string in config 2021-05-28 08:44:28 +05:30
Dylan M. Taylor 04e58f98fa
Needed to set file mode to write. 2021-05-27 22:50:38 -04:00
Dylan Taylor eb8f459525 Write user configuration JSON to a file in logs directory 2021-05-27 22:24:09 -04:00
Anton Hvornum 4bb644bf5b
Merge pull request #523 from dylanmtaylor/patch-1
Update version for 2.2.0 final release
2021-05-27 21:08:00 +02:00
Dylan M. Taylor 5b1f30383b
Update version for 2.2.0 final 2021-05-27 14:42:24 -04:00
Anton Hvornum 5a33ecf875
Merge pull request #522 from dylanmtaylor/fix-vm-detection-func
Fix is_vm detection on real hardware
2021-05-27 20:19:38 +02:00
Dylan Taylor 8ddb9153c7 Fix is_vm detection on real hardware 2021-05-27 14:15:27 -04:00
Yash Tripathi fd4b2c97fb
Update custom-command-sample.json 2021-05-27 21:29:14 +05:30
Anton Hvornum f4bb884625
Merge pull request #520 from dylanmtaylor/descriptions
Add descriptions for top-level profiles
2021-05-27 17:43:01 +02:00
Dylan M. Taylor 26a33000d8 Add descriptions for top-level profiles 2021-05-27 08:11:27 -04:00
Anton Hvornum e6e2783b40
Merge pull request #519 from dylanmtaylor/patch-2
Change ordering of example profiles
2021-05-27 13:50:32 +02:00
Dylan M. Taylor 712d299627
Change ordering of example profiles 2021-05-27 05:34:28 -04:00
Anton Hvornum 6e6afcaa39
Merge pull request #518 from advaithm/patch-1
Make it more clear what the desktop profile does
2021-05-27 10:18:07 +02:00
nullrequest 544eccaada
made it more clear
using Redecorating's suggestion in the discord
2021-05-27 10:13:23 +05:30
nullrequest c3b703bc2a
Make it more clear what the desktop profile does 2021-05-27 09:34:55 +05:30
Anton Hvornum 3bf12ffe1e
Merge pull request #516 from l4zy0n3/master
Incorporated some suggestions, some keys added in help table for config
2021-05-26 18:53:06 +02:00
Yash Tripathi 6e7cb20348 grammar fixes and json update 2021-05-26 20:27:50 +05:30
Yash Tripathi 94b73b6067 Added new keys in table 2021-05-26 20:19:56 +05:30
Anton Hvornum 4590292507
Removed EFI warning from doc index
https://archinstall.readthedocs.io/en/latest/
2021-05-25 18:43:35 +02:00
Anton Hvornum 6cd9c86691
Changed FreeNode -> LiberaChat for IRC 2021-05-25 12:45:08 +02:00
Anton Hvornum a8e0d3a130
Merge pull request #513 from l4zy0n3/remove-builtins
Removed builtins and added gfx_package key in config file
2021-05-24 20:37:41 +02:00
Anton Hvornum 324413cd47
Merge pull request #514 from dylanmtaylor/patch-1
The fixup vars commit made this optional param no longer correct
2021-05-24 20:37:31 +02:00
Dylan M. Taylor be6021b41f
The fixup vars commit made this optional param no longer correct 2021-05-24 14:00:57 -04:00
Yash Tripathi 2aed8c6ad5 removed builtins usage and added gfx_package key in config 2021-05-24 22:12:25 +05:30
Anton Hvornum 94bceb2199 Adding support for --plugin=<plugin path> 2021-05-24 15:29:59 +02:00
Anton Hvornum 7b1096bfa6 Added a number of on_<event> hooks for different stages of the installation. 2021-05-24 14:59:34 +02:00
Anton Hvornum 0d0dfc8ebe Added/moved comments. 2021-05-24 14:40:21 +02:00
Anton Hvornum 1773efbe45 Pleasing the linter gods 2021-05-24 14:37:31 +02:00
Anton Hvornum e604f2c676 Added optional version handling. And improved error handling a bit. 2021-05-24 14:36:24 +02:00
Anton Hvornum 2b5ad7e52e Added a comment 2021-05-24 14:13:45 +02:00
Anton Hvornum 250eb93f10 Added better error handling. 2021-05-24 14:12:23 +02:00
Anton Hvornum c7426067dd Implemented load_plugin() which handles local or remote paths. Also added some error handling surrounding the loading of plugins. 2021-05-24 13:56:57 +02:00
Anton Hvornum 1fff9b44d1 Spelling error 2021-05-24 13:42:28 +02:00
Anton Hvornum 14577415f3 Spelling error 2021-05-24 13:42:09 +02:00
Anton Hvornum 6f3a358422 Added a comment 2021-05-24 13:38:54 +02:00
Anton Hvornum 29dcd5f2d0 Pleasing the linter gods 2021-05-24 13:38:17 +02:00
Anton Hvornum fcbb5490c0 Removed empty whitespace 2021-05-24 13:38:01 +02:00
Anton Hvornum bad4d8a38b Added redundant argument creation. 2021-05-24 13:37:33 +02:00
Anton Hvornum 2ee88e0e3a Switched plugin strategty. Now uses built-in entrypoints to source and load the plugins. This is the default method provided by Python, and is the cleanest so far I think. 2021-05-24 13:34:56 +02:00
Anton Hvornum 9b0de26c67 Syncing in latest changes from master 2021-05-24 12:34:32 +02:00
Anton Hvornum 515cd4daf0 Merged in latest changes from master 2021-05-24 12:29:43 +02:00
Anton Hvornum 7daaf1143f Fixes #489 2021-05-23 14:18:49 +02:00
Anton Hvornum 84ee318521
Merge pull request #508 from dylanmtaylor/patch-1
Proposal: use iso-build for releases
2021-05-23 12:48:52 +02:00
Anton Hvornum 1c9adbbedf Made sure NTP matches the default value when 'skipped'. 2021-05-23 11:41:55 +02:00
Anton Hvornum 43792cd7f3 Spelling error 2021-05-23 11:37:51 +02:00
Anton Hvornum 46debf5e5d
Merge pull request #501 from l4zy0n3/add-config-readme
Add config readme
2021-05-23 10:58:07 +02:00
Anton Hvornum 0b3e822795 Merge branch 'master' of github.com:archlinux/archinstall 2021-05-23 10:32:43 +02:00
Anton Hvornum 9fa9520ac9 Version bump for tagging. 2021-05-23 10:32:40 +02:00
Anton Hvornum dc10d5232c
Merge pull request #509 from l4zy0n3/fixup-vars
Fixup vars
2021-05-23 10:25:39 +02:00
Yash Tripathi 1d04acb603
added pulling sys-language and sys-encoding from config 2021-05-23 13:33:48 +05:30
Yash Tripathi 87955e0ba6
fixed pulling mirror-region from config 2021-05-23 11:56:19 +05:30
Yash Tripathi 194d45ad2d
removed debug code 2021-05-23 11:52:52 +05:30
Yash Tripathi 9be8a3a998
updated mirror-region config key to use value directly 2021-05-23 11:52:21 +05:30
Yash Tripathi 48f1e62427 bringing back the old method for parsing extra args as config values 2021-05-23 11:38:53 +05:30
Yash Tripathi 4a691b6dbf Merge branch 'archlinux:master' into master 2021-05-23 10:54:06 +05:30
Dylan M. Taylor 35578a0d3a
Proposal: use iso-build for releases 2021-05-22 17:02:12 -04:00
Anton Hvornum 86b415e25c
Merge pull request #507 from archlinux/torxed-fix-382
Re-worked the select_profile() user interaction.
2021-05-22 21:04:50 +02:00
Anton Hvornum 9ce4370fc7 Fix issue from language selection. 2021-05-22 21:00:59 +02:00
Anton Hvornum a9efdac615 Fix issue from language selection. 2021-05-22 21:00:11 +02:00
Anton Hvornum 1bc218b2e1 Forgot an important import. 2021-05-22 20:57:36 +02:00
Anton Hvornum 662ffb05b2 Fixes docstrings. 2021-05-22 20:51:59 +02:00
Anton Hvornum 1552cc8277 Re-worked the select_profile() user interaction. It no longer takes options as a parameter, instead it sources the profiles available, prints a curated list but allows for any input that is a valid profile. 2021-05-22 20:50:02 +02:00
Anton Hvornum 78369269a0
Merge pull request #506 from archlinux/torxed-fix-227
Added in the option to select system locale if --advance is given
2021-05-22 20:41:35 +02:00
Anton Hvornum d7e23c847f Added in the option to select system locale if --advance is given to guided, as it does potentially cause issues in the installation if not configured properly 2021-05-22 20:40:20 +02:00
Yash Tripathi 1d984625c8 Merge branch 'archlinux:master' into master 2021-05-23 00:09:32 +05:30
Anton Hvornum 35974e6624
Merge pull request #505 from archlinux/torxed-fix-297
Introduces a NTP option in guided
2021-05-22 20:14:09 +02:00
Anton Hvornum d0a37843aa Rephrased according to @dylan's suggestions. 2021-05-22 20:13:59 +02:00
Anton Hvornum 1e53f4a65f Made NTP question only on timezone for now. 2021-05-22 20:10:30 +02:00
Anton Hvornum e3a629a6ff Added a information that ntp might require some additional tinkering to work perfectly. 2021-05-22 20:07:15 +02:00
Anton Hvornum b45efe0983 Adding a NTP option to syncronize time. 2021-05-22 20:04:55 +02:00
Anton Hvornum 93bc0ebd0f
Merge pull request #504 from archlinux/torxed-fix-497
Fixing newlines not being placed correctly on SysCommand()
2021-05-22 19:59:27 +02:00
Anton Hvornum f2e7b1440a Since SysCommand() wraps SysCommandWorker(), but SysCommand() doesn't use contexts, we have to flush the output manually here to avoid newlines not being before the next output. 2021-05-22 19:58:40 +02:00
Anton Hvornum e5c8a18752
Merge pull request #503 from archlinux/torxed-fix-116
Added in a are-we-root check at the top of guided.
2021-05-22 19:39:03 +02:00
Anton Hvornum f789a96348 Added in a are-we-root check at the top of guided. 2021-05-22 19:35:57 +02:00
Anton Hvornum 845ea481aa
Merge pull request #502 from advaithm/bootload-fix
fixed bootloader flag not being set
2021-05-22 14:52:24 +02:00
advaithm 439abc4402
fixed bootloader flag not being set 2021-05-22 18:18:05 +05:30
Anton Hvornum 7722ac69a3
Merge pull request #500 from dylanmtaylor/patch-1
Simplify the commands in the readme
2021-05-22 14:22:15 +02:00
Yash Tripathi 2ab415a9e8 added description for installing from config 2021-05-22 03:01:35 +05:30
Dylan M. Taylor dd0cfa990a
Simplify the commands in the readme
Typing 'python -m' is largely unnecessary on the ISO with the package installed.
2021-05-21 16:43:43 -04:00
Yash Tripathi d718da243f Merge branch 'archlinux:master' into add-config-readme 2021-05-22 01:41:54 +05:30
Yash Tripathi 9a9d385d8c Merge branch 'archlinux:master' into master 2021-05-22 01:41:47 +05:30
Anton Hvornum e4c471b631
Merge pull request #498 from dylanmtaylor/services
Add ability to provide an array of services to enable in config file
2021-05-21 18:46:06 +02:00
Dylan Taylor ebf5980943 Add ability to provide an array of services to enable in config file 2021-05-21 09:00:32 -04:00
Yash Tripathi e01e8a42de Merge branch 'archlinux:master' into master 2021-05-21 16:38:22 +05:30
Anton Hvornum f9ec8f2a27 Merging in latest changes from master and resolved conflicts. 2021-05-21 09:56:42 +02:00
Anton Hvornum 54a693be4f
Merge pull request #495 from dylanmtaylor/patch-1
Add ArchInstall user-agent to mirror requests
2021-05-21 09:29:50 +02:00
Anton Hvornum 60cdb2ab87
Merge pull request #485 from dylanmtaylor/post-installation-scripts
Implement post-installation commands
2021-05-21 09:29:04 +02:00
Yash Tripathi 7fefd55a0c fallback added for when profile is null/empty 2021-05-20 18:59:22 -04:00
Dylan Taylor bc58ec047d Re-add profile import 2021-05-20 18:39:36 -04:00
Yash Tripathi cba7dae8f0 fixed creating profile object if profile is passed in vars 2021-05-20 18:38:19 -04:00
Yash Tripathi 23d223b15c
fixed creating profile object if profile is passed in vars 2021-05-21 04:00:09 +05:30
Yash Tripathi c834bc5eb9 Merge branch 'archlinux:master' into master 2021-05-21 03:55:30 +05:30
Dylan M. Taylor ac2b1084e8
Add ArchInstall user-agent to mirror requests 2021-05-20 18:00:44 -04:00
Dylan Taylor e6befe53c7 Use {installation.target} in custom commands handler 2021-05-20 17:55:40 -04:00
Anton Hvornum 9bb940a8f5
Merge pull request #494 from JakobDev/filtermirrorpy
Use pure Python code in filter_mirrors_by_region
2021-05-20 23:35:36 +02:00
Dylan Taylor 5652ba20ae Extract custom-commands function into general.py 2021-05-20 17:12:41 -04:00
Yash Tripathi 33f1957e4d fallback added for when profile is null/empty 2021-05-20 20:48:50 +00:00
JakobDev c63fdf0148
Use pure Python code in filter_mirrors_by_region 2021-05-20 22:40:27 +02:00
Dylan Taylor 11c9632322 Clean up temp files after they are run 2021-05-20 16:13:16 -04:00
Yash Tripathi 028b2b938a Merge branch 'archlinux:master' into master 2021-05-21 01:34:38 +05:30
Dylan Taylor 5d6935f9f2 Add logging of execution output 2021-05-20 15:32:15 -04:00
Anton Hvornum 4e0a3f1559
Merge pull request #493 from SecondThundeR/SecondThundeR-patch-1
Change position of linter badge
2021-05-20 21:27:53 +02:00
Dylan Taylor 7811e01a90 Switch back to arch-chroot
This reverts commit 27fa511914.
2021-05-20 15:07:58 -04:00
Владислав 7614166ed3
Change position of linter badge 2021-05-20 22:07:57 +03:00
Dylan M. Taylor c39fc34eab Use temporary script files
Path will be different inside of target env.
2021-05-20 14:19:09 -04:00
Anton Hvornum cf3e47aa44
Swapped the instance sent to Boot() 2021-05-20 16:17:04 +02:00
Yash Tripathi 73e3b99f72 changed "desktop" to "profile" while loading config 2021-05-20 08:44:33 -04:00
Yash Tripathi 4d3595ecfc
changed "desktop" to "profile" while loading config 2021-05-20 18:11:22 +05:30
Dylan Taylor 5fe3a77aed Update configuration script to work with changes 2021-05-20 08:41:18 -04:00
Dylan Taylor 9c8d55dd76 Merge branch 'master' into post-installation-scripts 2021-05-20 08:13:57 -04:00
Yash Tripathi 86fd64ef8a
fixed desktop install from config 2021-05-20 13:22:58 +05:30
Anton Hvornum c2f3b9e208
Merge pull request #488 from SimonPe/patch-1
look for default profiles in correct location
2021-05-20 09:13:58 +02:00
Anton Hvornum c0458cf641
Merge pull request #484 from dylanmtaylor/patch-1
Have the configuration file request identify itself as coming from ArchInstall
2021-05-20 09:12:06 +02:00
Anton Hvornum a39cb41159
Merge pull request #475 from dylanmtaylor/patch-2
Add CI status badge to README
2021-05-20 09:09:28 +02:00
Anton Hvornum 0544274233
Update README.md 2021-05-20 09:08:58 +02:00
Anton Hvornum 71ab52178c
Merge pull request #481 from dylanmtaylor/minor-formatting-cleanup
Some very minor cleanup
2021-05-20 08:07:02 +02:00
Dylan M. Taylor f137bc4076 Modify custom profile example to try to get it working 2021-05-19 23:12:54 -04:00
Yash Tripathi 7a98ccb9aa Update guided.py 2021-05-19 22:43:27 -04:00
Dylan Taylor 27fa511914 Try to use the new systemd-nspawn code paths 2021-05-19 22:43:27 -04:00
Dylan M. Taylor c03da01412 Run custom commands within bash session 2021-05-19 22:09:27 -04:00
Dylan M. Taylor 592c173767 Iterate over custom-command array 2021-05-19 22:09:27 -04:00
Dylan M. Taylor 7775d877d8 Provide sample configuration file showing how one would use commands 2021-05-19 22:09:27 -04:00
Simon Peeters 8fc236ac77
look for default profiles in correct location
The default `profiles` directory is a sibling of the `lib` directory, not of `storage.py` itself.
2021-05-20 03:00:57 +02:00
Dylan M. Taylor 5b0f918d1b
Have the configuration file request identify itself as coming from ArchInstall
This is necessary to allow proper filtering of these requests server-side, and some services block urllib requests (known issue with Cloudflare).
2021-05-19 18:16:28 -04:00
Dylan Taylor 434ed8f67f Point out that a URL can be used as well in README 2021-05-19 17:24:51 -04:00
Dylan Taylor 29ee237d80 Fix configuration sample link 2021-05-19 17:22:32 -04:00
Dylan Taylor b94fee2242 very minor whitespace fixes 2021-05-19 17:20:46 -04:00
Anton Hvornum 182babf33a
Merge pull request #482 from dylanmtaylor/feature-config-url
Added support for getting configuration from a URL
2021-05-19 23:14:30 +02:00
Dylan Taylor c1cd845d07 Added support for getting configuration from a URL 2021-05-19 17:06:42 -04:00
Yash Tripathi bbb4599165
Added support for getting configuration from a config file (#364)
* added support for ingesting config

* fixed condition to check key in dictionary

* Removed redundant code, profile and desktop keys are now optional

* Added base-config.json and support for pulling credentials from .env

* added base config file and env file for users credentials

* added silent install switch

* added python-dotenv as a dependency

* Updated Readme to include argparse changes as well as config ingestion

* Updated Readme to include argparse changes as well as config ingestion

* fixed typo in pyproject.toml

* Replaced the magic __builtin__ global variable. This should fix mypy complaints while still retaining the same functionality, kinda. It's less automatic but it's also less of dark magic, which makes sense for anyone but me.

* Fixes string index error.

* Quotation error.

* fixed initializing --script argument

* added python-dotenv as a dependency

* Installation can't be silent if config is not passed

* fixed silent install help

* fixed condition for ask_user_questions

* reverted to creating profile object properly

* Cleaned up and incorporated suggestions

* added Profile import

* added condition if Profile is null

* fixed condition

* updated parsing vars from argparse

* removed loading users from .env

* Reworking SysCommand & Moving to localectl for locale related activities (#4)

* Moving to `localectl` rather than local file manipulation *(both for listing locales and setting them)*.
* Swapped `loadkeys` for localectl.
* Renamed `main` to `maim` in awesome profile.
* Created `archinstall.Boot(<installation>)` which spawns a `systemd-nspawn` container against the installation target.
* Exposing systemd.py's internals to archinstall global scope.
* Re-worked `SysCommand` completely, it's now a wrapper for `SysCommandWorker` which supports interacting with the process in a different way. `SysCommand` should behave just like the old one, for backwards compatibility reasons. This fixes #68 and #69.
* `SysCommand()` now has a `.decode()` function that defaults to `UTF-8`.
* Adding back peak_output=True to pacstrap.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Dylan Taylor <dylan@dylanmtaylor.com>

Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>

* fixed indent

* removed redundant import

* removed duplicate import

* removed duplicate import

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com>
2021-05-19 21:31:58 +02:00
Anton Hvornum 49e6cbdc54
Reworking SysCommand & Moving to localectl for locale related activities
* Moving to `localectl` rather than local file manipulation *(both for listing locales and setting them)*.
* Swapped `loadkeys` for localectl.
* Renamed `main` to `maim` in awesome profile.
* Created `archinstall.Boot(<installation>)` which spawns a `systemd-nspawn` container against the installation target.
* Exposing systemd.py's internals to archinstall global scope.
* Re-worked `SysCommand` completely, it's now a wrapper for `SysCommandWorker` which supports interacting with the process in a different way. `SysCommand` should behave just like the old one, for backwards compatibility reasons. This fixes #68 and #69.
* `SysCommand()` now has a `.decode()` function that defaults to `UTF-8`.
* Adding back peak_output=True to pacstrap.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Dylan Taylor <dylan@dylanmtaylor.com>
2021-05-19 16:45:13 +02:00
Dylan M. Taylor 8acd6e4ad2
Add CI status badge to README 2021-05-18 14:59:36 -04:00
Anton Hvornum 52960bd686
Merge pull request #473 from dylanmtaylor/patch-1
Reword another part of README.md
2021-05-18 13:53:43 +00:00
Dylan M. Taylor a0c627eae5
Reword another part of README.md
It just felt strange reading it the way it was written before. This feels more correct
2021-05-18 09:46:24 -04:00
Anton Hvornum e1c5818579
Merge pull request #472 from dylanmtaylor/proofreading
Proofreading: Fix misc. spelling and grammar issues
2021-05-18 13:39:57 +00:00
Dylan Taylor da0da729c5 Proofreading: Fix misc. spelling and grammar issues 2021-05-18 09:36:22 -04:00
Anton Hvornum 9bf71da867
Merge pull request #471 from dylanmtaylor/patch-5
Remove unreachable code
2021-05-18 12:34:40 +00:00
Dylan M. Taylor 596c068f9d
Remove unreachable code 2021-05-18 08:32:30 -04:00
Anton Hvornum 92a04819b2
Merge pull request #470 from dylanmtaylor/patch-4
Remove PermissionError since it shadows the built-in of the same name
2021-05-18 12:31:46 +00:00
Dylan M. Taylor c14ee42bff
Remove PermissionError since it shadows the built-in of the same name 2021-05-18 08:27:59 -04:00
Anton Hvornum f56bfd5ab8
Merge pull request #468 from dylanmtaylor/patch-3
Add missing urllib.error import
2021-05-18 07:25:21 +00:00
Anton Hvornum 5b3e1076ae
Merge pull request #469 from archlinux/torxed-fix-467
Incorrect variable names being used from copy paste.
2021-05-18 07:24:24 +00:00
Anton Hvornum fb8bb98b83 Incorrect variable names being used from copy paste. 2021-05-18 09:21:18 +02:00
Dylan M. Taylor 9cae2374a8 Add missing urllib.error import
Fixes an unresolved reference
Add missing urllib.error import
2021-05-17 21:55:48 -04:00
Anton Hvornum d0bc166e7e
Compliment to #461 and #459: is_vm() also outputted 'kvm'. This should fix that. 2021-05-18 00:28:59 +02:00
Anton Hvornum ba939188cf
Merge pull request #461 from archlinux/torxed-fix-459
Unlink existing ucodes when strapping them in.
2021-05-17 22:22:14 +00:00
Anton Hvornum e0561641f6
Converted from subprocess.check_output() to SysCommand() to hide cpu_vendor() output. 2021-05-18 00:21:48 +02:00
Anton Hvornum e23fffe288 Reverted 2afc317. Using Path().unlink() instead on ucode if they exist. 2021-05-17 21:59:42 +02:00
Anton Hvornum 2afc31715e
Adding a pacman --overwrite declaration for ucodes. 2021-05-17 21:27:31 +02:00
Anton Hvornum 4755de7319
Merge PR #458: Pavucontrol to XCFE
Add pavucontrol to XFCE profile
2021-05-17 07:13:10 +00:00
Dylan M. Taylor beb709792a
Add pavucontrol to XFCE profile
Adjusting volume doesn't work correctly without this - audio mixer shortcut is broken.
2021-05-16 16:36:23 -04:00
Anton Hvornum b1c434c19e
Merge pull request #455 from dylanmtaylor/patch-3
Correct README (closes #421)
2021-05-16 14:11:19 +00:00
Anton Hvornum a7cff4b8b0
Merge pull request #454 from dylanmtaylor/patch-2
Change LXQt back to SDDM per NullRequest's suggestion
2021-05-16 14:10:56 +00:00
Anton Hvornum 9f14f2cc53
Merge pull request #456 from dylanmtaylor/patch-4
Add mirror reachability check
2021-05-16 14:02:49 +00:00
Anton Hvornum 736d9f338d
Merge pull request #453 from dylanmtaylor/patch-1
Delete tts.py
2021-05-16 08:28:33 +00:00
Dylan M. Taylor 22fc18dc46 Add mirror reachability check
Needed error handling
Fix internet connection text not showing up and make it red
2021-05-15 22:53:58 -04:00
Dylan M. Taylor 2693e619c6
Correct README (closes #421)
Or we could switch the example to install awesome. One way or the other, let me know if you want me to change this.
2021-05-15 22:15:43 -04:00
Dylan M. Taylor 3e0fe67ae3
Change LXQt back to SDDM per NullRequest's suggestion
https://github.com/lxqt/lxqt/issues/795
2021-05-15 21:59:17 -04:00
Dylan M. Taylor b3c06092b9
Delete tts.py
This is an empty file, and as far as I can tell it's unused.
2021-05-15 20:18:18 -04:00
Anton Hvornum e3c8692bfa
Merge pull request #451 from dylanmtaylor/formatting2
More formatting fixes and other quality of life improvements
2021-05-15 22:54:22 +00:00
Anton Hvornum 92e8cdae17
Merge pull request #452 from dylanmtaylor/lxqt-lightdm
Switch LXQt to use LightDM to be consistent with other DEs
2021-05-15 21:52:59 +00:00
Dylan Taylor 0ce2ffa4cf Fix some variable shadowing issues 2021-05-15 17:52:12 -04:00
Dylan Taylor 1796bbb918 Perform refactoring to PEP 8 naming conventions 2021-05-15 17:50:28 -04:00
Dylan Taylor 0ac13c0958 Missed a couple of profiles; reformat package lists for these too. 2021-05-15 17:36:38 -04:00
Dylan Taylor 81423330aa Merge branch 'lxqt-lightdm' into formatting2 2021-05-15 17:31:14 -04:00
Dylan Taylor 3ee38afce1 One package per line formatting in profiles - easier to read/maintain 2021-05-15 17:30:20 -04:00
Dylan Taylor c036856a3e Switch LXQt to use LightDM to be consistent with other DEs. 2021-05-15 17:13:19 -04:00
Dylan M. Taylor 0e5b0edd6c
reintroduce this line, seems to be needed for install to work despite being detected as unused 2021-05-15 16:23:11 -04:00
Dylan M. Taylor 720cb9b0b7
Fix missing Optional import 2021-05-15 16:21:02 -04:00
Dylan Taylor 8e86a955ec archinstall/__init__.py changes 2021-05-15 15:43:02 -04:00
Anton Hvornum 2e168790c8
Merge pull request #450 from charlesvdv/master
propagate options when mounting a partition
2021-05-15 19:28:23 +00:00
Dylan Taylor 96a48664e2 Fix mutable default arguments
https://docs.python-guide.org/writing/gotchas/#mutable-default-arguments
2021-05-15 15:24:34 -04:00
Dylan Taylor f7642786c9 Remove some redundant parenthesis 2021-05-15 15:18:46 -04:00
Dylan Taylor 55b09aa1eb Fix E713 test for membership should be 'not in' 2021-05-15 15:14:38 -04:00
Dylan Taylor 4a34b3a9d0 Fix E712 2021-05-15 15:08:50 -04:00
Dylan Taylor 126c7ebfca More formatting fixes to satisfy PEP 8 2021-05-15 15:04:39 -04:00
Anton Hvornum 9daf7ce997
Merge pull request #449 from dylanmtaylor/f-string-fixes
Make some f-string fixes
2021-05-15 19:02:11 +00:00
Dylan Taylor 3b3c1c1d70 Fix E101: mix of spaces and tabs 2021-05-15 14:59:23 -04:00
Charles Vandevoorde d61801011c propagate options when mounting a partition 2021-05-15 20:43:47 +02:00
Dylan Taylor a0cbb31d3e f-string fixes 2021-05-15 14:29:24 -04:00
Anton Hvornum 85fa833a8a
Merge pull request #448 from dylanmtaylor/whitespace
More minor whitespace changes
2021-05-15 18:15:13 +00:00
Dylan Taylor 37484b7423 Split filesystem message into multiple lines 2021-05-15 14:07:13 -04:00
Dylan Taylor 3b20adb7d2 Whitespace changes 2021-05-15 13:59:37 -04:00
Anton Hvornum a75dd6ea3a
Merge pull request #447 from dylanmtaylor/formatting
Very selectively fix some PEP 8 issues and other manual formatting changes
2021-05-15 17:49:58 +00:00
Dylan Taylor 5067aaa260 Change mirror get check as suggested 2021-05-15 13:39:12 -04:00
Dylan Taylor a475852d7a Remove unnecessary parenthesis 2021-05-15 13:37:08 -04:00
Dylan Taylor 8d4c314966 Switch to using level=logging.DEBUG 2021-05-15 13:35:39 -04:00
Dylan Taylor 45d8c1c336 Fix partition -> part suggestion by Torxed 2021-05-15 13:33:30 -04:00
Dylan Taylor 8bc361970b Resolve a few more PEP issues in general.py 2021-05-15 13:29:21 -04:00
Dylan Taylor dd340b9cba Revert "Replace <br> in markdown with new line"
This reverts commit 55931a98fb.
2021-05-15 13:14:54 -04:00
Dylan Taylor 67b4d5d551 fix installer.py inconsistent tabs/spaces error 2021-05-15 13:14:45 -04:00
Dylan Taylor 55931a98fb Replace <br> in markdown with new line 2021-05-15 13:09:30 -04:00
Dylan Taylor 340048db67 Update CONTRIBUTING.md to remove deviations we no longer have. 2021-05-15 13:06:12 -04:00
Dylan Taylor e111dd9bc1 Final whitespace changes I think 2021-05-15 13:04:18 -04:00
Dylan Taylor 8d39ff4a76 Minor whitespace changes to guided.py 2021-05-15 13:02:19 -04:00
Dylan Taylor 254706d57d Add my name to contributors (how was this not done already?) 2021-05-15 13:01:17 -04:00
Dylan Taylor 6057203e5b More formatting fixes 2021-05-15 12:59:38 -04:00
Dylan Taylor e966bef891 general.py formatting 2021-05-15 12:56:14 -04:00
Dylan Taylor 658e5c0411 Cleanup imports and disk.py a bit more 2021-05-15 12:50:01 -04:00
Dylan Taylor b2d20647fc Some additional formatting 2021-05-15 12:46:23 -04:00
Dylan Taylor 69d675f4aa Many more manual changes 2021-05-15 12:29:57 -04:00
Dylan Taylor 8eebc8ade3 Add some ignores so I don't accidentally commit files 2021-05-15 12:17:46 -04:00
Dylan Taylor 5734b6e4a5 Fix f-string is missing placeholders in unattended 2021-05-15 12:13:26 -04:00
Dylan Taylor e950c6af0f Fix f-string is missing placeholders in minimal 2021-05-15 12:12:55 -04:00
Dylan Taylor 14b89e6e25 Fix unused imports in guided 2021-05-15 12:10:32 -04:00
Dylan Taylor 37e818b3d1 More manual fixes 2021-05-15 12:07:46 -04:00
Dylan Taylor d93ef24e8e A couple more small fixes 2021-05-15 11:53:10 -04:00
Dylan Taylor acb754ff2e Try to remove some unused imports 2021-05-15 11:45:36 -04:00
Dylan Taylor f1051d9519 Try to fix issues with docs/conf.py 2021-05-15 11:39:22 -04:00
Dylan Taylor ffd5b5f804 Very selectively fix some PEP 8 issues with profiles 2021-05-15 11:35:18 -04:00
Anton Hvornum 5254ac6220
Merge pull request #446 from dylanmtaylor/patch-9
Prevent mypy from producing errors
2021-05-15 14:49:11 +00:00
Dylan M. Taylor b242455121
Prevent mypy from producing errors 2021-05-15 10:46:14 -04:00
Anton Hvornum dfafed6b14
Merge pull request #444 from dylanmtaylor/patch-7
Bring in some of the good CI changes from #411
2021-05-15 14:17:29 +00:00
Anton Hvornum e4e5e3db2d
Updating __version__ to dev1 for dev release. 2021-05-15 16:14:34 +02:00
Dylan M. Taylor 2d5564a7c2
Further split out pytest; TODO: add tests. 2021-05-15 09:57:10 -04:00
Dylan M. Taylor be94c7d5fe
Split into separate jobs 2021-05-15 09:54:08 -04:00
Dylan M. Taylor d8d700f949
Update .flake8 2021-05-15 09:52:47 -04:00
Dylan M. Taylor a79a582cfb
Create .flake8 2021-05-15 09:49:55 -04:00
Dylan M. Taylor 843cd6cf0f
Update lint-python.yaml 2021-05-15 09:45:50 -04:00
Dylan M. Taylor ad444caf9d
Bring in some of the good CI changes from #411 2021-05-15 09:27:40 -04:00
Anton Hvornum 67659b2b38
Merge pull request #428 from advaithm/mypy-workflow
A example mypy workflow
2021-05-15 12:30:36 +00:00
Anton Hvornum e8d241ec96 Merge branch 'master' of github.com:archlinux/archinstall into mypy-workflow 2021-05-15 14:23:59 +02:00
Anton Hvornum baf857f418
Merge pull request #442 from marcuxyz/fix/gpicview
rename package name
2021-05-15 11:45:18 +00:00
Marcus Pereira 5c6019124a rename package name 2021-05-15 08:29:25 -03:00
Anton Hvornum 631a94c89d
Merge pull request #441 from dylanmtaylor/patch-10
Fix deepin; missing lightdm packages
2021-05-15 09:47:36 +00:00
Anton Hvornum 46e9343806
Merge pull request #440 from dylanmtaylor/enlightenment
Implement enlightenment desktop environment
2021-05-15 09:47:20 +00:00
Anton Hvornum 2ebf92e5fa
Merge branch 'master' into enlightenment 2021-05-15 09:47:05 +00:00
Anton Hvornum 935cdef63f
Merge pull request #439 from dylanmtaylor/patch-9
Add deepin to desktop profile list so it is selectable
2021-05-15 09:39:41 +00:00
Anton Hvornum a2766a7aac
Merge pull request #437 from dylanmtaylor/patch-7
Don't list __init__.py files in profile list
2021-05-15 09:13:12 +00:00
Anton Hvornum 6682e21bc4
Merge pull request #438 from dylanmtaylor/patch-8
Fix microcode not getting added to base_packages before install
2021-05-15 09:12:17 +00:00
Dylan Taylor c27445d134 Implement enlightenment desktop 2021-05-15 00:06:51 -04:00
Dylan M. Taylor b07320aec4
Fix deepin; missing lightdm packages 2021-05-15 00:00:23 -04:00
Dylan M. Taylor ea46693608
Add deepin to desktop profile list so it is selectable 2021-05-14 23:04:26 -04:00
Dylan M. Taylor 60858634f1 Fix microcode not getting added to base_packages before install
Update installer.py
2021-05-14 22:39:54 -04:00
Dylan M. Taylor a0a695b9e5 Fix microcode not getting added to base_packages before install 2021-05-14 22:33:59 -04:00
Dylan M. Taylor bd9992be29
Don't list __init__.py files in profile list 2021-05-14 21:22:30 -04:00
Anton Hvornum 9467a7cd77
Merge pull request #436 from archlinux/torxed-fix-292
Fixes #292: Removed dupe formatter
2021-05-14 20:08:52 +00:00
Anton Hvornum 7f81281f59 Removed dupe formatter
There should be no reason to call `.format()` here, since the steps above take care of all formatting.
2021-05-14 21:29:49 +02:00
Anton Hvornum 0df6eced77 Adding a fallback systemd-boot install if writing variables failed. 2021-05-14 21:09:06 +02:00
Anton Hvornum 71b14ec9fd
Merge pull request #381 from archlinux/torxed-fix-350
Fixes #350. This reverts an old hot-fix to make systemd-boot not wipe out windows boot loader.
2021-05-14 19:07:09 +00:00
Anton Hvornum 4b6a7514c9 Adding in a default timeout to systemd-boot, but only if no other timeout was specified. Also fixes a regression bug with line endings in the loader configuration. 2021-05-14 21:05:18 +02:00
Anton Hvornum 3edb33c439 Merging in dual-boot fix from master. 2021-05-14 20:13:10 +02:00
Anton Hvornum dc48bad941
Merge pull request #434 from archlinux/torxed-fix-formatting
Fixes dual-boot and /boot getting wiped accidentally
2021-05-14 18:11:02 +00:00
Anton Hvornum 2761e675a1 Removed debugging 2021-05-14 19:48:58 +02:00
Anton Hvornum 1abe2c762e Removed targeted /boot formatting. This should be handled and marked earlier in the locig, the partitioning logic should only honor the marked partitions and their status. No need to explicitly format /boot since - if it's meant to be formatted - it should already be marked. 2021-05-14 19:48:39 +02:00
Anton Hvornum 1fd432326b Added debugging 2021-05-14 19:34:01 +02:00
Anton Hvornum 6e898217ee Merge branch 'master' of github.com:archlinux/archinstall into torxed-fix-350 2021-05-14 18:35:40 +02:00
Anton Hvornum d0676dfa3d
Merge pull request #401 from archlinux/torxed-kernel-params
Adding kernel parametrization
2021-05-14 16:18:55 +00:00
Anton Hvornum 16441f11cb Merge branch 'master' of github.com:archlinux/archinstall into torxed-kernel-params 2021-05-14 18:00:27 +02:00
Anton Hvornum da0af2294a
Merge pull request #430 from archlinux/torxed-fix-magic-variables
BC: Replaced the magic __builtin__ global variable for installation
2021-05-14 15:11:38 +00:00
Anton Hvornum 22750cefc8 Quotation error. 2021-05-14 16:55:47 +02:00
Anton Hvornum 1674b7088d Fixes string index error. 2021-05-14 16:13:03 +02:00
Anton Hvornum 12dc55650d Merge branch 'master' of github.com:Torxed/archinstall into torxed-fix-350 2021-05-12 14:45:04 +02:00
Anton Hvornum 4ff35663b8 Replaced the magic __builtin__ global variable. This should fix mypy complaints while still retaining the same functionality, kinda. It's less automatic but it's also less of dark magic, which makes sense for anyone but me. 2021-05-12 13:55:41 +02:00
advaithm ef1d475fd0
Merge github.com:archlinux/archinstall into mypy-workflow 2021-05-12 16:31:24 +05:30
Anton Hvornum df6c4e77f7
Merge pull request #427 from advaithm/mypy
some type hint fixes and a bad catch fix
2021-05-12 10:58:46 +00:00
Anton Hvornum 0ef8cc579e
Merge pull request #422 from arieboven/print_large_list_fix
fix error when there are to many options to print and calculation spaces
2021-05-12 10:58:00 +00:00
advaithm cee1b732b9
an example mypy workflow 2021-05-12 16:11:37 +05:30
advaithm af3d65cc98
removed .vscode 2021-05-12 16:08:49 +05:30
Anton Hvornum a85517513d
Merge pull request #379 from SecondThundeR/multi-select-update
Update generic_multi_select and generic_select
2021-05-12 10:33:57 +00:00
advaithm 69d079e63a
some type hint fixes and a bad catch fix 2021-05-12 15:45:45 +05:30
Anton Hvornum f45f036b65
Merge pull request #420 from satai/master
add dmenu dependency to i3 profile
2021-05-12 07:49:49 +00:00
Anton Hvornum 08121c88a4
Merge pull request #418 from dylanmtaylor/graphics-driver-list
Change graphics driver selection based on #414
2021-05-11 22:24:11 +00:00
Anton Hvornum 129ceaea8b Renamed keyboard-language to keyboard-layout to avoid confusion. Added encryption checks for disk layout selection, if disk encryption password is given - but no partitions were found using encryption, the user will be asked which partitions to encrypt - unless there's only /boot and /<root> then we'll automatically select /<root> because that's what we support for now. 2021-05-11 13:37:08 +02:00
Anton Hvornum e6c28a94ee Fixed line-ending issue after using generic_multi_select() 2021-05-11 11:48:44 +02:00
Anton Hvornum 4b6e312cfa Flipped log level logic. 2021-05-11 11:41:43 +02:00
Anton Hvornum 20d9858cf6 Spelling errors, and filtered the output a bit. 2021-05-11 09:53:18 +02:00
Anton Hvornum dd52bfb3a7 Tested the workflow, and it works pretty decent. There's some kinks to work out. Added BlockDevice().size as well. 2021-05-10 19:21:05 +02:00
Anton Hvornum 4aaaa3208b Tested creating partitions and deleting them. Kinda works now. 2021-05-10 16:44:01 +02:00
Anton Hvornum 6d5d9a1798 Added Partition() properties: sector_size, start, end, boot, partition_type and a __dump__() function. As well as kept working on the partition logic of guided to have a more traditional workflow of adding/deleting partitions in a guided manner, as well as the ability to mark partitions as encrypted/boot and set target mountpoints. 2021-05-10 14:32:39 +02:00
Anton Hvornum 3e601ff9ab Added a soft-wrapper around parted logic. This logic will guide users through setting up partitions, if they chose to wipe a drive. We'll avoid doing to much auto-magic, and this is just a start. 2021-05-10 10:14:33 +02:00
aboven 24a14d1800 fix error when to many options and calculation spaces 2021-05-08 13:18:03 +02:00
Anton Hvornum d6f63375c6 Splitting up partitioning logic some more. 2021-05-07 16:38:46 +02:00
SecondThundeR 493814d8bd Add default graphics card driver option 2021-05-06 21:38:20 +03:00
Anton Hvornum 8925be6c87 Adding in partition layout structure 2021-05-06 15:18:57 +02:00
Anton Hvornum c20be61e12 Removed obsolete variable in prep for multi-disk support. 2021-05-06 14:20:20 +02:00
Ondřej Nekola 3c23f5e810 add dmenu dependency to i3 profile
dmenu is configured as the default launcher (Penguin-SPACE key)
in the default i3 configuartion.
2021-05-06 13:01:43 +02:00
Dylan Taylor 900827a926 Change graphics driver selection based on #414 2021-05-05 11:31:24 -04:00
Anton Hvornum 8bc3dd685e Beginning work on simplifying disk process in guided.py by reducing complexity and code logic. 2021-05-05 15:06:47 +02:00
Anton Hvornum a0947f527a Allow for multiple disks to be selected (to span partitions such as boot across multiple block devices) 2021-05-05 13:56:24 +02:00
Anton Hvornum 469ab8d15a Moved around the function calls to be more logical and separated. Also moved the target-mount -> target-mountpoint as a parameter for the actual installation. 2021-05-04 11:45:21 +02:00
Anton Hvornum 52ac03d952
Merge pull request #408 from dylanmtaylor/patch-5
Fix #406
2021-05-02 20:02:21 +00:00
Anton Hvornum 49c4e61973 Moved around some blocks 2021-05-02 21:58:43 +02:00
Anton Hvornum 033b74f7c3
Rename Untitled Diagram.svg to BlockDeviceSelection.svg 2021-05-02 21:04:10 +02:00
Anton Hvornum 0293fd0933 Adding flowcharts for disk selection 2021-05-02 20:57:43 +02:00
Dylan M. Taylor d27fe9715f Attempt to fix #406
I think this should fix the comment Torxed made
2021-05-01 09:31:18 -04:00
Anton Hvornum 7f2334bbfe
Merge pull request #409 from archlinux/torxed-partitioning
Adds partition layout to the install logs before and after installation
2021-05-01 10:13:33 +00:00
Anton Hvornum ea0d0a8817 Merge branch 'master' of https://github.com/archlinux/archinstall into torxed-partitioning 2021-05-01 12:12:10 +02:00
Anton Hvornum b58bec202a
Merge pull request #405 from dylanmtaylor/patch-3
Tweak wording of superuser prompt for better consistency
2021-05-01 09:49:36 +00:00
Anton Hvornum 960dc5a08d
Merge pull request #403 from builder-247/builder-247-syntax-error
Fix syntax error
2021-05-01 09:48:49 +00:00
Dylan M. Taylor 4efa01c4fd
Make the style of the word superuser consistent 2021-04-30 22:42:08 -04:00
Dylan M. Taylor feae13ac84
Tweak wording for superuser prompt a little bit 2021-04-30 22:34:54 -04:00
builder_247 8f4b8fd5ff
Fix syntax error 2021-05-01 00:36:40 +03:00
SecondThundeR efadd4a426 Revert disabling default sorting
This change reverts a previous change that disabled sorting by default in the multi select function, which would be better disabled manually for pre-sorted lists than manually enabling for unsorted lists.

Also, comments of the line check have been slightly changed
2021-04-30 22:31:31 +03:00
Anton Hvornum 33a3f80391 Adding support for kernel params 2021-04-30 17:11:25 +02:00
Anton Hvornum cccb6bd5b3 Moved/Created mkinitcpio func 2021-04-30 17:04:55 +02:00
Anton Hvornum acf85f254a Moved mkinitcpio variables
They now live as a installation-session variable. Not just minimal installation.
2021-04-30 16:55:33 +02:00
Anton Hvornum 404197dc93 Enabling --plugins filtering 2021-04-30 16:45:42 +02:00
Anton Hvornum 25b699b44e Automatic loading of plugins 2021-04-30 15:33:26 +02:00
Anton Hvornum fcff362b9a
Merge pull request #398 from dylanmtaylor/patch-5
Partially revert hasUEFI grub/efibootmgr change to fix GRUB
2021-04-30 08:08:00 +00:00
Dylan M. Taylor e488ad8ec4
Change how efibootmgr is installed
Make changes suggested by Torxed
2021-04-29 20:03:25 -04:00
Anton Hvornum 7c57fff8b2
Merge pull request #394 from dylanmtaylor/patch-2
typo: none 0 is incorrect grammar
2021-04-29 23:00:49 +00:00
Anton Hvornum 3e518be7ce
Merge pull request #396 from dylanmtaylor/patch-3
Add cockpit application profile
2021-04-29 23:00:33 +00:00
Dylan M. Taylor 4ce97aaa8c
Partially revert hasUEFI grub/efibootmgr change to fix GRUB 2021-04-29 16:59:43 -04:00
Anton Hvornum 5194fdc75c
Merge pull request #397 from dylanmtaylor/patch-4
Fix i3
2021-04-29 18:41:47 +00:00
Anton Hvornum fb0ced900f
Merge pull request #391 from dylanmtaylor/patch-1
Implement server top-level profile
2021-04-29 18:38:28 +00:00
SecondThundeR ea14e860c7 Update `user_interaction.py`
- Reverted some changes for default options in multi select
- Added check for dict and convert from dict to list
- Replaced spaces with tabs for certain comment line
2021-04-29 19:49:08 +03:00
SecondThundeR 5f1156f80e Fix multi select and video card driver selection
Changes:
- Rephrased input text for kernel selection
- Fixed crash with empty video card driver selection
- Removed log info for default option
2021-04-29 19:49:08 +03:00
SecondThundeR 5c8748dbb5 Update generic_select
Changes:
- Moved some functions for options below checks for the correctness of passed options
- Removed unnecessary `continue` from `except ...`, since the loop will return to the beginning anyway
- Added stripping of `selected_option` straight on input
- Changed check `len() == 0` to `not ...`
- Returned changing string to number on check
===
- Removed '!' as they look weird inside such ` * ... * ` log style (Change for generic_multi_select)
2021-04-29 19:49:07 +03:00
SecondThundeR 1f2fe467d1 Update generic_multi_select
Changes:
- Add useful checks from `generic_select`
- Sorting is now disabled by default (As many lists are already sorted)
- Some checks have been changed (This includes unnecessary checks with `len()`, etc.)
- Removed x, y from `print_large_list` as they aren't used in code
- Added check for string to strip it without getting `AttributeError`
- Switched to RequirementError handling as in `generic_select`
- Added a log when the default option is selected with unselected options by the user
- Added break when adding default option to empty list (See comments for more info)
- Added support for selecting option by name
2021-04-29 19:49:07 +03:00
Dylan M. Taylor cef3a3a792
Fix i3 2021-04-29 12:11:23 -04:00
Dylan M. Taylor af3d85dc7d
Add cockpit, depends on #396 2021-04-29 11:41:57 -04:00
Dylan M. Taylor 89bc10ad9a
Add cockpit application package 2021-04-29 11:11:26 -04:00
Dylan Taylor 5e567b6f3b Remove a comment 2021-04-29 10:39:01 -04:00
Dylan Taylor 8b6ee6f303 Merge branch 'master' into patch-1 2021-04-29 10:22:42 -04:00
Dylan M. Taylor 3c5dd7b335 First implementation of server top-level profile 2021-04-29 10:22:33 -04:00
Dylan M. Taylor d6ec206d3e
typo: none 0 is incorrect grammar 2021-04-29 08:58:30 -04:00
Anton Hvornum b59a406069 Adding on_pacstrap hook for installation. As well as a plugins listing that plugins can hook in to in order to be called during specific on_<event> calls. 2021-04-29 14:22:38 +02:00
Anton Hvornum a739326be4
Merge pull request #392 from dylanmtaylor/patch-2
Add SSH Server Application Profile
2021-04-29 12:11:42 +00:00
Dylan M. Taylor c3bb503fab
Add SSH Server Application Profile 2021-04-29 08:01:15 -04:00
Anton Hvornum fb56fa3c5f
Merge pull request #390 from dylanmtaylor/patch-9
Add lighttpd application profile
2021-04-29 11:35:39 +00:00
Anton Hvornum a94cea235d
Merge pull request #389 from dylanmtaylor/patch-8
Add Docker Application Profile
2021-04-29 11:35:22 +00:00
Anton Hvornum 6e646ebebf
Merge pull request #388 from dylanmtaylor/patch-7
Add Tomcat application profile
2021-04-29 11:35:09 +00:00
Anton Hvornum c930ff826e
Merge pull request #387 from dylanmtaylor/patch-6
Add Apache HTTPD Application Profile
2021-04-29 11:34:50 +00:00
Anton Hvornum 6b2ea318f3
Merge pull request #385 from dylanmtaylor/patch-4
Add nginx application profile
2021-04-29 11:34:26 +00:00
Dylan M. Taylor f7cb4c8fb9
Add MariaDB Application Profile (#386) 2021-04-29 13:33:46 +02:00
Anton Hvornum 0ebc6be7ae
Added a postgresql application profile. (#383)
* Added a postgres application profile. Also introducing runas to the arch_chroot of the installation, to run commands as emulated users. This is highly WIP at the moment.

* Fixing top-level-listing of profiles. As well as testing some postgres installation steps.

* Removed dupe functions.

* Added safety check in case a comment mentions the top level profile thing.

* Patching namespace corruption.

* Avoiding runtime collision due to installation not being initiated yet.

* Allow for parameterization of filesystem in guided.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2021-04-29 13:32:21 +02:00
Dylan M. Taylor 9d5e9333c7
Add lighttpd application profile 2021-04-29 07:18:38 -04:00
Dylan M. Taylor 5cf0419073
Add Docker Application Profile 2021-04-29 07:14:34 -04:00
Dylan M. Taylor 9e8446a96a
Add Tomcat application profile
Using Tomcat 10 as that is the latest release
2021-04-29 07:09:46 -04:00
Dylan M. Taylor 5c6cd59aec
Add Apache HTTPD Application Profile 2021-04-29 07:03:57 -04:00
Dylan M. Taylor eb2174eef9
Add nginx profile 2021-04-29 06:57:52 -04:00
Anton Hvornum aa0f432726
Merge pull request #384 from jatin-cbs/master
Fixed a typo in the last PR https://github.com/archlinux/archinstall/pull/378
2021-04-29 10:50:50 +00:00
Jatin 16a1a00643
Fixed a typo in the last PR https://github.com/archlinux/archinstall/pull/378
replaced a `.` with a `,` in gnome.py profile.
2021-04-29 15:50:01 +05:30
Anton Hvornum 055b6dd905
Merge pull request #378 from dylanmtaylor/packages
Desktop Environment Cleanup and Switch to Packages Definitions
2021-04-29 08:23:29 +00:00
Anton Hvornum 455dd24614
Merge branch 'master' into packages 2021-04-29 08:23:01 +00:00
Anton Hvornum 2d02e806f2
Cleaning up packages. (#374)
* Cleaning up packages. installer now relies on __packages__ definition. Which will work with external libs to more easily gather packages used by installer and profiles.

* Added back the logic for the log message, where we inform if we're adding the boot loader to root or boot.

* Added __package__ definition to profiles and the installer. These packages can be used as an indication from outside libraries of what could *possibly* be installed. For instance an offline-tool could source these, it would source more than it needed to, but it would give a quick rundown of what might be needed.

* Removed import of __base__packages__ as it's now just __packages__ after a lot of stream-lining.

* Explosion misspelling.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2021-04-29 10:18:43 +02:00
Anton Hvornum 1708f1850d Fixes #350 hopefully. This reverts an old hotfix to make systemd-boot work with dualboot variables. This **NEEDS** to be tested together with a Windows installation dual-boot setup, because this is where variable writing caused issues before. 2021-04-29 10:01:43 +02:00
Anton Hvornum 9fd87a4b53
Update python-publish.yml 2021-04-28 21:30:48 +02:00
Dylan Taylor 1238199ed8 egl-wayland is small enough that conditionally installing it doesn't make a lot of sense 2021-04-28 11:49:23 -04:00
Dylan M. Taylor f9f359ab73
This variable wasn't really needed. 2021-04-28 11:30:30 -04:00
Dylan Taylor fd042053be Rework KDE profile package installation 2021-04-28 11:21:24 -04:00
Dylan Taylor 6013e06fb1 Add packages to top of each desktop profile 2021-04-28 11:20:00 -04:00
Dylan Taylor f91c0137d5 Remove refs to application profiles that were removed 2021-04-28 11:14:18 -04:00
Dylan Taylor 23a9e9f69a Change how i3 configurations are installed 2021-04-28 11:13:16 -04:00
Dylan Taylor 2d4326b6c5 Rework how alacritty is installed for awesome 2021-04-28 11:11:36 -04:00
Dylan Taylor 8706b48097 Restore kde.py 2021-04-28 11:10:08 -04:00
Dylan Taylor f319308d37 Remove application profiles that just install additional packages and do not do anything else to customize or configure. 2021-04-28 11:08:50 -04:00
Dylan Taylor e9d5cd1a11 Rework budgie to use package definition 2021-04-28 11:07:18 -04:00
Anton Hvornum e52fca2d01
Merge pull request #371 from dylanmtaylor/patch-1
Avoid some word wrapping on smaller consoles like VirtualBox.
2021-04-28 13:23:56 +00:00
Anton Hvornum 4079eebc70
Added a mini curses class and generic-multi-select (#362)
* Added a mini curses class. It can do some simple tricks to iterate over menu options and indicate which ones are chosen using generic_multi_select().

* Include the default parameter if set.

* Modified 'select_kernel()' to use the new multi-select.

* Sneaky character got in.

* removed some debugging

* removed some debugging

* Spelling error

* Adding error handling and loop support.

* Enforce that 'default' is always selected if no other option is selected.

* Fixed backspace issues and ghosting.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2021-04-28 15:18:28 +02:00
Dylan M. Taylor 7beccba395
Avoid some word wrapping on smaller consoles like VirtualBox. 2021-04-28 08:59:01 -04:00
Anton Hvornum 754e4b8b61 Corrected one indentation. 2021-04-28 14:30:12 +02:00
Anton Hvornum 04804e6edc Corrected error handling for log creation. 2021-04-28 14:28:21 +02:00
Anton Hvornum 09cab32749 Merge latest changes from master 2021-04-28 14:20:19 +02:00
Anton Hvornum a13db6bffd Fixing permission error on non-root-runners accessing log() 2021-04-28 14:20:12 +02:00
Anton Hvornum 2017d9a5f3
Merge pull request #370 from dylanmtaylor/patch-2
Allow Sway Nvidia override
2021-04-28 12:14:26 +00:00
Anton Hvornum 153495a4c0
Merge pull request #365 from dylanmtaylor/patch-1
Include Git commit SHA in the ISO
2021-04-28 12:13:41 +00:00
Dylan M. Taylor 3961f252c8
Allow Sway Nvidia override 2021-04-28 07:43:28 -04:00
Anton Hvornum 58d933e150
Merge pull request #367 from SecondThundeR/kernel-select
Slightly update kernel selection
2021-04-28 07:10:39 +00:00
Anton Hvornum 66197f08de
Added a default description 2021-04-28 09:10:29 +02:00
SecondThundeR 6cfaf30718 Update kernel select
Move select to separate function
Remove 'continue' option
Add hardened kernel as option
2021-04-28 09:41:47 +03:00
Anton Hvornum 932517e20d
Merge pull request #366 from advaithm/master
Bug fixes for kernel select and grub-install
2021-04-28 05:38:16 +00:00
advaithm 0e89173ddf
Raise a hardware incompatibilty error if someone installs the nvidia prop dirvers with sway 2021-04-28 09:37:22 +05:30
advaithm 8144ac736d
install nvidia-dkms when running linux-zen/lts 2021-04-28 09:35:07 +05:30
advaithm 3bf7a9e7af
removed pdb 2021-04-28 08:00:18 +05:30
Dylan M. Taylor 939fae0b1a Include the commit SHA in the ISO
Update iso-build.yaml with wording change, cat out .zprofile for debugging, and make it so workflow edits trigger builds.
2021-04-27 22:21:05 -04:00
advaithm db7632f55e
log diffrent values when in bios mode 2021-04-28 07:48:44 +05:30
advaithm 7922d82639
trying to fix always failing bootloader install 2021-04-28 07:41:34 +05:30
advaithm 464cee46ed
fixed kernel select 2021-04-28 07:08:35 +05:30
advaithm df86d2b80d
pdb traceing 2021-04-28 06:39:59 +05:30
Anton Hvornum e7a429db11
Merge pull request #344 from SecondThundeR/misc-cleanup
Misc. cleanup
2021-04-27 18:48:48 +00:00
Anton Hvornum ae1253afab
Merge pull request #361 from SecondThundeR/drivers-fix
Fixed a crash before choosing a video card driver
2021-04-27 18:48:35 +00:00
Владислав bedd8a1241
Fixed a crash before choosing a video card driver 2021-04-27 21:26:58 +03:00
SecondThundeR a706a98151 Revert some merge resolve changes 2021-04-27 19:19:33 +03:00
Владислав bbe38025fb
Merge branch 'master' into misc-cleanup 2021-04-27 19:01:38 +03:00
Anton Hvornum 090b98b830
Moving away from custom log levels, to something that's well defined. (#360)
* Moving away from custom log levels, to something that's well defined.

* Added backward compability to log() as well.

* Added an option to force log messages out on screen even if the level is below the log level threashold.

* Added force log messages when wrong notation is used.

* Added some more length to the deprecated message

* Swapped all log levels to use logging.<level> instead.

Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2021-04-27 16:43:17 +02:00
Anton Hvornum a29eea26db
Updated readme about the help and log location 2021-04-27 14:40:53 +02:00
Владислав 492c44c916
Restore changes related to background properties 2021-04-27 15:39:32 +03:00
Anton Hvornum fefa287f16
Updating branch strategy on the CONTRIB file 2021-04-27 14:27:34 +02:00
Anton Hvornum df1586e2de
Merge pull request #357 from dylanmtaylor/patch-1
Use generic_select for driver selection
2021-04-27 12:23:02 +00:00
Dylan M. Taylor 5f9720ab1c
Use generic_select for driver selection 2021-04-27 08:22:36 -04:00
Владислав 0c6ebc7e80
Merge branch 'master' into misc-cleanup 2021-04-27 15:18:02 +03:00
SecondThundeR 985b7fac3f Revert "Update logging for some functions"
This reverts commit f5b6e7bafe.

Reverting commit due to currently redundant change and merge conflict
2021-04-27 15:14:28 +03:00
Anton Hvornum ae1c4ea7c2
Merge pull request #337 from dylanmtaylor/patch-4
Run CI on pushes to master/main
2021-04-27 12:12:36 +00:00
Anton Hvornum 3bde45cbbd
Merge pull request #356 from dylanmtaylor/patch-2
Delete i3-wm and i3-gaps profiles
2021-04-27 12:08:36 +00:00
Dylan M. Taylor 0fa99cf3cf
Delete i3-gaps.py 2021-04-27 08:03:10 -04:00
Dylan M. Taylor 806e5fa3af
Delete i3-wm.py 2021-04-27 08:02:24 -04:00
Anton Hvornum 6625f359d0
Merge PR #335: Merges in v2.2.0 work into master
Any future work against v2.2.0 will go straight into master, patch work will be done on separate branches instead.
2021-04-27 11:42:05 +00:00
Anton Hvornum 63a597a4fe Updated PR guidelines. 2021-04-27 13:39:30 +02:00
Anton Hvornum 19c928df6a Forgot to hit save after merge conflict fixes. 2021-04-27 13:35:14 +02:00
Anton Hvornum 5852582bbf Pulled in latest changes from torxed-v2.2.0 2021-04-27 13:33:52 +02:00
Anton Hvornum 831f5e4eaf
Merge pull request #315 from AggamR/master
selecting a kernel
2021-04-27 10:43:35 +00:00
Anton Hvornum 2762144e32 Added a failsafe for kernels argument to be defaulted to linux, since 'None' could technically end up here. 2021-04-27 12:39:13 +02:00
Anton Hvornum b6cd5835f1 Reduced complexity in guided for the kernel selection process. 2021-04-27 12:37:16 +02:00
Anton Hvornum 1230fdfe31 Synced latest changes from torxed-v2.2.0. 2021-04-27 12:30:00 +02:00
Anton Hvornum 847cb3d032
Spelling error 2021-04-27 12:27:49 +02:00
Anton Hvornum 1be405aa77
Corrected indentation (mixed spaces and tabs) 2021-04-27 12:26:59 +02:00
Aggam Rahamim fa9a08b86d having ability to use multiple kernels - dict fix 2021-04-27 12:40:05 +03:00
Anton Hvornum ea9d34e8fc
Re-phrased the wording a bit on the exp. warning. 2021-04-25 22:18:29 +02:00
Aggam Rahamim e250181317 Merge branch 'master' of https://github.com/AggamR/archinstall 2021-04-25 14:56:03 +03:00
Aggam Rahamim 5c9859d316 having ability to use multiple kernels 2021-04-25 14:55:39 +03:00
advaithm 85e4a85cdb
updated to lastest commit, fixed a conflict 2021-04-24 13:56:35 +05:30
Anton Hvornum 638985f17d
Merge pull request #345 from dylanmtaylor/patch-9
Ignore dotfiles and globs in timezone selection
2021-04-24 07:11:06 +00:00
Anton Hvornum 84dbbd0857
Added back the note about using /mnt as is
Also added a "experimental" warning to it.
2021-04-23 23:52:49 +02:00
Anton Hvornum 47939ac582
Merge pull request #343 from dylanmtaylor/patch-8
While somewhat nice to have, archlinux-wallpaper isn't needed in a minimall install
2021-04-23 13:41:08 +00:00
Dylan M. Taylor d21e31d477
Actually, putting it here makes more sense. 2021-04-22 19:38:43 -04:00
Dylan M. Taylor 95e73f65a7
Ignore dotfiles and globs 2021-04-22 19:36:32 -04:00
SecondThundeR f5b6e7bafe Update logging for some functions
- Unified view of warning (red) and info (yellow) logs
- Fixed some PEP8 related issues, like removing redundant f-strings and replacing double quotes to single ones
- Removed warning logging level for simple logs
- Removed other background color settings for logs to fully close https://github.com/archlinux/archinstall/pull/171
2021-04-23 01:55:53 +03:00
SecondThundeR 2d3d3c54ef Remove unnecessary else in try...except
This change simplifies the try...except block in generic_select by adding a break to the item selection by index
2021-04-23 01:08:38 +03:00
SecondThundeR 839e945b87 Moved output about base installed packages
This prevents screen from being cluttered if the user enters the wrong package(or packages), allowing only repetitions of prompt to be displayed
2021-04-23 01:03:34 +03:00
Dylan M. Taylor 91fa98f48d
While somewhat nice to have, archlinux-wallpaper isn't needed in a minimal installation. 2021-04-22 17:49:58 -04:00
Anton Hvornum b963ed2631
Merge pull request #342 from archlinux/torxed-patch1
/ and /boot requirement when keeping partition layout
2021-04-22 19:59:31 +00:00
Anton Hvornum 3cf8ec7ad6
Added a continuation if partitions are not set yet. 2021-04-22 21:58:47 +02:00
Anton Hvornum 81c57560b3
Fixes #324. 2021-04-22 21:56:52 +02:00
Anton Hvornum 1c6aa6b8f4
Merge pull request #339 from dylanmtaylor/patch-7
Have timezone re-prompt on invalid input
2021-04-22 19:46:54 +00:00
Anton Hvornum 74951b841c
Restructured endless loop definition
I prefer to easily spot an endless loop by not having external variables attached to the loop condition.
Since we never updated `exists` it's a dummy variable that I expect to be updated some where in order to break it.
When that's not the case, it's more clear that it's an endless loop if there's no conditions attached to the loop definition.
2021-04-22 21:36:31 +02:00
Dylan M. Taylor bd9d2c9125
Update user_interaction.py 2021-04-22 15:18:59 -04:00
Dylan M. Taylor d401820381
Run CI on pushes to master/main 2021-04-22 14:35:05 -04:00
advaithm 1188303fb3
fixed another messed up import 2021-04-22 19:16:27 +05:30
advaithm 1c0c127762
has uefi was removed from user_interactions 2021-04-22 19:13:57 +05:30
advaithm fc53d145c8
Merge github.com:archlinux/archinstall into master-merge 2021-04-22 19:11:30 +05:30
advaithm 49e9c65a8e
updated pyproject.toml to fix issues with package 2021-04-22 19:01:36 +05:30
Anton Hvornum 935b878c96
Merge pull request #336 from SecondThundeR/patch-2
Fix other issues of language selection
2021-04-22 12:43:31 +00:00
SecondThundeR d1560d98ec Fix other issues of language selection 2021-04-22 14:54:35 +03:00
advaithm e63eb26388
fixed merge conflicts 2021-04-22 17:03:24 +05:30
advaithm eb1ff72f5b
readded some commits that got removed 2021-04-22 17:00:51 +05:30
advaithm 15d56c2bc7
merged with master 2021-04-22 16:41:47 +05:30
Anton Hvornum c88034fa8a
Merge pull request #334 from SecondThundeR/patch-2
Update language selection
2021-04-22 09:53:02 +00:00
Владислав 4209074137
Update language selection
Reverted generic_select changes and added ability to choose any layout at first input
2021-04-22 12:05:24 +03:00
Anton Hvornum 1f6094ea59
Merge pull request #326 from advaithm/bootloader-refactor
Bootloader refactor
2021-04-22 08:56:45 +00:00
Anton Hvornum 331bb0789b
Merge pull request #325 from SecondThundeR/generic-select-update
Rework of the generic_select function and fixes for various input checks
2021-04-22 08:55:54 +00:00
Anton Hvornum 4d65639724
Fixes the crash on empty profile choice. Since generic_select() returns None, we can't pipe that into Profile() (at least not yet) 2021-04-22 10:31:32 +02:00
Anton Hvornum bf9f7bdb16
Merge pull request #328 from jtagcat/patch-1
user_interaction: Explicitly ask for username on super-user creation.
2021-04-21 15:22:52 +00:00
jtagcat a834bffeec
user_interaction: Explicitly ask for username on super-user creation. 2021-04-21 14:20:22 +00:00
Anton Hvornum 46b872aa61 Re-working top-level-profile lambda to be a parameter to list_profiles() instead. When skipping a profile, None is returned from somewhere and it causes a glitch. So trying to figure out where and what by cleaning up a bit 2021-04-21 14:37:23 +02:00
Anton Hvornum 33458b72f3
Merge pull request #255 from dylanmtaylor/patch-1
WIP: Add documentation for MAC address example
2021-04-21 11:22:47 +00:00
Anton Hvornum 1d1d8ea2e0 Reverting deletion on mac-template example. 2021-04-21 13:20:41 +02:00
Anton Hvornum 4db40c06eb Removed guided.py that was copied in to the root and added to gitignore. 2021-04-21 13:15:42 +02:00
Anton Hvornum ccb75f70b9 Merged in latest changes and history from torxed-2.2.0 to avoid odd history in PR #315 2021-04-21 13:10:56 +02:00
advaithm e6ab22f28c
Merge branch 'bootloader-refactor' of github.com:advaithm/archinstall into bootloader-refactor 2021-04-21 13:35:46 +05:30
advaithm 63a94a5770
add efibootmgr only on uefi systems 2021-04-21 13:35:03 +05:30
advaithm a694daec5d
some more grammer fixes 2021-04-20 22:09:27 +05:30
Anton Hvornum 752d7b7a8d
Merge pull request #327 from dylanmtaylor/patch-4
Fix budgie.py merge issue
2021-04-20 16:30:00 +00:00
Dylan M. Taylor b46afad1af
Fix budgie.py merge issue 2021-04-20 12:27:17 -04:00
advaithm 85c5275a8f
added return true 2021-04-20 21:23:11 +05:30
advaithm a02c35920d
added return true 2021-04-20 21:21:17 +05:30
advaithm 85a8215eb7
fixed some weird grammer 2021-04-20 21:06:57 +05:30
advaithm e2444de5a2
added /mnt to grubcfg genration 2021-04-20 21:06:31 +05:30
advaithm b4312ab95d
removed unnessacry --target 2021-04-20 20:46:49 +05:30
advaithm 8b723c25e2
changed some strings 2021-04-20 20:36:26 +05:30
advaithm 4a9f56ed2d
fixed shell command in add bootloader 2021-04-20 20:26:19 +05:30
advaithm 64a785e0ec
reworked how we remove efimanager 2021-04-20 20:01:15 +05:30
advaithm adeae68123
reworked how we remove efimanager and add grub 2021-04-20 19:58:23 +05:30
advaithm 264db25eef
call hasUEFI 2021-04-20 19:50:12 +05:30
advaithm 47202d9bf9
moved some stuff 2021-04-20 19:46:22 +05:30
advaithm dbb6d630bd
fixed some issues with adding packages 2021-04-20 19:43:23 +05:30
SecondThundeR 8d9a542962 Add clarifying log text for generic_select 2021-04-20 17:10:28 +03:00
advaithm 572ab522fc
we should only look for boot on uefi systems 2021-04-20 19:40:09 +05:30
advaithm fc8960f2a9
we should only look for boot on uefi systems 2021-04-20 19:35:28 +05:30
advaithm 1ea02a7e69
we should only look for boot on uefi systems 2021-04-20 19:27:16 +05:30
advaithm 7872d5b7fa
rebase clean up 2021-04-20 19:23:18 +05:30
advaithm 23704b7908
repharsed some stuff 2021-04-20 18:53:47 +05:30
advaithm 9c400aa727
reworked how we handle bootloaders a little 2021-04-20 18:49:02 +05:30
advaithm 7afba65c26
rebase 2021-04-20 18:43:19 +05:30
Anton Hvornum 636a7b95d5
Merge pull request #317 from insanemal/torxed-v2.2.0
In guided install Non-UEFI installs need to use grub-install
2021-04-20 12:57:46 +00:00
Anton Hvornum f5ef751d53
Merge branch 'torxed-v2.2.0' into torxed-v2.2.0 2021-04-20 12:57:14 +00:00
SecondThundeR 3facc2e58d Fix TabError issue after uncommenting 2021-04-20 15:25:46 +03:00
Anton Hvornum a0552fe8cb
Merge pull request #285 from dylanmtaylor/patch-4
Change from argon2i to argon2id
2021-04-20 12:18:32 +00:00
SecondThundeR 06e846796d Fix infinite loop on incorrect input of gateway IP 2021-04-20 15:07:52 +03:00
SecondThundeR 1d37e5a49e Uncomment new check for gateway IP address 2021-04-20 15:02:11 +03:00
SecondThundeR 1d04c92258 Add sort parameter for generic_select
Updated required features to support these change
2021-04-20 14:45:54 +03:00
Anton Hvornum 2b7face252 Merging in PR #312 - Add Deepin desktop 2021-04-20 10:03:58 +02:00
SecondThundeR d2eacffff8 Update some functions
Here are list of changes:
- Added IP/subnet validation using Python's `ipaddress` module
- Added workaround for network configuration modes where user can enter DHCP or IP without brackets.
- Returned local printing options for some functions to keep `The above list...`
- Moved booleans for `generic_select` below options and text parameters
- Imported some functions from `archinstall` to reduce the`archinstall.` part of the lines.
- Reduced variable name length for simplicity
- Fixed some typos
2021-04-19 20:34:35 +03:00
Anton Hvornum ee1464aeaf
Merge pull request #321 from SecondThundeR/patch-1
Fix typo in partition.format()
2021-04-19 10:07:23 +00:00
SecondThundeR a316846121 Replace input with generic_select where necessary
Here are list of changes:
> From now on, `generic_select` will be called "Select function", for clarity

- Slightly updated select function
- Removed options output for some functions, where it's better to do with select function
- Added sorting for all lists passed to select function
- Replaced `dict.values()` with `dict` as options parameter
- Simplified input checking for all functions that use the select function
- Added temporary *(for now)* workaround for passing `?` and `help` inputs
- Merged fix for `partition.format()`
2021-04-17 16:35:21 +03:00
Владислав 3fba787396
Fix typo in partition.format() 2021-04-17 15:49:58 +03:00
SecondThundeR 9991b19a06 Initial rework of generic_select function
Here are list of changes:
- Removed `sort` parameter, since every function has a sorted list in most cases
- Added two new parameters to disable local output of options items and allow empty input from the user by returning None
- Added a while loop, where it returns each time a RequirementError is raised
- Added log info for each input error to help figure out what the problem is
- Changed the check of the stripped input length to compare with 0, since the length cannot be less than 0
- Changed `isdigit` to `isnumeric`, which returns False if given digit is negative
- Slightly changed a check for an out of range error
- Removed displaying the list of available options when input is incorrect, in order to prevent the screen from overflowing
- Added log info if options list is empty
- Added log info if options are not dictionary or list
- Added dictionary values conversion to accept only list and dictionaries as option
- Added sorting dictionary values by default
2021-04-17 12:54:04 +03:00
Anton Hvornum 7be93adb99
Merge pull request #320 from SecondThundeR/language-select-fix
Fix selecting language layout by name
2021-04-17 08:03:45 +00:00
Anton Hvornum 9ed29df852
Merge pull request #319 from archlinux/torxed-master-merge
Torxed master merge
2021-04-17 08:02:46 +00:00
Anton Hvornum c63d2140a4 Removed merge artifact. 2021-04-17 09:59:51 +02:00
Владислав 6e5ea3aa65
Fix selecting language layout by name 2021-04-17 10:56:46 +03:00
Anton Hvornum 5fba277dda Merging in master to feature branch. 2021-04-17 09:52:09 +02:00
Malccolm Haak e32dbfbd10 Package called grub not grub-install 2021-04-17 14:38:00 +10:00
Malccolm Haak 77894df51c Whitespace needs to be tabs. Added test for UEFI, if not found add grub-install to pacstrap install 2021-04-17 14:37:14 +10:00
Malccolm Haak 80a3ca3826 In guided install Non-UEFI installs need to use grub-install as its the only supported bootloader that doesn't require UEFI 2021-04-17 14:23:39 +10:00
Aggam Rahamim 8b9f16a028 removed new line when ask for kernel 2021-04-16 14:43:17 +03:00
Aggam Rahamim 81b0fa1792 fixed mkinitcpio 2021-04-16 14:31:59 +03:00
Aggam Rahamim f6fdc11927 fixing - letting user choose kernel 2021-04-16 13:54:22 +03:00
Anton Hvornum a7c0142099
Adding debug data to the log. It will now contain lsblk before and after the installation to help with detecting any potential information. Also removed a traceback log that was for debugging purposes. 2021-04-16 11:48:24 +02:00
Aggam Rahamim 459f161cf0 added option to choose kernel 2021-04-16 12:01:20 +03:00
Anton Hvornum 407290b034
Merge pull request #311 from dylanmtaylor/patch-5
These could affect whether the code builds/runs correctly
2021-04-16 07:54:52 +00:00
robsonsilv4 fcd07b284e Add Deepin desktop 2021-04-15 23:33:04 -03:00
Dylan M. Taylor 88071ef9c0
.toml files could also possibly affect behavior. 2021-04-15 18:47:34 -04:00
Dylan M. Taylor 769a5b5f74
These could affect whether the code builds/runs correctly
They should not be ignored.
2021-04-15 18:46:44 -04:00
Anton Hvornum 65c6807cc9
Merge pull request #310 from SecondThundeR/workflow-features
Add ignore rules for iso-build.yaml
2021-04-15 19:07:12 +00:00
Anton Hvornum 3279de08ad
Revert `README` addition, it's catched by **.md 2021-04-15 21:07:06 +02:00
Anton Hvornum 0128ae6647
Added README to ignore 2021-04-15 20:55:36 +02:00
Владислав 6264099428
Add ignore rules for iso-build.yaml
These rules ignore all unrelated files and folders that are not needed to build the ISO.
2021-04-15 21:09:02 +03:00
Anton Hvornum 0f9b7a9c8e
Merge pull request #309 from SecondThundeR/readme-branch
Fix README table of content
2021-04-15 15:32:42 +00:00
SecondThundeR 0fd0fb05ff Fix README table of content
Also commented out the code responsible for centering the logo for future decisions
2021-04-15 18:12:36 +03:00
Anton Hvornum 6eab0290ae
Spelling error 2021-04-15 17:06:43 +02:00
Anton Hvornum e5b0468384
Merge pull request #308 from dylanmtaylor/patch-6
Change version to 2.2.0 in 2.2.0 branch
2021-04-15 14:04:55 +00:00
Dylan M. Taylor 7f3e12b50f
Change version to 2.2.0 in 2.2.0 branch 2021-04-15 10:03:04 -04:00
Anton Hvornum c13f294ef5
Merge pull request #307 from dylanmtaylor/patch-5
Bump to 2.1.4
2021-04-15 14:02:36 +00:00
Dylan M. Taylor 1affee7c7b
Bump to 2.1.4 2021-04-15 10:00:57 -04:00
Anton Hvornum c9e1d4a8c3
Merge pull request #304 from advaithm/master
Fixing kbd layout issues and non-logical crashes in guided.py questions
2021-04-14 11:30:24 +00:00
Anton Hvornum 4e2c3c3dc7
Language issue 2021-04-14 13:26:14 +02:00
Anton Hvornum 3f101be225
Increased margin to facilitate error output 2021-04-14 13:21:15 +02:00
Anton Hvornum 12b43f443b
Removed layout filtering
This caused languages such as `be-latin1` to be hidden both in Search and direct input.
Because as an example that layout belongs to `azerty` and not `qwerty`.
2021-04-14 13:16:18 +02:00
Anton Hvornum 7f29f9d283
Added a default keyboard layout
This is just in case either the search step or the selector inputs nothing.
Something has to be set, and the default is US.
2021-04-14 13:14:12 +02:00
Anton Hvornum 1aadfa98c4
Added a safety net to language selection 2021-04-14 12:46:18 +02:00
Anton Hvornum 48c679d501
Updated README's minimal example 2021-04-14 12:17:17 +02:00
Anton Hvornum 5b3a122141
Updated the loop logic for mirrors
It wouldn't break out of the loop since the `valid_mirror` variable was never changed.
2021-04-14 12:08:37 +02:00
Anton Hvornum 99fb1304ea
Updated the loop logic for packages
It wouldn't loop over the question again, so correct for that.
2021-04-14 12:06:15 +02:00
Anton Hvornum c07d286f57
Modified return value back to {} 2021-04-14 11:58:51 +02:00
Anton Hvornum 91723e7dd9
Reverted back to raise 2021-04-14 11:55:40 +02:00
Anton Hvornum 7ae4b170b3
Removed excessive import
The exceptions are already exposed in `archinstall.<exception>`.
This might change in the future tho.
2021-04-14 11:53:31 +02:00
advaithm 7e12a2abc4
Merge branch 'master' of github.com:advaithm/archinstall 2021-04-14 14:48:11 +05:30
advaithm df3f7af91b
reworked mirror selection 2021-04-14 14:47:57 +05:30
Anton Hvornum c13c109bff
Removed a \t 2021-04-14 11:16:31 +02:00
Anton Hvornum 5aad809274
Converted back to a raise exception.
Since we simply forgot to actually call `raise` here (my bad) I think that will be better, and we handle it where we need to.
2021-04-14 11:10:09 +02:00
advaithm b08b2f3062
another patch for line 249 2021-04-14 14:29:46 +05:30
advaithm 78a9f0077e
fixed line 249 2021-04-14 14:21:53 +05:30
advaithm 8e9a09a8ff
typo 2021-04-14 14:18:18 +05:30
advaithm 85bcc58951
missed a merge 2021-04-14 14:16:11 +05:30
advaithm efd23e67d6
return {} not None 2021-04-14 14:07:22 +05:30
advaithm 757aa15f95
git automerge removed some important stuff 2021-04-14 14:05:37 +05:30
Anton Hvornum 82710fe381
Merge pull request #302 from dylanmtaylor/patch-5
Fix some more awesome installation issues
2021-04-14 08:28:38 +00:00
advaithm b292981de6
rebased to latest commits 2021-04-14 13:50:54 +05:30
advaithm 3347d04bfa
fixed issues raised in a review 2021-04-14 13:46:47 +05:30
Anton Hvornum af2671c1ec
Merge pull request #301 from dylanmtaylor/patch-3
Fix warning on BIOS/MBR systems
2021-04-14 05:52:23 +00:00
Dylan M. Taylor 06920652b3
Fix some more awesome installation issues 2021-04-13 21:21:43 -04:00
Dylan M. Taylor dffb611d18
Fix warning on BIOS/MBR systems 2021-04-13 20:19:46 -04:00
Dylan Taylor e18b6d83d7 Merge branch 'master' into patch-4 2021-04-13 19:46:53 -04:00
Anton Hvornum 2433a9ee76
Merge PR #300 - Cloes #299
better logging for audio servers
2021-04-13 13:20:20 +00:00
advaithm 37fae92253
set archinstall.arguments['audio']=None 2021-04-13 18:45:55 +05:30
advaithm 0617292340
better prompts for audio servers 2021-04-13 18:41:23 +05:30
Anton Hvornum 516402cac4 Moved the '.drop_to_shell()' into the with installation context so we don't loose 'installation'. 2021-04-13 13:54:23 +02:00
Anton Hvornum fad9f40a83 Modifying to enable piping in custom environment variables. This is required to disable systemd coloring and paging when querying for service states. Otherwise it returns unreliable data that can cause hanging. 2021-04-13 13:36:40 +02:00
Anton Hvornum 4750b0b2a1 Fixed a spelling error. 2021-04-13 12:56:50 +02:00
Anton Hvornum 4d7c787cfd Fixing reflector waiting state. It can be dead which means it's done, or failed it systemd failed to start/find it. 2021-04-13 12:47:17 +02:00
Anton Hvornum ea4394262f Closing forked process PID in order to close any ramining open file handles. 2021-04-13 12:39:12 +02:00
Anton Hvornum 9295f38134 Added two comments. 2021-04-13 11:02:45 +02:00
Anton Hvornum 342dbb4ebf Added a Info level to the reflector wait in case it's slow. 2021-04-13 10:56:22 +02:00
Anton Hvornum 311426cbc2 Fixing a logic issue with ask_to_configure_network(). It no longer returns None if skipped, it returns a dict so that we can do sub-level logic checks in guided. 2021-04-13 10:27:33 +02:00
Anton Hvornum 67b05d8fb1 Added option to not touch mirror-list. Example if archlinux.org times out, use the existing mirror-list without trying to overwrite it. 2021-04-13 10:01:54 +02:00
Anton Hvornum 509784b3e5
Merge pull request #294 from advaithm/flit-builtools
Move to flit as build tool
2021-04-13 07:21:33 +00:00
Anton Hvornum 9f21ec713d
Merge pull request #295 from dylanmtaylor/patch-3
Default timezone to UTC (very useful for servers)
2021-04-13 07:15:18 +00:00
Anton Hvornum 4391dd68d5
Merge pull request #289 from dylanmtaylor/chroot-prompt
Implement chroot prompt after successful installation
2021-04-13 07:09:58 +00:00
Anton Hvornum c2958aba16
Merge pull request #293 from JakobDev/osystemfix
Replace os.system with subprocess.call
2021-04-13 07:08:29 +00:00
Anton Hvornum 47dbda1442
Merge pull request #298 from dylanmtaylor/patch-5
Implement function to set the shell for a user (#291)
2021-04-13 07:07:31 +00:00
Dylan M. Taylor f6d6e0328e
Implement function to set the shell for a user (#291) 2021-04-12 16:06:50 -04:00
Dylan M. Taylor 60ee752a12 Default timezone to UTC (very useful for servers)
Update user_interaction.py
2021-04-12 10:48:01 -04:00
advaithm d1bf6a6182 update excludes 2021-04-12 19:43:45 +05:30
Dylan Taylor 3034def365 Move logic to guided 2021-04-12 10:09:37 -04:00
advaithm 413565dbd0 moved to flit build system 2021-04-12 19:39:23 +05:30
Anton Hvornum e4b2742192 Adding some error handling to list_mirrors() 2021-04-12 15:58:52 +02:00
Dylan Taylor b44c0e5197 Implement chroot prompt after successful installation
Try os.subprocess


Revert to subprocess.check_call
2021-04-12 09:21:10 -04:00
JakobDev fe2c3cc14d
Replace os.system with subprocess.call 2021-04-12 15:13:49 +02:00
Anton Hvornum 27e7c01e55
Merge pull request #290 from dylanmtaylor/patch-3
Fix awesome profile installation
2021-04-12 12:56:25 +00:00
Dylan M. Taylor 64b0ef8540
Fix awesome profile installation 2021-04-12 08:53:38 -04:00
Anton Hvornum 18b5ebff44 Moving warning about UEFI to guided for now. 2021-04-12 14:52:14 +02:00
Anton Hvornum ae33151b9b Moving warning about UEFI to guided for now. 2021-04-12 14:51:32 +02:00
Anton Hvornum 897b67f751
Merge pull request #281 from dylanmtaylor/patch-2
If user does not change keyboard language, log it.
2021-04-12 11:54:34 +00:00
Anton Hvornum 7c902a6c83
Merge pull request #286 from dylanmtaylor/patch-5
Use generic_select for GPU drivers
2021-04-12 11:46:58 +00:00
Dylan M. Taylor 584a2c465f Pull in iso-build.yaml from master to generate a test ISO 2021-04-12 07:44:13 -04:00
Anton Hvornum b4d400bff8
Merge pull request #283 from dylanmtaylor/patch-3
Fix MBR & GRUB warning change
2021-04-12 07:09:59 +00:00
Dylan Taylor 87ca382f6c Use generic_select for GPU driver
Make it so there isn't a space in the key


Try to simplify things more
2021-04-11 21:36:53 -04:00
Dylan M. Taylor 49ca264790
Change from argon2i to argon2id
Closes #269
2021-04-11 20:38:24 -04:00
Dylan M. Taylor df1e163a57 Fix MBR & GRUB warning change 2021-04-11 18:43:40 -04:00
Anton Hvornum 28d2743d71 Fixed a keyword argument 2021-04-12 00:40:03 +02:00
Anton Hvornum 22a506d9c3 Update __init__.py 2021-04-12 00:33:54 +02:00
Anton Hvornum 78bedb6d8a
Merge pull request #282 from archlinux/torxed-launchwarning
Torxed launchwarning
2021-04-11 22:33:29 +00:00
Anton Hvornum 613133f96f Added some bold colors 2021-04-12 00:17:23 +02:00
Anton Hvornum 8355bbe476 Adds a warning for UEFI not on 2021-04-12 00:16:21 +02:00
Anton Hvornum 398f95ee56 Merge branch 'master' into torxed-v2.2.0 2021-04-12 00:09:55 +02:00
Dylan M. Taylor de693b7080
Make it yellow 2021-04-11 16:51:07 -04:00
Dylan M. Taylor 6cc546887d
If user does not change keyboard language, log it. 2021-04-11 16:04:03 -04:00
Anton Hvornum 6f08ad1d4b
Merge pull request #275 from dylanmtaylor/continuous-integration
GitHub Actions: Build Arch Live ISO With Each Commit Included
2021-04-11 19:48:59 +00:00
Dylan M. Taylor 2321a7afce
Update iso-build.yaml 2021-04-11 14:53:06 -04:00
Dylan Taylor 3cec44463f Merge remote-tracking branch 'archlinux/master' into continuous-integration 2021-04-11 11:02:02 -04:00
Anton Hvornum be45268d0b
Merge pull request #278 from dylanmtaylor/mate-desktop
Implement MATE desktop environment
2021-04-11 14:23:29 +00:00
Dylan Taylor cf46642037 Implement MATE desktop environment 2021-04-11 10:19:25 -04:00
Anton Hvornum 75b6ab396e
Merge pull request #181 from zosman1/enhancement-systemd-service-wrapper
Allow multiple services to be enabled at once
2021-04-11 08:44:37 +00:00
Anton Hvornum 94c31222fa
Merge pull request #276 from archlinux/torxed-gfx-fix
Fixed PR #273. Moved the graphic drivers into hardware
2021-04-11 08:21:38 +00:00
Anton Hvornum 1292c07796
Fixed PR #273. Moved the graphic drivers into hardware since they are hardware specific, in the long run maybe we move them into 'drivers' or something. And moved the user interaction from gfx_drivers into user_interactions. And removed the import from installer.py to __init__.py since we don't want to import 'global functions' in extension imports. 2021-04-11 10:20:33 +02:00
Anton Hvornum 0d14b4b9dc
Merge pull request #273 from dylanmtaylor/patch-2
Restructure Graphics Driver Selection for 2.2.0
2021-04-11 07:58:29 +00:00
Dylan M. Taylor 0762a7173c Automatically change directory and replace archinstall on boot 2021-04-10 17:59:59 -04:00
Dylan M. Taylor 92b8143743 Build Arch Live ISO with Each Commit
The bind mount is probably not necessary
2021-04-10 17:32:43 -04:00
Anton Hvornum 6fb0f006d0
Merge pull request #272 from dylanmtaylor/partition-size
Show size in partition string representation
2021-04-10 21:05:02 +00:00
Dylan Taylor 09f252d031 Make desktop.py line match master. 2021-04-10 13:29:20 -04:00
Dylan Taylor f74dab9a5a Don't want prompt twice 2021-04-10 12:14:17 -04:00
Dylan Taylor 78aba78db7 Fix issue #263 2021-04-10 12:09:02 -04:00
Dylan Taylor 5f46f76bd5 Multiple restructuring changes 2021-04-10 11:58:53 -04:00
Dylan M. Taylor d510ad5b98
Delete wayland.py 2021-04-10 11:37:04 -04:00
Dylan Taylor a7b01aa29e Show size in partition string representation 2021-04-10 11:11:09 -04:00
Anton Hvornum b344c63f04
Merge pull request #268 from dylanmtaylor/remove-greeter-settings-gui
Remove lightdm-gtk-greeter-settings
2021-04-10 11:38:09 +00:00
Anton Hvornum ef702c2f20
Merge pull request #265 from dylanmtaylor/patch-6
i3-sensible-terminal can't find a terminal on new install
2021-04-10 11:37:23 +00:00
Anton Hvornum 7c9cf27353
PR #262: Fixes awesome profile
Resolve #261 and related issues
2021-04-10 11:36:21 +00:00
Anton Hvornum afda647623
PR #271: (breaking changes) This fixes #124 and some more
(breaking changes) This fixes #124 and some more
2021-04-10 09:56:54 +00:00
Anton Hvornum 474ce6a4d5
Merge pull request #270 from NicoHood/patch-1
fix typo
2021-04-10 09:56:09 +00:00
Anton Hvornum 8429510736
Pulled in master to avoid merge conflicts. 2021-04-10 11:22:15 +02:00
Anton Hvornum 48e801e6fd
Added a mission statement, and updated the minimal example in the readme. 2021-04-10 11:21:24 +02:00
NicoHood b9148f6d3b
fix typo 2021-04-10 10:55:49 +02:00
Anton Hvornum d9fc8abf02
Added a #TODO 2021-04-10 10:25:59 +02:00
Anton Hvornum 1e0770e582
Modified encrypted partitions to use partuuid for now. 2021-04-10 10:14:15 +02:00
Dylan Taylor 29ecf232d4 Remove lightdm-gtk-greeter-settings 2021-04-10 00:21:15 -04:00
Zach Osman c674bbd302 update docs 2021-04-09 23:11:58 -04:00
Zach Osman aee0440621 Merge branch 'master' into enhancement-systemd-service-wrapper 2021-04-09 22:56:54 -04:00
Dylan M. Taylor 40b3a935eb i3-sensible-terminal can't find a terminal on new install
Add urxvt, the most preferred terminal according to https://man.archlinux.org/man/i3-sensible-terminal.1
Update i3.py
Update i3.py
2021-04-09 22:13:52 -04:00
Anton Hvornum e7ad4038bd
Fixing UUID on encrypted partitions. 2021-04-10 00:06:25 +02:00
Dylan M. Taylor 4550076432
Try to solve #261 and related issues 2021-04-09 18:05:00 -04:00
Anton Hvornum 103320b061
Fixing broken logic in guided 2021-04-09 23:43:17 +02:00
Anton Hvornum 22eb6e023d
Fixing broken logic in guided 2021-04-09 23:42:28 +02:00
Anton Hvornum 9b2f627d9e
Fixing broken logic in guided 2021-04-09 23:41:13 +02:00
Anton Hvornum 99c18d5d66
Removed some debugging. 2021-04-09 23:26:16 +02:00
Anton Hvornum f031bb077c
List function call error. 2021-04-09 23:18:59 +02:00
Anton Hvornum 0531e3a0d6
Attempting to correct some inconsitencies in disk-parent reporting. 2021-04-09 23:18:04 +02:00
Anton Hvornum e49b73cef4
Attempting to correct some inconsitencies in disk-parent reporting. 2021-04-09 23:12:47 +02:00
Anton Hvornum c7b2133376
Attempting to correct some inconsitencies in disk-parent reporting. 2021-04-09 22:58:41 +02:00
Anton Hvornum 8f096001b6
Attempting to correct some inconsitencies in disk-parent reporting. 2021-04-09 22:34:26 +02:00
Anton Hvornum f1b42216a7
Merge pull request #259 from dylanmtaylor/patch-4
Forgot to commit adding budgie to desktop profile
2021-04-09 20:10:23 +00:00
Anton Hvornum 0370c44ed8
Enabled skipping partitioning in minimal. It now can take /mnt just as guided as it's destination, and skips partitioning all together. Which makes it go straight to installation. 2021-04-09 22:08:33 +02:00
Anton Hvornum 97540293b8
Removed some debugging auto-unmount 2021-04-09 22:06:17 +02:00
Dylan M. Taylor 3eeb49bd44
Forgot to commit adding budgie to desktop profile 2021-04-09 16:02:26 -04:00
Anton Hvornum 5099376dcd
Attempting to fix auto-detection of encrypted drives. So that #124 can perform reverse detection on partitions and detect encryption. 2021-04-09 21:50:53 +02:00
Anton Hvornum 495cd0d5cb
Update i3.py 2021-04-09 21:42:37 +02:00
Anton Hvornum 5bc8ca361a
Update i3.py 2021-04-09 21:42:24 +02:00
Anton Hvornum 33ad831709
Merge pull request #258 from dylanmtaylor/patch-3
Further i3 simplification and cleanup
2021-04-09 19:36:07 +00:00
Anton Hvornum ac1dac3fc3
Merge pull request #257 from dylanmtaylor/patch-2
Add more suggested packages to sway
2021-04-09 19:35:51 +00:00
Dylan M. Taylor 40df2d6e80 Further i3 simplification and cleanup 2021-04-09 15:32:01 -04:00
Dylan M. Taylor 8d627d0c09
Add more suggested packages to sway 2021-04-09 14:19:46 -04:00
Anton Hvornum f57b533275 Added some debug output
Adding debug output for additional package selection.
2021-04-09 20:18:14 +02:00
Anton Hvornum b046f7e0e5
Merge pull request #256 from dylanmtaylor/backport-patches
Merge cherry-picked patches for NetworkManager and PipeWire
2021-04-09 17:01:41 +00:00
Dylan M. Taylor 6a0b839bc8
pipewire-docs isn't really needed. 2021-04-09 11:59:47 -04:00
Advaith Madhukar b6ad3dffc9 fixed network manager check 2021-04-09 11:50:31 -04:00
advaithm dd61830d2b fixed some typos and changed up how we detect if we have to enable/install network manager 2021-04-09 11:50:31 -04:00
advaithm 46c43b25a6 moved around the if block 2021-04-09 11:50:31 -04:00
advaithm 75a36e2fdc fixed typo 2021-04-09 11:50:31 -04:00
advaithm 55622fd79d install networkmanager, if required 2021-04-09 11:50:31 -04:00
advaithm e1e813fc5e updated guided.py to allow network manager as nic 2021-04-09 11:50:31 -04:00
advaithm cab53ef8f6 networkmanager support 2021-04-09 11:48:20 -04:00
Anton Hvornum cf1fd9e257 Safety precaution by using .get instead of ["..."] 2021-04-09 11:47:47 -04:00
Dylan Taylor 45c321e327 Assume yes is the user's intention if empty response for pipewire prompt 2021-04-09 11:47:40 -04:00
Dylan Taylor 4c92879c1d Make audio server selection only prompt for desktop profiles 2021-04-09 11:47:35 -04:00
Anton Hvornum 9312076cfe Change phrasing to indicate pulseaudio as default 2021-04-09 11:46:59 -04:00
Anton Hvornum dbea18dab8 Switched from print to installation.log 2021-04-09 11:46:53 -04:00
Dylan Taylor d252e090a6 Have pulseaudio installed just in case DEs don't depend on it if pipewire is not requested. 2021-04-09 11:46:47 -04:00
Dylan Taylor 9395d68d5d Try removing pipewire.py and calling add additional packages
Unfortunately, calling the profile was not working.
2021-04-09 11:46:39 -04:00
Dylan M. Taylor b803c281ea Move choice into guided installation instead of DEs
Arch wiki says packages should enable the user services automatically
2021-04-09 11:46:24 -04:00
Dylan M. Taylor 9a6c0e7a41 Begin implementing PipeWire option 2021-04-09 11:45:57 -04:00
Anton Hvornum bd134c5db0
Moved the 'use /mnt' logic to during disk selection. 2021-04-09 17:33:44 +02:00
Anton Hvornum 1f1f269e93
Update README.md 2021-04-09 16:23:06 +02:00
Dylan M. Taylor 4904b70db6
Update README.md 2021-04-09 10:18:34 -04:00
Dylan M. Taylor 8f48e1ac69
Update README.md 2021-04-09 09:55:16 -04:00
Dylan M. Taylor 057f9cd028
Delete 52-54-00-12-34-56.py 2021-04-09 09:52:02 -04:00
Anton Hvornum 0dafeacabd
Removed some debugging 2021-04-09 15:42:35 +02:00
Anton Hvornum ce04406448
Added some debugging 2021-04-09 15:40:48 +02:00
Anton Hvornum f298b9e393
Added a 'use /mnt' option to the formatted #124. This has not yet been tested, but the logic should work according to the new API layout for Installation(). 2021-04-09 15:27:22 +02:00
Anton Hvornum 5543cb9eda
Merge pull request #254 from dylanmtaylor/budgie
Add missing cherry-picked commits and implement Budgie
2021-04-09 13:09:28 +00:00
Anton Hvornum 740eccb213
Removed 'getpass' from imports. 2021-04-09 15:06:34 +02:00
Dylan Taylor 326b96d808 Add budgie implementation 2021-04-09 08:32:58 -04:00
m1ten b86233d7ba add lightdm-gtk-greeter 2021-04-09 08:26:37 -04:00
m1ten 738e60c059 applications/xfce4 2021-04-09 08:26:30 -04:00
m1ten 5499bcc8b9 applications/cinnamon 2021-04-09 08:26:07 -04:00
Anton Hvornum 5e0a192a9a
Bringing in changes from master 2021-04-09 14:01:34 +02:00
Anton Hvornum da12f36305
Forgot to give a password during encryption. 2021-04-09 13:59:55 +02:00
Anton Hvornum 4664bcf29d
Merge pull request #252 from dylanmtaylor/patch-4
As pointed out to me, sway doesn't officially support display managers
2021-04-09 11:47:03 +00:00
Anton Hvornum e9c8a51168
Merge pull request #253 from dylanmtaylor/patch-6
Add the sway packages from advaithm's 2.2.0 sway work
2021-04-09 11:46:33 +00:00
Anton Hvornum cea8892c7c
Setting .encrypted flag in minimal. 2021-04-09 13:44:03 +02:00
Anton Hvornum 9ebd8b8719
Change of variables to support new partition lookup. 2021-04-09 13:13:14 +02:00
Anton Hvornum 72ad1ad5e0
Fixed some log output logic for the boot partition. 2021-04-09 13:07:08 +02:00
Anton Hvornum 56239d89b5
Fixed some log output logic for the boot partition. 2021-04-09 13:06:47 +02:00
Anton Hvornum fdcaeae6f2
Syntax error 2021-04-09 13:01:22 +02:00
Anton Hvornum ee89c55466
Started patching HOOKS and MODULES based on partition iteration. Also fixed some pseudo code. 2021-04-09 13:01:01 +02:00
Dylan M. Taylor 02f4392c22 As pointed out to me, sway doesn't officially support display managers 2021-04-09 06:52:18 -04:00
Dylan M. Taylor d50b26498e Add the sway packages from advaithm's 2.2.0 sway work
Remove sddm
2021-04-09 06:51:43 -04:00
Anton Hvornum 5c8d210f5f Wrong use of hostname in the set_hostname() function. 2021-04-09 12:43:14 +02:00
Anton Hvornum 59e3408de8
Fixed set_hostname() default. 2021-04-09 12:28:52 +02:00
Anton Hvornum 276414079b
Reworked Installation() to have self.target instead of self.mountpoint, to be more consistent and remove the hits that it has anything to do with partitions/hardware. 2021-04-09 12:00:51 +02:00
Anton Hvornum 7f62205281
Reworked Installation() to have self.target instead of self.mountpoint, to be more consistent and remove the hits that it has anything to do with partitions/hardware. 2021-04-09 11:58:12 +02:00
Anton Hvornum db7b3c8cca
Attempting default value None for block device to partition. 2021-04-09 11:56:35 +02:00
Anton Hvornum eb7ed1126b
Wrong variable name 2021-04-09 11:54:48 +02:00
Anton Hvornum eb0ae8b1c3
Added disk helper function get_partitions_in_use(). Which returns which partions are being used at a given mount location, including children. 2021-04-09 11:53:54 +02:00
Anton Hvornum 1395f0888c
Wrong variable. 2021-04-09 11:45:45 +02:00
Anton Hvornum 05e848ce62
Made sure the mount target path exists before mounting. 2021-04-09 11:45:06 +02:00
Anton Hvornum 3d659dead8
Merge pull request #251 from advaithm/torxed-v2.2.0
Split drivers from xorg and create a seprate profile for wayland. Remove the use of sddm from sway and raise issues with the nvidia drivers
2021-04-09 08:08:53 +00:00
Anton Hvornum e5c118239b
Merge pull request #250 from insanemal/insanemal-patch-2
OOB in generic_selection
2021-04-09 08:05:42 +00:00
Anton Hvornum f45429b099
Merge pull request #247 from dylanmtaylor/patch-3
draft: Cherry-Pick i3 Profiles and Make Common i3 Package
2021-04-09 08:05:12 +00:00
Anton Hvornum bfb342dc2d
Merge pull request #246 from dylanmtaylor/patch-2
Add vim to desktop packages as having different editors to choose from is good
2021-04-09 08:03:34 +00:00
advaithm b85514ae5e renamed driver.py to gfx_driver.py. also explictly check if we are using the propritery nvidia drivers 2021-04-09 13:28:12 +05:30
Anton Hvornum ad25f92c38
Merge pull request #249 from goggle/patch-248
Fix typo that causes crash when creating encrypted LUKS partition (closes #248)
2021-04-09 07:57:39 +00:00
advaithm 349c3ec5b4 Update sway.py 2021-04-09 13:16:39 +05:30
advaithm 8a39bdde4b added information on how to start sway 2021-04-09 12:13:41 +05:30
advaithm 1a760c591f Update sway.py 2021-04-09 12:05:51 +05:30
Insanemal acc2dac652
Off by one in generic_selection out of bounds check
Out of bounds check in generic_selection is using >= on list. Lists are zero based. If you put in a value that equals the number of items in the list you get an out of bounds error. 

Removed the equals part of the test as last item in list/dictionary items is len(list)-1 not len(list)
2021-04-09 13:44:51 +10:00
Alexander Seiler 437315669f
Fix typo that causes crash when creating encrypted LUKS partition (closes #248) 2021-04-09 05:00:43 +02:00
Dylan Taylor 82c5241946 This might work to make the i3 profiles as small as possible 2021-04-08 21:24:21 -04:00
Dylan Taylor 7e161d187c Remove post-install hooks from i3 profiles 2021-04-08 21:20:00 -04:00
Dylan Taylor 6a6439daa9 Move more logic into common profile 2021-04-08 21:11:33 -04:00
Dylan Taylor a5eb815b3e Move common packages to common i3 profile 2021-04-08 21:00:55 -04:00
Dylan Taylor 37db6b8973 Add is_top_level_profile = False to i3 profiles 2021-04-08 20:58:52 -04:00
Anton Hvornum 8f7d8df89f Swapped print for log and added return values 2021-04-08 20:57:46 -04:00
Dylan M. Taylor e3ea46ce5c Noticed that some KDE instances weren't changed to i3 when copying
Another one
2021-04-08 20:57:12 -04:00
Anton Hvornum 8c5af80c93 Some language correction and function handling
I more or less copied the language from i3-wm as it was more correct.
Also converted `print()` into `installation.log()` so that we can get some color control and end up in the debug log.
Finally, I added a try/except to handle potential crashes and return return values, since otherwise this would happen every run:
 * https://github.com/archlinux/archinstall/pull/190/files#diff-98d75a109b5337cd7d7c948d2cfc2379bcc51be22dfa3ca6491765f0e0bcaaabR349-R355
2021-04-08 20:57:04 -04:00
advaithm 230c5709cc added _post_install hook. 2021-04-08 20:56:45 -04:00
advaithm 6b5b3180f3 add i3-wm and i3-gaps support 2021-04-08 20:55:54 -04:00
Dylan M. Taylor 6f4b35c4e8
Add i3 profile to desktop.py 2021-04-08 20:54:34 -04:00
Dylan M. Taylor 32c902a4d8
draft: Make i3 package to select i3 configuration 2021-04-08 20:52:47 -04:00
Dylan M. Taylor 8ec18d94bb
Add vim to desktop packages as not everyone likes nano 2021-04-08 18:28:13 -04:00
Anton Hvornum 08cf788eaa
Reworked the mkinitcpio configuration to be more robust according to the logic behind #91 and in prep for #145. Also in prep for #124 the lookup of partitions have been prepared here. We now need a reverse-lookup function. 2021-04-08 22:58:45 +02:00
Anton Hvornum e717a72a10
Starting implementing #124. The installer will be detatched from block devices and partitions. Instead it will rely on a given destination to pacstrap to. From there, it should be able to do reverse-lookups on the target and base it's information and choises from there. This removes any form of partitioning logic, hardware logic and other things from the initialization of the installer. These things should be explicitly called from the installers functions instead. Such as .set_hostname() instead of passing it as a initiation variable. 2021-04-08 22:47:13 +02:00
Anton Hvornum 99d75c2831
Merge pull request #244 from dylanmtaylor/lxqt
Implementation of LXQt
2021-04-08 20:36:33 +00:00
Dylan M. Taylor 51f533539d
Change xscreensaver to slock 2021-04-08 16:34:17 -04:00
Dylan M. Taylor 9545680459
breeze-icons and oxygen-icons are both needed to not have missing icons 2021-04-08 16:21:46 -04:00
Dylan M. Taylor adb73f5ba6
It was far too minimal to be usable before. 2021-04-08 16:10:33 -04:00
Dylan Taylor 0d194e2606 Initial implementation of LXQt 2021-04-08 15:54:54 -04:00
Anton Hvornum ef89010efe
Merge pull request #243 from archlinux/torxed-patch-master
Re-working examples/minimal.py
2021-04-08 19:51:05 +00:00
Anton Hvornum 154e048179
Merge pull request #239 from dylanmtaylor/patch-1
Remove nano from base packages
2021-04-08 19:43:35 +00:00
Anton Hvornum 70de1ffbd9
Merge pull request #242 from dylanmtaylor/cinnamon
Pull in Cinnamon and XFCE4 Commits from 2.2.0 into Master
2021-04-08 19:43:06 +00:00
Dylan Taylor 72f3423798 Integrate XFCE4 with master 2021-04-08 15:41:08 -04:00
Dylan M. Taylor 84e6db27bb Fix another incorrect comment on XFCE4 profile 2021-04-08 15:40:20 -04:00
m1ten eb7497f2aa Update xfce4.py 2021-04-08 15:40:09 -04:00
m1ten c2c1126254 xfce4 2021-04-08 15:39:44 -04:00
Dylan Taylor dfec4b77fd Integrate cinnamon with changes on master. 2021-04-08 15:35:33 -04:00
Dylan M. Taylor 5ec1e1d4f5 Fix incorrect comment. Cinnamon doesn't have any Wayland support yet. 2021-04-08 15:34:21 -04:00
Anton Hvornum ab2a43e19f Forgot a variable. 2021-04-08 21:33:49 +02:00
m1ten 0934f4c3e7 Create cinnamon.py 2021-04-08 15:33:37 -04:00
Anton Hvornum 19db5919f6
Merge pull request #241 from dylanmtaylor/patch-3
Implement Sway and use SDDM as Greeter
2021-04-08 19:17:52 +00:00
Dylan Taylor e49f983036 Add sway profile to desktop file 2021-04-08 15:15:44 -04:00
Dylan Taylor 8c9b162049 Implement Sway
Try switching from gdm to sddm as gdm pulls in a lot of GNOME packages

Fix comment
Update sway.py
2021-04-08 15:14:26 -04:00
Anton Hvornum b5245b31fe
I simplified the countdown, by moving it into it's own function instead of wrapped inside guided.. This can now be used by others for a simple countdown. I also re-worked the minimal.py example to work with the new internal partitioning logic API as well as support some flags from archinstall.arguments to minimize user input requirements to just one single question. This one question will most likely go away too, but stays for simplicity right now. 2021-04-08 21:14:19 +02:00
Dylan M. Taylor be208990da
Remove nano from base packages 2021-04-08 14:00:57 -04:00
Anton Hvornum ae2da06075
Added a safety check to verify that the encrypted partition exists at least before trying to open it. 2021-04-08 19:56:29 +02:00
Anton Hvornum 6010d62bf5
Merge pull request #238 from dylanmtaylor/patch-1
Move some packages from awesome to desktop generic profile and add wireless/SMART tools
2021-04-08 17:51:34 +00:00
Dylan M. Taylor d8a2437778 Move from awesome to desktop and add wireless config utilities and smartmontools 2021-04-08 13:33:06 -04:00
Anton Hvornum c5d099c3fa
Wrong indentation on comment. 2021-04-08 19:03:04 +02:00
Anton Hvornum d988d81690
Merging in quality of life improvements from 2.2.0 into 2.1.4 (master)
Selectively bringing in quality of life improvements from v2.2.0 work into master
2021-04-08 14:53:04 +00:00
Dylan M. Taylor 7fdbfaaaf9
Merge branch 'master' into quality-of-life 2021-04-08 09:57:30 -04:00
Dylan Taylor 25309dcfb8 Disable post-install hooks for now 2021-04-08 09:55:35 -04:00
advaithm db068dfe06 Update kde.py 2021-04-08 09:51:11 -04:00
advaithm 57200d3d93 removed post_install hook 2021-04-08 09:51:11 -04:00
Dylan M. Taylor 608bada172 Clean up comments a bit 2021-04-08 09:51:11 -04:00
Dylan Taylor 8fc91c4f18 Fix issue with prep function 2021-04-08 09:51:11 -04:00
Dylan Taylor 4059d62e55 Add filtration on top level profile 2021-04-08 09:51:11 -04:00
Dylan Taylor ea81759e40 Add minimal profile and implement idea of 'top-level' profiles 2021-04-08 09:51:11 -04:00
Dylan M. Taylor c07d63296b It was pointed out that khelpcenter isn't strictly necessary 2021-04-08 09:51:11 -04:00
Dylan M. Taylor 858585e7d7 Switch from metapackage to a more minimal install 2021-04-08 09:51:11 -04:00
Anton Hvornum b8774236dd Added a forgotten return value of _post_install 2021-04-08 09:51:11 -04:00
advaithm 56df79d647 added egl-wayland and changed prompt 2021-04-08 09:51:11 -04:00
advaithm 130f5729a0 ask user for default session over asking if they want wayland 2021-04-08 09:51:11 -04:00
advaithm 210e53ca3e Update kde.py 2021-04-08 09:51:11 -04:00
advaithm 926906d946 merge kde and kde-wayland 2021-04-08 09:51:11 -04:00
advaithm 44df0f6046 added _post_install hook. 2021-04-08 09:51:11 -04:00
advaithm a16723abde Update guided.py 2021-04-08 09:51:11 -04:00
Anton Hvornum 44574d1921 Fixing glitch in variable use after moving to __packages__ definition. 2021-04-08 09:44:04 -04:00
Anton Hvornum 57a458e4ee Updating documentation. 2021-04-08 09:20:39 -04:00
Anton Hvornum c6e7bb4595 Corrected the new-line parameter 2021-04-08 09:20:39 -04:00
Dylan M. Taylor b96ba6e237 Break web browser suggestion into second line to avoid wrapping 2021-04-08 09:20:39 -04:00
Dylan M. Taylor ef2e1fd239 Make the minimal installation example use the minimal profile instead of awesome wm 2021-04-08 09:20:39 -04:00
Anton Hvornum 8728ec8e66 Update pull_request_template.md 2021-04-08 09:20:39 -04:00
Anton Hvornum 8a7e261c3f Update pull_request_template.md 2021-04-08 09:20:39 -04:00
Anton Hvornum 67d05d24eb Update pull_request_template.md 2021-04-08 09:20:39 -04:00
Anton Hvornum 7ce2051a26 Update pull_request_template.md 2021-04-08 09:20:39 -04:00
Jatin e4ca6d8328 Remove gnome-todo and gnome-sound-recorder from default installation
gnome todo and gnome sound recorder should not be in default installation, honoring the Arch Linux philosophy. These packages are not even pre installed on other major linux distributions.
2021-04-08 09:20:39 -04:00
Dylan M. Taylor 89c0105d4c python setup.py build is not needed if you call install 2021-04-08 09:20:39 -04:00
Dylan M. Taylor 8bfa24d6c6 After testing pacman -R, I noticed it didn't work right 2021-04-08 09:20:39 -04:00
Anton Hvornum 0957ce4f00 Update README.md 2021-04-08 09:20:39 -04:00
Anton Hvornum 837469bf76 Made it into more of a "step by step" structure 2021-04-08 09:20:39 -04:00
Dylan M. Taylor 4afcde09f3 This is probably more technically correct 2021-04-08 09:20:39 -04:00
Dylan M. Taylor 9d076fad89 DOCS: How to test a commit from a live image 2021-04-08 09:20:39 -04:00
Anton Hvornum e9a3e8661e Moved the print logic for browser warning 2021-04-08 09:20:39 -04:00
Dylan M. Taylor b483c718da Add a message about specifying a web browser 2021-04-08 09:20:39 -04:00
Dylan M. Taylor 186f12c5f1 Remove chromium from default awesome install
Promotes a consistent installation experience across DEs.
2021-04-08 09:20:39 -04:00
Dylan M. Taylor 8bc1f0d420 Remove evolution from default installation as suggested
It was pointed out that users can install an email client if they want one.
2021-04-08 09:20:39 -04:00
SecondThundeR 23fc3ab2f2 Fix incorrect behavior for empty sudo username 2021-04-08 09:20:39 -04:00
Pyfisch b6e9f11669 Fix PKGBUILD conflicts and add provides line 2021-04-08 09:20:39 -04:00
Anton Hvornum 5134fb75c6 Corrected for keymap before encrypt hook
Also think that we should patch mkinitcpio, not replace it.
Especially in the btrfs case where we simply just want to add `btrfs` to the `MODULES` section.
2021-04-08 09:20:39 -04:00
Dylan M. Taylor a3ace5e36e This comment should no longer apply. This is a fairly sane default for GNOME. 2021-04-08 09:20:39 -04:00
Dylan M. Taylor 9c82bde2fc gnome-sound-recorder is probably also desirable 2021-04-08 09:20:39 -04:00
Dylan M. Taylor 81aa1df82a Fix #183 gnome-extras installs far too much bloat
This keeps some of the most useful packages from the defaults.
2021-04-08 09:20:39 -04:00
Pyfisch e9af6a0b35 Indent using 8 spaces in PKGBUILD 2021-04-08 09:20:39 -04:00
Pyfisch d1be941336 Add primary PKGBUILD for testing the package 2021-04-08 09:20:39 -04:00
Pyfisch 16e6188f1d Remove outdated PKGBUILD files
setup.cfg whitespace changes.
2021-04-08 09:20:39 -04:00
Pyfisch 01aa1da474 Add console_scripts archinstall entry point
archinstall should be callable from the command-line.
Previously this was achieved with a shell script,
however Python packages contain a built in way to to
this via the entry points mechanism.
2021-04-08 09:20:39 -04:00
Pyfisch 5bc9ab3aac Switch to setup.cfg
Configure setup.cfg to find all Python packages.
Add more metadata to package.
2021-04-08 09:20:39 -04:00
Pyfisch 5a07bfbebd Add .pyproject.toml file for PEP 517 compliance 2021-04-08 09:20:39 -04:00
SecondThundeR b3aa1ef695 Update regex rule and move check to a function 2021-04-08 09:20:39 -04:00
SecondThundeR caeb1d433f Replace lowercase conversion with correct checking 2021-04-08 09:20:39 -04:00
SecondThundeR 3640ee8d25 Add lowercase conversion for usernames 2021-04-08 09:20:39 -04:00
Anton Hvornum d771d35076 Update installer.py 2021-04-08 09:20:39 -04:00
Ruslan Kiyanchuk b178dc7267 Fix undefined variables in installer 2021-04-08 09:10:55 -04:00
Anton Hvornum e70aa5244b
Corrected the new-line parameter 2021-04-08 10:36:42 +02:00
advaithm 9d6541aaa6 sway, wayland specific files. drivers has also been split from xorg 2021-04-08 14:06:27 +05:30
Anton Hvornum f8bf2b313a
Merging in master into feature branch. 2021-04-08 08:39:37 +02:00
Anton Hvornum 3ba03f9e73
Merge pull request #232 from advaithm/torxed-v2.2.0
removed post_install hook for kde plasma
2021-04-08 06:24:41 +00:00
Anton Hvornum e4da0d33fa
Merge pull request #230 from dylanmtaylor/pipewire-in-desktop-profile
Only ask for audio server selection on a desktop profile (depends on #219)
2021-04-08 06:18:18 +00:00
Anton Hvornum cdf6fc796f
Safety precaution by using .get instead of ["..."] 2021-04-08 08:17:40 +02:00
Anton Hvornum 0868156a73
Merge pull request #231 from dylanmtaylor/patch-2
Break web browser suggestion into second line to avoid wrapping
2021-04-08 06:14:16 +00:00
Anton Hvornum b2b9ac2d40
Merge pull request #219 from dylanmtaylor/minimal-install-profile
Add minimal profile and implement idea of 'top-level' profiles
2021-04-08 06:10:28 +00:00
Anton Hvornum 8d4e092287
Merge pull request #228 from dylanmtaylor/patch-1
Make the minimal installation example use the minimal profile instead of awesome wm
2021-04-08 06:06:04 +00:00
Insanemal 303dbd567a
Merge pull request #1 from archlinux/master
Sync to master
2021-04-08 14:11:23 +10:00
advaithm 57de67e5fb Update kde.py 2021-04-08 08:26:57 +05:30
advaithm 78d58eb4b7 removed post_install hook 2021-04-08 07:23:37 +05:30
Dylan Taylor f4233e73f0 Assume yes is the user's intention if empty response for pipewire prompt 2021-04-07 21:31:28 -04:00
Dylan Taylor fd7510a88c Make audio server selection only prompt for desktop profiles 2021-04-07 20:38:20 -04:00
Dylan M. Taylor 8e722d07cf
Break web browser suggestion into second line to avoid wrapping 2021-04-07 20:28:30 -04:00
Dylan M. Taylor 09b4e5bbc0
Make the minimal installation example use the minimal profile instead of awesome wm 2021-04-07 19:41:25 -04:00
Dylan Taylor 75008f3f0e Merge remote-tracking branch 'dylanmtaylor/minimal-install-profile' into torxed-v2.2.0 2021-04-07 19:28:49 -04:00
Anton Hvornum b7891f5003
Merge pull request #221 from advaithm/torxed-v2.2.0
added support to automagically add ucode to initrd
2021-04-07 22:25:04 +00:00
Anton Hvornum eb5795b7db
Update pull_request_template.md 2021-04-07 21:57:25 +02:00
Anton Hvornum 4975d3d420
Update pull_request_template.md 2021-04-07 21:57:04 +02:00
Anton Hvornum c90e0c3bf7
Update pull_request_template.md 2021-04-07 21:55:23 +02:00
Anton Hvornum 183b1130b1
Update pull_request_template.md 2021-04-07 21:55:00 +02:00
Dylan Taylor 10649639ac Merge remote-tracking branch 'dylanmtaylor/minimal-install-profile' into minimal-install-profile 2021-04-07 12:09:15 -04:00
Dylan Taylor 2d797e7819 Remove ,newline='\n' so this branch works for testing
This change is already merged but add to this branch for testing
2021-04-07 12:09:11 -04:00
Dylan M. Taylor bf91c66ba8
Clean up comments a bit 2021-04-07 11:54:10 -04:00
Dylan M. Taylor e7a140248c
Remove TODO line - it's functional and tested to work. 2021-04-07 11:52:49 -04:00
nullrequest 8ad2200441
Fixed typos 2021-04-07 21:12:43 +05:30
Dylan Taylor 99917807bd Fix issue with prep function 2021-04-07 11:33:01 -04:00
Anton Hvornum 67ea1bc29c
Merge pull request #223 from jatin-cbs/master
Remove gnome-todo and gnome-sound-recorder from default installation
2021-04-07 14:34:02 +00:00
Jatin 7e75ff960b
Remove gnome-todo and gnome-sound-recorder from default installation
gnome todo and gnome sound recorder should not be in default installation, honoring the Arch Linux philosophy. These packages are not even pre installed on other major linux distributions.
2021-04-07 19:18:34 +05:30
Dylan Taylor 9756d9ed2d Add i3 selections to desktop file 2021-04-07 09:23:21 -04:00
Dylan Taylor f85fb66bc6 Add filtration on top level profile 2021-04-07 09:23:08 -04:00
Anton Hvornum 87d37193e5
Merge PR #208: Temporary incorp of audio selection
Implement PipeWire sound server as an option, merging so we can work on this more. No this will not make it into the release as-is, it's just a working branch and this will change :)
2021-04-07 12:55:28 +00:00
Anton Hvornum d6a92df789
Reverted a change with newline to open 2021-04-07 14:52:15 +02:00
Dylan Taylor ac7d980f89 Add minimal profile and implement idea of 'top-level' profiles 2021-04-07 08:37:39 -04:00
advaithm 36bad8254f added support to automatically add ucode to initrd 2021-04-07 17:21:31 +05:30
Anton Hvornum 04bc9ce05f
Merge pull request #217 from advaithm/torxed-v2.2.0
added isVM function
2021-04-07 11:40:28 +00:00
advaithm d9480ee8a0 added isVM function 2021-04-07 17:00:55 +05:30
Anton Hvornum 42470dcc9a Merging changes from master into feature branch to avoid future conflics. 2021-04-07 11:15:42 +02:00
Anton Hvornum 5ca64b59a6
Merge pull request #212 from advaithm/torxed-v2.2.0
added return value for functions in hardware.py plus cpuVendor function
2021-04-07 07:46:36 +00:00
Anton Hvornum 50c354471f
Change phrasing to indicate pulseaudio as default 2021-04-07 09:29:50 +02:00
Anton Hvornum 86699ae23e
Switched from print to installation.log 2021-04-07 09:28:16 +02:00
Anton Hvornum 1d60e307e8
Merge pull request #215 from insanemal/newline-fix
Fix newline issue on fstab writes
2021-04-07 07:22:46 +00:00
Insanemal 275e60e1dd
Fix newline issue on fstab writes
Forced the newline char fstab writes as Python appears to be selecting the incorrect newlines
2021-04-07 13:44:04 +10:00
advaithm 86b4a5dc12 added hasIntelCPU 2021-04-07 07:55:46 +05:30
Dylan Taylor fb2c9aca39 Have pulseaudio installed just in case DEs don't depend on it if pipewire is not requested. 2021-04-06 22:20:07 -04:00
Dylan Taylor 93750dbd22 Try removing pipewire.py and calling add additional packages
Unfortunately, calling the profile was not working.
2021-04-06 22:20:07 -04:00
Dylan M. Taylor d9984550b6 Move choice into guided installation instead of DEs
Arch wiki says packages should enable the user services automatically
2021-04-06 22:19:41 -04:00
Dylan M. Taylor 9436ca7805 Begin implementing PipeWire option 2021-04-06 22:18:44 -04:00
advaithm 5c83682efd added return value for functions in hardware.py plus cpuVendor function 2021-04-07 07:29:49 +05:30
Anton Hvornum 39e354f395
Merge pull request #207 from dylanmtaylor/patch-12
Fix another incorrect comment on XFCE4 profile
2021-04-06 21:14:14 +00:00
Anton Hvornum dc30e0cfc1
Merge pull request #206 from dylanmtaylor/patch-11
Fix incorrect comment. Cinnamon doesn't have any Wayland support yet.
2021-04-06 21:12:16 +00:00
Anton Hvornum e103f2bc02
Merge pull request #203 from dylanmtaylor/patch-10
DOCS: How to test a commit from a live image
2021-04-06 21:10:23 +00:00
Dylan M. Taylor 0a5a929f5b
Fix another incorrect comment on XFCE4 profile 2021-04-06 16:55:04 -04:00
Dylan M. Taylor c6eb3dfbdf
Fix incorrect comment. Cinnamon doesn't have any Wayland support yet. 2021-04-06 16:53:20 -04:00
Dylan M. Taylor 08b48a144b
python setup.py build is not needed if you call install 2021-04-06 16:32:09 -04:00
Dylan M. Taylor 49e21cd043
After testing pacman -R, I noticed it didn't work right 2021-04-06 16:25:57 -04:00
Anton Hvornum 42d0d1af1e
Update README.md 2021-04-06 22:23:15 +02:00
Anton Hvornum 741df875da
Made it into more of a "step by step" structure 2021-04-06 22:21:45 +02:00
Dylan M. Taylor e1420af189
This is probably more technically correct 2021-04-06 16:19:34 -04:00
Anton Hvornum 0791222081
Merge pull request #202 from dylanmtaylor/patch-9
It was pointed out that khelpcenter isn't strictly necessary
2021-04-06 19:19:38 +00:00
Dylan M. Taylor 5adc6e1785
DOCS: How to test a commit from a live image 2021-04-06 14:53:01 -04:00
Dylan M. Taylor 0a1e0641a9
It was pointed out that khelpcenter isn't strictly necessary 2021-04-06 13:45:08 -04:00
Anton Hvornum 6c64c45fce
Merge pull request #201 from dylanmtaylor/patch-8
Noticed that some KDE instances weren't changed to i3 when copying
2021-04-06 17:35:23 +00:00
Dylan M. Taylor 87514ab515 Noticed that some KDE instances weren't changed to i3 when copying
Another one
2021-04-06 13:28:07 -04:00
Anton Hvornum a8da159f17
Merge pull request #200 from dylanmtaylor/patch-7
Add a message about specifying a web browser
2021-04-06 17:27:09 +00:00
Anton Hvornum 2e7930857b
Moved the print logic for browser warning 2021-04-06 19:05:52 +02:00
Dylan M. Taylor 6c3f46f617
Add a message about specifying a web browser 2021-04-06 13:03:42 -04:00
Anton Hvornum 09abdec82b
Merge pull request #199 from dylanmtaylor/patch-6
Remove chromium from default awesome install
2021-04-06 16:56:56 +00:00
Dylan M. Taylor 3e4c5bdb26
Remove chromium from default awesome install
Promotes a consistent installation experience across DEs.
2021-04-06 12:55:15 -04:00
Anton Hvornum bc2649aaaa
Merge pull request #197 from dylanmtaylor/patch-4
Switch from metapackage to a more minimal install
2021-04-06 16:36:19 +00:00
Dylan M. Taylor ee6cd39fe6
Switch from metapackage to a more minimal install 2021-04-06 12:33:13 -04:00
Anton Hvornum 3d5dc40dd7
Merge pull request #156 from rkiyanchuk/fix-undef-vars
Fix undefined variables in installer
2021-04-06 16:31:51 +00:00
Anton Hvornum ce2ebc0026
Merge branch 'master' into fix-undef-vars 2021-04-06 16:31:31 +00:00
Anton Hvornum 3da4dc8e30
Update installer.py 2021-04-06 18:30:20 +02:00
Anton Hvornum a62debde33
Merge pull request #192 from advaithm/kde-hook
Use _post_install for wayland
2021-04-06 16:27:46 +00:00
Anton Hvornum b968bec771
Added a forgotten return value of _post_install 2021-04-06 18:27:30 +02:00
Anton Hvornum 27853bf444
Merge pull request #196 from dylanmtaylor/patch-3
Remove evolution from default installation as suggested
2021-04-06 15:40:33 +00:00
Dylan M. Taylor aed763b763
Remove evolution from default installation as suggested
It was pointed out that users can install an email client if they want one.
2021-04-06 11:33:50 -04:00
advaithm 29d939cfca added egl-wayland and changed prompt 2021-04-06 18:59:05 +05:30
advaithm 5057035f3e ask user for default session over asking if they want wayland 2021-04-06 18:28:18 +05:30
advaithm aea819af15 Update kde.py 2021-04-06 17:36:20 +05:30
advaithm 972defdb80 Merge branch 'kde-hook' of git@github.com:advaithm/archinstall.git 2021-04-06 13:37:55 +05:30
advaithm 4f7fc94ecd merge kde and kde-wayland 2021-04-06 13:37:40 +05:30
Anton Hvornum 610d630863
Merge pull request #190 from advaithm/master
post install hook
2021-04-06 07:57:02 +00:00
Anton Hvornum 4af3bbac23
Phrasing and removed background coloring 2021-04-06 09:55:12 +02:00
Anton Hvornum 0df567286e
Swapped print for log and added return values 2021-04-06 09:54:24 +02:00
Anton Hvornum 2f153d4882
Some language correction and function handling
I more or less copied the language from i3-wm as it was more correct.
Also converted `print()` into `installation.log()` so that we can get some color control and end up in the debug log.
Finally, I added a try/except to handle potential crashes and return return values, since otherwise this would happen every run:
 * https://github.com/archlinux/archinstall/pull/190/files#diff-98d75a109b5337cd7d7c948d2cfc2379bcc51be22dfa3ca6491765f0e0bcaaabR349-R355
2021-04-06 09:53:28 +02:00
Anton Hvornum 1a09ad7bff
Merge pull request #188 from SecondThundeR/master
Fix incorrect behavior for empty sudo username
2021-04-06 07:16:46 +00:00
advaithm 9ddaa911fd
merge kde and kde-wayland 2021-04-06 08:34:34 +05:30
advaithm f0e40f5676 added _post_install hook. 2021-04-06 07:21:11 +05:30
Anton Hvornum 116fdb41c1
Merge pull request #187 from pyfisch/packaging2
Fix PKGBUILD conflicts and add provides line
2021-04-05 20:55:39 +00:00
Pyfisch c2b8dcca25 Fix PKGBUILD conflicts and add provides line 2021-04-05 22:25:40 +02:00
SecondThundeR 924b369233 Fix incorrect behavior for empty sudo username 2021-04-05 23:13:27 +03:00
Anton Hvornum 1da9e52d52
Corrected for keymap before encrypt hook
Also think that we should patch mkinitcpio, not replace it.
Especially in the btrfs case where we simply just want to add `btrfs` to the `MODULES` section.
2021-04-05 22:06:25 +02:00
Anton Hvornum ddd53e09b4
Merge pull request #184 from dylanmtaylor/patch-1
Fix #183 gnome-extras installs far too much bloat
2021-04-05 18:20:39 +00:00
Anton Hvornum 1240cbdaf7
Merge pull request #178 from pyfisch/packaging
Simplify packaging
2021-04-05 18:10:28 +00:00
Dylan M. Taylor 688d0eb78e
This comment should no longer apply. This is a fairly sane default for GNOME. 2021-04-05 13:44:16 -04:00
Dylan M. Taylor d28385bd05
gnome-sound-recorder is probably also desirable 2021-04-05 13:42:03 -04:00
Dylan M. Taylor d5da80d770
Fix #183 gnome-extras installs far too much bloat
This keeps some of the most useful packages from the defaults.
2021-04-05 13:40:40 -04:00
Zach Osman 0888ca592a allow multiple services to be enabled at once 2021-04-05 13:10:35 -04:00
Anton Hvornum 824656a990
Merge pull request #170 from SecondThundeR/master
Add validation check for username
2021-04-05 16:39:04 +00:00
SecondThundeR ed2187ee70 Update regex rule and move check to a function 2021-04-05 19:22:48 +03:00
Anton Hvornum dc522b74b9
Merge pull request #179 from advaithm/master
i3 and 13-gaps support
2021-04-05 16:21:43 +00:00
Pyfisch 3011811878 Indent using 8 spaces in PKGBUILD 2021-04-05 18:02:30 +02:00
Anton Hvornum 7634e2efa5
Merge pull request #180 from blochl/lb-dev
README: Clarify about the profile installation example
2021-04-05 15:59:26 +00:00
Pyfisch 6587d9e10f Add primary PKGBUILD for testing the package 2021-04-05 17:58:58 +02:00
advaithm b56f7d0515 fixed subprocess call 2021-04-05 21:28:20 +05:30
SecondThundeR 5de1154ce9 Replace lowercase conversion with correct checking 2021-04-05 18:38:21 +03:00
advaithm 9404dbe967 Update guided.py 2021-04-05 21:05:15 +05:30
advaithm 947700a605 use subprocess to launch the shell 2021-04-05 21:03:56 +05:30
Leonid Bloch 5a3988a0b2 README: Clarify about the profile installation example
* Clarify that 'awesome' is a window manager, and not a network-related
  entity.
* Add a link to Profile documentation.
* Remove a trailing whitespace.

Signed-off-by: Leonid Bloch <lb.workbox@gmail.com>
2021-04-05 18:32:21 +03:00
advaithm 463d1b5fd3 add shell drop for i3 and i3-gaps 2021-04-05 20:58:38 +05:30
advaithm e2a6a85d66 Revert "Fixed issue with no network configueration"
This reverts commit dbe7f3fcb8.
2021-04-05 20:47:42 +05:30
advaithm 4c0c95a88c add i3-wm and i3-gaps support 2021-04-05 20:46:09 +05:30
Pyfisch baaa70381b Remove outdated PKGBUILD files
setup.cfg whitespace changes.
2021-04-05 17:11:56 +02:00
Pyfisch ecf7a2a237 Add console_scripts archinstall entry point
archinstall should be callable from the command-line.
Previously this was achieved with a shell script,
however Python packages contain a built in way to to
this via the entry points mechanism.
2021-04-05 16:21:12 +02:00
Pyfisch 7f691ce1c9 Switch to setup.cfg
Configure setup.cfg to find all Python packages.
Add more metadata to package.
2021-04-05 15:59:10 +02:00
Pyfisch c284092a15 Add .pyproject.toml file for PEP 517 compliance 2021-04-05 14:09:22 +02:00
Anton Hvornum 2c73989da4
Removed a TODO comment 2021-04-05 11:38:17 +02:00
Anton Hvornum b46e391ebc Fixes: AttributeError: 'BlockDevice' object has no attribute 'keep_partitions' 2021-04-04 22:40:17 +02:00
Anton Hvornum fe68644428
Merge pull request #171 from zosman1/master
Resolve #110
2021-04-04 20:22:23 +00:00
Zach Osman 69a8730845 Removing background color definitions for all log functions 2021-04-04 16:14:13 -04:00
Zach Osman 9b2af4eb4c Closed #110 2021-04-04 15:46:02 -04:00
SecondThundeR 992ee851d4 Add lowercase conversion for usernames 2021-04-04 22:12:31 +03:00
Anton Hvornum 45e61dd83e
Merge pull request #165 from rffontenelle/fix-repo-url
Update repo to archlinux/archinstall
2021-04-04 18:33:17 +00:00
Anton Hvornum f8fc542fd7
Merge branch 'master' into fix-repo-url 2021-04-04 18:32:59 +00:00
Anton Hvornum 9959e0a299
Merge pull request #167 from m1ten/torxed-v2.2.0
Add Cinnamon (with lightdm) - Torxed v2.2.0
2021-04-04 18:09:36 +00:00
m1ten f72d3039f7
add lightdm-gtk-greeter 2021-04-04 13:49:37 -04:00
m1ten 771087e75b
applications/cinnamon 2021-04-04 13:38:10 -04:00
m1ten 9576486cfa
added cinnamon 2021-04-04 12:58:05 -04:00
m1ten 107c1d6caa
Create cinnamon.py 2021-04-04 12:57:24 -04:00
m1ten 5018bef41d
Merge pull request #2 from archlinux/torxed-v2.2.0
Torxed v2.2.0
2021-04-04 12:46:31 -04:00
Anton Hvornum b02c999191
Merge pull request #162 from rffontenelle/fix-typos
Fix misspellings
2021-04-04 15:50:44 +00:00
Anton Hvornum 6c31ad7aa0
encryption_passwed -> encryption_password 2021-04-04 17:43:56 +02:00
Anton Hvornum 85a69f694d
Merge pull request #161 from rffontenelle/fix-build
Fix docs warnings
2021-04-04 15:41:33 +00:00
Rafael Fontenelle 5a321d6ce5 Update repo to archlinux/archinstall 2021-04-04 11:52:51 -03:00
Rafael Fontenelle 2b5b1ad83d Fix misspellings 2021-04-04 11:28:54 -03:00
Rafael Fontenelle a0a4b5dbfe Fix docs warnings 2021-04-04 10:53:16 -03:00
advaithm dbe7f3fcb8 Fixed issue with no network configueration 2021-04-04 19:20:08 +05:30
Anton Hvornum 0dcb4da799
Removed debugging, added an additional 'move back to beginning' and print the peak again. Added this to any pacstrap call. 2021-04-04 15:28:32 +02:00
Anton Hvornum 918bc95edf
Added some debugging 2021-04-04 15:17:33 +02:00
Anton Hvornum 36bc243cf8
Added stripping of peak output to avoid new lines forming. 2021-04-04 15:15:30 +02:00
Anton Hvornum 81822e6444
Added error handling to sys_command's peak function. 2021-04-04 15:13:06 +02:00
Anton Hvornum 2f6a71756a
Moved import due to circular imports. 2021-04-04 15:08:06 +02:00
Anton Hvornum 0d9519a729
Added functionality towards #155. It's not a progress bar per sae, but it will show the last line outputted by commands enabling peaking of the ongoing process. 2021-04-04 13:27:58 +02:00
Anton Hvornum d66e3f2956
Merging in latest changes from master. 2021-04-04 13:15:32 +02:00
Anton Hvornum f452655d4f
Merge pull request #158 from advaithm/master
Network manager support
2021-04-04 09:37:29 +00:00
Advaith Madhukar 8ad4a7d1c4
fixed network manager check 2021-04-04 14:42:19 +05:30
Anton Hvornum b37c0cc5d7
Merge pull request #157 from m1ten/torxed-v2.2.0
Add xfce4 (with lightdm) - Torxed v2.2.0
2021-04-04 08:34:00 +00:00
advaithm 9daa3f4924 fixed some typos and changed up how we detect if we have to enable/install network manager 2021-04-04 09:26:28 +05:30
advaithm f42d52624e moved around the if block 2021-04-04 09:08:17 +05:30
advaithm 454d712d08 fixed typo 2021-04-04 09:03:49 +05:30
advaithm 9e3ded8311
install networkmanager, if required 2021-04-04 08:54:35 +05:30
advaithm ae5f9b08c4
updated guided.py to allow network manager as nic 2021-04-04 07:33:17 +05:30
advaithm 374cbfc20d Revert "Revert "added hardwareincompatibilty erros and updated readme""
This reverts commit 1592517042.
2021-04-04 07:31:38 +05:30
advaithm 1592517042
Revert "added hardwareincompatibilty erros and updated readme"
This reverts commit b5e32f980a.
2021-04-04 07:28:01 +05:30
advaithm fe237eac3c
networkmanager support 2021-04-04 07:24:52 +05:30
m1ten 77c30fcb04
Update xfce4.py 2021-04-03 17:58:25 -04:00
m1ten 1342a1ae75
Update desktop.py 2021-04-03 17:57:19 -04:00
Ruslan Kiyanchuk 51286f2a65 Fix undefined variables in installer 2021-04-03 14:44:45 -07:00
m1ten dcdd66fd29
applications/xfce4 2021-04-03 16:19:23 -04:00
m1ten 6446670ed4
xfce4 2021-04-03 16:17:51 -04:00
Anton Hvornum ef021698b6
Updated CODEOWNERS
Mainly to avoid pinging grazzolini on every PR for code review.
But left him on the PKGBUILDs as he has way better knowledge about those things.
2021-04-03 19:38:44 +02:00
Anton Hvornum bf4c32e2e0 Forgot option PARTUUID to lsblk 2021-04-03 18:34:51 +02:00
Anton Hvornum 9bd829c0e2
Merging in latest changes from master. 2021-04-03 16:28:40 +02:00
Anton Hvornum cba30b9e26 Merge branch 'master' of github.com:Torxed/archinstall 2021-04-03 16:22:19 +02:00
Anton Hvornum b2927a5067
This should fix #151, by using lsblk instead of /dev/disk/by-partuuid. It also cleaned up the installer code quite a bit during the bootloader installation. Will do the same for encrypted drives later on by implementing UUID on a BlockDevice (disk) level. 2021-04-03 16:22:09 +02:00
Anton Hvornum 746cd64785
Merge pull request #148 from Didr/editorconfig
Create .editorconfig
2021-04-03 13:33:45 +00:00
Anton Hvornum 2bf947ba05
This should correct #152. When a newly /boot partition is created with no content or incorrect filesystem (meaning, no file system yet), the .has_content() call will crash due to incorrect fstype. Which means we should be able to skip the check and assume it's safe to format. Because there's no way (?) other OS:es can store something on the boot partition on a broken FS. 2021-04-03 15:32:06 +02:00
Anton Hvornum 7333fe109c
Converted the raise exception into a log. Whenever blockdevice is unsure of what type it's working on, it will not log it as a debug message. 2021-04-03 15:18:35 +02:00
Anton Hvornum 1c3287bc81
Removed a breaking change while fixing hardware raids 2021-04-03 15:11:10 +02:00
Anton Hvornum 67bb00c655
This partially addresses #151. Which might require more than just the path being returned. As the blkid might not be correctly identifying it in the bootloader step. But we'll have to test and see. 2021-04-03 14:59:40 +02:00
Anton Hvornum 7ae9696f13
This should correct #135. I'll have to investigate other places where this logic might be as well and correct those. 2021-04-03 14:04:18 +02:00
Anton Hvornum bb295cb83a
Fixes #149 as well as --help. This will be added in the next patch release. 2021-04-03 11:25:34 +02:00
Didr 2f24898eb7
Create .editorconfig 2021-04-03 04:52:01 +02:00
Anton Hvornum 428bf16868 Moving the CODEOWNERS file again 2021-04-02 22:01:07 +02:00
Anton Hvornum b46e0ca7bc
Moved the CODEOWNERS file. 2021-04-02 21:25:22 +02:00
Anton Hvornum fba2def861
Update CODEOWNERS 2021-04-02 21:21:12 +02:00
Anton Hvornum 105922fd2a
Update CODEOWNERS 2021-04-02 21:20:54 +02:00
Anton Hvornum e2c40b5208
Update CODEOWNERS 2021-04-02 21:20:40 +02:00
Anton Hvornum 6e0efa6973
Create CODEOWNERS 2021-04-02 21:19:40 +02:00
Anton Hvornum f61c61305e Merge branch 'exec-args' of https://github.com/kpcyrd/archinstall into torxed-v2.2.0 2021-04-02 20:36:06 +02:00
Anton Hvornum 35855700f7 Merge branch 'master' of github.com:Torxed/archinstall into torxed-v2.2.0 2021-04-02 20:34:19 +02:00
Anton Hvornum f95faa7724
Merge pull request #143 from pyfisch/cryptsetup-nits
Join cryptsetup args using shlex
2021-04-02 18:09:40 +00:00
Anton Hvornum fa90f4118d
Removed legacy link called workstation.json #142 2021-04-02 20:06:08 +02:00
kpcyrd 4221473e67 Support passing commands as lists 2021-04-02 20:03:38 +02:00
Pyfisch cf4745bbb6 Join cryptsetup args using shlex
Ensure that all arguments are properly quoted.
Improve readability by using long-form arguments only.
Use identical arguments for both cryptsetup calls,
to prevent them from accidentally diverging in future commits.
2021-04-02 18:19:25 +02:00
Anton Hvornum 0ba4e631ef
Fixing glitch in variable use after moving to __packages__ definition. 2021-04-02 11:38:42 +02:00
Anton Hvornum 3f0a534374
Merging master into feature branch. 2021-04-02 11:32:52 +02:00
Anton Hvornum 0488c93a50
Merge pull request #134 from conqp/master
General code cleanup
2021-04-02 09:01:07 +00:00
Anton Hvornum 5f9966b5c1
Merge pull request #136 from Torxed/torxed-135
Missing variable
2021-04-02 08:58:58 +00:00
Anton Hvornum 2fd570167d
Merge pull request #138 from kusakata/fix-doc-issues
Fix doc issues
2021-04-02 08:57:45 +00:00
Anton Hvornum 65ec50dae5 Merge PR #113 into torxed-v2.2.0 feature branch.
This merge should add BIOS through MBR support and GRUB.
2021-04-02 10:42:26 +02:00
advaithm b5e32f980a
added hardwareincompatibilty erros and updated readme 2021-04-02 10:28:04 +05:30
advaithm 6b218e555b
changed __enter__ 2021-04-02 10:16:48 +05:30
advaithm 655ec06119
accidentlly called dict as function 2021-04-02 10:12:45 +05:30
advaithm b974b93004
fixed some issues with the changes 2021-04-02 10:08:16 +05:30
advaithm f4e616cd9e
updated to latest commits 2021-04-02 09:48:41 +05:30
Shohei Kusakata cd3553ad89 Fixing short title underline warning 2021-04-02 10:50:07 +09:00
Shohei Kusakata 94042517a4 Fixing document interlink error 2021-04-02 10:47:21 +09:00
Anton Hvornum ef7f2f53b1
Missing variable
This should fix #135
2021-04-01 22:12:52 +02:00
Richard Neumann c0cfa7ae92 Remove useless __init__ methods 2021-04-01 20:46:28 +02:00
Richard Neumann cab8c7d43a Move class-related docstring to class definition 2021-04-01 20:45:45 +02:00
Richard Neumann 1d54a625f4 Simplify boolean checks 2021-04-01 20:31:29 +02:00
Anton Hvornum 2c90f02b6b
Merge pull request #132 from kpcyrd/range-check
Add range check to generic_select
2021-03-30 14:57:40 +00:00
kpcyrd 40dbb5791c Add range check to disk selection 2021-03-30 16:24:48 +02:00
kpcyrd 82342a0e94 Add range check to generic_select 2021-03-30 16:12:52 +02:00
Anton Hvornum bb5caf70b7
Merge pull request #125 from Torxed/torxed-v2.2.3
Fixes encrypted -> non-encrypted setups
2021-03-29 16:19:52 +00:00
Anton Hvornum b03de49f0f Removed debugging and finalized fix. 2021-03-29 18:17:09 +02:00
Anton Hvornum 151c90a56d Added some debugging. 2021-03-29 18:12:05 +02:00
Anton Hvornum a50aa59060
Adding .encrypted logic after .format calls to correctly identify partitions as encrypted/not-encrypted. This after a .flush_cache has been called. 2021-03-29 18:11:46 +02:00
Anton Hvornum 8c8a441c26
Added some debugging. 2021-03-29 18:10:02 +02:00
Anton Hvornum 1b903550b5
Reworking cache logic to not loose .encrypted flag on partitions after flushing cache. 2021-03-29 17:53:30 +02:00
Anton Hvornum 0c86440e2e
Rolling back change to check parent blockdevice for safe formatting, it would wipe the boot partition if the boot partition for multiple drives was shared on the specific drive. 2021-03-29 17:47:34 +02:00
Anton Hvornum a29bd75954
Removing a flush of the cache that was excessive. 2021-03-29 17:46:07 +02:00
Anton Hvornum 512f0327f0
Experimenting with cache, carrying over .allow_formatting 2021-03-29 17:34:13 +02:00
Anton Hvornum a0980afff1
Experimenting with carrying over flags across cache flush. This to solve issues when flush is cleared and target mountpoints gets lost, making it impossible to do .find_mountpoint('/') later on for instance. 2021-03-29 17:32:48 +02:00
Anton Hvornum f3907310e3
Allowing individual partitions safety checks to rely on the parent blockdevice keep_partitions status. 2021-03-29 16:59:09 +02:00
Anton Hvornum 5e9c973d42
Added support for flushing a BlockDevice() cache after a partition has been formatted. This is to avoid internal confusion of which partitions are encrypted or not when going from Encrypted -> Un-encrypted setups. 2021-03-29 16:51:30 +02:00
Anton Hvornum d26c1f820d
Toned down the debugging a bit. 2021-03-29 16:11:30 +02:00
Anton Hvornum 39cb0b94d9
Moved some debugging to catch more variable settings. 2021-03-29 15:57:31 +02:00
Anton Hvornum 0e26975247
Adding callstack to debug output for easier debugging. Removed hardcoded debug crash 2021-03-29 15:55:36 +02:00
Anton Hvornum e94a8d8b25
Debugging 2021-03-29 13:16:42 +02:00
Anton Hvornum 4c5be61918
Merge pull request #123 from Torxed/torxed-v2.2.3
Reverting .strip() logic and moving the check into the get_password()…
2021-03-29 08:21:42 +00:00
Anton Hvornum 70480d4681
Merge pull request #122 from Didr/patch-1
Fix spelling error in filesystem choice
2021-03-29 08:21:06 +00:00
Anton Hvornum 36dfa2e1c4
Reverting .strip() logic and moving the check into the get_password() function. 2021-03-29 10:20:35 +02:00
Didr f452dc695a
Fix spelling error in filesystem choice
Fixes a simple spelling error when the user is asked to select a filesystem.
"Select which filesystem your main partition should use (by number **of** name)" should be **or**.
2021-03-29 10:16:20 +02:00
Anton Hvornum 5e3a152364
Merge pull request #121 from Torxed/torxed-v2.2.3
Torxed v2.2.3
2021-03-29 07:35:04 +00:00
Anton Hvornum ed565e1348
Adding some overclarification to encryption checks. 2021-03-29 09:33:58 +02:00
Anton Hvornum 3161cd8aff
Fixing rare occation where partitions dissapear just before .format(). 2021-03-29 09:09:25 +02:00
Anton Hvornum a156f224a8
Fixing un-encrypted drives matching on block encrypted. 2021-03-29 08:56:41 +02:00
Anton Hvornum 6cba404b75
Merge pull request #120 from Torxed/torxed-patch-sunday
Torxed patch sunday
2021-03-28 21:15:54 +00:00
Anton Hvornum 37ad64147f
Added some more useful debug data to the log. 2021-03-28 23:10:23 +02:00
Anton Hvornum 0637ab6eb0
Adding debug to correct for a potential issue where partitions get marked as encrypted even tho \!disk-password was neven set. 2021-03-28 23:03:41 +02:00
Anton Hvornum 9c44ab85ce
Version bump in prep for minor patch release. 2021-03-28 22:38:15 +02:00
Anton Hvornum 37a6018aae
Fixed a path-check issue with Time Zones. 2021-03-28 22:36:47 +02:00
Anton Hvornum 99dd9b1fb7 New feature: Profile() now supports .packages which returns any defined packages for that specific profile, as well as archinstall.__packages__ contain any packages that Installer() is responsible for. This can be used to quickly gather any required packages and dependencies by archinstall. Not all profiles have it yet, so .packages might return None. 2021-03-25 15:07:49 +01:00
Anton Hvornum b521f8028c Updating documentation. 2021-03-25 14:39:29 +01:00
Anton Hvornum 89a2e1eb2b
Fixes an issue with completely empty hard drives
If empty hard drives are being set up for the first time, then `.has_content()`'s `mount` call will fail with `wrong fstype` since there's no filesystem yet. First step in this case is to check for that scenario, then check for content.
2021-03-24 15:49:54 +01:00
Anton Hvornum 037332a18d
Removed vfat as an option for the root partition 2021-03-24 15:26:32 +01:00
Anton Hvornum 197b690456
Update README.md 2021-03-24 14:50:10 +01:00
Anton Hvornum 326e5699ed
Removed an obsolete link to archlinux.life
Since the package is now in the official repo's, there's no need to host pre-built ISO's for the tool.
2021-03-24 14:42:17 +01:00
Anton Hvornum 36585c0489
Update __init__.py 2021-03-23 21:15:31 +01:00
Anton Hvornum becd29fa54 Also setting cwd (bad choice of name) to the workdir if one was specified. Which makes the trace.log to end up in the workdir as well. 2021-03-23 14:22:38 +01:00
Anton Hvornum b672efdf6b Enabling archinstall.sys_command() to get a working directory when executing. The sys_command() is working pretty well for this very specific need, but this is an attempt to making it a bit more generic. A more general overhaul of the command should be done at some point. 2021-03-23 14:18:03 +01:00
Anton Hvornum aceb0f3e98 Corrected recursion loop in log() calling log() before setting the new path for the log file on errors. 2021-03-23 11:42:12 +01:00
Anton Hvornum c5f6c4b712 Partially corrects for #116. We still don't detect if we're running as root (need to investigate if we need to run as root first). But this should at least hot-swap the log-file to the current working directory and place the logfile there. 2021-03-23 11:28:52 +01:00
Anton Hvornum 233886f9c5
Created a GitHub action to publish to pypi 2021-03-22 13:58:35 +01:00
Anton Hvornum e0611c276c
Updated versions in PKGBUILDs and VERSION. 2021-03-21 21:53:24 +01:00
Anton Hvornum a3aef119b2
Improved english grammar and dialogues. Some 'questions' were formatted in a way where the user would enter 'yes' instead of the expected input. For instance, 'Any additional users to install:' which is a question where 'yes' is a appropriate response, but the expected input was the username to be created. Rephrased it to 'Enter a username to create a additional user:' instead for instance. 2021-03-21 21:30:52 +01:00
Anton Hvornum fd4594d08c
Added a mkinitcpio configuration for non-btrfs volumes but where encryption is still used. Also added keymap to the HOOKS so that we can get non-us layouts depending on the locale chosen during installation. 2021-03-21 20:56:15 +01:00
Anton Hvornum 795b1ef55b
Added the latest installments of contributors. 2021-03-21 19:56:42 +01:00
Anton Hvornum 7c54b4ce72
Merge pull request #118 from Torxed/torx-fix-profile-issues
Fixed profile issues as well as partition cache issues. Also added some more debug logs for support cases.
2021-03-21 17:52:59 +01:00
Anton Hvornum 83c0ee4b22
Removed some debugging output. 2021-03-21 17:26:29 +01:00
Anton Hvornum 298ed31531
Added an option to force-flush a blockdevice cache. creating a new Filesystem() now triggers a flush of the cache since all partitions are removed. There shouldn't be any harm in even bypassing the cache, but it's there for a few reasons. 2021-03-21 17:25:18 +01:00
Anton Hvornum c8470b81a6
Debugging a partioning case. 2021-03-21 17:22:11 +01:00
Anton Hvornum c00e09517f
Centralized a partition call to use the logging feature raw_parted(). 2021-03-21 17:18:00 +01:00
Anton Hvornum 6a2dd8f511
Added more debug level information to parted in case it goes heywire. 2021-03-21 17:11:29 +01:00
Anton Hvornum dbe086024d
Moved some info logs into debug instead to minimize user splash. 2021-03-21 16:58:27 +01:00
Anton Hvornum 2fab088314
Added some debugging to help identify why archinstall cannot find unencrypted devices when setting up the boot loader. 2021-03-21 16:48:22 +01:00
Anton Hvornum 3baaefb97d
Cleaned up after some debugging. 2021-03-21 16:35:26 +01:00
Anton Hvornum cbb4629849 Slimmed down awesome further, also removed abandoned community package libu2f-host. 2021-03-21 16:25:56 +01:00
Anton Hvornum 35e774f5f6
Spelling error on variable. 2021-03-21 15:28:11 +01:00
Anton Hvornum 93faf07b69
Moved the globalization of 'installation' variable. Since Profile() might be created before the installation instance, we need to move the global variable declaration after installation has begun and there's an installation instance. 2021-03-21 15:25:24 +01:00
Anton Hvornum 6081733422
Storing original namespace of profiles as they were during initation. Namespaces now get reverted back to the original state just before .install() is called. This ensures any temporary namespace changes made during prep-checks etc doesn't stick around when we try to install. 2021-03-21 15:16:41 +01:00
Anton Hvornum a9f177e722
Reverted reset_namespace idea. Didn't turn out as clean as I wanted it to. 2021-03-21 15:13:08 +01:00
Anton Hvornum 28606cde61
Enabling load_instructions() to set a temporary namespace, and then reverting it after the instructions are loaded. This is to temporarly override the namespace during import - enabling avoidance of triggering __name__ checks, and at the same time reverting back the namespace automatically to enable .execute() on the script (reusability of classes) 2021-03-21 15:07:45 +01:00
Anton Hvornum 9ee6479701
Enabling load_instructions() to set a temporary namespace, and then reverting it after the instructions are loaded. This is to temporarly override the namespace during import - enabling avoidance of triggering __name__ checks, and at the same time reverting back the namespace automatically to enable .execute() on the script (reusability of classes) 2021-03-21 15:04:23 +01:00
Anton Hvornum 27bde44b8d
Debugging tainted namespace on profile modules. 2021-03-21 15:00:08 +01:00
Anton Hvornum c99abb1a7b
Debugging tainted namespace on profile modules. 2021-03-21 14:56:26 +01:00
Anton Hvornum ec9059c039
Debugging tainted namespace on profile modules. 2021-03-21 14:51:59 +01:00
Anton Hvornum c1e8e6b58d
Debugging tainted namespace on profile modules. 2021-03-21 14:50:57 +01:00
Anton Hvornum f76f5458da
Debugging tainted namespace on profile modules. 2021-03-21 14:48:26 +01:00
Anton Hvornum 1fb61bf8fc
Debugging tainted namespace on profile modules. 2021-03-21 14:34:03 +01:00
Anton Hvornum e1e1a916fc
Debugging tainted namespace on profile modules. 2021-03-21 14:32:36 +01:00
Anton Hvornum 1998e0378c
Debugging tainted namespace on profile modules. 2021-03-21 14:21:47 +01:00
Anton Hvornum 1fdda954dc
Debugging tainted namespace on profile modules. 2021-03-21 14:21:28 +01:00
Anton Hvornum b81d5e054d
Debugging tainted namespace on profile modules. 2021-03-21 14:19:39 +01:00
Anton Hvornum df1ed2034d
Debugging tainted namespace on profile modules. 2021-03-21 14:04:06 +01:00
Anton Hvornum 75d1395b10
Marking newly created partitions as safe to format in use_entire_disk(), by adding allow_formatting=True to the partitions. Also added some debugging to help aiding in support cases. 2021-03-21 13:00:37 +01:00
Anton Hvornum 886c60f9bc
Added some more debugging and error logs to the project. Mainly to indicate background tasks and errors to the debug log in case users need to submit it. 2021-03-21 11:31:49 +01:00
Anton Hvornum a75002a36d
Fixed an issue where brand new disks (no partitions), got protected by a safety measurement where .keep_partitions were set to True by default. 2021-03-21 11:12:07 +01:00
Anton Hvornum 24964e4865
Fixing minor issue in v2.1.2-rc3. The use_entire_disk() helper function was adding a partition with the format vfat, but parted doesn't understand this and needs fat32. 2021-03-21 11:05:57 +01:00
Anton Hvornum f3b93c1c1c
Removed search logic for mirrors since we now have column-printouts, the columns enabled us to print all the regions which means the search was an excessive feature. 2021-03-20 22:15:42 +01:00
Ninchester 42ba36b5d8 Fix number padding based on length of the highest option index - instead of using zeroes, now spaces are used 2021-03-20 22:01:00 +01:00
Ninchester 6dea24ad22 Make option list 0-index based 2021-03-20 21:51:57 +01:00
Ninchester 0318125a7b Add margin at the bottom 2021-03-20 21:48:34 +01:00
Ninchester 9f87b6963d Print options in columns 2021-03-20 21:41:56 +01:00
Anton Hvornum e209767d13
Added helper functions for #81. So that we have a basic information about the terminal when outputting large lists/options. 2021-03-20 18:26:38 +01:00
Anton Hvornum b67257233f
Fixed #64. installation.set_timezone() already excisted since earlier versions of archinstall in the library section. The guided.py example simply never asked for a time-zone. There's still no NTP option, which I'll add in later. Mostly because there's a lot of settings one can do to a time-client configuration, and I'm not sure all users want the default time servers etc. 2021-03-20 17:26:48 +01:00
Anton Hvornum 64653565a4 Merge branch 'master' of github.com:Torxed/archinstall 2021-03-20 17:13:09 +01:00
Anton Hvornum 61504fc927
Fixed #101. Now warns the users after they skip the network configuration. 2021-03-20 17:12:53 +01:00
Anton Hvornum 3a732674a6
Updated the testing section.
I updated the build instructions, mainly because they were old. But also because archiso has changed quite a bit since I wrote it. And I appended a script that will make running a bit easier *(not a perfect script, but does the job)*.
2021-03-14 23:13:12 +01:00
Anton Hvornum 54200bf476
Removed evil .format(ext4) which was a remenant from the old days. 2021-03-14 15:39:52 +01:00
Anton Hvornum 51cbec58da
Spelling error. 2021-03-14 15:32:52 +01:00
Anton Hvornum 32ab44e6da
More error handling to encrypted vs not encrypted partitions. 2021-03-14 15:32:22 +01:00
Anton Hvornum 502968b579
Added some error handling to disk encryption passwords. 2021-03-14 15:28:46 +01:00
Anton Hvornum 40440e575c
Added some error handling. 2021-03-14 15:25:41 +01:00
Anton Hvornum b495b3328e
Added error handling for unlocking an old partition (autodetect feature). 2021-03-14 15:22:25 +01:00
Anton Hvornum dabaebe221
encrypted devices won't always report as a child to a device, can't reliably look for a 'parent' of a encrypted drive when it doesn't show up. Hence, the DiskError() can't be raised just because we can't find a parent. The parent should be the current path if no other option was found. 2021-03-14 15:11:05 +01:00
Anton Hvornum b90820c1c0
Made add_bootloader() a little bit more robust, it shouldn't overwrite the existing loader.conf completely, only the default option. We're still left with a lot of garbage entries if installed multiple times on the same boot partition. #51 2021-03-14 14:58:42 +01:00
Anton Hvornum abd15f9ff5
Added error handling for install_profile() if string vs Profile() is given as an argument. 2021-03-14 14:41:13 +01:00
Anton Hvornum 37b1e61828
Corrected some spelling errors and wrong variables. 2021-03-14 14:00:52 +01:00
Anton Hvornum c897421e1d
Using 'umount -R' rather than just 'umount' since we're going to wipe the partition, we need do unmount anything that's mounted beneeth it to continue. 2021-03-14 13:56:24 +01:00
Anton Hvornum 7ac68b2436
Removed redundant error handling as well as added some more debug logs. 2021-03-14 13:54:01 +01:00
Anton Hvornum 1c6d705714
Enhanced the error handling on crypt-devices. 2021-03-14 12:50:47 +01:00
Anton Hvornum e4514e8fc3
Some more error handling. 2021-03-14 12:27:48 +01:00
Anton Hvornum 4ac2528822
Added alias umount() to unmount(). 2021-03-14 12:25:06 +01:00
Anton Hvornum d2804993db
Added some error handling for umount(). 2021-03-14 12:24:37 +01:00
Anton Hvornum 2ef7be9787
Wrong variable name. 2021-03-14 12:17:30 +01:00
Anton Hvornum f589750a3c
Tweaked SysCallError() exception to include the exit code in a machine readable manner. Since it's useful as an indicator where calls might go wrong and for what reason. 2021-03-14 12:16:46 +01:00
Anton Hvornum 577428f1b2
Added a partition.umount() and a check when running cryptsetup if the disk is in use. 2021-03-14 12:13:08 +01:00
Anton Hvornum 5483b218fd
Removing hardcoded boot-loader config name. #51. 2021-03-14 11:53:59 +01:00
advaithm 72284e2b2a
stip /dev/ since path is /dev/sdxN 2021-03-12 14:10:08 +05:30
advaithm 0a47dfe5d5
add a if statment to prevent a possible error 2021-03-12 13:42:52 +05:30
advaithm f249476ea7
figured out a way to get root device for installing grub 2021-03-12 13:40:54 +05:30
advaithm ee3c48c965
updated examples 2021-03-12 12:02:03 +05:30
advaithm 563a50dbc0
fixed mistake in disk.py 2021-03-12 11:59:46 +05:30
advaithm 94456bf8ba
add function to check cpu vendor to allow for cpu specific command line arguments 2021-03-12 11:57:02 +05:30
advaithm 43a0134f2e
fixed typo 2021-03-12 11:40:30 +05:30
advaithm ceadb59b26
raise error if systemd-boot is used on a BIOS system 2021-03-12 11:38:48 +05:30
advaithm 850fd2efa8
Started work on BIOS support 2021-03-12 11:30:32 +05:30
Anton Hvornum e2aeb3a32f
Mergining in PR #112. Reworked partitioning and added new functions 2021-03-09 23:39:11 +01:00
Anton Hvornum cfbaaedb17 Merge branch 'master' into skip-partitioning 2021-03-09 22:39:54 +01:00
Anton Hvornum 3f8f0020f5 Purged last legacy, setting the root pw 2021-03-09 16:22:36 +01:00
Anton Hvornum aabdce9286 fixed a global variable as well as re-organized the guided.py to better match the flow of steps.. 1) Ask user questions function, 2) Perform installation steps, 3) Perform actual installation 2021-03-09 16:16:05 +01:00
Anton Hvornum 2bd220c280 Moved everything into a function block rather than having everything on a line by line situation. This just helps separate what the two major components/blocks are of the guided profile. The change was done in the previous commit, but a spelling mistake was made here and I forgot to mention it in the already long commit log. But user-questions is now in one function. Installation steps are now in a two-tier function, one for setup and one for install steps. 2021-03-09 16:13:21 +01:00
Anton Hvornum aafe3d19c6 Fixed remaining installation steps and remove legacy references to archinstall.storage['_guided'] and archinstall.storage['_guided_hidden']. Which were great at the time, but they are not deprecated and moved into archinstall.arguments instead to support parameters on command-line. As well as being a bit more description, since they are arguments afterall to various setup instructions. 2021-03-09 16:10:57 +01:00
Anton Hvornum 1167cf589b Fixed mirror-region parameter selection. Converting to actual mirrors. 2021-03-09 14:09:17 +01:00
Anton Hvornum cf21b47764 Carried over the allow_formatting from the parent device of luks2() devices. 2021-03-09 14:00:30 +01:00
Anton Hvornum 3e9031821a Forgot to set a variable 2021-03-09 13:36:47 +01:00
Anton Hvornum 8f42a9f4ff Added option to skip autodetection of filesystem. This is so for instance luks2() can override any auto-detection that revers back to the parent device of the mapped device, which would be crypto_LUKS instead of None for the inner partition. 2021-03-09 12:16:40 +01:00
Anton Hvornum 585e0f4b86 Added some debugging. 2021-03-09 12:10:30 +01:00
Anton Hvornum b3a5afea60 Tweaked the filesystem definition setup for Partition(). Overriding it programatically should be possible for some meta stuff. 2021-03-09 12:05:39 +01:00
Anton Hvornum 747d620596 Added some debugging. 2021-03-09 12:02:14 +01:00
Anton Hvornum 3bf8ba0819 Fixed luks2().close() to properly detect it's own mapped path 2021-03-09 12:00:40 +01:00
Anton Hvornum 251624734f Fixed luks2().close() to properly detect it's own path 2021-03-09 11:58:35 +01:00
Anton Hvornum f045462c9a Fixed a issue with blkid where it would raise an exception when there was not filesystem on the partition. 2021-03-09 11:56:33 +01:00
Anton Hvornum 4e8084bddb Fixed a issue with blkid where it would raise an exception when there was not filesystem on the partition. 2021-03-09 11:54:03 +01:00
Anton Hvornum ce646a9394 Forgot a variable. 2021-03-09 11:49:20 +01:00
Anton Hvornum 9f0d25bce3 Added functions to auto-detect filesystems inside encrypted partitions (given a password) 2021-03-09 11:48:40 +01:00
Anton Hvornum 586f8bc32e Adding enforcement to select a filesystem-type for encrypted volumes unless the specified pasword can be used to unlock the device and auto-detect this. 2021-03-09 11:44:17 +01:00
Anton Hvornum 3b849ca074 Debugging some tweaks 2021-03-09 11:38:36 +01:00
Anton Hvornum 6680f74462 Debugging some tweaks 2021-03-09 11:36:59 +01:00
Anton Hvornum c56d4d958e Debugging some tweaks 2021-03-09 11:36:15 +01:00
Anton Hvornum 56d673d2a5 Debugging some tweaks 2021-03-09 11:07:46 +01:00
Anton Hvornum f230140ba9 Removed hardcoded partition numbers when acessing partitions. As the order is not fixed and more options to disk layouts have been added. 2021-03-09 10:50:05 +01:00
Anton Hvornum c97d5f1202 Forgot to return self in Filesystem() 2021-03-09 10:45:45 +01:00
Anton Hvornum 1f62a97c90 Marking the root partitions as encrypted if a disk password is set. In the future, we need to make this a bit more flexible by allowing multiple partitions to be encrypted. But for now, the main partition should be enough. 2021-03-09 10:41:57 +01:00
Anton Hvornum 16b0f4a4a4 Fixed an issue where Partition() instances got overwritten every time disk.partitions were called. Causing flags such as .encrypted to be dropped. This should make for a more stable experience when working with the partitions. 2021-03-09 10:38:04 +01:00
Anton Hvornum 7ee4815648
Adding encryption helpers to the Partition() class, that sets up and utilizes luks2.encrypt() in extension. 2021-03-09 00:12:03 +01:00
Anton Hvornum f1cb3209ad Tweaked the guided steps up until the installation. 2021-03-08 17:21:23 +01:00
Anton Hvornum 0306209f3a Fixed 'mount point does not exist' on temporary mount point. 2021-03-08 17:17:55 +01:00
Anton Hvornum 8bf3296749 Optimization, safe_to_format() now checks partition.allow_formatting as a condition. 2021-03-08 17:14:21 +01:00
Anton Hvornum fb55e318e5 Added two new functions. partition.safe_to_format() and partition.has_content(). The first does some sanity checks to verify if we can format the partition or not. The second temporarly mounts the parition and checks if there's content inside and returns accordingly. 2021-03-08 17:13:21 +01:00
Anton Hvornum 6306de4bfe Reworked the guided partitioning logic to better match new expectations of flexability. Still some work to be done and features to be implemented, but the structure is taking place 2021-03-08 16:52:06 +01:00
Anton Hvornum 0b3879ac58 Removing part of the old formatting scheme. New implementation roughly 80% done. 2021-03-08 16:18:56 +01:00
Anton Hvornum 979d162551 Added some debugging. 2021-03-08 16:14:44 +01:00
Anton Hvornum 948878e9e3 Added some debugging. 2021-03-08 16:09:51 +01:00
Anton Hvornum 1ef63147d0 Tweaked logging slightly. 2021-03-08 15:54:23 +01:00
Anton Hvornum c5694393c6 Fixed the JSON_Encoder. The issue was that dictionaries are mutable, and dumping dictionaries and replacing keys also replaces the original value. 2021-03-08 15:10:58 +01:00
Anton Hvornum ffbb952eb3 Added some debugging. 2021-03-08 14:58:58 +01:00
Anton Hvornum 2fe8a173f4 Added some debugging. 2021-03-08 14:58:31 +01:00
Anton Hvornum 30467ca50f Added some debugging. 2021-03-08 14:57:47 +01:00
Anton Hvornum 75eb42be51 Added some debugging. 2021-03-08 14:57:17 +01:00
Anton Hvornum 9fe4b7b5c7 Added some debugging. 2021-03-08 14:56:18 +01:00
Anton Hvornum 1d913f50ed Added some debugging. 2021-03-08 14:55:21 +01:00
Anton Hvornum 476006abe8 Fixed expected return value from ask_for_disk_layout(). I think I have to throw an eye on generic_select() and it's expected return value in general.. But that's later. 2021-03-08 14:51:18 +01:00
Anton Hvornum 94daa8b98b Added a abort message 2021-03-08 14:47:41 +01:00
Anton Hvornum 775a26f738 Added a abort message 2021-03-08 14:47:24 +01:00
Anton Hvornum dd66aeda9a Re-formatted a question a bit. 2021-03-08 14:44:51 +01:00
Anton Hvornum e537a57a88 Fixed indentation on output. 2021-03-08 14:43:48 +01:00
Anton Hvornum 8da8608e22 Added a small menu instead of a one-liner to select what to do with the disk if it has partitions. 2021-03-08 14:42:43 +01:00
Anton Hvornum bbf9face05 Removing make script for building binary and pypi dist. These should be done separately and should be done with build instructions not a bash script (i think). 2021-03-08 13:08:44 +01:00
Anton Hvornum 48e9f13f01
Removed the pre-built ISO links for now.
After a system upgrade, the machine is unresponsive and booting in to a recovery ISO doesn't work currently. Until I can find out why, the links have to be removed.
2021-02-21 15:20:52 +01:00
Anton Hvornum c55fc11cae Added a comment 2021-02-17 15:13:45 +01:00
Anton Hvornum a9ce3e5390 Testing auto-filter in the JSON encoder based on ! points markering sensitive data. 2021-02-17 14:54:45 +01:00
Anton Hvornum 930fc994d9 Removed redundant variable 2021-02-17 14:29:51 +01:00
Anton Hvornum ad8389ccaf Removed redundant variable 2021-02-17 14:29:13 +01:00
Anton Hvornum 20b343c993 Added some forgotten imports 2021-02-17 14:24:48 +01:00
Anton Hvornum 196b888432 Variable mistake 2021-02-17 14:22:53 +01:00
Anton Hvornum a6bfe54951 Variable mistake 2021-02-17 14:22:26 +01:00
Anton Hvornum ad4733bbd0 Simplified profile prep-execution slightly in guided.py. The code can be improved further but it's now more easily read what's going on. 2021-02-17 14:21:46 +01:00
Anton Hvornum 758b12e674 Simplifying the profile loading a bit, and adding some debugging for it. 2021-02-17 13:59:44 +01:00
Anton Hvornum 03a69eba2e Cleaned up guided.py further by stream-lining the profiles and NIC configuration. 2021-02-17 13:54:34 +01:00
Anton Hvornum 572d59e560 Cleaning up guided.py a bit to be less complex and convoluted, while still performing the same task. 2021-02-17 13:30:14 +01:00
Anton Hvornum 5cb3b0d176 Implemented #106 in branch skip-partitioning. Also moving the disk_password from being a local variable to a BlockDevice setting/variable. 2021-02-17 12:24:56 +01:00
Anton Hvornum 3a8a25982a Forgot relative path for exceptions. 2021-02-17 12:15:48 +01:00
Anton Hvornum b5c862549a Added more error handling for filesystem selection 2021-02-17 12:14:43 +01:00
Anton Hvornum 28adc20a30 Added more flags to the dummy-format 2021-02-17 12:13:59 +01:00
Anton Hvornum 6e2d0c98eb Added some error handling when selecting a filesystem for partitions. 2021-02-17 12:12:49 +01:00
Anton Hvornum 10f0567ead Adding filesystem selection for partitions 2021-02-17 12:06:15 +01:00
Anton Hvornum 76d3976df6
Re-worked guided to allow for unsupported fileformats when checking which are supported, as well as selecting mount-points. 2021-02-16 08:51:00 +01:00
Anton Hvornum e2cd617d05
Reworked the way partition formatting works. As well as added some flags to the partition if it's locked/unlocked for partitioning. By defaults partitions will now be in a locked state - prohibiting formatting unless set or overridden in the formatting call. This allows us to selectively format partitions individually later on. There's also a target_mountpoint that is the desired relative mount point inside a installation. This can be pre-pended with the installation base directory during mount. These changes also function as indicators for the installation (and guided installation) for which partitions to use and/or wipe. If an entire drive is selected for wiping, these changes will have no affect in the decision making as all partitions will be new and have formatable set to true. 2021-02-11 14:11:21 +01:00
Anton Hvornum 03c46cce2b Added a dummy function call to grab the partition fstype, since unmounted filesystems won't return the fstype obviously. 2021-02-07 20:46:12 +01:00
Anton Hvornum 62a14d0945 Forgot importpath for exceptions 2021-02-07 19:26:47 +01:00
Anton Hvornum d184777a1b Reworked fault handling a bit 2021-02-07 18:57:47 +01:00
Anton Hvornum 4349512ef3 Added error handling for BlockDevice() that was given no information. 2021-02-07 18:53:55 +01:00
Anton Hvornum a9d49a52ec Corrected two variables. 2021-02-07 18:51:45 +01:00
Anton Hvornum 9038fda991 Added error handling for get_mount_info() 2021-02-07 18:50:30 +01:00
Anton Hvornum 9db589f10a Added a default no-info value to BlockDevice() 2021-02-07 18:45:25 +01:00
Anton Hvornum 47649074b8 Quotation issue 2021-02-07 18:44:26 +01:00
Anton Hvornum 819a8f742e Replacing static variables with more dynamic ones that can live across scopes. No need to pass things around unless strictly nessecary 2021-02-07 18:43:05 +01:00
Anton Hvornum ea65e3599a Forgot a semicolon 2021-02-07 18:34:43 +01:00
Anton Hvornum a320ce3341 Thought I could get away with a little default-parameter hack to make the code look nice, but the JIT doesn't do lazy resolving on .get() calls. 2021-02-07 18:33:27 +01:00
Anton Hvornum 9398542559 Added in command line arguments to guided and simplified the laout of guided a bit. Also added some more comments. 2021-02-07 18:16:00 +01:00
Anton Hvornum c983976394 Added in argument support to archinstall for easier testing and debugging 2021-02-07 17:57:16 +01:00
Anton Hvornum 530edb5ece Moved the output of the current fileformat structure in guided, as well as added an option to supress the log message from format() in order to hide (for users) the some what confusing formating of /dev/null. 2021-02-07 15:36:24 +01:00
Anton Hvornum acf39296ef Added a check in guided to make it more visible that we check for filesystem supportation. 2021-02-07 15:34:11 +01:00
Anton Hvornum 1253982c30 Added correct exception handling to the pre-format check. 2021-02-07 15:31:00 +01:00
Anton Hvornum 3dcf8ced6c Fixed correct variable usage for path when formatting, enabling temporary override. 2021-02-07 15:28:26 +01:00
Anton Hvornum 15aa16c425 Renamed fat32 to vfat to work more seamlessly with findmnt and other tools that report fat32 as vfat 2021-02-07 15:27:12 +01:00
Anton Hvornum a88a41abfb Quotation issue 2021-02-07 15:26:04 +01:00
Anton Hvornum a5a6ff4d31 Added an early check for filesystem compatability. Since we need to handle unique packages etc for certain filesystem formats. This early check can be caught and ignored if the programmer/user wants to override the check and continue anyway. But the default should be to stop all execution to not install a half-working system. 2021-02-07 15:25:34 +01:00
Anton Hvornum 759b778743 Added some more failsafe's to the Partition() object. 2021-02-07 15:09:40 +01:00
Anton Hvornum 9767095258 Yielding actual partitions and not just the partition number :) 2021-02-07 15:05:57 +01:00
Anton Hvornum 2262cd6196 Made BlockDevices() iterable, iterting over each partition 2021-02-07 15:05:23 +01:00
Anton Hvornum d527e215fc Added some log outputs for existing drives. 2021-02-07 15:03:32 +01:00
Anton Hvornum 826119bb99 Added partition info on Partition() creation. This will help detect potential mountpoints as well as filesystem types if any 2021-02-07 15:00:34 +01:00
Anton Hvornum 7123da1c56 Threw the wrong exception 2021-02-07 13:39:39 +01:00
Anton Hvornum 53cdb607bc Added the ability to check if a harddrive has any mountpoint related to a given parameter. 2021-02-07 13:36:30 +01:00
Anton Hvornum 9c7f689dd6 Can't unmount during startup if we want to support existing partitioning schemes. 2021-02-07 13:29:33 +01:00
Anton Hvornum e06603f0e1 has_partitions() doesn't take any parameters, old reminant of prototype code. 2021-02-07 12:53:01 +01:00
Anton Hvornum fa2270a11b Created has_partitions() on BlockDevice's 2021-02-07 12:52:12 +01:00
Anton Hvornum a618ebd611 Adding a check to see if the disk contains a parition table already. has_partitions() TBI 2021-02-07 12:34:39 +01:00
Anton Hvornum 3e261c4033
Merge pull request #104 from phisch/patch-1
Add correct locale to /etc/locale.gen
2021-01-31 09:28:02 +01:00
Philipp Schaffrath 15714ebb86
don't pass encoding in locale argument, it is appended separately in set_locale 2021-01-30 23:28:35 +01:00
Anton Hvornum 534669203a
Merge pull request #103 from nikibobi/patch-1
Fix README.md minimal example link
2021-01-29 21:35:58 +01:00
Borislav Kosharov 8f949be100
fix README.md minimal example link 2021-01-29 19:08:05 +02:00
Anton Hvornum 4a235ced59
Added man build steps to PKGBUILD for python-archinstall. 2021-01-28 16:43:19 +01:00
Anton Hvornum e64bc3ae87
Version and sha256sums on PKGBUILD's 2021-01-27 20:58:00 +01:00
Anton Hvornum b2edfa4ee3
Merge pull request #100 from grazzolini/fix_enable_services
installer: Make sure networkd and resolved are enabled
2021-01-26 14:49:12 +01:00
Anton Hvornum 467878813e This corrects some syntax things for manpages #78. Mainly links are printed out fully rather than wrapping them in a hyper link label. 2021-01-26 14:45:11 +01:00
Giancarlo Razzolini 66293c15f6
installer: Make sure networkd and resolved are enabled
Fixed the logic so systemd-networkd and systemd-resolved will always be enabled when the user
picks the option to copy files from the ISO. The previous behavior was to enable them only if
a wireless network was configured with iwd.
2021-01-26 10:18:56 -03:00
Anton Hvornum 30e66e49ec Fixes #86 by properly raising the the correct exceptions. This will happen when required steps are skipped. And the error message is to simply restart the installer. 2021-01-26 10:57:48 +01:00
Anton Hvornum 2885da3f71
Merge pull request #90 from Reiddragon/master
Added basic F2FS support
2021-01-26 00:02:13 +01:00
Anton Hvornum 6cac9b8610
Merge pull request #95 from Torxed/improved-logging
Tested and verified on a installation. Log file ends up and on errors there's a message printing guiding users to look for it and report issues :)
2021-01-25 23:52:55 +01:00
Anton Hvornum 165d4ebc7f
Synced over the install log to the install medium upon Installer() __exit__. Default storage is /var/log/archinstall/install.log but can be configured in storage.py. This will include crash dumps and a identical copy is found in the ISO as well, in case the users starts looking in /var/log/archinstall in the ISO medium. 2021-01-26 00:44:34 +01:00
Anton Hvornum 65e6b8fe31 Merge branch 'master' of github.com:Torxed/archinstall into improved-logging 2021-01-26 00:33:28 +01:00
Anton Hvornum 190ec7ad42
Merge pull request #96 from Torxed/hardware-n-wifi
Added wifi-configuration support (basic) by copying existing `iwd` configurations. Also added some hardware detection helpers such as `UEFI` detection and wifi hardware as well as detection for three common graphic cards.
2021-01-25 23:32:10 +01:00
Anton Hvornum 3db8e3abbc
Error in copy paste of function name. 2021-01-26 00:22:10 +01:00
Anton Hvornum 5bc878d58c
Added enabling of systemd-networkd and systemd-resolvd in the copying of the ISO network configuration. 2021-01-26 00:13:40 +01:00
Anton Hvornum a3d9ad9f3f
Corrected a error in the installation of iwd. The package was added to base_packages, which is never installed if the installer has already finished installing the base packages before this function was called. copy_ISO_network_config() there for now properly checks if the installation is complete and if so, simply straps in the package. Otherwise adds it to the base packages and waits for the base to roll through. 2021-01-26 00:11:17 +01:00
Anton Hvornum 0c92710c56
Merge pull request #97 from grazzolini/git-pkgbuild
Move PKGBUILD dir to PKGBUILDs dir and create a new PKGBUILD for git
2021-01-25 16:56:07 +01:00
Giancarlo Razzolini db4659a3eb
Move PKGBUILD dir to PKGBUILDs dir and create a new PKGBUILD for git
Create a new PKGBUILD that builds from the current git directory for ease of
testing. Moved the PKGBUILD directory to PKGBUILDs.
2021-01-25 12:06:24 -03:00
Anton Hvornum 405794d53f Adding copy mode for #95 (#82). I wouldn't say this is a hacky way of doing it, but using a string as identifier is the only way I can think of currently in guided.py. When user is prompted to select a interface to configure for networking, there's now a zero-option to copy existing ISO configuration to the install medium. This enables advance configuration prior to running the installer - and simply copy it straight over to the install medium. Two requirements: 1: That iwd is used for wifi configuration and config for passwords etc are stored in /var/lib/iwd 2: That systemd-networkd is used to configure networking/IP/DHCP as anything under /etc/systemd/networkd/* is copied over. 2021-01-25 15:39:27 +01:00
Anton Hvornum 1c80a893ac Adding copy mode for #95 (#82). I wouldn't say this is a hacky way of doing it, but using a string as identifier is the only way I can think of currently in guided.py. When user is prompted to select a interface to configure for networking, there's now a zero-option to copy existing ISO configuration to the install medium. This enables advance configuration prior to running the installer - and simply copy it straight over to the install medium. Two requirements: 1: That iwd is used for wifi configuration and config for passwords etc are stored in /var/lib/iwd 2: That systemd-networkd is used to configure networking/IP/DHCP as anything under /etc/systemd/networkd/* is copied over. 2021-01-25 15:34:35 +01:00
Anton Hvornum 3a16d156b9 Added an embryo for listing wireless networks. 2021-01-25 12:38:11 +01:00
Anton Hvornum 7358dc5a03 Added some basic/crude graphics checks in hardware.py 2021-01-25 10:42:02 +01:00
Anton Hvornum 68adb3108f Created an embryo for hardware detection. Supports detecting WiFi and UEFI. This fixes #44 and is a start for #82. 2021-01-25 10:31:02 +01:00
Anton Hvornum 5c696c4bc1
Delete test.py 2021-01-25 10:11:51 +01:00
Anton Hvornum 7eaee2cd48
Added a little print out to inform the user about where to find the log file on a crash. 2021-01-25 00:25:15 +01:00
Anton Hvornum 40622265a2
Simplified the code a bit by removing the log file setup. It's not handled by archinstall.output.log(). Also moved two variable setups to the top. 2021-01-25 00:11:34 +01:00
Anton Hvornum 435d2f687e
Added some more fields to the configuration output, as well as added a better fail safe for the logging output. Any exception during the installation will be caught by __exit__ in Installer(), hopefully. 2021-01-25 00:09:34 +01:00
Anton Hvornum 9a94a632bf
Slimmed the awesome WM profile a bit more. added a TODO to ask the users to select a browser rather than 'forcing' one on them 2021-01-24 23:52:17 +01:00
Anton Hvornum a58331868e
Added debug output as well as corrected output formatting in log(). 2021-01-24 23:41:45 +01:00
Anton Hvornum 73191b921e
terminus font has changed name upstream from terminus-font-otb to terminus-font. Which is one (of probably many) fonts that is required for awesome to render text in menu's etc. 2021-01-24 23:38:20 +01:00
Anton Hvornum ca2408a3d2
Mixup with variable name 2021-01-24 23:31:41 +01:00
Anton Hvornum 828a09b9c8
Simpligied installer.log() to wrap output.log() with it's changes. 2021-01-24 22:57:16 +01:00
Anton Hvornum f31d5e34cd Trying to centralize the configuration for logging. Phasing out some parameters which also affects the current ability to create multiple log files for multiple runs. This will be re-introduced when logging is made into a class object in a later version 2021-01-24 22:42:07 +01:00
Anton Hvornum 97b8bbb7d1
Merge pull request #92 from grazzolini/change_arch_site
Change Arch Linux site URL's
2021-01-22 17:41:19 +01:00
Giancarlo Razzolini f48e5d59c6
Change Arch Linux site URL's
Recently Arch Linux shed the www portion of its site. The links still work,
but it's a 301 redirection to archlinux.org. Changed all the URL's still pointing
to www.archlinux.org to avoid the unnecessary redirection, since on browsers the 301
is usually saved and respected, but command line tools line wget or python might not
save this and always go through the redirect.
2021-01-22 13:34:44 -03:00
Reid eb7f44d03d Added basic F2FS support 2021-01-22 16:40:46 +02:00
Anton Hvornum 1013153744
Merge pull request #89 from advaithm/master
plasma wayland and xfs support
2021-01-22 13:54:11 +01:00
Anton Hvornum 5b7af12a91
Safety checks prohibited this from running
The safety mechanism prevents the installation-code under `if __name__` to run when importing to check for the `_prep_function`.
when the import for `_prep_function` check is executed it imports with a bogus `__name__` override. This is to protect anything under if `__name__` from running just to be able to import and run `_prep_function()`.

After that is done and the actual installation begins, it imports with a proper `__name__`,
The namespace is `filename` minus the `.extension` *(.py)*, normally imports of modules with dashes (`-`) in the name is prohibited, but archintall's import mechanism supports this as it's a string-import via `importlib`.

So modified to `if __name__ == 'kde-wayland'` and that worked great : )
2021-01-22 13:53:04 +01:00
advaithm a54c6e3c2f
replced slef.part with self.partition 2021-01-22 17:08:35 +05:30
advaithm 7c4fc14322
fixed spaces in kde-wayland.py 2021-01-22 17:03:35 +05:30
advaithm f83129728a
fixed spaces in kde-wayland.py 2021-01-22 17:01:34 +05:30
advaithm eb35265234
fixex spaces in installer.py 2021-01-22 16:57:33 +05:30
advaithm 43c92b0aad
fixed tabs and spaces problem 2021-01-22 16:22:30 +05:30
advaithm 905f10e9d2
fixed tabs and spaces problem 2021-01-22 16:18:12 +05:30
advaithm 40c6aad0ed
xfs as partition option 2021-01-22 15:32:29 +05:30
advaithm 6fb2e0c129
plasma-wayland installer 2021-01-22 15:16:35 +05:30
Anton Hvornum 89bb819af2
Fixes #88 - ext4 paritions incorrectly labeled 2021-01-21 20:21:31 +01:00
Anton Hvornum 5927060133
Merge pull request #85 from j-james/master
Spell "environment" correctly
2021-01-21 19:30:04 +01:00
Anton Hvornum d54e281249
Merge pull request #87 from grazzolini/fix_networking
examples/guided: Enable systemd-resolved
2021-01-21 19:11:04 +01:00
Giancarlo Razzolini 07ca7f421d
examples/guided: Enable systemd-resolved
If we enable systemd-networkd and do not enable systemd-resolved, the installed system
is left on a state where it has networking, but can resolve any hostnames. It is required
to have systemd-resolved enabled if any .network file has a DNS entry or is using DHCP=yes.

https://wiki.archlinux.org/index.php/Systemd-networkd#Required_services_and_setup
2021-01-21 15:02:33 -03:00
Anton Hvornum 63f04d3110
Added nullrequest to the contributors list. 2021-01-21 17:20:52 +01:00
Anton Hvornum 178bfe9bfe
Merge pull request #84 from advaithm/master
reworked kde.py to use sddm instead of hacking xinitrc
2021-01-21 17:05:37 +01:00
j-james 627deb7992
Spell "environment" correctly 2021-01-21 06:56:11 -08:00
advaithm fe1be8d278
reworked kde.py to use sddm instead of hacking xinitrc 2021-01-21 18:57:41 +05:30
Anton Hvornum f152b67536
Merge pull request #79 from grazzolini/installation
Change the documentation now that archinstall is on the official repo…
2021-01-20 23:16:41 +01:00
Giancarlo Razzolini beb6ab1ee5
Change the documentation now that archinstall is on the official repositories
Changed README.md to not use sudo pip anymore and point users to use pacman instead.
We go into more detail on the docs. Changed binary.rst to point to the official repositories
too. Changed python.rst to point to using the official repositories for the installation of
both the archinstall script or for just installing the library (archinstall depends on python-archinstall).
2021-01-20 18:43:58 -03:00
Anton Hvornum 61866e346f
Updated hashsums to latest version: v2.1.0 2021-01-20 01:03:48 +01:00
Anton Hvornum ec638351e8
Version bump. All future releases will now be PGP-signed. 2021-01-20 00:40:08 +01:00
Anton Hvornum c67b1c4006
Expanded a shortening. 2021-01-19 23:59:38 +01:00
Anton Hvornum 1819b591ae
Merge pull request #77 from Torxed/fix_typos
Fix typos
2021-01-19 22:59:02 +01:00
Anton Hvornum b4d92701fd
Expanded a shortening. 2021-01-19 23:57:36 +01:00
Anton Hvornum 0c40aafb2d
Merging in master changes into grazzolini's typo fixes 2021-01-19 23:48:15 +01:00
Anton Hvornum d0a02f39c8
Fixed #76 and created PGP keys. 2021-01-19 23:35:37 +01:00
Anton Hvornum 53a4a082da
Added a profile for alacritty as well as tweaked the awesome profile and application profile. 2021-01-19 23:34:11 +01:00
Anton Hvornum 31c3fc0d60
Merge pull request #75 from grazzolini/fix_typos
CONTRIBUTING: Fix typos
2021-01-19 22:56:47 +01:00
Giancarlo Razzolini de248caa0c
CONTRIBUTING: Fix typos
Fixed some typos on the CONTRIBUTING.md document.
2021-01-11 12:26:37 -03:00
Anton Hvornum c5250fbe3e Installer.mount() had accedental hard coded mountpoint. 2020-12-09 10:33:32 +01:00
Anton Hvornum 5cf09c6641 Removing debug output 2020-12-07 20:38:51 +01:00
Anton Hvornum 21cfe5708c Fixing a strip glitch in `sys_command()` causing certain output to get truncated in unwanted places (like fstab) 2020-12-07 20:36:06 +01:00
Anton Hvornum 5c8d24a329 Minor tweaks 2020-12-07 20:33:09 +01:00
Anton Hvornum ada7a0515b More debugging 2020-12-07 20:31:18 +01:00
Anton Hvornum 881d77064c Debug data 2020-12-07 20:27:45 +01:00
Anton Hvornum 5e62b409b4 Type mismatch in genfstab() 2020-12-07 20:21:47 +01:00
Anton Hvornum 0de302c47d Updated fstab to better match the given input 2020-12-07 20:18:47 +01:00
Anton Hvornum ba863c341d fstab incorrectly updated since many version ago
Updated `genfstab()` to approprately generate a correct fstab for mounted filesystems used in `installation.mountpoint`.
2020-12-07 19:56:51 +01:00
Anton Hvornum 7097fb9ce3 Debugging 2020-12-07 19:36:18 +01:00
Anton Hvornum 584219e847 Updated debug log output 2020-12-07 19:28:36 +01:00
Anton Hvornum c3336dcb70 Added some more log output regarding fstab. 2020-12-07 19:22:48 +01:00
Anton Hvornum fb429fc866 Reverted genfstab changes.
But placed genfstab in the Installation() __exit__ as the last action performed.
2020-12-07 16:45:49 +01:00
Anton Hvornum 67ce208d25 Debugging 2020-12-07 16:42:08 +01:00
Anton Hvornum 63c6e0464b Making sure installation.mount() also triggers genfstab.
Since it's a installation specific mount, we need to re-create genfstab. Also corrected genfstab flags as well as added an option to override the >> (append) operator to become a write-over operator.
2020-12-07 16:36:35 +01:00
Anton Hvornum e637852df0 Potential solution for #67
It's a 0.025 second sleep waiting for the partition to pop up in partprobe.

Also added a grace period of 10 seconds for that to occur. Otherwise we'll throw an exception since something most likely broke down. (Note here: Older drives, say 6200 RPM spin disks, might take a few seconds to come online. Have no such hardware to test with, but worth testing)
2020-12-07 15:50:47 +01:00
Anton Hvornum 1aef9807f9 Final verification of issue 2020-12-07 15:43:30 +01:00
Anton Hvornum 6af71eee30 Removed debugging 2020-12-07 15:41:32 +01:00
Anton Hvornum 1209c8f550 Tweaked debugging a bit 2020-12-07 15:40:39 +01:00
Anton Hvornum 5882fa9587 Update disk.py 2020-12-07 15:35:29 +01:00
Anton Hvornum a8bb3b4bb3 Removing one debug step to debug deeper. 2020-12-07 15:32:34 +01:00
Anton Hvornum 24dfe97386 Spelling error 2020-12-07 15:30:00 +01:00
Anton Hvornum de4471ca68 Adding some debugging for #67 2020-12-07 15:29:34 +01:00
Anton Hvornum 17883fcb9f Check if directory exists before mounting 2020-12-06 23:08:12 +01:00
Anton Hvornum c7228910a7 Swapped order of partition vs mountpoint in installation.mount() 2020-12-06 22:45:59 +01:00
Anton Hvornum f7d236c00f Fix for last commit 2020-12-06 22:40:05 +01:00
Anton Hvornum 77035dfdcd Mixup with the variable 2020-12-06 22:29:09 +01:00
Anton Hvornum 3715e3a11b
Merge pull request #72 from Torxed/drive-select
selecting disk by id/size should return a BlockDevice()
2020-12-06 22:10:46 +01:00
Anton Hvornum 0f2d61ba08 selecting disk by id/size should return a BlockDevice() 2020-12-06 22:02:41 +01:00
Anton Hvornum ace6beb209 Attempting to select drives by size and/or id 2020-12-06 20:59:32 +00:00
Anton Hvornum d588d2f1eb
Merge pull request #71 from Torxed/drive-select
Attempting to select drives by size and/or id
2020-12-06 21:29:29 +01:00
Anton Hvornum 731804c491
Updated hash in PKGBUILD 2020-12-06 17:43:16 +01:00
Anton Hvornum ad5ce9cd19
Updated hash of PKGBUILD 2020-12-06 17:42:14 +01:00
Anton Hvornum dc3ef2e269
Updated hash for PKGBUILD 2020-12-06 17:40:48 +01:00
Anton Hvornum db455276ac Version bump in docs 2020-12-06 17:28:44 +01:00
Anton Hvornum af01f1d912 Version bump: 2.0.6
Packaging for release.
2020-12-06 17:26:54 +01:00
Anton Hvornum 4d0f89e084 Variable issue in Application() from the latest change. 2020-12-06 17:16:59 +01:00
Anton Hvornum 22e1271a0b Making list_examples() results cached
This to lock in found modules, in case paths dissapear during runtime.
2020-12-06 17:12:12 +01:00
Anton Hvornum a0c9e58c82 More debugging 2020-12-06 17:09:59 +01:00
Anton Hvornum 94581b706a Debug for testing 2020-12-06 17:08:43 +01:00
Anton Hvornum 271ca853d4 Refined debug output 2020-12-06 17:03:41 +01:00
Anton Hvornum df71d22498 PATH correction for /examples/ 2020-12-06 16:53:36 +01:00
Anton Hvornum d00f0f0005 Debugging 2020-12-06 16:52:11 +01:00
Anton Hvornum 101f3bdde9 Removed /examples/ from list_profiles() by default
Adding it back in in "module mode" so that it can find guided.py correctly. This voids showing it in the user-question section.
2020-12-06 16:30:29 +01:00
Anton Hvornum eaf4528276 Reduced calls to Profile.path
Since it triggers multiple walks and HTTP requests.
2020-12-06 13:10:10 +01:00
Anton Hvornum 393758ec24 Removed debugging for walk
Application profiles now seam properly integrated by setup.py, remote profiles have not yet been tested.
2020-12-06 12:50:51 +01:00
Anton Hvornum 7764804d4c Added application profiles to the setup.py
Otherwise local lookups for application specific profiles will break/be missing.
2020-12-06 12:37:51 +01:00
Anton Hvornum 5a07b22606 Debugging 2020-12-06 12:12:10 +01:00
Anton Hvornum 1edb8f6f72 Added additional user-verification to guided.py
Also spelling error in subpath
2020-12-06 12:03:36 +01:00
Anton Hvornum b6c6e414b1 Fixed issue where absolute paths to profiles got squashed 2020-12-06 12:00:56 +01:00
Anton Hvornum 9fb08387de Reverted last commit and added debugging in guided instead 2020-12-06 11:58:16 +01:00
Anton Hvornum 017b4b4fa9 Added debugging to find application issue 2020-12-06 11:54:38 +01:00
Anton Hvornum 74c351f27f Simplified guided.py a bit 2020-12-06 11:49:56 +01:00
Anton Hvornum 51629897b9 Modified Application() and list_profiles()
list_profiles() support a subpath parameter, which just gets appended after any given path found in PROFILE_PATH as well as UPSTREAM_URL to support filtering on application level.
2020-12-06 11:46:10 +01:00
Anton Hvornum 7f57e670da Returning Profile() to correctly handle with statement 2020-12-06 11:38:23 +01:00
Anton Hvornum bef8926004 Update profiles.py 2020-12-06 11:37:09 +01:00
Anton Hvornum 0e8aee0b54 Added spec as an instance variable to Script() 2020-12-06 11:33:28 +01:00
Anton Hvornum d3462aa483 Moving self.installer to Script() instead of Profile() 2020-12-06 11:32:31 +01:00
Anton Hvornum 9921276ea5 Wrong variable passed to spec_from_file_location() 2020-12-06 11:29:44 +01:00
Anton Hvornum 73ca83f2c9 Debugging 2020-12-06 11:25:33 +01:00
Anton Hvornum d54bd4462b Simplifying the Profile() and Imported() logic.
Combining two/three separate logics into one, to make it easier to maintain profile loading.
2020-12-06 11:23:19 +01:00
Anton Hvornum 783e8ac117 Added a lower() factor to mac addresses in get_interface_from_mac() to match list_interfaces(). 2020-11-29 21:51:39 +00:00
Anton Hvornum 0a085e5106 Profile filename confusion between list_profiles() and @path declaration. 2020-11-29 21:43:49 +00:00
Anton Hvornum 4fd1e96d24 Profile filename confusion between list_profiles() and @path declaration. 2020-11-29 21:40:17 +00:00
Anton Hvornum 5470434097 Added a mac->iface lookup function, just to make the templte codes easier to read. 2020-11-29 21:36:15 +00:00
Anton Hvornum 07e6e91f3c Issue in archinstall.output.log() when the log file output is omitted. Now properly checks if a logfile is given, otherwise it ignores it. 2020-11-29 21:30:44 +00:00
Anton Hvornum 82e0d20738 Forgot return statement 2020-11-29 21:28:20 +00:00
Anton Hvornum c27c76896e Added more debugging 2020-11-29 21:27:57 +00:00
Anton Hvornum c4cfa26f59 Forgot to call .geturl() on urlparse object. 2020-11-29 21:26:39 +00:00
Anton Hvornum 5ec520f461 Test/Debug data. 2020-11-29 20:55:56 +00:00
Anton Hvornum 8814cb4697 Forgot to replace URL schemes from temporary path. #62 2020-11-29 20:54:27 +00:00
Anton Hvornum 0102b86b0d Forgot 'self' in localize_path() 2020-11-29 20:53:31 +00:00
Anton Hvornum b60b173a91 Tweaking Profile() to use Script() as a handler for any given path. 2020-11-29 20:52:59 +00:00
Anton Hvornum 817465b8fb Merging in find_installation_script() into Script() for a more unified handler of any given script type or location. Which should correct #62. 2020-11-29 20:50:22 +00:00
Anton Hvornum 4d153c5bd1 Lowering MAC addresses for file-name comparison against local mac addresses in #62 2020-11-29 20:30:54 +00:00
Anton Hvornum f5aac7f24e Spelling error 2020-11-29 20:21:12 +00:00
Anton Hvornum d99b804386 Added a bit more detail to HTTP errors. 2020-11-29 20:20:47 +00:00
Anton Hvornum 3563f00d87 Spelling error 2020-11-29 20:19:44 +00:00
Anton Hvornum 8f0e8212c3 Forgot to change the variable in unattended. 2020-11-29 20:18:57 +00:00
Anton Hvornum 607de557f9 Removed find_examples() and moved example finding paths into archinstall.storage. Otherwise they won't share the variable instance across imports (mutables vs non-mutables i guess). In an attempt to fix #62 2020-11-29 20:17:21 +00:00
Anton Hvornum 77e3782374 Forgot a few imports 2020-11-29 19:52:14 +00:00
Anton Hvornum 9db54786f0 Removed unreliable find_examples() and will use list_profiles() instead, as it covers a wider range of profiles and search area. 2020-11-29 19:49:55 +00:00
Anton Hvornum 4f2a6372f6 Trying to combat #62. By implementing a UPSTREAM_URL variable globally, which can be controlled, as well as a PROFILE_PATH which controls where it should look for profiles. the list_profiles() should be more robust. 2020-11-29 18:39:57 +00:00
Anton Hvornum 6fe63626d6
Added a matrix.org server as an alternative 2020-11-26 16:59:49 +01:00
Anton Hvornum 95c80b7e83 Slimmed the awesome profile a bit. No need to install tons of dependencies just for the desktop environment. 2020-11-11 23:11:11 +00:00
Anton Hvornum 031f6d204e Updated hash to v2.0.6rc17. 2020-11-11 22:55:12 +00:00
Anton Hvornum 7172dc5cf1 Version bump: 2.0.6rc17 2020-11-11 22:43:55 +00:00
Anton Hvornum be8ac2558e
Implemented systemd-networkd for installed mediums
Some bug fixes, but mostly added the option to configure **one** network interface.
2020-11-11 21:37:40 +00:00
Anton Hvornum 4dd20ae4d4 Fixed default-variable setup bug. 2020-11-11 22:23:26 +00:00
Anton Hvornum b00f307a28 Added minor error handling in installer.set_keyboard_language() 2020-11-11 22:18:22 +00:00
Anton Hvornum f6460b8634 Fixed a bug where no locale generated a hang because loadkeys needs at least one option in set_keyboard_language() 2020-11-11 22:11:13 +00:00
Anton Hvornum 72f9c07e43 Forgot to enable systemd-networkd service. 2020-11-11 20:44:05 +00:00
Anton Hvornum a9099cbb46 Added key error correction again by creating default value. Should do this for all of them really. 2020-11-11 20:37:36 +00:00
Anton Hvornum 9ad56f3462 Created a default package entry in the _guided storage. 2020-11-11 20:28:51 +00:00
Anton Hvornum cb6ab2c28b Logical issue with how I stripped the response. It overrode the None but never reverted it back. 2020-11-11 20:26:21 +00:00
Anton Hvornum 092f2d3240 Revert gateway to None if the string is zero-len. 2020-11-11 20:25:01 +00:00
Anton Hvornum 065da563fb configure_nic() is on the installation, not a generic function. 2020-11-11 20:23:50 +00:00
Anton Hvornum 7288df57b7 Fixed DNS logic, since DNS might become [""]. 2020-11-11 20:23:13 +00:00
Anton Hvornum b3bcf54a2c Fixed generic_select() to accept (and break on) empty selects. 2020-11-11 20:20:46 +00:00
Anton Hvornum abfeeb8dd0 Asking user for interface-names rather than MAC address. Should probably print the current IP if any, which would make it easier to identify 2020-11-11 20:17:48 +00:00
Anton Hvornum be2dd2b3cd Fix for generic_select() call. 2020-11-11 20:15:58 +00:00
Anton Hvornum 72fb912b6b Adding network support (questions) to guided.py according to #65. Previous commit added the functionality to configure the nic inside the installation. 2020-11-11 20:13:26 +00:00
Anton Hvornum 07d70a0a91 Added a simple INI handler, and a helper function under Installer().configure_nic() to help with nic configuration. Supports a crude DHCP configuration and a minimal static IP handler. 2020-11-11 19:11:22 +00:00
Anton Hvornum 9a1199333a
Merge pull request #66 from Torxed/63-package-groups
Fixed #63
2020-11-09 21:53:10 +01:00
Anton Hvornum bf4fd837f4 Fixed #63
Validate against /groups as well. There's not really a search API that I could find *(with little effort on my part to try and find it)*. So I went ahead and just check for HTTP 200 on the package URL. This won't give search functionality, but it will at least validate a group definition.
2020-11-09 21:41:54 +01:00
Anton Hvornum e43a84bb4b Fix for #61. Variable mix-matches should be fixed and tested now. There's also slightly better debug output to show where the issue is rather than just 'AttributeError'. 2020-11-08 23:31:10 +00:00
Anton Hvornum decf9119f2 Fixing a variable missmatch in #61. The global configuration snapshot (that is used for debug printing) does not contain the password for the new user (for safety reasons). So we can no longer get the password from that snapshot, but instead we have to get it from the global variable users (:dict). 2020-11-08 23:22:26 +00:00
Anton Hvornum 18c811ac96 Added some more debugging 2020-11-08 23:12:49 +00:00
Anton Hvornum 5ad6ea26c8 Tweaked #58 slightly. Execution is done with an attempt to retain file line numbers when executing. It also consolidates behavior of files and remote documents in a 'similar' manner. 2020-11-08 22:57:53 +00:00
Lord Anton Hvornum ed579a07ed Fixing issues with lists being passed instead of strings 2020-11-08 19:36:29 +01:00
Lord Anton Hvornum 9807bd58c4 Version bump 2020-11-08 15:29:20 +01:00
Lord Anton Hvornum 67cdc89002 Added additional debug on error in selected profiles 2020-11-08 15:28:49 +01:00
Lord Anton Hvornum 15e68ef49d Version bump 2020-11-08 14:49:52 +01:00
Lord Anton Hvornum 4046c5349a Fixed variable issues and version bump 2020-11-08 14:48:40 +01:00
Anton Hvornum 3598e0bfa2 Variable type-o issue. 2020-11-08 14:27:53 +01:00
Lord Anton Hvornum 667e06c63e Fixed an issue where python's setuptools didn't like running bdist_wheel. Causing issues upstream on pypi because examples/ and VERSION would be missing for instance. 2020-11-08 14:11:24 +01:00
Lord Anton Hvornum f5230fcb30 Attempting to fix pypi build issues. 2020-11-08 13:22:59 +01:00
Lord Anton Hvornum 6b4a242d61 Updated sha256 hashes. 2020-11-08 11:03:16 +01:00
Anton Hvornum 16c98e8102
Introducing log data and support files
Logs are stored under `~/.cache/archinstall` and documentation has been updated.
2020-11-08 10:57:20 +01:00
Anton Hvornum ee9af976ca Updated documentation
Related to the new log features.
2020-11-08 10:56:29 +01:00
Lord Anton Hvornum 269a5fb2b9 Updated sha256 hashes. 2020-11-07 10:33:50 +01:00
Anton Hvornum e64cd07a41
Update PKGBUILD 2020-11-06 22:20:29 +01:00
Anton Hvornum 01b0e292f8
Update PKGBUILD 2020-11-06 22:20:17 +01:00
Anton Hvornum 0a1435f03f
Update PKGBUILD 2020-11-06 22:20:07 +01:00
Anton Hvornum 8504c48ebb
Update VERSION 2020-11-06 22:19:13 +01:00
Anton Hvornum 08c586632a Forgot an import of storage. 2020-11-06 00:34:08 +00:00
Anton Hvornum 216917b9c3 Fallback automatically to a log file if we can detect one, even tho file was never given in the log() call. This might cause some log posts to slip in to the logs, but use suppress=True to force-ignore those in such a case. 2020-11-05 00:36:19 +00:00
Anton Hvornum c22e986874 Added the overall guided config into the installer log. This applies to the guided template only. 2020-11-05 00:05:03 +00:00
Anton Hvornum efd6e2add2 Tweaked some log messages in archinstall.Installer() 2020-11-04 23:58:55 +00:00
Anton Hvornum 16d9bd5934 Logic issue minor fix. 2020-11-04 23:55:26 +00:00
Anton Hvornum f594e6638a Fixed level issues on log output. Also tweaked it so that all log rows come to the log file, but not nessecarily the interactive screen (tty/journald). Also tweaked certain log messages to be printed vs not printed. 2020-11-04 23:53:39 +00:00
Anton Hvornum ab69cb7525 Cleaned up some logic. How the LOG_LEVEL is fetched from the storage. 2020-11-04 23:45:45 +00:00
Anton Hvornum d85c485b3a Updated contributors with the latest contributors. 2020-11-04 23:42:51 +00:00
Anton Hvornum 0d7789f195 Forgot an import of storage. 2020-11-04 23:40:41 +00:00
Anton Hvornum fb10e94c0a installer.log() should not be a property. 2020-11-04 23:39:55 +00:00
Anton Hvornum baf2ef1128 Forgot an import of storage. 2020-11-04 23:37:53 +00:00
Anton Hvornum f794cad7bb Forgot to remove self. reference when copying some code. 2020-11-04 23:36:54 +00:00
Anton Hvornum fd3c29f486 Spelling error on systemd-bootctl. 2020-11-04 22:59:12 +00:00
Anton Hvornum d899a1473f Merge branch 'master' of github.com:Torxed/archinstall into 56-log-data 2020-11-04 22:57:48 +00:00
Anton Hvornum b98850819b Added multiple log features.
* [Reintroduced](f64a605449/archinstall.py (L57-L71)) log levels
* Created a global log file definition
* Optional support for `python-systemd`'s journald handler.
* Optional file output that has a globally configurable definition, that archinstall will honor in `archinstall.storage['logfile']`.
2020-11-04 22:41:50 +01:00
Anton Hvornum 887d5ded07
Merge pull request #58 from demostanis/master
Shell script calling python & support for specifying remote profiles and full paths
2020-11-02 20:28:19 +01:00
Anton Hvornum 77f69f844b
Merge branch 'master' into master 2020-11-02 20:19:35 +01:00
demostanis d14f1156a0 md5 -> sha256 2020-11-02 18:52:10 +01:00
demostanis 8f7cc1280e Replaced spaces with tabs 2020-11-02 18:30:43 +01:00
Anton Hvornum 57eef46f95
Fix for issue #59
Relative paths work great for running as a script.
But break when running as a module since there is no `src/` folder to mention.
This should clear that up as the `src/` now lives under wherever the python package was installed.
2020-11-01 23:01:41 +00:00
demostanis 5d2b11e60f Ran autopep8 2020-10-23 15:53:31 +02:00
demostanis d018ae98a1 Remove useless log 2020-10-23 15:49:03 +02:00
demostanis 434cf71221 Add support for remote profiles 2020-10-23 15:44:02 +02:00
demostanis 7f72c0fd93 Add vim line 2020-10-23 12:02:06 +02:00
demostanis 4ef2a60e6a Added one single sh file to run archinstall 2020-10-23 11:55:36 +02:00
demostanis 0c235c929c Added sums to PKGBUILD 2020-10-23 11:50:25 +02:00
Anton Hvornum e06ca749a4 Preparing log-data and debug output. 2020-10-20 21:40:17 +00:00
Anton Hvornum 66e495e994
A new contributor, @vamega 2020-10-20 18:40:28 +00:00
Anton Hvornum 2fc51d540a
Merge pull request #57 from vamega/fixup
Fix minor issues like typos and code style violations.
2020-10-20 20:39:46 +02:00
Varun Madiath 5ded22a5d0 Fix some PEP-8 errors. 2020-10-19 23:07:35 -04:00
Varun Madiath e4f363ce7d Fix typo in function parameter
`suppress_errors` was previously spelt `surpress_errors`
2020-10-19 23:04:14 -04:00
Varun Madiath da59378cc4 Fix typos. 2020-10-19 23:04:14 -04:00
Anton Hvornum f32f1e238a
Merge pull request #55 from Torxed/43-overview
Added a configuration overview before formatting
2020-10-18 21:24:46 +02:00
Anton Hvornum 06ee896c6c Changed my mind, reverting to the original sig-handler is better. 2020-10-18 21:23:01 +02:00
Anton Hvornum db2e5d721c Revert to a some what default sig-kill handler. (needs some adjustments just to clean up things, but I think it will do for now) 2020-10-18 21:22:05 +02:00
Anton Hvornum ad2adec834 Reverted some changes. It was to 'complicated' to get status of the sys.stdin buffer while it did not contain a new-line character. So reverted that code. Here is an interesting read, but a bit to much code for a simple guided template: https://stackoverflow.com/a/41459565/929999 2020-10-18 21:19:08 +02:00
Anton Hvornum 2df4347b44 Added a slightly convoluted but non-intrusive 'are you sure?' on Ctrl+C/any input. 2020-10-18 20:49:44 +02:00
Anton Hvornum 479881a5a2 Tweaked the output a little. 2020-10-18 20:36:14 +02:00
Anton Hvornum 58201d7234 Tweaked the _guided storage. One variable was a loaded module, which is hard to convert to json in a meaningful way. 2020-10-18 20:32:26 +02:00
Anton Hvornum 1bd6a19dc4 Made Profile() json-dumpable 2020-10-18 20:27:40 +02:00
Anton Hvornum fa4be63e48 Forgot an import, as well as made BlockDevice() have less verbose output on json.dumps. 2020-10-18 20:26:09 +02:00
Anton Hvornum 3d4eaec466 Forgot an import 2020-10-18 20:19:21 +02:00
Anton Hvornum 17a70eb9f4 Removed a stub function 2020-10-18 20:18:20 +02:00
Anton Hvornum d5effa744f Added a JSON serializer for certain non-json objects. 2020-10-18 20:17:45 +02:00
Anton Hvornum 23365d2d8e Added a test version trying to solve #43. 2020-10-18 20:00:53 +02:00
Anton Hvornum 3ba6e69e05
Update pull_request_template.md 2020-10-18 14:57:22 +02:00
Anton Hvornum 7dd38f167b
Merge pull request #53 from Torxed/guided
Implemented early package-name-checks for guided.py
2020-10-18 13:31:54 +02:00
Anton Hvornum a69e1af4f1 Added error handling to guided.py when not selecting a profile to install. 2020-10-18 13:25:13 +02:00
Anton Hvornum 4b1f22bf91 Added error handling to guided.py when not selecting a profile to install. 2020-10-18 13:23:51 +02:00
Anton Hvornum dafe304b00 Added error handling to guided.py when not selecting a profile to install. 2020-10-18 13:21:42 +02:00
Anton Hvornum 9c5d1e9891 Added error handling to guided.py when not selecting a profile to install. 2020-10-18 13:20:58 +02:00
Anton Hvornum 0e8130af9a Wrong relative import, corrected to avoid .lib.lib.exceptions 2020-10-18 13:13:09 +02:00
Anton Hvornum fd3bcdd7db Merge remote-tracking branch 'origin' into guided 2020-10-18 13:08:24 +02:00
Anton Hvornum b6c5942da6
Merge pull request #52 from Torxed/profile
Implemented profiles/desktop.py
2020-10-18 13:03:10 +02:00
Anton Hvornum d95b915681 Logical issue with how I'm used to dealing with selecting list indexes. 2020-10-18 12:51:33 +02:00
Anton Hvornum 3686842587 Spelling error on file 2020-10-18 12:45:10 +02:00
Anton Hvornum c6eb0386db Spelling error on a variable 2020-10-18 12:31:39 +02:00
Anton Hvornum a73f0b0135 Added a session-storag. This is in an attempt to build away some magic functionality that might otherwise be hard to understand/maintain over a long period of time. Using this in profiles/desktop.py as a test. 2020-10-18 12:28:12 +02:00
Anton Hvornum ec49a42f2b Wrong variable name (from a copy paste issue) 2020-10-18 12:04:27 +02:00
Anton Hvornum 973abec854 Merge remote-tracking branch 'origin' into profile 2020-10-18 11:58:53 +02:00
Anton Hvornum 90eff26657 Reverted TTS implementation from 35913c4. Since blind people use screen readers for this functionality. Will have a look at http://www.linux-sppeakup.org/. 2020-10-18 11:58:29 +02:00
Anton Hvornum a60a3ca812 Added profile `desktop.py` which helps users select a desktop environment. Also added `archinstall.generic_select` to help with selecting generic things from a list of options. 2020-10-18 10:46:28 +02:00
Anton Hvornum ea84565f86 Implementing error handling for #50. So that the errors do not come at the very end, but in the beginning right after the user inputted something (quicker feedback to the user). 2020-10-18 10:03:26 +02:00
Anton Hvornum 1a10fe3f51 Implementing error handling for #50. So that the errors do not come at the very end, but in the beginning right after the user inputted something (quicker feedback to the user). 2020-10-18 09:58:33 +02:00
Anton Hvornum 60aaae4337
Create pull_request_template.md 2020-10-16 11:09:23 +02:00
Anton Hvornum 1a79d37ce6
Delete description.jpg
This project started out as a fun hobby project, and some internal humor was to be expected at that time to keep a sane mind.
But as this project has grown, some of these personalized aspects are being removed for future developers sake. This is why this picture gets archived : )
2020-10-16 10:24:33 +02:00
Anton Hvornum 5a367bc1c9
Update README.md 2020-10-16 10:23:21 +02:00
Anton Hvornum 977b6221b1
Update CONTRIBUTING.md 2020-10-16 10:22:51 +02:00
Anton Hvornum 6cfa2a27af
Create CONTRIBUTING.md 2020-10-16 10:17:31 +02:00
Anton Hvornum 9f6dc03a0d Simplified the README a bit. 2020-10-11 14:29:02 +02:00
Anton Hvornum 905e56f4d3 Simplified the README a bit. 2020-10-11 14:27:53 +02:00
Anton Hvornum 35913c4ebe Added imports for `archinstall.TTS()` as well as added optinal depends for `PKGBUILD` files. 2020-10-11 14:04:41 +02:00
Anton Hvornum 2f5aa052a1 Added text-to-speach, untested but the base is now added. It routes through if available. And can be accessed with directly if needed. 2020-10-11 14:02:01 +02:00
Anton Hvornum d043f487b2 Added user_interaction documentation. 2020-10-01 22:01:52 +02:00
Anton Hvornum c6e61df5c4 Apparently empty source definitions aren't allowed. 2020-10-01 11:31:06 +02:00
Anton Hvornum 2c24903932 Merge branch 'master' of github.com:Torxed/archinstall into master 2020-10-01 10:33:20 +02:00
Anton Hvornum 8d941eaa2c Renamed the pre-compiled PKGBUILD profile to archinstall-bin. Also added archinstall which is helper-scripts to run archinstall in python-module mode which depends on python-archinstall. Version bump to 2.0.5 2020-10-01 10:33:14 +02:00
Anton Hvornum 9e36e555f3
Update README.md 2020-09-30 23:19:28 +02:00
Anton Hvornum 7155f63345 readthedocs debugging 2020-09-30 23:15:16 +02:00
Anton Hvornum 4594c95bb9 Empty .. code-block:: was not allowed. Needed console as well. 2020-09-30 23:11:01 +02:00
Anton Hvornum 088fb5cfcd Fixed a syntax issue with readthedocs. 2020-09-30 23:02:45 +02:00
Anton Hvornum d222b53e23 Restructured the doc order a bit. Also added a post-installation section. 2020-09-30 22:57:18 +02:00
Anton Hvornum a91aea3154 First complete draft of the documentation. Some autodocs are still unpopulated but will be done via code and not reST chapters. 2020-09-30 22:24:57 +02:00
Anton Hvornum af92d15e96 Attempting to fix autodoc. 2020-09-30 21:00:35 +02:00
Anton Hvornum 5a77c4ee6a Added YAML so that Readthedocs support a newer version of Python (why isn't this default yet) 2020-09-30 20:56:45 +02:00
Anton Hvornum 9544aa8092 Attempting to fix autodoc. 2020-09-30 20:49:05 +02:00
Anton Hvornum cf3ccb4788 Cleaned up the awesome wm profile. A few things were test purpose-addons that shouldn't be in the default profile. 2020-09-30 20:47:28 +02:00
Anton Hvornum 6b93650bfd Type-o 2020-09-30 19:34:57 +02:00
Anton Hvornum 7448881582 Added KDE profile (untested) 2020-09-30 18:23:27 +02:00
Anton Hvornum c1692a478d __name__ missmatch in gnome profile. 2020-09-30 12:46:34 +00:00
Anton Hvornum 534679e88f Added gnome as a profile (and application for application specific steps). Also tweaked xorg to not be so intrusive when used for anything other than awesome WM. Tweaked awesome WM to accomodate this change. 2020-09-30 12:31:47 +00:00
Anton Hvornum 7f7cb6b89b Forgot to replace the xinitrc data after replacing lines. 2020-09-30 11:52:28 +00:00
Anton Hvornum 6fe4fdfce1 Debug for testing 2020-09-30 11:17:08 +00:00
Anton Hvornum 95cd1beb80 Attempt to enhance the search and replace of default apps in xorg. 2020-09-30 11:09:26 +00:00
Anton Hvornum 4597ea1a21 Fixed some issues with the awesome profile. It should now be properly installed. Still need to tweak it a bit to not be as intrusive while still giving some 'starting points' to stand on as a new user. 2020-09-30 10:54:51 +00:00
Anton Hvornum 54e2161e29 Tweaked the import logic so that the Imported() class returns the actual module imported when executing the import, rather than returning itself. Also fixed awesome so that it loads and looks for _prep_function() with a safe and correct namespace 2020-09-30 09:56:35 +00:00
Anton Hvornum 63d774b7d7 Fixing a import logic issue. We don't want to trigger if __name__ ... during _prep_function() calls. So we'll import the module with a specific namespace containing the .py which shouldn't be able to happen when normal programmers do normal imports as .py gets removed normally. 2020-09-30 09:38:46 +00:00
Anton Hvornum 1bff423195 Fixing a import logic issue. We don't want to trigger if __name__ ... during _prep_function() calls. So we'll import the module with a specific namespace containing the .py which shouldn't be able to happen when normal programmers do normal imports as .py gets removed normally. 2020-09-30 09:36:45 +00:00
Anton Hvornum 34e8e63f71 Fixed bug: profile names listed by list_profiles() contained a trailing dot. This causes issues later when trying to select a profile from said list. 2020-09-30 09:32:20 +00:00
Anton Hvornum 3cf45bdc03 Fixed a bug where if you selected a region by name, not number. It would bork out. 2020-09-30 09:25:04 +00:00
Anton Hvornum fad2c36cd2 Fixed a type-o 2020-09-30 09:14:17 +00:00
Anton Hvornum 85fd06fa8a Finalized magic function _prep_function(). Gets returned when a profile is imported through archinstall.select_profile() user-interaction helper function. Asks for additional user-input right away rather than half way into the installation. This makes sure user input is taken care of before starting the installation. Although it complicates the code layout a tiny bit. Profiles need a __name__ and a _prep_function combo in order to be safely executed by select_profile(). select_profile() will not attempt to run or execute the code in any way unless those to conditions are met. In theory :) 2020-09-30 09:11:36 +00:00
Anton Hvornum 5a4d68e617 Fixing awesome and xorg for first test run. 2020-09-30 08:37:54 +00:00
Anton Hvornum 5ce8c20333 Fixed some selection processes. 2020-09-29 22:26:40 +00:00
Anton Hvornum f896342147 Adding a baseline xorg profile that can be called from other profiles. Such as the awesome profile, and in the future gnome and kde. 2020-09-29 22:09:28 +00:00
Anton Hvornum 6338e7116e Removed AUR support (Moving to a separate project, possibly as an addon layer later) 2020-09-29 21:01:10 +00:00
Anton Hvornum 008ecf00a1
Some sentence improvements. 2020-09-28 16:49:25 +02:00
Anton Hvornum 43733bad80 Simplified the README a bit. 2020-09-28 16:41:39 +02:00
Anton Hvornum 03884d2a56 Added documentation. 2020-09-28 16:40:59 +02:00
Anton Hvornum 410a0ba0b3 Added documentation for: https://python-archinstall.readthedocs.io/en/latest/ 2020-09-28 16:38:10 +02:00
Anton Hvornum d44c671661 Adding package search via upstream package database and JSON. 2020-09-15 11:14:58 +00:00
Anton Hvornum eb4b0f09ef Fixed #48 - Removed AUR question in the guided installer. (library still supports it, but will be hidden from common users) 2020-09-07 15:45:42 +02:00
Anton Hvornum 9b65bf4bbb Spelling error in locale helpers. 2020-09-07 15:41:19 +02:00
Anton Hvornum 911d876cb6 Made waiting for reflector mandatory. Which should fix issue #47. 2020-09-01 15:38:23 +02:00
Anton Hvornum 4413fdcf81 systemctl spits out some colors, so logic had to be changed. 2020-09-01 14:57:21 +02:00
Anton Hvornum a22a859b7f Debugging 2020-09-01 14:55:49 +02:00
Anton Hvornum 4dcafa7ec8 Tweaking the mirror selection vs automatic mirror processes. 2020-09-01 14:52:59 +02:00
Anton Hvornum 8494014c3b Debugging a bit 2020-09-01 14:47:22 +02:00
Anton Hvornum 1cdd96f9aa Renamed services again after re-save to the wrong name. 2020-09-01 14:43:04 +02:00
Anton Hvornum 99dcdc357f Wrong function name in os.path 2020-09-01 14:37:54 +02:00
Anton Hvornum 4291f3e84e Wrong filename on services 2020-09-01 14:35:34 +02:00
Anton Hvornum 8daae75a78 Adding service logic. Checking if reflector has finished before we select custom mirrors (if any) 2020-09-01 14:33:55 +02:00
Anton Hvornum e6293b7d44 Forgot to send with mirrors in the function call perform_installation() in guided template. 2020-09-01 14:06:36 +02:00
Anton Hvornum 323af39ed5 Added archinstall.Installer().set_mirrors, which allows to modify the mirrors in the finished installed medium. 2020-09-01 14:04:47 +02:00
Anton Hvornum 6744d7ac1b Spelling error 2020-09-01 13:57:54 +02:00
Anton Hvornum dd294ba0f3 Added more logging 2020-09-01 13:56:23 +02:00
Anton Hvornum 64f4646eef Fixed copy paste issue within code in the select function. 2020-09-01 13:52:32 +02:00
Anton Hvornum 7734fbee89 Spelling error 2020-09-01 13:49:47 +02:00
Anton Hvornum 35db09298d Spelling error 2020-09-01 13:48:31 +02:00
Anton Hvornum 52a08a492f Added user interaction: select_mirror_Regions 2020-09-01 13:43:19 +02:00
Anton Hvornum 5bba102c45 Added list_mirrors() and prepared for selecting mirrors in guided.py 2020-09-01 12:22:44 +02:00
Anton Hvornum 2ac4172394 Version bump to release v2.0.4 2020-09-01 10:49:40 +02:00
Anton Hvornum d765763e81 Forgot self in a parameter 2020-09-01 10:36:47 +02:00
Anton Hvornum 677533f765 Added the option to set keyboard layout of installation. Not only on the live medium 2020-09-01 10:33:18 +02:00
Anton Hvornum 8f35f44939 Added locale helpers in terms of keyboard language/layout. archinstall.list_keyboard_languages(), archinstall.search_keyboard_layout() and archinstall.set_keyboard_language() 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 with a crude search functionality. Added all this to the guided template. 2020-09-01 09:01:14 +02:00
Anton Hvornum e4b9ad9d37 Forgot the syntax of sudoers apparently. Corrected. 2020-08-31 21:38:28 +02:00
Anton Hvornum b91699c0e5 Forgot self. in Installer 2020-08-31 21:12:19 +02:00
Anton Hvornum 129f7f23fa Fixed a conditional logic issue. It didn't break out of user creation when it was supposed to. 2020-08-31 21:09:01 +02:00
Anton Hvornum 35fc177345 Adding a different text on the user step if root is disabled. Also adding user as sudo if that's the case. 2020-08-31 20:46:38 +02:00
Anton Hvornum bb0ece0ece Added post-installation check on __exit__ of archinstall.Installer(). This will 'verify' that the installation is complete after leaving the installer, or warn the scripter/programmer/user that there's steps missing in order to complete the installation. This is a step towards combating root being disabled and sudo users forgotten to be created - to avoid total account lockout. 2020-08-31 18:57:51 +02:00
Anton Hvornum 2e7bd45267 Made btrfs optional in the minimal_installation. As it's only required if the filesystem is actually btrfs. 2020-08-31 16:41:38 +02:00
Anton Hvornum 75e2fb4bd3 Merge branch 'master' of github.com:Torxed/archinstall 2020-08-21 16:23:24 +00:00
Anton Hvornum ff1632ebbd Adding a comment. Also testing webhooks 2020-08-21 16:23:15 +00:00
Anton Hvornum 7a09115a70 Corrected API endpoint for automated tests. 2020-08-21 11:44:34 +00:00
Anton Hvornum 2b71ebd699 Added some debug output to the automated test profile. 2020-08-21 11:34:08 +00:00
Anton Hvornum 5075fdc758
Update README.md 2020-08-21 11:11:12 +00:00
Anton Hvornum 26a9d26723
Update README.md 2020-08-21 11:10:47 +00:00
Anton Hvornum 4c7669b01b
Update README.md 2020-08-21 11:10:18 +00:00
Anton Hvornum 6166fce003
Update README.md 2020-08-21 11:09:59 +00:00
Anton Hvornum 97696a8d02 Adjusted the automated test build to send the correct status message to the backend API. 2020-08-21 11:08:33 +00:00
Anton Hvornum 1b9f99beb1
Update README.md 2020-08-21 09:58:41 +00:00
Anton Hvornum eeb053215f
Update README.md 2020-08-21 09:46:40 +00:00
Anton Hvornum dc0b6ac9c3
Added automated test status.
The build status contains the last commit which was passed through the automated test procedure. It's the [examples/unattended.py](examples/unattended.py) running the profile [profiles/52-54-00-12-34-56.py](profiles/52-54-00-12-34-56.py) which sends a build status after a successful build. Failed build does not register yet.
2020-08-21 09:06:51 +00:00
Anton Hvornum 71ddbd9e02 Added API for automatic testing status. 2020-08-21 10:01:20 +00:00
Anton Hvornum 63b92f6ea7 Added try/catch for HTTPS POST. 2020-08-21 08:24:10 +00:00
Anton Hvornum 96e8cc4d5b Added a timeout on the HTTPS POST status after a successful install. 2020-08-20 22:16:53 +00:00
Anton Hvornum d449bb4b1f Added the HTTPS POST for a successful build to the unattended test build. 2020-08-20 19:56:58 +00:00
Anton Hvornum f6f5875892 Added a unattended installer. Fixed list_profiles() to not include .py ending in the profile name, it's already in the ['path'] defintion. Renamed desktop.py to awesome.py as it more accurately describes what's being installed. desktop should be reserved to a default desktop environment that's more new-user-friendly. 2020-08-20 19:47:39 +00:00
Anton Hvornum 056b800c8e Starting to add networking helpers in archinstall. First up is archinstall.getHwAddr(ifname) which returns the mac of a interface name. second is archinstall.list_interfaces() which lists all the local MAC addresses and which interface it is bound to. Also starting to add the unattended installer back step by step. Currently with one MAC profile. The MAC profile filtering/detection has also been added in archinstall.list_profiles() - it will filter out all MAC address-specific profiles when called, unless a MAC matches a profile or filter_irrelevant_macs=False is given. 2020-08-20 17:08:13 +00:00
Anton Hvornum aaad480ab8 Version bump in the build scripts. 2020-08-20 12:32:27 +00:00
Anton Hvornum 73e415160c Version bump 2020-08-20 12:26:27 +00:00
Anton Hvornum a2e676261a Added missing function reboot(). Also tweaked the build scripts so that they fetch a common version from the file VERSION. And some spelling tweaks for the log output. 2020-08-20 12:25:21 +00:00
Anton Hvornum ba9d5c746f Wrong $pkgname, adjusted. 2020-08-19 22:05:21 +00:00
Anton Hvornum 5af6e262e9 Added a PKGBUILD for python-archinstall. Which is just a Arch Linux native way of installing the pypi/pip version of archinstall. 2020-08-19 21:58:37 +00:00
Anton Hvornum 1742139e35 Spelling errors and clarifications. 2020-08-18 22:21:43 +00:00
Anton Hvornum af875e3902 Fixed merge. 2020-08-18 21:56:22 +00:00
Anton Hvornum 76c386951a Added build support for PKGBUILD. Also slimmed down make.sh to only compile the binary and nothing more. That way it's easier to ship the build to https://archlinux.life/bin/. Updated README to reflext the archlinux.life domain instead of hvornum.se since projects regarding archlinux will reside there or elsewhere in the future. 2020-08-18 21:54:34 +00:00
Anton Hvornum 1d8591c7fe Added make.sh into PKGBUILD 2020-08-09 09:24:45 +02:00
Anton Hvornum 27e20ae433 Removed support entirely for .json. Cleaning up the Profile() class **a lot**. Also tweaked some variable names to better suit the actual usage, which was a path definition not a name definition anymore 2020-08-05 10:29:34 +02:00
Anton Hvornum 11f36102db Fixed description support 2020-08-04 14:58:10 +02:00
Anton Hvornum b29c35de23 Fixed description support 2020-08-04 14:57:33 +02:00
Anton Hvornum 2af2f90280 Added a debug 2020-08-04 14:56:50 +02:00
Anton Hvornum b2a8fd9857 Adding description handling in profiles. 2020-08-04 14:50:36 +02:00
Anton Hvornum 0b8a3d9540 Removed legacy .json profiles. Not in favor of .py 2020-08-04 14:45:25 +02:00
Anton Hvornum 44e920297b elif mixup 2020-08-04 14:41:11 +02:00
Anton Hvornum 9d7962f39c Added a list_profiles() function, that lists all current local profiles. Also removed support for .json as it's redundant for the future. 2020-08-04 14:30:15 +02:00
Anton Hvornum 2dea2426b2 Version bump rc4 2020-08-04 11:36:07 +02:00
Anton Hvornum 928654ae35 Added two new functions. Fixed set_locale. enable_service() was added as well as activate_ntp(). 2020-08-04 11:34:00 +02:00
Anton Hvornum 551bb438a3 Fixed a glitch in the make.sh script. 2020-07-30 23:27:33 +00:00
Anton Hvornum 850d0d2ec9 Version bump. 2020-07-30 23:21:17 +00:00
Anton Hvornum 196d4a178e Added add_custom_mirrors(). The function appends custom mirrors to /etc/pacman.conf 2020-07-30 23:15:51 +00:00
Anton Hvornum 5b0f4f99d6 Version bump to: v2.0.4rc2 2020-07-22 14:22:42 +00:00
Anton Hvornum 6c5c24ecef Added a function to the installer, also added a function to make it easier to enable it in a installation, after which can be called. 2020-07-22 14:19:41 +00:00
Anton Hvornum 0cd088572d New feature: application profiles now support .py as well. Also fixed a sys.path issue where an installed version of archinstall would have precedence over the local version when profiles were being executed (because profiles were living in a unknown relative working directory, the caller to those profiles have to make sure .archinstall exists in sys.path before calling said profile) 2020-07-22 01:03:14 +00:00
Anton Hvornum c884a25237 Added a set_timezone() and fixed set_locale() in the Installer() class. Also added a mirrors.py helper to rudimentary set mirror data on the installer host 2020-07-21 19:03:24 +00:00
Anton Hvornum 06f8c46b3d Added some more documentation. Also added a __init__.py in the git repo so that cloning enables importing as well. This should enable both git clone to work as well as pypi. 2020-07-21 11:01:48 +00:00
Anton Hvornum e438e1bbde Merge branch 'master' of github.com:Torxed/archinstall 2020-07-21 08:18:06 +02:00
Anton Hvornum 2b14aa68d0 Created a __dump__ function in BlockDevice. Can be used to safely dump the class into a JSON object. Building a json_encoder which checks if the object hasattr(obj, '__dump__') before calling would be ideal 2020-07-21 08:17:31 +02:00
Anton Hvornum a7515e4a98
Update README.md 2020-07-13 13:47:24 +02:00
Anton Hvornum 1213e260df Added binary option. 2020-07-10 12:00:40 +00:00
Anton Hvornum 45268df2e7 Added the arch to the build 2020-07-10 11:06:41 +00:00
Anton Hvornum 6ac2858816 Fixed the build to include the examples in the right location. 2020-07-10 11:01:49 +00:00
Anton Hvornum 2e0295d501 Added a build script for my own sanity 2020-07-10 08:46:00 +00:00
Anton Hvornum cc0f1210ad Added a PKGBUILD which requires a pre-built nuitka3 version. More on this later. 2020-07-10 08:41:08 +00:00
Anton Hvornum 84410113c2 Spelling error 2020-07-10 08:40:23 +00:00
Anton Hvornum 3c0f4cebce Pre-built ISO's are back. Updating readme to reflect this change. 2020-07-09 21:18:38 +02:00
Anton Hvornum 047aa0d15a Release party: 2.0.3 is tested. 2020-07-08 22:51:43 +00:00
Anton Hvornum 13e9953630 removed some non-essnetial packages. re-structured the guided installer to ask for stuff first, then fire away. Tested encrypted/non-encrypted and both works. 2020-07-08 22:51:21 +00:00
Anton Hvornum b0ca5c9107 versionbump in setup.py 2020-07-08 22:23:01 +00:00
Anton Hvornum ebcb5ae795 Fixed a bug where minimal_installation() didn't return anything. 2020-07-08 22:22:24 +00:00
Anton Hvornum ef7ebfc394 Added debugging 2020-07-08 22:11:22 +00:00
Anton Hvornum dbbb52de3e versionbump in setup.py 2020-07-08 21:56:47 +00:00
Anton Hvornum d7a9310a3a versionbump in setup.py 2020-07-08 21:12:40 +00:00
Anton Hvornum 6c3be5de95 Fixed issue with filename replacing variable. 2020-07-08 21:12:29 +00:00
Anton Hvornum 466b892fe8 versionbump in setup.py 2020-07-08 21:07:49 +00:00
Anton Hvornum a59efc40a7 Added missing btrfs to mkinitcpio. Also added a bunch of locale stuff and genfstab which I forgot 2020-07-08 21:07:16 +00:00
Anton Hvornum 1fabd5c566 Swapped crypted and unencrypted logic. 2020-07-08 17:57:04 +00:00
Anton Hvornum a53483ee8f Version bump in setup.py 2020-07-08 17:46:31 +00:00
Anton Hvornum 9fc13d0449 Reflecting change in /boot change 2020-07-08 17:46:20 +00:00
Anton Hvornum 5ab238569d mixed up the mount of /boot, now correctly mounts /boot before running pacstrap 2020-07-08 17:45:25 +00:00
Anton Hvornum bc8f6ce448 Added a sleep for testing 2020-07-08 17:10:03 +00:00
Anton Hvornum a5f8dc6c68 Version bump in setup.py 2020-07-08 16:43:00 +00:00
Anton Hvornum d47fbf191c mkinitcpio was no longer a part of linux or base, had to be installed seperately 2020-07-08 16:42:35 +00:00
Anton Hvornum a8b2e9d80b Added debug to pacstrap of base and linux 2020-07-08 16:28:25 +00:00
Anton Hvornum 27d0da9b30 Version bump in setup.py 2020-07-08 16:13:14 +00:00
Anton Hvornum c271e4c0d7 Added a encrypted flag to the Partition() object. So that certain checks can be done by the Installer() later on, for instance when adding a bootloader. There's also a now which tries to find the parent device to the unlocked encrypted device. 2020-07-08 16:12:57 +00:00
Anton Hvornum 078567f81c Using two different methods for encrypted/non encrypted drives. 2020-07-08 15:43:54 +00:00
Anton Hvornum 99944634e3 Version bump in setup.py 2020-07-08 15:18:24 +00:00
Anton Hvornum 46c8e74a73 Trying to sort out a boot issue 2020-07-08 15:15:53 +00:00
Anton Hvornum 24a384cddb Version bump in setup.py 2020-07-08 14:51:29 +00:00
Anton Hvornum fdff7cf04c Using PARTUUID instead of disk UUID 2020-07-08 14:51:16 +00:00
Anton Hvornum 61f2e3c04b Version change 2020-07-08 14:31:14 +00:00
Anton Hvornum ef5cbac118 Fixed an issue where the boot loader tried to point the / boot towards the /boot partition in the loader entry. 2020-07-08 14:31:01 +00:00
Anton Hvornum 614d6374b8 Forgot to split the path, assumed it was a list 2020-07-08 13:42:48 +00:00
Anton Hvornum 3e97b1e93c rc6: Fixed an issue where 'which' doesn't return the binary absolute path. This due to which being a builtin bash thing, and for whatever reason that stopped working when running as a module, so created locate_binary(name:str) which uses the PATH variable just as which does to find the binary's absolute path 2020-07-08 13:38:15 +00:00
Anton Hvornum fc4790b33c Added symlinks instead of copying when building. Also mofied the __file__ path in __main__.py as it was pointing a bit off for some reason 2020-07-08 13:22:05 +00:00
Anton Hvornum 4f18ac473a Removing temporary build scripts 2020-07-08 12:35:02 +00:00
Anton Hvornum 027f6695bf Adding symlink to examples. 2020-07-08 12:34:22 +00:00
Anton Hvornum aecd333ea3 v2.0.3 prep release. Profile now fully support python scripting instead of JSON. They also support importing archinstall and doing whatever the examples are doing - with one tiiiny TODO/hack/magic, the 'installer' session that is contextulized gets hard-inserted into the globals() scope. Since the child script won't actually have the global instance of the parent, we need to insert it to be known due to the way we import stuff 2020-07-08 10:46:52 +00:00
Anton Hvornum 3ed8db5ef0 Added support for .py profiles. Added a simple 'desktop.py' for now that is just a mock to make sure it's working. 2020-07-08 10:22:25 +00:00
Anton Hvornum a695607326 Merge branch 'master' of github.com:Torxed/archinstall 2020-07-08 09:38:08 +00:00
Anton Hvornum 6e6707116f Changed the cache directory to be under ~/.cache instead. Having it in a archinstall folder directly under the users catalogue caused some issues when doing 'import archinstall' when standing in the home directory after trying to uninstall archinstall heh 2020-07-08 09:38:03 +00:00
Anton Hvornum c0fb9a9488 Updating readme to reflect v2.0.2 2020-07-08 00:02:10 +00:00
Anton Hvornum 4fd34c9754 v2.0.2 2020-07-07 23:57:04 +00:00
Anton Hvornum 60f581319f Added pythons -m module support. __main__.py is the main module entry path, and setup.py now includes the examples (which as been renamed for more convenient module importing) which - enables __main__.py to locate the examples and import them via importlib and execute them. 2020-07-07 23:56:17 +00:00
Anton Hvornum e17fac498a Updated readme with a boot instruction that is partially correct but incomplete. This is because some EFI magic that I can't sort out in a oneliner.. but gives you an idea 2020-07-07 23:24:55 +00:00
Anton Hvornum 3b3456b6f9 Added a raise on sys_command exit code being bad. Also updated readme to show how to test this locally 2020-07-07 22:24:56 +00:00
Anton Hvornum 702085fb97
Update README.md 2020-07-08 00:13:49 +02:00
Anton Hvornum 0bc24699c1 Added colored output. Also tested non-encrypted installations and added ext4 support. 2020-07-07 21:59:09 +00:00
Anton Hvornum 78d4fe4fa1 Adding a guided installation profile. 2020-07-07 16:10:54 +00:00
Anton Hvornum 1790d92df8 A more honest README for now. 2020-07-07 00:46:33 +02:00
Anton Hvornum 7ecdcdec75 A more honest README for now. 2020-07-07 00:43:48 +02:00
Anton Hvornum 181d4097c8 A more honest README for now. 2020-07-07 00:42:24 +02:00
Anton Hvornum 2dbfa42926 Updated the script example. 2020-07-06 23:22:45 +02:00
Anton Hvornum 377868cfcd
Merge pull request #40 from Torxed/annotations
Changed logo URL.
2020-07-06 21:15:49 +00:00
Anton Hvornum 7c5349fe98 Changed logo URL. 2020-07-06 23:15:07 +02:00
Anton Hvornum 0c57871f3b
Merge pull request #39 from Torxed/annotations
v2.0.1
2020-07-06 21:02:03 +00:00
Anton Hvornum f840f9e714
Merge branch 'master' into annotations 2020-07-06 21:01:51 +00:00
Anton Hvornum e54e870f51 Hotfix for pypi 2020-07-06 22:56:46 +02:00
Anton Hvornum d32301e827 Prepped readme for pypi. Also updated setup.py to reflect a better project name when uploading to pypi. 2020-07-06 22:53:31 +02:00
Anton Hvornum 7545b128d8 Prepped readme for pypi. Also updated setup.py to reflect a better project name when uploading to pypi. 2020-07-06 22:52:54 +02:00
Anton Hvornum 37b50ca119
Absolute paths for pictures 2020-07-06 22:51:18 +02:00
Anton Hvornum f8c337c3ae Adding some more gitignores 2020-07-06 22:29:46 +02:00
Anton Hvornum 9866672b5e Moved the example installation to examples 2020-07-06 22:26:29 +02:00
Anton Hvornum 8764de14c9 Renaming deployments to profiles 2020-07-06 22:23:52 +02:00
Anton Hvornum d723dcf0d7 Renaming deployments to profiles 2020-07-06 22:23:29 +02:00
Anton Hvornum 4167946d81 Merge branch 'annotations' of github.com:Torxed/archinstall into annotations 2020-07-06 22:20:41 +02:00
Anton Hvornum f7d3022cc8 Reworked final preparations for working with profiles and installing them. 2020-07-06 22:20:34 +02:00
Anton Hvornum e30208c01c
Update awesome.json 2020-07-06 21:43:32 +02:00
Anton Hvornum 5070575a7f
Update awesome.json 2020-07-06 21:35:49 +02:00
Anton Hvornum db528d8676 Pointed the images to the new docs location 2020-07-06 18:46:12 +02:00
Anton Hvornum 2d4500c76c Merge branch 'annotations' of github.com:Torxed/archinstall into annotations 2020-07-06 18:44:50 +02:00
Anton Hvornum b4a6f03b96 Converted the lib to a pip supported structure to make packaging easier. Also tweaked some minor issues and added the AUR function 2020-07-06 18:44:42 +02:00
Anton Hvornum 4885a5b35e
Merge pull request #38 from Torxed/add-license-1
Create LICENSE
2020-07-06 16:09:51 +00:00
Anton Hvornum e659d9a452
Create LICENSE 2020-07-06 18:09:35 +02:00
Anton Hvornum 7f90d7186d
Changing license model.
This is done since the project is getting closer to a production ready release. Although not fully there yet :)
2020-07-06 18:08:44 +02:00
Anton Hvornum ff9475ffe4 Changed mount function, since libc can't handle loop devices automatically without some how probing partitions? 2020-07-06 16:43:29 +02:00
Anton Hvornum 0dfc0d6195 Fixed so that partition listing doesn't overwrite on each request, ruining some checks down the line if the filesystem has been formatted or not 2020-07-06 16:23:23 +02:00
Anton Hvornum 94f8d90121 Added a PArtition() class that supports mounting and formatting. Also reworked the installation flow a bit to be a bit more clear while sacrificing some automation. Maybe I'll revert some changes and 'automatically' do certain things, but for now this shouldn't impact anyone to much 2020-07-06 15:46:19 +02:00
Anton Hvornum f0bc987e1b
Update README.md 2020-07-01 08:54:14 +02:00
Anton Hvornum c986ffd409
Update README.md 2020-06-30 22:10:32 +02:00
Anton Hvornum 568acc4a87
Update README.md 2020-06-30 22:02:46 +02:00
Anton Hvornum 9ea9589042
Update README.md 2020-06-30 21:51:41 +02:00
Anton Hvornum 0399df8c25 Working partition and encryption+mount phase. Now to the installer and re-work that. 2020-06-30 21:22:28 +00:00
Anton Hvornum 067b31b1aa
Update README.md 2020-06-29 12:28:35 +02:00
Anton Hvornum 5ae18b80fd Starting to rework the entire codebase to be context friendly. Annotations is next after one successful install. 2020-06-29 08:55:25 +00:00
Anton Hvornum 89ecdee763
Update README.md 2020-06-28 18:35:03 +02:00
Anton Hvornum 0bff213f75
Added a new logo 2020-06-28 16:34:05 +00:00
Jay Bent 6c484a6b3f Fixed typo breaking local profiles 2020-04-03 13:57:13 +02:00
Anton Hvornum de3c865a04 Debugging 2020-03-16 23:48:07 +01:00
Anton Hvornum e39e8014a9 More debugging 2020-03-16 21:15:50 +01:00
Anton Hvornum e0f1e1b5fd Trying to weed out dual logging. 2020-03-16 20:49:15 +01:00
Anton Hvornum 0e8bbb946d Enhanced debug message. 2020-03-16 20:42:13 +01:00
Anton Hvornum 5d39c4b5c5 Added argument passing for set_locale() 2020-03-16 18:09:19 +01:00
Anton Hvornum 20d64e445a Fixing a more transparent argument passing all the way down to the actual command begin executed. Hoping this will enable better error output in the future 2020-03-16 17:51:13 +01:00
Anton Hvornum 940869da6c Fix for previous commit, indent issue and a missing else 2020-03-16 17:22:42 +01:00
Anton Hvornum cab78fee0a New feature: input_redirect in cleanup_args(). Since this function might be run from outside a tty, there's no way to get input. So an external input handler is required. This enables that functionality. Also some cleanup to get_instructions so that we can load them from some where else in the future. 2020-03-16 17:20:26 +01:00
Anton Hvornum 113c7c23b0 Moved set_locale() from configure_base_system as it is its own step in a way. 2020-03-16 16:28:10 +01:00
Anton Hvornum 9aebd49fdb Adding more debug output. 2020-03-16 15:20:18 +01:00
Anton Hvornum 3393c94f08 New function: add_custom_mirror(). Adds a custom mirror to /etc/pacman.conf with SigLevel set to Optional and TrustAll by default. 2020-03-16 15:06:36 +01:00
Anton Hvornum b5a9702230 New function: prerequisit_check(). Moved the exit-if-not-uefi logic into a function instead of hard-crashing whoever imports the library. This way tho, it's up to the user to run the check. TODO: Add a warning message if the function isn't run beforehand. 2020-03-16 11:46:57 +01:00
Anton Hvornum f800d44b2d New function: create_user(). Simple user creations, not many options for now. 2020-03-16 11:14:33 +01:00
Anton Hvornum ef088bc624 New function: set_locale(). Takes a format string of either a full locale-gen valid format such as 'en_US.UTF-8 UTF-8' or a shortened version 'US'. Currently only 'SE' is implemented tho.' 2020-03-16 10:31:42 +01:00
Anton Hvornum 2f283a4338 Changed client to worker, more correct. 2020-03-15 20:45:56 +00:00
Anton Hvornum 4e04badd65 Added a client field in kwargs, used when pushing on_output. 2020-03-15 20:33:01 +00:00
Anton Hvornum 3c0963a0a1 Added a new feature: on_output in sys_command. Passing a on_output function to sys_command forces it to send each output block to the callback. Useful to create progressbars etc. 2020-03-15 19:05:55 +00:00
Anton Hvornum 93780ba888 Added new function: set_password(). Sets a password for a given username. 2020-03-15 18:04:25 +00:00
Anton Hvornum fe69d970a3 Added somre more error handling and removed potentially unessecary code. 2020-03-15 17:32:04 +00:00
Anton Hvornum 2a3aa2738d New function: reboot(). Does what you think it does. Also does a sync tho just to be safe. 2020-03-15 16:29:41 +00:00
Anton Hvornum 4223631b80 Added more log entries to commandlog. 2020-03-15 16:13:40 +00:00
Anton Hvornum e9aadfa29b Added a new function: flush_all_mirrors(). Can be used to wipe default mirrors prior to adding specific ones. 2020-03-15 15:37:33 +00:00
Anton Hvornum 13a44243a8 Added a SAFETY_LOCK on a bunch of functions. 2020-03-15 15:33:49 +00:00
Anton Hvornum 7684ea1304 New function: add_specific_mirrors(). Adds specific mirrors by converting {url: country} into '# country\nServer = url' in /etc/pacman.d/mirrorlist. This can be done after filter_mirrors_by_country_list(). 2020-03-15 15:30:38 +00:00
Anton Hvornum 91da324df0 Error check on get_instructions to ignore .json at the end. 2019-12-26 14:08:20 +00:00
Anton Hvornum 40939d207e Added more logging 2019-12-26 11:43:17 +00:00
Anton Hvornum b3a3b9d772
Merge pull request #37 from Torxed/lab
Lab
2019-12-26 10:52:12 +01:00
Anton Hvornum a8eb3d5ead Added more logging 2019-12-26 10:51:51 +00:00
Anton Hvornum 2dcc92f844 Merge branch 'master' of github.com:Torxed/archinstall 2019-12-26 00:53:50 +00:00
Anton Hvornum 33f107255e Added more debugging to systemd journald 2019-12-26 00:53:43 +00:00
Anton Hvornum dc14d6114d
Merge pull request #36 from Torxed/cleanup
Cleanup
2019-12-25 18:52:02 +01:00
Anton Hvornum 906324026b Cleanup 2019-12-25 18:46:08 +00:00
Anton Hvornum 2f90c03afd Refreshing partitions function 2019-12-25 18:42:56 +00:00
jaybent 00d0a29c49
Update gitea.json
Typo's
2019-12-03 23:56:33 +01:00
jaybent 9d65f6eb2d
Rename gitea to gitea.json 2019-12-03 23:44:04 +01:00
Anton Hvornum f64a605449 Debug output 2019-11-29 18:55:55 +01:00
Anton Hvornum c9ccea233a
Merge pull request #35 from Torxed/lab
Lab, fixed #12
2019-11-29 17:23:24 +00:00
Anton Hvornum 42b697a4e3 Debugging 2019-11-29 18:02:11 +01:00
Anton Hvornum bf32476bfd Fixing password order for commnaads 2019-11-29 17:56:27 +01:00
Anton Hvornum cb3d16b0bb Fixed password prompt for nspawn 2019-11-29 17:47:21 +01:00
Anton Hvornum 9eb80c139f Fixing rerun 2019-11-29 17:39:47 +01:00
Anton Hvornum 3ba199628b Fixing issues with the spawning of containers. 2019-11-29 17:38:22 +01:00
Anton Hvornum 92d9af970d Fixing issues with the spawning of containers. 2019-11-29 17:27:53 +01:00
Anton Hvornum c5b44a6935 Fixing issues with the spawning of containers. 2019-11-29 17:23:04 +01:00
Anton Hvornum e505ba6f19 Debugging 2019-11-29 17:10:20 +01:00
Anton Hvornum 198c47333e Debugging 2019-11-29 17:10:04 +01:00
Anton Hvornum c5360f94e2 Debugging 2019-11-29 17:03:02 +01:00
Anton Hvornum fc196a589b Debugging 2019-11-29 17:02:40 +01:00
Anton Hvornum cefe7e4f8b Enhancing trigger values 2019-11-29 16:53:47 +01:00
Anton Hvornum 3769a3193b Tweaking event input 2019-11-29 16:36:43 +01:00
Anton Hvornum 7c23fb4d63 Modifying default template for test 2019-11-29 16:17:49 +01:00
Anton Hvornum 0e52ef0449 Modifying default template for test 2019-11-29 16:16:04 +01:00
Anton Hvornum 7b1968fa9a Adding more debug output 2019-11-29 16:12:10 +01:00
Anton Hvornum 735a2b02e9 Adding test of multiple event triggers 2019-11-29 15:50:08 +01:00
Anton Hvornum f537eee6b3 debugging 2019-11-29 15:37:44 +01:00
Anton Hvornum 253e52da22 debugging 2019-11-29 15:37:05 +01:00
Anton Hvornum c2badea10b Debugging 2019-11-29 15:35:37 +01:00
Anton Hvornum b2f85c93e7 Fixing bytes conversion on JSON triggers on command lines 2019-11-29 15:33:00 +01:00
Anton Hvornum b4f311584b Fixing argument for boot command 2019-11-29 15:25:27 +01:00
Anton Hvornum b0804b41d0 Fixing args 2019-11-29 15:17:31 +01:00
Anton Hvornum 6faeeb0bd3 Don't update git until we have some args 2019-11-29 15:10:49 +01:00
Anton Hvornum 2d9606777f Forgot to setup args 2019-11-29 15:09:54 +01:00
Anton Hvornum 56ad7efe84 One step in fixing #20. User-given parameters override template. And next is reworking the inheritance structure of the templates 2019-11-29 15:09:05 +01:00
Anton Hvornum 2c65800d29 Changing detault for tests 2019-11-29 14:58:18 +01:00
Anton Hvornum 8dd30088cc
Merge pull request #34 from Torxed/lab
Lab
2019-11-29 13:56:33 +00:00
Anton Hvornum 4051175650 Updated README to reflect parameter changes. 2019-11-29 14:55:13 +01:00
Anton Hvornum a66c2436ee Added debug 2019-11-29 13:56:42 +01:00
Anton Hvornum 30e45d57a1 Added --minimal to skip profile lookups completely. #29 2019-11-29 13:54:17 +01:00
Anton Hvornum ef117744cb Fixing #29. --default is now renamed to --minimal. --unattended has been added to skip steps (equal to --force). Will add a --default shortcut which will point towards the profile 'default.json' 2019-11-29 13:48:51 +01:00
Anton Hvornum 53669d63c9 Removing interactive since it's redundant 2019-11-29 13:40:47 +01:00
Anton Hvornum 670afabf9f Moved disk selection to after profile fetching. Should not need to select a disk if it's specified in the template 2019-11-29 13:39:29 +01:00
Anton Hvornum d84f4e2bf9 Fixed an issue where --profile didn't override the network deploy. 2019-11-29 13:32:48 +01:00
Anton Hvornum 62ecb7ccfa Fixed instruction loading 2019-11-29 13:26:35 +01:00
Anton Hvornum a83b21ec01 Fixing offline deployment a bit 2019-11-29 13:21:39 +01:00
Anton Hvornum d89bacdf9f Adding tests to default, will change this to a test template later 2019-11-29 12:58:58 +01:00
Anton Hvornum c8f31bd344 Fixing #18 and #12 2019-11-29 12:55:38 +01:00
Anton Hvornum 4652a3eee4 Fixing #24 and #12 2019-11-29 12:47:17 +01:00
Anton Hvornum 829a51a045
Merge pull request #32 from Torxed/lab
New feature
2019-11-27 23:57:07 +00:00
Anton Hvornum 72e6eb4567 Feature: #28 - Tested and works 2019-11-28 00:56:17 +00:00
Anton Hvornum 70c811e2bc Feature: #28 - Fixing the booatloader config when disk ain't encrypted 2019-11-28 00:50:05 +00:00
Anton Hvornum 1aec07f829 Feature: #28 - Fixing the booatloader config when disk ain't encrypted 2019-11-28 00:23:55 +00:00
Anton Hvornum 8cc90ad874 Feature: #28 - Testing phase 2019-11-28 00:16:05 +00:00
Anton Hvornum 0dbd44e253 Debugging 2019-11-28 00:15:31 +00:00
Anton Hvornum 375976b7ce Debugging 2019-11-28 00:14:53 +00:00
Anton Hvornum 93fb7f3ee5 Feature: #28 being worked on 2019-11-28 00:10:54 +00:00
357 changed files with 111691 additions and 1942 deletions

13
.editorconfig Normal file
View File

@ -0,0 +1,13 @@
# http://editorconfig.org
# See coding conventions in CONTRIBUTING.md
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
[*.py]
indent_style = tab
indent_size = 4
trim_trailing_whitespace = true

8
.flake8 Normal file
View File

@ -0,0 +1,8 @@
[flake8]
count = True
ignore = W191,W503,E704,E203
max-complexity = 40
max-line-length = 160
show-source = True
statistics = True
exclude = .git,__pycache__,build,docs,actions-runner

7
.github/CODEOWNERS vendored Normal file
View File

@ -0,0 +1,7 @@
# As per https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#example-of-a-codeowners-file
* @Torxed
# Any PKGBUILD changes should tag grazzolini
/PKGBUILDs/ @grazzolini
/PKGBUILD @grazzolini

4
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,4 @@
# These are supported funding model platforms
github: [archlinux]
custom: ['https://archlinux.org/donate/']

85
.github/ISSUE_TEMPLATE/01_bug.yml vendored Normal file
View File

@ -0,0 +1,85 @@
name: bug report
description: archinstall crashed or could not install properly?
body:
- type: markdown
attributes:
value: >
Please read the ~5 known issues first:
https://archinstall.archlinux.page/help/known_issues.html
- type: markdown
attributes:
value: >
**NOTE: Always try the latest official ISO**
- type: input
id: iso
attributes:
label: Which ISO version are you using?
description: 'Always use the latest ISO version'
placeholder: '"2024-12-01" or "Dec 1:st"'
validations:
required: true
- type: textarea
id: bug-report
attributes:
label: The installation log
description: 'note: located at `/var/log/archinstall/install.log`'
placeholder: |
Hardware model detected: Dell Inc. Precision 7670; UEFI mode: True
Processor model detected: 12th Gen Intel(R) Core(TM) i7-12850HX
Memory statistics: 31111048 available out of 32545396 total installed
Disk states before installing: {'blockdevices': ... }
Testing connectivity to the Arch Linux mirrors ...
...
render: json
validations:
required: true
- type: markdown
attributes:
value: >
**Note**: Assuming you have network connectivity,
you can easily upload the installation log and get a shareable URL by running:
`archinstall share-log`
- type: textarea
id: freeform
attributes:
label: describe the problem
description: >
Please describe your issue as best as you can.
And please consider personal preferences vs what the recommended
steps/values are in https://wiki.archlinux.org/title/Installation_guide
as we try to abide by them as best we can.
value: |
#### Description of the issue
I was installing on X hardware ...
Then X Y Z happened and archinstall crashed ...
#### Virtual machine config:
```xml
<domain type="kvm">
<name>my-arch-machine</name>
...
</devices>
</domain>
```
```console
/usr/bin/qemu-system-x86_64 -name guest=my-arch-machine,debug-threads=on -object ...
```
validations:
required: true
- type: markdown
attributes:
value: >
**Note**: Feel free to modify the textarea above as you wish.
But it will grately help us in testing if we can generate the specific qemu command line,
for instance via:
`sudo virsh domxml-to-native qemu-argv --domain my-arch-machine`

17
.github/ISSUE_TEMPLATE/02_feature.yml vendored Normal file
View File

@ -0,0 +1,17 @@
name: feature request
description: a new feature!
body:
- type: markdown
attributes:
value: >
Please read our short mission statement before requesting more features:
https://github.com/archlinux/archinstall?tab=readme-ov-file#mission-statement
- type: textarea
id: freeform
attributes:
label: describe the request
description: >
Feel free to write any feature you think others might benefit from:
validations:
required: true

12
.github/workflows/bandit.yaml vendored Normal file
View File

@ -0,0 +1,12 @@
on: [ push, pull_request ]
name: Bandit security checkup
jobs:
bandit:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: pacman --noconfirm -Syu bandit
- name: Security checkup with Bandit
run: bandit -r archinstall || exit 0

23
.github/workflows/flake8.yaml vendored Normal file
View File

@ -0,0 +1,23 @@
on: [ push, pull_request ]
name: flake8 linting
jobs:
flake8:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
# this will install the exact version of flake8 that is in the pyproject.toml file
- name: Install archinstall dependencies
run: pip install --break-system-packages .[dev]
- run: python --version
- run: flake8 --version
- name: Lint with flake8
run: flake8

41
.github/workflows/github-pages.yml vendored Normal file
View File

@ -0,0 +1,41 @@
name: documentation
on:
push:
paths:
- "docs/**"
pull_request:
paths:
- "docs/**"
workflow_dispatch:
permissions:
contents: write
jobs:
docs:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- name: Install pre-dependencies
run: |
pacman -Sy --noconfirm tree git python-pyparted python-setuptools python-sphinx python-sphinx_rtd_theme python-build python-installer python-wheel
- name: Sphinx build
run: |
sphinx-build docs _build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4
if: ${{ github.event_name != 'pull_request' }}
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: _build/
force_orphan: true
enable_jekyll: false # This is required to preserve _static (and thus the theme)
cname: archinstall.archlinux.page

39
.github/workflows/iso-build.yaml vendored Normal file
View File

@ -0,0 +1,39 @@
# This workflow will build an Arch Linux ISO file with the commit on it
name: Build Arch ISO with ArchInstall Commit
on:
push:
branches:
- master
- main # In case we adopt this convention in the future
pull_request:
paths-ignore:
- 'docs/**'
- '**.editorconfig'
- '**.gitignore'
- '**.md'
- 'LICENSE'
- 'PKGBUILD'
release:
types:
- created
jobs:
build:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: pwd
- run: find .
- run: cat /etc/os-release
- run: pacman-key --init
- run: pacman --noconfirm -Sy archlinux-keyring
- run: ./test_tooling/mkarchiso/build_iso.sh
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: Arch Live ISO
path: /tmp/archlive/out/*.iso

23
.github/workflows/mypy.yaml vendored Normal file
View File

@ -0,0 +1,23 @@
on: [ push, pull_request ]
name: mypy type checking
jobs:
mypy:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
# this will install the exact version of mypy that is in the pyproject.toml file
- name: Install archinstall dependencies
run: pip install --break-system-packages .[dev]
- run: python --version
- run: mypy --version
- name: run mypy
run: mypy --config-file pyproject.toml

22
.github/workflows/pylint.yaml vendored Normal file
View File

@ -0,0 +1,22 @@
on: [ push, pull_request ]
name: Pylint linting
jobs:
pylint:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
- name: Install Pylint
run: pip install --break-system-packages .[dev]
- run: python --version
- run: pylint --version
- name: Lint with Pylint
run: pylint .

21
.github/workflows/pytest.yaml vendored Normal file
View File

@ -0,0 +1,21 @@
on: [ push, pull_request ]
name: pytest test validation
jobs:
pytest:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
- name: Install archinstall dependencies
run: pip install --break-system-packages .[dev]
- name: Test with pytest
run: pytest

39
.github/workflows/python-build.yml vendored Normal file
View File

@ -0,0 +1,39 @@
# This workflow will build Python packages on every commit.
name: Build archinstall
on: [ push, pull_request ]
jobs:
deploy:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-uv python-setuptools python-pip
pacman --noconfirm -Sy python-pyparted python-pydantic python-textual
- name: Remove existing archinstall (if any)
run:
uv pip uninstall archinstall --break-system-packages --system
- name: Build archinstall
run: uv build --no-build-isolation --wheel
- name: Install archinstall
run: |
uv pip install dist/*.whl --break-system-packages --system --no-build --no-deps
- name: Run archinstall
run: |
python -V
archinstall --script guided -v
archinstall --script only_hd -v
archinstall --script minimal -v
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: archinstall
path: dist/*

33
.github/workflows/python-publish.yml vendored Normal file
View File

@ -0,0 +1,33 @@
# This workflow will upload a Python Package when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
name: Upload archinstall to PyPi
on:
release:
types: [ published ]
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
# IMPORTANT: this permission is mandatory for Trusted Publishing
id-token: write
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python python-uv python-setuptools python-pip python-pyparted python-pydantic python-textual
- name: Build archinstall
run: |
uv build --no-build-isolation --wheel
- name: Publish archinstall to PyPi
run: |
uv publish --trusted-publishing always

9
.github/workflows/ruff-format.yaml vendored Normal file
View File

@ -0,0 +1,9 @@
on: [ push, pull_request ]
name: ruff check formatting
jobs:
ruff_format_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: astral-sh/ruff-action@0ce1b0bf8b818ef400413f810f8a11cdbda0034b # v4.0.0
- run: ruff format --diff

8
.github/workflows/ruff-lint.yaml vendored Normal file
View File

@ -0,0 +1,8 @@
on: [ push, pull_request ]
name: ruff check linting
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: astral-sh/ruff-action@0ce1b0bf8b818ef400413f810f8a11cdbda0034b # v4.0.0

View File

@ -0,0 +1,22 @@
name: Translation validation
on:
push:
paths:
- 'archinstall/**/*.py'
- 'archinstall/locales/**'
- '.github/workflows/translation-check.yaml'
pull_request:
paths:
- 'archinstall/**/*.py'
- 'archinstall/locales/**'
- '.github/workflows/translation-check.yaml'
jobs:
translations:
name: Validate translations
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install gettext
run: sudo apt-get update && sudo apt-get install -y gettext
- name: Run translation checks
run: bash archinstall/locales/locales_generator.sh check

40
.github/workflows/uki-build.yaml vendored Normal file
View File

@ -0,0 +1,40 @@
# This workflow will build an Arch Linux UKI file with the commit on it
name: Build Arch UKI with ArchInstall Commit
on:
push:
branches:
- master
- main # In case we adopt this convention in the future
pull_request:
paths-ignore:
- 'docs/**'
- '**.editorconfig'
- '**.gitignore'
- '**.md'
- 'LICENSE'
- 'PKGBUILD'
release:
types:
- created
jobs:
build:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: pwd
- run: find .
- run: cat /etc/os-release
- run: pacman-key --init
- run: pacman --noconfirm -Sy archlinux-keyring
- run: pacman --noconfirm -Sy mkosi
- run: (cd test_tooling/mkosi/ && mkosi build -B)
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: Arch Live UKI
path: test_tooling/mkosi/mkosi.output/*.efi

45
.gitignore vendored
View File

@ -1,2 +1,47 @@
**/**__pycache__
SAFETY_LOCK
**/**old.*
**/**.img
**/**pwfile
**/**build
**/**dist
**/**.egg*
**/**.sh
!archinstall/locales/locales_generator.sh
**/**.egg-info/
**/**build/
**/**src/
**/**pkg/
**/**dist/
**/**archinstall.build/
**/**archinstall-v*/
**/**.pkg.*.xz
**/**archinstall-*.tar.gz
**/**.zst
**/**.network
**/**.target
**/**.qcow2
**/**.log
**/**.fd
/test*.py
**/archiso
/guided.py
venv
.venv
.idea/**
**/install.log
.DS_Store
**/cmd_history.txt
**/*.*~
/*.sig
/*.json
requirements.txt
/.gitconfig
/actions-runner
/cmd_output.txt
node_modules/
uv.lock
test_tooling/mkosi/mkosi.output/*image*
test_tooling/mkosi/mkosi.cache/**
test_tooling/mkosi/mkosi.tools/**
test_tooling/mkosi/mkosi.tools.manifest

92
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,92 @@
# This file contains GitLab CI/CD configuration for the ArchInstall project.
# It defines several jobs that get run when a new commit is made, and is comparable to the GitHub workflows.
# There is an expectation that a runner exists that has the --privileged flag enabled for the build ISO job to run correctly.
# These jobs should leverage the same tag as that runner. If necessary, change the tag from 'docker' to the one it uses.
# All jobs will be run in the official archlinux container image, so we will declare that here.
image: archlinux/archlinux:latest
# This can be used to handle common actions. In this case, we do a pacman -Sy to make sure repos are ready to use.
before_script:
- pacman -Sy
stages:
- lint
- test
- build
- publish
mypy:
stage: lint
tags:
- docker
script:
- pacman --noconfirm -Syu python mypy
- mypy . --ignore-missing-imports || exit 0
flake8:
stage: lint
tags:
- docker
script:
- pacman --noconfirm -Syu python python-pip
- python -m pip install --upgrade pip
- pip install flake8
- flake8 . --count --select=E9,F63,F7 --show-source --statistics
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
# We currently do not have unit tests implemented but this stage is written in anticipation of their future usage.
# When a stage name is preceded with a '.' it's treated as "disabled" by GitLab and is not executed, so it's fine for it to be declared.
.pytest:
stage: test
tags:
- docker
script:
- pacman --noconfirm -Syu python python-pip
- python -m pip install --upgrade pip
- pip install pytest
- pytest
# This stage might fail with exit code 137 on a shared runner. This is probably due to the CPU/memory consumption needed to run the build.
build_iso:
stage: build
tags:
- docker
script:
- pwd
- find .
- cat /etc/os-release
- mkdir -p /tmp/archlive/airootfs/root/archinstall-git; cp -r . /tmp/archlive/airootfs/root/archinstall-git
- echo "pip uninstall archinstall -y; cd archinstall-git; python setup.py install" > /tmp/archlive/airootfs/root/.zprofile
- echo "echo \"This is an unofficial ISO for development and testing of archinstall. No support will be provided.\"" >> /tmp/archlive/airootfs/root/.zprofile
- echo "echo \"This ISO was built from Git SHA $CI_COMMIT_SHA\"" >> /tmp/archlive/airootfs/root/.zprofile
- echo "echo \"Type archinstall to launch the installer.\"" >> /tmp/archlive/airootfs/root/.zprofile
- cat /tmp/archlive/airootfs/root/.zprofile
- pacman --noconfirm -S git archiso
- cp -r /usr/share/archiso/configs/releng/* /tmp/archlive
- echo -e "git\npython\npython-pip\npython-setuptools" >> /tmp/archlive/packages.x86_64
- find /tmp/archlive
- cd /tmp/archlive; mkarchiso -v -w work/ -o out/ ./
artifacts:
name: "Arch Live ISO"
paths:
- /tmp/archlive/out/*.iso
expire_in: 1 week
## This job only runs when a tag is created on the master branch. This is because we do not want to try to publish to PyPi every time we commit.
## The following CI/CD variables need to be set to the PyPi username and password in the GitLab project's settings for this stage to work.
# * FLIT_USERNAME
# * FLIT_PASSWORD
publish_pypi:
stage: publish
tags:
- docker
script:
- pacman --noconfirm -S python python-pip
- python -m pip install --upgrade pip
- pip install setuptools wheel flit
- flit
only:
- tags
except:
- branches

55
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,55 @@
default_stages: ['pre-commit']
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.14
hooks:
# fix unused imports and sort them
- id: ruff
args: ["--extend-select", "I", "--fix"]
# format the code
- id: ruff-format
# run the linter
- id: ruff
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
# general hooks:
- id: check-added-large-files # Prevent giant files from being committed
args: ['--maxkb=5000']
- id: check-merge-conflict # Check for files that contain merge conflict strings
- id: check-symlinks # Checks for symlinks which do not point to anything
- id: check-yaml # Attempts to load all yaml files to verify syntax
- id: destroyed-symlinks # Detects symlinks which are changed to regular files
- id: detect-private-key # Checks for the existence of private keys
# Python specific hooks:
- id: check-ast # Simply check whether files parse as valid python
- id: check-docstring-first # Checks for a common error of placing code before the docstring
- repo: https://github.com/pycqa/flake8
rev: 7.3.0
hooks:
- id: flake8
args: [--config=.flake8]
fail_fast: true
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v2.1.0
hooks:
- id: mypy
args: [
'--config-file=pyproject.toml'
]
fail_fast: true
additional_dependencies:
- pydantic
- pytest
- hypothesis
- cryptography
- textual
- repo: local
hooks:
- id: pylint
name: pylint
entry: pylint
language: system
types: [python]
fail_fast: true
require_serial: true

6
.pypirc Normal file
View File

@ -0,0 +1,6 @@
[distutils]
index-servers =
pypi
[pypi]
repository = https://upload.pypi.org/legacy/

15
.readthedocs.yaml Normal file
View File

@ -0,0 +1,15 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2
sphinx:
builder: html
configuration: docs/conf.py
fail_on_warning: true
build:
os: "ubuntu-22.04"
tools:
python: "3.12"

71
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,71 @@
# Contributing to archinstall
Any contributions through pull requests are welcome as this project aims to be a community based project to ease some Arch Linux installation steps.
Bear in mind that in the future this repo might be transferred to the official [GitLab repo under Arch Linux](http://gitlab.archlinux.org/archlinux/) *(if GitLab becomes open to the general public)*.
Therefore, guidelines and style changes to the code might come into effect as well as guidelines surrounding bug reporting and discussions.
## Branches
`master` is currently the default branch, and that's where all future feature work is being done, this means that `master` is a living entity and will most likely never be in a fully stable state.
For stable releases, please see the tagged commits.
Patch releases will be done against their own branches, branched from stable tagged releases and will be named according to the version it will become on release.
*(Patches to `v2.1.4` will be done on branch `v2.1.5` for instance)*.
## Discussions
Currently, questions, bugs and suggestions should be reported through [GitHub issue tracker](https://github.com/archlinux/archinstall/issues).<br>
For less formal discussions there is also an [archinstall Discord server](https://discord.gg/aDeMffrxNg).
## Coding convention
ArchInstall's goal is to follow [PEP8](https://www.python.org/dev/peps/pep-0008/) as best as it can with some minor exceptions.<br>
The exceptions to PEP8 are:
* Archinstall uses [tabs instead of spaces](https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces) simply to make it
easier for non-IDE developers to navigate the code *(Tab display-width should be equal to 4 spaces)*. Exception to the
rule are comments that need fine-tuned indentation for documentation purposes.
* [Line length](https://www.python.org/dev/peps/pep-0008/#maximum-line-length) a maximum line length is enforced via flake8 with 160 characters
* Archinstall should always be saved with **Unix-formatted line endings** and no other platform-specific formats.
* [String quotes](https://www.python.org/dev/peps/pep-0008/#string-quotes) follow PEP8, the exception being when
creating formatted strings, double-quoted strings are *preferred* but not required on the outer edges *(
Example: `f"Welcome {name}"` rather than `f'Welcome {name}'`)*.
Most of these style guidelines have been put into place after the fact *(in an attempt to clean up the code)*.<br>
There might therefore be older code which does not follow the coding convention and the code is subject to change.
## Git hooks
`archinstall` ships pre-commit hooks that make it easier to run checks such as `mypy`, `ruff check`, and `flake8` locally.
The checks are listed in `.pre-commit-config.yaml` and can be installed via
```
pre-commit install
```
This will install the pre-commit hook and run it every time a `git commit` is executed.
## Documentation
If you'd like to contribute to the documentation, refer to [this guide](docs/README.md) on how to build the documentation locally.
## Submitting Changes
Archinstall uses GitHub's pull-request workflow and all contributions in terms of code should be done through pull requests.<br>
Anyone interested in archinstall may review your code. One of the core developers will merge your pull request when they
think it is ready. For every pull request, we aim to promptly either merge it or say why it is not yet ready; if you go
a few days without a reply, please feel free to ping the thread by adding a new comment.
To get your pull request merged sooner, you should explain why you are making the change. For example, you can point to
a code sample that is outdated in terms of Arch Linux command lines. It is also helpful to add links to online
documentation or to the implementation of the code you are changing.
Also, do not squash your commits after you have submitted a pull request, as this erases context during review. We will
squash commits when the pull request is merged.
Maintainer:
* Anton Hvornum ([@Torxed](https://github.com/Torxed))
[Contributors](https://github.com/archlinux/archinstall/graphs/contributors)

674
LICENSE Normal file
View File

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@ -1,25 +0,0 @@
Copyright (c) 2018-present Anton Hvornum (https://github.com/Torxed).
Permission is hereby granted for non-commercial use, free of charge, to whomever (including
non-profit organizations not owned by commercial entities) obtainins a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish,
distribute copies of the Software for non-commercial usecases, and to permit persons
to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software and are subject to:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
For commercial purposes, contact the creator via any of the contact options listed under the following:
* https://github.com/Torxed
* https://hvornum.se/

89
PKGBUILD Normal file
View File

@ -0,0 +1,89 @@
# Maintainer: David Runge <dvzrv@archlinux.org>
# Maintainer: Giancarlo Razzolini <grazzolini@archlinux.org>
# Maintainer: Anton Hvornum <torxed@archlinux.org>
# Contributor: Anton Hvornum <anton@hvornum.se>
# Contributor: demostanis worlds <demostanis@protonmail.com>
pkgname=archinstall
pkgver=4.3
pkgrel=1
pkgdesc="Just another guided/automated Arch Linux installer with a twist"
arch=(any)
url="https://github.com/archlinux/archinstall"
license=(GPL-3.0-only)
depends=(
'arch-install-scripts'
'btrfs-progs'
'coreutils'
'cryptsetup'
'dosfstools'
'e2fsprogs'
'glibc'
'kbd'
'libcrypt.so'
'libxcrypt'
'pciutils'
'procps-ng'
'python'
'python-cryptography'
'python-pydantic'
'python-pyparted'
'python-textual'
'python-markdown-it-py'
'python-linkify-it-py'
'systemd'
'util-linux'
'xfsprogs'
'lvm2'
'f2fs-tools'
'libfido2'
)
makedepends=(
'python-build'
'python-installer'
'python-setuptools'
'python-sphinx'
'python-wheel'
'python-sphinx_rtd_theme'
'python-pylint'
'python-pylint-pydantic'
'ruff'
)
optdepends=(
'python-systemd: Adds journald logging'
)
provides=(python-archinstall archinstall)
conflicts=(python-archinstall archinstall-git)
replaces=(python-archinstall archinstall-git)
source=(
$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/$pkgver.tar.gz
$pkgname-$pkgver.tar.gz.sig::$url/releases/download/$pkgver/$pkgname-$pkgver.tar.gz.sig
)
sha512sums=()
b2sums=()
validpgpkeys=('8AA2213C8464C82D879C8127D4B58E897A929F2E') # torxed@archlinux.org
check() {
cd $pkgname-$pkgver
ruff check
}
pkgver() {
cd $pkgname-$pkgver
awk '$1 ~ /^__version__/ {gsub("\"", ""); print $3}' archinstall/__init__.py
}
build() {
cd $pkgname-$pkgver
python -m build --wheel --no-isolation
PYTHONDONTWRITEBYTECODE=1 make man -C docs
}
package() {
cd "$pkgname-$pkgver"
python -m installer --destdir="$pkgdir" dist/*.whl
install -vDm 644 docs/_build/man/archinstall.1 -t "$pkgdir/usr/share/man/man1/"
}

321
README.md
View File

@ -1,118 +1,269 @@
# archinstall
Just another guided/automated [Arch Linux](https://wiki.archlinux.org/index.php/Arch_Linux) installer.
<!-- <div align="center"> -->
<img src="https://github.com/archlinux/archinstall/raw/master/docs/logo.png" alt="drawing" width="200"/>
Pre-built ISO's can be found here which autostarts this script *(in guided mode)*: https://hvornum.se/archiso/
<!-- </div> -->
# Arch Installer
[![Lint Python and Find Syntax Errors](https://github.com/archlinux/archinstall/actions/workflows/flake8.yaml/badge.svg)](https://github.com/archlinux/archinstall/actions/workflows/flake8.yaml)
# How-to / Usecases
Just another guided/automated [Arch Linux](https://wiki.archlinux.org/index.php/Arch_Linux) installer with a twist.
The installer also doubles as a python library to install Arch Linux and manage services, packages, and other things inside the installed system *(Usually from a live medium or from an existing installation)*.
## Run on Live-CD (Binary)
* archinstall [discord](https://discord.gg/aDeMffrxNg) server
* archinstall [#archinstall:matrix.org](https://matrix.to/#/#archinstall:matrix.org) Matrix channel
* archinstall [#archinstall@irc.libera.chat:6697](https://web.libera.chat/?channel=#archinstall)
* archinstall [documentation](https://archinstall.archlinux.page/)
# wget https://gzip.app/archinstall
# chmod +x archinstall; ./archinstall
# Installation & Usage
> [!TIP]
> In the ISO you are root by default. Use sudo if running from an existing system.
## Run on Live-CD (Python):
```shell
pacman-key --init
pacman -Sy archinstall
archinstall
```
# wget https://raw.githubusercontent.com/Torxed/archinstall/master/archinstall.py
# pacman -S --noconfirm python; python archinstall.py
Alternative ways to install are `git clone` the repository (and is better since you get the latest code regardless of [build date](https://archlinux.org/packages/?sort=&q=archinstall)) or `pip install --upgrade archinstall`.
This will start a guided install.<br>
Add `--default` for a unattended minimalistic installation of Arch Linux.
## Upgrade `archinstall` on live Arch ISO image
> **Creating your own ISO:** Follow [ArchISO](https://wiki.archlinux.org/index.php/archiso)'s guide on how to create your own ISO or use a pre-built [guided ISO](https://hvornum.se/archiso/) to skip the python installation step, or to create auto-installing ISO templates. Further down are examples and cheat sheets on how to create different live ISO's.
Upgrading archinstall on the ISO needs to be done via a full system upgrade using
# Features
```shell
pacman -Syu
```
* User guided install of Arch Linux *(Like most other distros have)*
* `AUR` package support.
* Unattended install of Arch Linux
* Profile / Template based installs
* Full disk encryption, locale/region settings and customizable application selection
* YubiKey support for disk and root password *(TBD / next release)*
* <strike>Supports offline-installation of Arch Linux</strike>
* Never creates or leave post-install/service scripts *(usually used to finalize databases etc)*
When booting from a live USB, the space on the ramdisk is limited and may not be sufficient to allow running a re-installation or upgrade of the installer.
In case one runs into this issue, any of the following can be used
**Default Installation Contains:** Encrypts drive, btrfs filesystem, `linux` kernel, nano, wpa_supplicant *(and dialog)*
* Resize the root partition https://wiki.archlinux.org/title/Archiso#Adjusting_the_size_of_the_root_file_system
* Specify the boot parameter copytoram=y (https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/-/blob/master/docs/README.bootparams#L26) which will copy the root filesystem to tmpfs
# Examples:
## Running the [guided](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py) installer
* `./archinstall --profile=workstation --drive=/dev/sda` - Installs the [workstation](https://github.com/Torxed/archinstall/blob/master/deployments/workstation.json) template on the drive `/dev/sda`
Assuming you are on an Arch Linux live-ISO or installed via `pip`, `archinstall` will use the `guided` script by default
```shell
archinstall
```
similar goes for running the [guided](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py) installer using `git
# [Build a Arch Linux ISO to autorun archinstall](https://github.com/Torxed/archinstall/wiki/Autorun-on-Arch-Live-CD)
```shell
git clone https://github.com/archlinux/archinstall
cd archinstall
python -m archinstall $@
```
More options for the built ISO:
To run alternative scripts using the `--script` parameter
### [Unattended install of a profile](https://github.com/Torxed/archinstall/wiki/Unattended-install-of-a-profile)
```
archinstall --script <name>
```
### [User guided install (DEFAULT)](https://github.com/Torxed/archinstall/wiki/User-guided-installation-(DEFAULT))
#### Advanced
Some additional options that most users do not need are hidden behind the `--advanced` flag and all options/args can be consulted through `-h` or `--help`.
### [Custom web-server for deployment profiles](https://github.com/Torxed/archinstall/wiki/Custom-web-server-for-deployment-profiles)
## Running from a declarative configuration file or URL
### [Rerunning the installation](https://github.com/Torxed/archinstall/wiki/Rerunning-the-installation)
`archinstall` can be run with a JSON configuration file. There are 2 different configuration files to consider,
the `user_configuration.json` contains all general installation configuration, whereas the `user_credentials.json`
contains the sensitive user configuration such as user password, root password, and encryption password.
# Some parameters you can give it
An example of the user configuration file can be found here
[configuration file](https://github.com/archlinux/archinstall/blob/master/examples/config-sample.json)
and an example of the credentials configuration here
[credentials file](https://github.com/archlinux/archinstall/blob/master/examples/creds-sample.json).
--drive=</dev/sdX>
Which drive to install arch on, if absent, the first disk under /dev/ is used
--size=100% (Default)
Sets the size of the root filesystem (btrfs)
--start=513MiB (Default)
Sets the starting location of the root partition
(TODO: /boot will take up space from 1MiB - <start>, make sure boot is no larger than 513MiB)
--password=0000 (Default)
Which disk password to use,
--password="<STDIN>" for prompt of password
--password="<YUBIKEY>" for setting a unique password on the YubiKey and use that as a password
(NOTE: This will wipe/replace slot 1 on the YubiKey)
**HINT:** The configuration files can be auto-generated by starting `archinstall`, configuring all desired menu
points and then going to `Save configuration`.
--aur-support (default)
To load the configuration file into `archinstall` run the following command
```shell
archinstall --config <path to user config file or URL> --creds <path to user credentials config file or URL>
```
--pwfile=/tmp/diskpw (Default)
Which file to store the disk encryption password while sending it to cryptsetup
--hostname=Arcinstall (Default)
Sets the hostname of the box
--country=SE (Default)
Default mirror allocation for fetching packages.
--packages='' (Default)
Which additional packages to install, defaults to none.
(Space separated as it's passed unchanged to `pacstrap`
--user=<name>
Adds an additional username to the system (default group Wheel)
--post=reboot (Default)
After a successful install, reboots into the system. Use --post=stay to not reboot.
### Credentials configuration file encryption
By default, all user account credentials are hashed with `yescrypt` and only the hash is stored in the saved `user_credentials.json` file.
This is not possible for disk encryption password which needs to be stored in plaintext to be able to apply it.
--default
This parameter causes the installation script to install arch unattended on the first disk
However, when selecting to save configuration files, `archinstall` will prompt for the option to encrypt the `user_credentials.json` file content.
A prompt will require to enter a encryption password to encrypt the file. When providing an encrypted `user_configuration.json` as a argument with `--creds <user_credentials.json>`
there are multiple ways to provide the decryption key:
* Provide the decryption key via the command line argument `--creds-decryption-key <password>`
* Store the encryption key in the environment variable `ARCHINSTALL_CREDS_DECRYPTION_KEY` which will be read automatically
* If none of the above is provided a prompt will be shown to enter the decryption key manually
--profile=<name>
For instance, --profile=workstation will install the workstation profile.
--profiles-path=https://example.com/profiles
Changes the default path the script looks for deployment profiles.
The default path is 'https://raw.githubusercontent.com/Torxed/archinstall/master/deployments'
# Help or Issues
--rerun="Name of step in profile"
Enables you to skip the format, encryption and base install steps.
And head straight for a step in the profile specified.
(Useful for debugging a step in your profile)
If you come across any issues, kindly submit your issue here on GitHub or post your query in the
[discord](https://discord.gg/aDeMffrxNg) help channel.
--localtime="Europe/Stockholm" (Default if --country=SE, otherwise GMT+0)
Specify a localtime you're used to.
When submitting an issue, please:
* Provide the stacktrace of the output if applicable
* Attach the `/var/log/archinstall/install.log` to the issue ticket. This helps us help you!
* To upload the log from the ISO image and get a shareable URL, run<br>
```shell
archinstall share-log
```
Deployment profile structs support all the above parameters and more, for instance, custom arguments with string formatting.
See [deployments/workstation.json](https://github.com/Torxed/archinstall/blob/net-deploy/deployments/workstation.json) for examples.
# Contact
# Available Languages
IRC: `#archinstall@FreeNode`
Archinstall is available in different languages which have been contributed and are maintained by the community.
The language can be switched inside the installer (first menu entry). Bear in mind that not all languages provide
full translations as we rely on contributors to do the translations. Each language has an indicator that shows
how much has been translated.
## End note
Any contributions to the translations are more than welcome,
to get started please follow [the guide](https://github.com/archlinux/archinstall/blob/master/archinstall/locales/README.md)
![description](description.jpg)
## Fonts
The ISO does not ship with all fonts needed for different languages.
Fonts that use a different character set than Latin will not be displayed correctly. If those languages
want to be selected then a proper font has to be set manually in the console.
All available console fonts can be found in `/usr/share/kbd/consolefonts` and set with `setfont LatGrkCyr-8x16`.
# Scripting your own installation
## Scripting interactive installation
For an example of a fully scripted, interactive installation please refer to the example
[interactive_installation.py](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py)
> **To create your own ISO with this script in it:** Follow [ArchISO](https://wiki.archlinux.org/index.php/archiso)'s guide on creating your own ISO.
## Script non-interactive automated installation
For an example of a fully scripted, automated installation please refer to the example
[full_automated_installation.py](https://github.com/archlinux/archinstall/blob/master/examples/full_automated_installation.py)
# Profiles
`archinstall` comes with a set of pre-configured profiles available for selection during the installation process.
- [Desktop](https://github.com/archlinux/archinstall/tree/master/archinstall/default_profiles/desktops)
- [Server](https://github.com/archlinux/archinstall/tree/master/archinstall/default_profiles/servers)
The profiles' definitions and the packages they will install can be directly viewed in the menu, or
[default profiles](https://github.com/archlinux/archinstall/tree/master/archinstall/default_profiles)
# Testing
## Using a Live ISO Image
If you want to test a commit, branch, or bleeding edge release from the repository using the standard Arch Linux Live ISO image,
replace the archinstall version with a newer one and execute the subsequent steps defined below.
1. You need a working network connection
2. Install the build requirements with `pacman -Sy; pacman -S git python-pip gcc pkgconf`
*(note that this may or may not work depending on your RAM and current state of the squashfs maximum filesystem free space)*
3. Uninstall the previous version of archinstall with `pip uninstall --break-system-packages archinstall`
4. Now clone the latest repository with `git clone https://github.com/archlinux/archinstall`
5. Enter the repository with `cd archinstall`
*At this stage, you can choose to check out a feature branch for instance with `git checkout v2.3.1-rc1`*
6. To run the source code, there are 2 different options:
- Run a specific branch version from source directly using `python -m archinstall`, in most cases this will work just fine, the
rare case it will not work is if the source has introduced any new dependencies that are not installed yet
- Installing the branch version with `pip install --break-system-packages .` and `archinstall`
## Without a Live ISO Image
To test this without a live ISO, the simplest approach is to use a local image and create a loop device.<br>
This can be done by installing `pacman -S arch-install-scripts util-linux` locally and doing the following:
# truncate -s 20G testimage.img
# losetup --partscan --show ./testimage.img
# pip install --upgrade archinstall
# python -m archinstall --script guided
# qemu-system-x86_64 -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu host -m 4096 -boot order=d -drive file=./testimage.img,format=raw -drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd -drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_VARS.4m.fd
This will create a *20 GB* `testimage.img` and create a loop device which we can use to format and install to.<br>
`archinstall` is installed and executed in [guided mode](#docs-todo). Once the installation is complete, ~~you can use qemu/kvm to boot the test media.~~<br>
*(You'd actually need to do some EFI magic in order to point the EFI vars to the partition 0 in the test medium, so this won't work entirely out of the box, but that gives you a general idea of what we're going for here)*
There's also a [Building and Testing](https://github.com/archlinux/archinstall/wiki/Building-and-Testing) guide.<br>
It will go through everything from packaging, building and running *(with qemu)* the installer against a dev branch.
## Boot an Arch ISO image in a VM
You may want to boot an ISO image in a VM to test `archinstall` in there.
* Download the latest [Arch ISO](https://archlinux.org/download/)
* Use the the below command to boot the ISO in a VM
```
qemu-system-x86_64 -enable-kvm \
-machine q35,accel=kvm -device intel-iommu \
-cpu host -m 4096 -boot order=d \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_VARS.4m.fd \
-drive file=./archlinux-2025.12.01-x86_64.iso,format=raw
```
HINT: For espeakup support
```
qemu-system-x86_64 -enable-kvm \
-machine q35,accel=kvm -device intel-iommu \
-cpu host -m 4096 -boot order=d \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_VARS.4m.fd \
-drive file=./archlinux-2025.12.01-x86_64.iso,format=raw \
-device intel-hda -device hda-duplex,audiodev=snd0 \
-audiodev pa,id=snd0,server=/run/user/1000/pulse/native
```
# FAQ
## AUR
`archinstall` will not offer or bundle AUR helpers or AUR packages due to a current consensus. This is not any individual developers decision. The reasons and discussions for this stance on the topic can be found on our mailing list thread: [(optional) AUR helper in archinstall](https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/VYOULH2GOJLFM2BXOFLWH3D754YXFPSL/).
## Keyring out-of-date
For a description of the problem see https://archinstall.archlinux.page/help/known_issues.html#keyring-is-out-of-date-2213 and discussion in issue https://github.com/archlinux/archinstall/issues/2213.
For a quick fix the below command will install the latest keyrings
```pacman -Sy archlinux-keyring```
## How to dual boot with Windows
To install Arch Linux alongside an existing Windows installation using `archinstall`, follow these steps:
1. Ensure some unallocated space is available for the Linux installation after the Windows installation.
2. Boot into the ISO and run `archinstall`.
3. Choose `Disk configuration` -> `Manual partitioning`.
4. Select the disk on which Windows resides.
5. Select `Create a new partition`.
6. Choose a filesystem type.
7. Determine the start and end sectors for the new partition location (values can be suffixed with various units).
8. Assign the mountpoint `/` to the new partition.
9. Assign the `Boot/ESP` partition the mountpoint `/boot` from the partitioning menu.
10. Confirm your settings and exit to the main menu by choosing `Confirm and exit`.
11. Modify any additional settings for your installation as necessary.
12. Start the installation upon completion of setup.
# Mission Statement
Archinstall promises to ship a [guided installer](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py) that follows
the [Arch Linux Principles](https://wiki.archlinux.org/index.php/Arch_Linux#Principles) as well as a library to manage services, packages, and other Arch Linux aspects.
The guided installer ensures a user-friendly experience, offering optional selections throughout the process. Emphasizing its flexible nature, these options are never obligatory.
In addition, the decision to use the guided installer remains entirely with the user, reflecting the Linux philosophy of providing full freedom and flexibility.
---
Archinstall primarily functions as a flexible library for managing services, packages, and other elements within an Arch Linux system.
This core library is the backbone for the guided installer that Archinstall provides. It is also designed to be used by those who wish to script their own custom installations.
Therefore, Archinstall will try its best to not introduce any breaking changes except for major releases which may break backward compatibility after notifying about such changes.
# Contributing
Please see [CONTRIBUTING.md](https://github.com/archlinux/archinstall/blob/master/CONTRIBUTING.md)

File diff suppressed because it is too large Load Diff

3
archinstall/__init__.py Normal file
View File

@ -0,0 +1,3 @@
from archinstall.lib.plugins import plugin
__all__ = ['plugin']

6
archinstall/__main__.py Normal file
View File

@ -0,0 +1,6 @@
import sys
from archinstall.main import main
if __name__ == '__main__':
sys.exit(main())

View File

@ -0,0 +1,80 @@
from typing import TYPE_CHECKING
from archinstall.lib.hardware import SysInfo
from archinstall.lib.log import debug
from archinstall.lib.models.application import Audio, AudioConfiguration
from archinstall.lib.models.users import User
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class AudioApp:
@property
def pulseaudio_packages(self) -> list[str]:
return [
'pulseaudio',
]
@property
def pipewire_packages(self) -> list[str]:
return [
'pipewire',
'pipewire-alsa',
'pipewire-jack',
'pipewire-pulse',
'gst-plugin-pipewire',
'libpulse',
'wireplumber',
]
def _enable_pipewire(
self,
install_session: Installer,
users: list[User] | None = None,
) -> None:
if users is None:
return
for user in users:
# Create the full path for enabling the pipewire systemd items
service_dir = install_session.target / 'home' / user.username / '.config' / 'systemd' / 'user' / 'default.target.wants'
service_dir.mkdir(parents=True, exist_ok=True)
# Set ownership of the entire user catalogue
install_session.arch_chroot(f'chown -R {user.username}:{user.username} /home/{user.username}')
# symlink in the correct pipewire systemd items
install_session.arch_chroot(
f'ln -sf /usr/lib/systemd/user/pipewire-pulse.service /home/{user.username}/.config/systemd/user/default.target.wants/pipewire-pulse.service',
run_as=user.username,
)
install_session.arch_chroot(
f'ln -sf /usr/lib/systemd/user/pipewire-pulse.socket /home/{user.username}/.config/systemd/user/default.target.wants/pipewire-pulse.socket',
run_as=user.username,
)
def install(
self,
install_session: Installer,
audio_config: AudioConfiguration,
users: list[User] | None = None,
) -> None:
debug(f'Installing audio server: {audio_config.audio.value}')
if audio_config.audio == Audio.NO_AUDIO:
debug('No audio server selected, skipping installation.')
return
if SysInfo.requires_sof_fw():
install_session.add_additional_packages('sof-firmware')
if SysInfo.requires_alsa_fw():
install_session.add_additional_packages('alsa-firmware')
match audio_config.audio:
case Audio.PIPEWIRE:
install_session.add_additional_packages(self.pipewire_packages)
self._enable_pipewire(install_session, users)
case Audio.PULSEAUDIO:
install_session.add_additional_packages(self.pulseaudio_packages)

View File

@ -0,0 +1,26 @@
from typing import TYPE_CHECKING
from archinstall.lib.log import debug
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class BluetoothApp:
@property
def packages(self) -> list[str]:
return [
'bluez',
'bluez-utils',
]
@property
def services(self) -> list[str]:
return [
'bluetooth.service',
]
def install(self, install_session: Installer) -> None:
debug('Installing Bluetooth')
install_session.add_additional_packages(self.packages)
install_session.enable_service(self.services)

View File

@ -0,0 +1,52 @@
from typing import TYPE_CHECKING
from archinstall.lib.log import debug
from archinstall.lib.models.application import Firewall, FirewallConfiguration
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class FirewallApp:
@property
def ufw_packages(self) -> list[str]:
return [
'ufw',
]
@property
def fwd_packages(self) -> list[str]:
return [
'firewalld',
]
@property
def ufw_services(self) -> list[str]:
return [
'ufw.service',
]
@property
def fwd_services(self) -> list[str]:
return [
'firewalld.service',
]
def install(
self,
install_session: Installer,
firewall_config: FirewallConfiguration,
) -> None:
debug(f'Installing firewall: {firewall_config.firewall.value}')
match firewall_config.firewall:
case Firewall.UFW:
install_session.add_additional_packages(self.ufw_packages)
install_session.enable_service(self.ufw_services)
# write default conf file to enabled
ufw_conf = install_session.target / 'etc/ufw/ufw.conf'
ufw_conf.write_text(ufw_conf.read_text().replace('ENABLED=no', 'ENABLED=yes'))
case Firewall.FWD:
install_session.add_additional_packages(self.fwd_packages)
install_session.enable_service(self.fwd_services)

View File

@ -0,0 +1,14 @@
from typing import TYPE_CHECKING
from archinstall.lib.log import debug
from archinstall.lib.models.application import FontsConfiguration
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class FontsApp:
def install(self, install_session: Installer, fonts_config: FontsConfiguration) -> None:
packages = [f.value for f in fonts_config.fonts]
debug(f'Installing fonts: {packages}')
install_session.add_additional_packages(packages)

View File

@ -0,0 +1,49 @@
from typing import TYPE_CHECKING
from archinstall.lib.log import debug
from archinstall.lib.models.application import PowerManagement, PowerManagementConfiguration
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class PowerManagementApp:
@property
def ppd_packages(self) -> list[str]:
return [
'power-profiles-daemon',
]
@property
def tuned_packages(self) -> list[str]:
return [
'tuned',
'tuned-ppd',
]
@property
def ppd_services(self) -> list[str]:
return [
'power-profiles-daemon.service',
]
@property
def tuned_services(self) -> list[str]:
return [
'tuned.service',
]
def install(
self,
install_session: Installer,
power_management_config: PowerManagementConfiguration,
) -> None:
debug(f'Installing power management daemon: {power_management_config.power_management.value}')
match power_management_config.power_management:
case PowerManagement.POWER_PROFILES_DAEMON:
install_session.add_additional_packages(self.ppd_packages)
install_session.enable_service(self.ppd_services)
case PowerManagement.TUNED:
install_session.add_additional_packages(self.tuned_packages)
install_session.enable_service(self.tuned_services)

View File

@ -0,0 +1,23 @@
from typing import TYPE_CHECKING
from archinstall.lib.log import debug
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class PrintServiceApp:
@property
def packages(self) -> list[str]:
return ['cups', 'system-config-printer', 'cups-pk-helper']
@property
def services(self) -> list[str]:
return [
'cups.service',
]
def install(self, install_session: Installer) -> None:
debug('Installing print service')
install_session.add_additional_packages(self.packages)
install_session.enable_service(self.services)

View File

View File

@ -0,0 +1,114 @@
from typing import TYPE_CHECKING, Self, override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType, SelectResult
from archinstall.lib.log import info
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.profile.profiles_handler import profile_handler
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class DesktopProfile(Profile):
def __init__(self, current_selection: list[Self] = []) -> None:
super().__init__(
'Desktop',
ProfileType.Desktop,
current_selection=current_selection,
support_greeter=True,
)
@property
@override
def packages(self) -> list[str]:
return [
'nano',
'vim',
'openssh',
'htop',
'wget',
'smartmontools',
'xdg-utils',
]
@property
@override
def default_greeter_type(self) -> GreeterType | None:
combined_greeters: dict[GreeterType, int] = {}
for profile in self.current_selection:
if profile.default_greeter_type:
combined_greeters.setdefault(profile.default_greeter_type, 0)
combined_greeters[profile.default_greeter_type] += 1
if len(combined_greeters) >= 1:
return list(combined_greeters)[0]
return None
async def _do_on_select_profiles(self) -> None:
for profile in self.current_selection:
await profile.do_on_select()
@override
async def do_on_select(self) -> SelectResult:
items = [
MenuItem(
p.name,
value=p,
preview_action=lambda x: x.value.preview_text() if x.value else None,
)
for p in profile_handler.get_desktop_profiles()
]
group = MenuItemGroup(items, sort_items=True, sort_case_sensitive=False)
group.set_selected_by_value(self.current_selection)
result = await Selection[Self](
group,
multi=True,
allow_reset=True,
allow_skip=True,
preview_location='right',
).show()
match result.type_:
case ResultType.Selection:
self.current_selection = result.get_values()
await self._do_on_select_profiles()
return SelectResult.NewSelection
case ResultType.Skip:
return SelectResult.SameSelection
case ResultType.Reset:
return SelectResult.ResetCurrent
@override
def post_install(self, install_session: Installer) -> None:
for profile in self.current_selection:
profile.post_install(install_session)
@override
def provision(self, install_session: Installer, users: list[User]) -> None:
for profile in self.current_selection:
profile.provision(install_session, users)
@override
def install(self, install_session: Installer) -> None:
# Install common packages for all desktop environments
install_session.add_additional_packages(self.packages)
xorg_installed = False
for profile in self.current_selection:
info(f'Installing profile {profile.name}...')
install_session.add_additional_packages(profile.packages)
install_session.enable_service(profile.services)
if not xorg_installed and profile.display_server == DisplayServerType.Xorg:
install_session.add_additional_packages(['xorg-server', 'xorg-xinit'])
xorg_installed = True
profile.install(install_session)

View File

@ -0,0 +1,67 @@
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import DisplayServerType, Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class AwesomeProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Awesome',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'awesome',
'alacritty',
'xorg-xrandr',
'xterm',
'feh',
'slock',
'terminus-font',
'gnu-free-fonts',
'ttf-liberation',
'xsel',
]
@override
def install(self, install_session: Installer) -> None:
super().install(install_session)
# TODO: Copy a full configuration to ~/.config/awesome/rc.lua instead.
with open(f'{install_session.target}/etc/xdg/awesome/rc.lua') as fh:
awesome_lua = fh.read()
# Replace xterm with alacritty for a smoother experience.
awesome_lua = awesome_lua.replace('"xterm"', '"alacritty"')
with open(f'{install_session.target}/etc/xdg/awesome/rc.lua', 'w') as fh:
fh.write(awesome_lua)
# TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
# TODO: check if we selected a greeter,
# but for now, awesome is intended to run without one.
with open(f'{install_session.target}/etc/X11/xinit/xinitrc') as xinitrc:
xinitrc_data = xinitrc.read()
for line in xinitrc_data.split('\n'):
if 'twm &' in line:
xinitrc_data = xinitrc_data.replace(line, f'# {line}')
if 'xclock' in line:
xinitrc_data = xinitrc_data.replace(line, f'# {line}')
if 'xterm' in line:
xinitrc_data = xinitrc_data.replace(line, f'# {line}')
xinitrc_data += '\n'
xinitrc_data += 'exec awesome\n'
with open(f'{install_session.target}/etc/X11/xinit/xinitrc', 'w') as xinitrc:
xinitrc.write(xinitrc_data)

View File

@ -0,0 +1,39 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class BspwmProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Bspwm',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'bspwm',
'sxhkd',
'dmenu',
'xdo',
'rxvt-unicode',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
@override
def provision(self, install_session: Installer, users: list[User]) -> None:
for user in users:
install_session.arch_chroot('mkdir -p ~/.config/bspwm ~/.config/sxhkd', run_as=user.username)
install_session.arch_chroot('cp /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/', run_as=user.username)
install_session.arch_chroot('cp /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/', run_as=user.username)
install_session.arch_chroot('chmod +x ~/.config/bspwm/bspwmrc', run_as=user.username)

View File

@ -0,0 +1,30 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class BudgieProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Budgie',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
@property
@override
def packages(self) -> list[str]:
return [
'materia-gtk-theme',
'budgie',
'mate-terminal',
'nemo',
'nemo-fileroller',
'papirus-icon-theme',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.LightdmSlick

View File

@ -0,0 +1,33 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class CinnamonProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Cinnamon',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'cinnamon',
'system-config-printer',
'gnome-keyring',
'gnome-terminal',
'engrampa',
'gnome-screenshot',
'gvfs-smb',
'xed',
'xdg-user-dirs-gtk',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,26 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class CosmicProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Cosmic',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
@property
@override
def packages(self) -> list[str]:
return [
'cosmic',
'xdg-user-dirs',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.CosmicSession

View File

@ -0,0 +1,27 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class DeepinProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Deepin',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'deepin',
'deepin-terminal',
'deepin-editor',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,26 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class EnlightenmentProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Enlightenment',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'enlightenment',
'terminology',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,26 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class GnomeProfile(Profile):
def __init__(self) -> None:
super().__init__(
'GNOME',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
@property
@override
def packages(self) -> list[str]:
return [
'gnome',
'gnome-tweaks',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Gdm

View File

@ -0,0 +1,52 @@
from typing import override
from archinstall.default_profiles.desktops.utils import select_seat_access
from archinstall.default_profiles.profile import CustomSetting, DisplayServerType, GreeterType, Profile, ProfileType
class HyprlandProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Hyprland',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
self.custom_settings = {CustomSetting.SeatAccess: None}
@property
@override
def packages(self) -> list[str]:
return [
'hyprland',
'dunst',
'kitty',
'uwsm',
'dolphin',
'wofi',
'xdg-desktop-portal-hyprland',
'qt5-wayland',
'qt6-wayland',
'polkit-kde-agent',
'grim',
'slurp',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Sddm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get(CustomSetting.SeatAccess, None):
return [pref]
return []
@override
async def do_on_select(self) -> None:
default = self.custom_settings.get(CustomSetting.SeatAccess, None)
seat_access = await select_seat_access(self.name, default)
self.custom_settings[CustomSetting.SeatAccess] = seat_access.value

View File

@ -0,0 +1,33 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class I3wmProfile(Profile):
def __init__(self) -> None:
super().__init__(
'i3-wm',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'i3-wm',
'i3lock',
'i3status',
'i3blocks',
'xss-lock',
'xterm',
'lightdm-gtk-greeter',
'lightdm',
'dmenu',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,46 @@
from typing import override
from archinstall.default_profiles.desktops.utils import select_seat_access
from archinstall.default_profiles.profile import CustomSetting, DisplayServerType, GreeterType, Profile, ProfileType
class LabwcProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Labwc',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
self.custom_settings = {CustomSetting.SeatAccess: None}
@property
@override
def packages(self) -> list[str]:
additional = []
if seat := self.custom_settings.get(CustomSetting.SeatAccess, None):
additional = [seat]
return [
'alacritty',
'labwc',
] + additional
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get(CustomSetting.SeatAccess, None):
return [pref]
return []
@override
async def do_on_select(self) -> None:
default = self.custom_settings.get(CustomSetting.SeatAccess, None)
seat_access = await select_seat_access(self.name, default)
self.custom_settings[CustomSetting.SeatAccess] = seat_access.value

View File

@ -0,0 +1,34 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class LxqtProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Lxqt',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
# NOTE: SDDM is the only officially supported greeter for LXQt, so unlike other DEs, lightdm is not used here.
# LXQt works with lightdm, but since this is not supported, we will not default to this.
# https://github.com/lxqt/lxqt/issues/795
@property
@override
def packages(self) -> list[str]:
return [
'lxqt',
'breeze-icons',
'oxygen-icons',
'xdg-utils',
'ttf-freefont',
'l3afpad',
'slock',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Sddm

View File

@ -0,0 +1,26 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class MateProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Mate',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'mate',
'mate-extra',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,54 @@
from typing import override
from archinstall.default_profiles.desktops.utils import select_seat_access
from archinstall.default_profiles.profile import CustomSetting, DisplayServerType, GreeterType, Profile, ProfileType
class NiriProfile(Profile):
def __init__(self) -> None:
super().__init__(
'niri',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
self.custom_settings = {CustomSetting.SeatAccess: None}
@property
@override
def packages(self) -> list[str]:
additional = []
if seat := self.custom_settings.get(CustomSetting.SeatAccess, None):
additional = [seat]
return [
'niri',
'alacritty',
'fuzzel',
'mako',
'xorg-xwayland',
'waybar',
'swaybg',
'swayidle',
'swaylock',
'xdg-desktop-portal-gnome',
] + additional
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get(CustomSetting.SeatAccess, None):
return [pref]
return []
@override
async def do_on_select(self) -> None:
default = self.custom_settings.get(CustomSetting.SeatAccess, None)
seat_access = await select_seat_access(self.name, default)
self.custom_settings[CustomSetting.SeatAccess] = seat_access.value

View File

@ -0,0 +1,66 @@
import shutil
from pathlib import Path
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
_TERMINAL = 'alacritty'
_ASSETS_DIR = Path(__file__).parent / 'niri_dms_assets'
class NiriDmsProfile(Profile):
def __init__(self) -> None:
super().__init__(
'niri - DankMaterialShell',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
@property
@override
def packages(self) -> list[str]:
return [
'niri',
'dms-shell-niri',
'polkit',
'xdg-desktop-portal-gnome',
'xorg-xwayland',
'matugen',
'cava',
'kimageformats',
'cups-pk-helper',
'tuned-ppd',
_TERMINAL,
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.GreetdDms
@override
def provision(self, install_session: Installer, users: list[User]) -> None:
binds = (_ASSETS_DIR / 'dms/binds.kdl').read_text().replace('{{TERMINAL_COMMAND}}', _TERMINAL)
for user in users:
home = install_session.target / 'home' / user.username
niri_dir = home / '.config/niri'
dms_dir = niri_dir / 'dms'
dms_dir.mkdir(parents=True, exist_ok=True)
shutil.copy(_ASSETS_DIR / 'niri.kdl', niri_dir / 'config.kdl')
for name in ('colors.kdl', 'layout.kdl', 'alttab.kdl', 'outputs.kdl', 'cursor.kdl'):
shutil.copy(_ASSETS_DIR / 'dms' / name, dms_dir / name)
(dms_dir / 'binds.kdl').write_text(binds)
niri_unit_dropin = home / '.config/systemd/user/niri.service.d'
niri_unit_dropin.mkdir(parents=True, exist_ok=True)
(niri_unit_dropin / 'dms.conf').write_text('[Unit]\nWants=dms.service\n')
install_session.arch_chroot(f'chown -R {user.username}:{user.username} /home/{user.username}/.config')

View File

@ -0,0 +1,10 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
recent-windows {
highlight {
corner-radius 12
}
}

View File

@ -0,0 +1,221 @@
binds {
// === System & Overview ===
Mod+D repeat=false { toggle-overview; }
Mod+Tab repeat=false { toggle-overview; }
Mod+Shift+Slash { show-hotkey-overlay; }
// === Application Launchers ===
Mod+T hotkey-overlay-title="Open Terminal" { spawn "{{TERMINAL_COMMAND}}"; }
Mod+Space hotkey-overlay-title="Application Launcher" {
spawn "dms" "ipc" "call" "spotlight" "toggle";
}
Mod+V hotkey-overlay-title="Clipboard Manager" {
spawn "dms" "ipc" "call" "clipboard" "toggle";
}
Mod+M hotkey-overlay-title="Task Manager" {
spawn "dms" "ipc" "call" "processlist" "focusOrToggle";
}
Super+X hotkey-overlay-title="Power Menu: Toggle" { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
Mod+Comma hotkey-overlay-title="Settings" {
spawn "dms" "ipc" "call" "settings" "focusOrToggle";
}
Mod+Y hotkey-overlay-title="Browse Wallpapers" {
spawn "dms" "ipc" "call" "dankdash" "wallpaper";
}
Mod+N hotkey-overlay-title="Notification Center" { spawn "dms" "ipc" "call" "notifications" "toggle"; }
Mod+Shift+N hotkey-overlay-title="Notepad" { spawn "dms" "ipc" "call" "notepad" "toggle"; }
// === Security ===
Mod+Alt+L hotkey-overlay-title="Lock Screen" {
spawn "dms" "ipc" "call" "lock" "lock";
}
Mod+Shift+E { quit; }
Ctrl+Alt+Delete hotkey-overlay-title="Task Manager" {
spawn "dms" "ipc" "call" "processlist" "focusOrToggle";
}
// === Audio Controls ===
XF86AudioRaiseVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "increment" "3";
}
XF86AudioLowerVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "decrement" "3";
}
XF86AudioMute allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "mute";
}
XF86AudioMicMute allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "micmute";
}
XF86AudioPause allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "playPause";
}
XF86AudioPlay allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "playPause";
}
XF86AudioPrev allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "previous";
}
XF86AudioNext allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "next";
}
Ctrl+XF86AudioRaiseVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "increment" "3";
}
Ctrl+XF86AudioLowerVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "decrement" "3";
}
// === Brightness Controls ===
XF86MonBrightnessUp allow-when-locked=true {
spawn "dms" "ipc" "call" "brightness" "increment" "5" "";
}
XF86MonBrightnessDown allow-when-locked=true {
spawn "dms" "ipc" "call" "brightness" "decrement" "5" "";
}
// === Window Management ===
Mod+Q repeat=false { close-window; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
Mod+Shift+T { toggle-window-floating; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
Mod+W { toggle-column-tabbed-display; }
Mod+Shift+W hotkey-overlay-title="Create window rule" { spawn "dms" "ipc" "call" "window-rules" "toggle"; }
// === Focus Navigation ===
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
// === Window Movement ===
Mod+Shift+Left { move-column-left; }
Mod+Shift+Down { move-window-down; }
Mod+Shift+Up { move-window-up; }
Mod+Shift+Right { move-column-right; }
Mod+Shift+H { move-column-left; }
Mod+Shift+J { move-window-down; }
Mod+Shift+K { move-window-up; }
Mod+Shift+L { move-column-right; }
// === Column Navigation ===
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
// === Monitor Navigation ===
Mod+Ctrl+Left { focus-monitor-left; }
//Mod+Ctrl+Down { focus-monitor-down; }
//Mod+Ctrl+Up { focus-monitor-up; }
Mod+Ctrl+Right { focus-monitor-right; }
Mod+Ctrl+H { focus-monitor-left; }
Mod+Ctrl+J { focus-monitor-down; }
Mod+Ctrl+K { focus-monitor-up; }
Mod+Ctrl+L { focus-monitor-right; }
// === Move to Monitor ===
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
// === Workspace Navigation ===
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+Ctrl+Down { move-column-to-workspace-down; }
Mod+Ctrl+Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
// === Workspace Management ===
Ctrl+Shift+R hotkey-overlay-title="Rename Workspace" {
spawn "dms" "ipc" "call" "workspace-rename" "open";
}
// === Move Workspaces ===
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
// === Mouse Wheel Navigation ===
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
// === Numbered Workspaces ===
Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
// === Move to Numbered Workspaces ===
Mod+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; }
// === Column Management ===
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+Period { expel-window-from-column; }
// === Sizing & Layout ===
Mod+R { switch-preset-column-width; }
Mod+Shift+R { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+Ctrl+F { expand-column-to-available-width; }
Mod+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }
// === Manual Sizing ===
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
// === Screenshots ===
XF86Launch1 { screenshot; }
Ctrl+XF86Launch1 { screenshot-screen; }
Alt+XF86Launch1 { screenshot-window; }
Print { screenshot; }
Ctrl+Print { screenshot-screen; }
Alt+Print { screenshot-window; }
// === System Controls ===
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+P { power-off-monitors; }
}

View File

@ -0,0 +1,39 @@
// ! Auto-generated file. Do not edit directly.
// Remove `include "dms/colors.kdl"` from your config to override.
layout {
background-color "transparent"
focus-ring {
active-color "#d0bcff"
inactive-color "#948f99"
urgent-color "#f2b8b5"
}
border {
active-color "#d0bcff"
inactive-color "#948f99"
urgent-color "#f2b8b5"
}
shadow {
color "#00000070"
}
tab-indicator {
active-color "#d0bcff"
inactive-color "#948f99"
urgent-color "#f2b8b5"
}
insert-hint {
color "#d0bcff80"
}
}
recent-windows {
highlight {
active-color "#4f378b"
urgent-color "#f2b8b5"
}
}

View File

@ -0,0 +1,6 @@
// Place cursor configuration here.
// Example:
// cursor {
// xcursor-theme "Adwaita"
// xcursor-size 24
// }

View File

@ -0,0 +1,22 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
layout {
gaps 4
border {
width 2
}
focus-ring {
width 2
}
}
window-rule {
geometry-corner-radius 12
clip-to-geometry true
tiled-state true
draw-border-with-background false
}

View File

@ -0,0 +1,7 @@
// Place per-output configuration here.
// Example:
// output "DP-1" {
// mode "2560x1440@165"
// position x=0 y=0
// scale 1
// }

View File

@ -0,0 +1,279 @@
// This config is in the KDL format: https://kdl.dev
// "/-" comments out the following node.
// Check the wiki for a full description of the configuration:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Introduction
config-notification {
disable-failed
}
gestures {
hot-corners {
off
}
}
// Input device configuration.
// Find the full list of options on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
input {
keyboard {
xkb {
// You can set rules, model, layout, variant and options.
// For more information, see xkeyboard-config(7).
// For example:
// layout "us,ru"
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
// If this section is empty, niri will fetch xkb settings
// from org.freedesktop.locale1. You can control these using
// localectl set-x11-keymap.
}
// Enable numlock on startup, omitting this setting disables it.
numlock
}
// Next sections include libinput settings.
// Omitting settings disables them, or leaves them at their default values.
// All commented-out settings here are examples, not defaults.
touchpad {
// off
tap
// dwt
// dwtp
// drag false
// drag-lock
natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "two-finger"
// disabled-on-external-mouse
}
mouse {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "no-scroll"
}
trackpoint {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "on-button-down"
// scroll-button 273
// scroll-button-lock
// middle-emulation
}
// Uncomment this to make the mouse warp to the center of newly focused windows.
// warp-mouse-to-focus
// Focus windows and outputs automatically when moving the mouse into them.
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
// focus-follows-mouse max-scroll-amount="0%"
}
// You can configure outputs by their name, which you can find
// by running `niri msg outputs` while inside a niri instance.
// The built-in laptop monitor is usually called "eDP-1".
// Find more information on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs
// Remember to uncomment the node by removing "/-"!
/-output "eDP-2" {
mode "2560x1600@239.998993"
position x=2560 y=0
variable-refresh-rate
}
// Settings that influence how windows are positioned and sized.
// Find more information on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
layout {
// Set gaps around windows in logical pixels.
background-color "transparent"
// When to center a column when changing focus, options are:
// - "never", default behavior, focusing an off-screen column will keep at the left
// or right edge of the screen.
// - "always", the focused column will always be centered.
// - "on-overflow", focusing a column will center it if it doesn't fit
// together with the previously focused column.
center-focused-column "never"
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
preset-column-widths {
// Proportion sets the width as a fraction of the output width, taking gaps into account.
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
proportion 0.33333
proportion 0.5
proportion 0.66667
// Fixed sets the width in logical pixels exactly.
// fixed 1920
}
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
// preset-window-heights { }
// You can change the default width of the new windows.
default-column-width { proportion 0.5; }
// If you leave the brackets empty, the windows themselves will decide their initial width.
// default-column-width {}
// By default focus ring and border are rendered as a solid background rectangle
// behind windows. That is, they will show up through semitransparent windows.
// This is because windows using client-side decorations can have an arbitrary shape.
//
// If you don't like that, you should uncomment `prefer-no-csd` below.
// Niri will draw focus ring and border *around* windows that agree to omit their
// client-side decorations.
//
// Alternatively, you can override it with a window rule called
// `draw-border-with-background`.
border {
off
width 4
active-color "#707070" // Neutral gray
inactive-color "#d0d0d0" // Light gray
urgent-color "#cc4444" // Softer red
}
shadow {
softness 30
spread 5
offset x=0 y=5
color "#0007"
}
struts {
}
}
layer-rule {
match namespace="^quickshell$"
place-within-backdrop true
}
overview {
workspace-shadow {
off
}
}
// Add lines like this to spawn processes at startup.
// Note that running niri as a session supports xdg-desktop-autostart,
// which may be more convenient to use.
// See the binds section below for more spawn examples.
// This line starts waybar, a commonly used bar for Wayland compositors.
environment {
XDG_CURRENT_DESKTOP "niri"
}
hotkey-overlay {
skip-at-startup
}
prefer-no-csd
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
animations {
workspace-switch {
spring damping-ratio=0.80 stiffness=523 epsilon=0.0001
}
window-open {
duration-ms 150
curve "ease-out-expo"
}
window-close {
duration-ms 150
curve "ease-out-quad"
}
horizontal-view-movement {
spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
}
window-movement {
spring damping-ratio=0.75 stiffness=323 epsilon=0.0001
}
window-resize {
spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
}
config-notification-open-close {
spring damping-ratio=0.65 stiffness=923 epsilon=0.001
}
screenshot-ui-open {
duration-ms 200
curve "ease-out-quad"
}
overview-open-close {
spring damping-ratio=0.85 stiffness=800 epsilon=0.0001
}
}
// Window rules let you adjust behavior for individual windows.
// Find more information on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
// Work around WezTerm's initial configure bug
// by setting an empty default-column-width.
window-rule {
// This regular expression is intentionally made as specific as possible,
// since this is the default config, and we want no false positives.
// You can get away with just app-id="wezterm" if you want.
match app-id=r#"^org\.wezfurlong\.wezterm$"#
default-column-width {}
}
window-rule {
match app-id=r#"^org\.gnome\."#
draw-border-with-background false
geometry-corner-radius 12
clip-to-geometry true
}
window-rule {
match app-id=r#"^gnome-control-center$"#
match app-id=r#"^pavucontrol$"#
match app-id=r#"^nm-connection-editor$"#
default-column-width { proportion 0.5; }
open-floating false
}
window-rule {
match app-id=r#"^org\.gnome\.Calculator$"#
match app-id=r#"^gnome-calculator$"#
match app-id=r#"^galculator$"#
match app-id=r#"^blueman-manager$"#
match app-id=r#"^org\.gnome\.Nautilus$"#
match app-id=r#"^xdg-desktop-portal$"#
open-floating true
}
window-rule {
match app-id=r#"^steam$"# title=r#"^notificationtoasts_\d+_desktop$"#
default-floating-position x=10 y=10 relative-to="bottom-right"
open-focused false
}
window-rule {
match app-id=r#"^org\.wezfurlong\.wezterm$"#
match app-id="Alacritty"
match app-id="zen"
match app-id="com.mitchellh.ghostty"
match app-id="kitty"
draw-border-with-background false
}
window-rule {
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
match app-id="zoom"
open-floating true
}
// Open dms windows as floating by default
window-rule {
match app-id=r#"org.quickshell$"#
match app-id=r#"com.danklinux.dms$"#
open-floating true
}
debug {
honor-xdg-activation-with-invalid-serial
}
// Override to disable super+tab
recent-windows {
binds {
Alt+Tab { next-window scope="output"; }
Alt+Shift+Tab { previous-window scope="output"; }
Alt+grave { next-window filter="app-id"; }
Alt+Shift+grave { previous-window filter="app-id"; }
}
}
// Include dms files
include "dms/colors.kdl"
include "dms/layout.kdl"
include "dms/alttab.kdl"
include "dms/binds.kdl"
include "dms/outputs.kdl"
include "dms/cursor.kdl"

View File

@ -0,0 +1,120 @@
from enum import StrEnum
from typing import override
from archinstall.default_profiles.profile import CustomSetting, DisplayServerType, GreeterType, Profile, ProfileType
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.packages.packages import available_package, package_group_info
from archinstall.lib.translationhandler import tr
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
class PlasmaFlavor(StrEnum):
Meta = 'plasma-meta'
Plasma = 'plasma'
Desktop = 'plasma-desktop'
def show(self) -> str:
match self:
case PlasmaFlavor.Meta:
return f'{self.value} ({tr("Recommended")})'
case PlasmaFlavor.Plasma | PlasmaFlavor.Desktop:
return self.value
def package_details(self) -> str:
ty = ''
details = ''
desc = ''
match self:
case PlasmaFlavor.Meta:
ty = tr('Package')
desc = tr('Curated selection of KDE Plasma packages')
info = available_package(self.value)
if info is not None:
details = tr('Dependencies') + '\n'
details += '\n'.join(f'- {entry}' for entry in info.get_depends_on)
case PlasmaFlavor.Plasma:
ty = tr('Package group')
desc = tr('Extensive KDE Plasma installation')
group = package_group_info(self.value)
if group is not None:
details = tr('Packages in group') + '\n'
details += '\n'.join(f'- {entry}' for entry in group.packages)
case PlasmaFlavor.Desktop:
ty = tr('Package group')
desc = tr('Minimal KDE Plasma installation')
info = available_package(self.value)
if info is not None:
details = tr('Dependencies') + '\n'
details += '\n'.join(f'- {entry}' for entry in info.get_depends_on)
return f'{tr("Type")}: {ty}\n{tr("Description")}: {desc}\n\n{details}'
def packages(self) -> list[str]:
match self:
case PlasmaFlavor.Meta:
return ['plasma-meta']
case PlasmaFlavor.Plasma:
return ['plasma']
case PlasmaFlavor.Desktop:
return ['plasma-desktop']
class PlasmaProfile(Profile):
def __init__(self) -> None:
super().__init__(
'KDE Plasma',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
@property
@override
def packages(self) -> list[str]:
flavor_str = self.custom_settings.get(CustomSetting.PlasmaFlavor)
if flavor_str is not None:
flavor = PlasmaFlavor(flavor_str)
return flavor.packages()
else:
return PlasmaFlavor.Meta.packages() # use plasma-meta as the recommended default
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.PlasmaLoginManager
async def _select_flavor(self) -> None:
header = tr('Select a flavor of KDE Plasma to install') + '\n'
items = [
MenuItem(
s.show(),
value=s,
preview_action=lambda x: x.value.package_details() if x.value else None,
)
for s in PlasmaFlavor
]
group = MenuItemGroup(items, sort_items=False)
default = self.custom_settings.get(CustomSetting.PlasmaFlavor, None)
group.set_default_by_value(default)
result = await Selection[PlasmaFlavor](
group,
header=header,
allow_skip=False,
preview_location='right',
).show()
if result.type_ == ResultType.Selection:
self.custom_settings[CustomSetting.PlasmaFlavor] = result.get_value().value
@override
async def do_on_select(self) -> None:
await self._select_flavor()

View File

@ -0,0 +1,26 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class QtileProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Qtile',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'qtile',
'alacritty',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,27 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class RiverProfile(Profile):
def __init__(self) -> None:
super().__init__(
'River',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
@property
@override
def packages(self) -> list[str]:
return [
'foot',
'xdg-desktop-portal-wlr',
'river',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,56 @@
from typing import override
from archinstall.default_profiles.desktops.utils import select_seat_access
from archinstall.default_profiles.profile import CustomSetting, DisplayServerType, GreeterType, Profile, ProfileType
class SwayProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Sway',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Wayland,
)
self.custom_settings = {CustomSetting.SeatAccess: None}
@property
@override
def packages(self) -> list[str]:
additional = []
if seat := self.custom_settings.get(CustomSetting.SeatAccess, None):
additional = [seat]
return [
'sway',
'swaybg',
'swaylock',
'swayidle',
'waybar',
'wmenu',
'brightnessctl',
'grim',
'slurp',
'pavucontrol',
'foot',
'xorg-xwayland',
] + additional
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get(CustomSetting.SeatAccess, None):
return [pref]
return []
@override
async def do_on_select(self) -> None:
default = self.custom_settings.get(CustomSetting.SeatAccess, None)
seat_access = await select_seat_access(self.name, default)
self.custom_settings[CustomSetting.SeatAccess] = seat_access.value

View File

@ -0,0 +1,33 @@
from enum import Enum
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.translationhandler import tr
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
class SeatAccess(Enum):
seatd = 'seatd'
polkit = 'polkit'
async def select_seat_access(profile_name: str, default: str | None) -> SeatAccess:
header = tr('{} needs access to your seat').format(profile_name)
header += f' ({tr("collection of hardware devices i.e. keyboard, mouse")})' + '\n'
header += tr('Choose an option how to give {} access to your hardware').format(profile_name)
items = [MenuItem(s.value, value=s) for s in SeatAccess]
group = MenuItemGroup(items, sort_items=True)
group.set_default_by_value(default)
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
).show()
if result.type_ == ResultType.Selection:
return result.get_value()
else:
raise ValueError('Unexpected result type from seat access selection')

View File

@ -0,0 +1,29 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class Xfce4Profile(Profile):
def __init__(self) -> None:
super().__init__(
'Xfce4',
ProfileType.DesktopEnv,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'xfce4',
'xfce4-goodies',
'pavucontrol',
'gvfs',
'xarchiver',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,29 @@
from typing import override
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
class XmonadProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Xmonad',
ProfileType.WindowMgr,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'xmonad',
'xmonad-contrib',
'xmonad-extras',
'xterm',
'dmenu',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm

View File

@ -0,0 +1,9 @@
from archinstall.default_profiles.profile import Profile, ProfileType
class MinimalProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Minimal',
ProfileType.Minimal,
)

View File

@ -0,0 +1,218 @@
from enum import Enum, StrEnum, auto
from typing import TYPE_CHECKING, Self
from archinstall.lib.translationhandler import tr
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class DisplayServerType(Enum):
Xorg = 'Xorg'
Wayland = 'Wayland'
class ProfileType(Enum):
# top level default_profiles
Server = 'Server'
Desktop = 'Desktop'
Xorg = 'Xorg'
Minimal = 'Minimal'
Custom = 'Custom'
# detailed selection default_profiles
ServerType = 'ServerType'
WindowMgr = 'Window Manager'
DesktopEnv = 'Desktop Environment'
CustomType = 'CustomType'
# special things
Application = 'Application'
class GreeterType(Enum):
Lightdm = 'lightdm-gtk-greeter'
LightdmSlick = 'lightdm-slick-greeter'
Sddm = 'sddm'
Gdm = 'gdm'
Ly = 'ly'
CosmicSession = 'cosmic-greeter'
PlasmaLoginManager = 'plasma-login-manager'
GreetdDms = 'dms-greeter'
class SelectResult(Enum):
NewSelection = auto()
SameSelection = auto()
ResetCurrent = auto()
class CustomSetting(StrEnum):
SeatAccess = 'seat_access'
PlasmaFlavor = 'plasma_flavor'
class Profile:
def __init__(
self,
name: str,
profile_type: ProfileType,
current_selection: list[Self] = [],
packages: list[str] = [],
services: list[str] = [],
support_gfx_driver: bool = False,
support_greeter: bool = False,
display_server: DisplayServerType | None = None,
) -> None:
self.name = name
self.profile_type = profile_type
self.custom_settings: dict[CustomSetting, str | None] = {}
self._support_gfx_driver = support_gfx_driver
self._support_greeter = support_greeter
self._display_server = display_server
# self.gfx_driver: str | None = None
self.current_selection = current_selection
self._packages = packages
self._services = services
# Only used for custom default_profiles
self.custom_enabled = False
@property
def packages(self) -> list[str]:
"""
Returns a list of packages that should be installed when
this profile is among the chosen ones
"""
return self._packages
@property
def services(self) -> list[str]:
"""
Returns a list of services that should be enabled when
this profile is among the chosen ones
"""
return self._services
@property
def default_greeter_type(self) -> GreeterType | None:
"""
Setting a default greeter type for a desktop profile
"""
return None
def install(self, install_session: Installer) -> None:
"""
Performs installation steps when this profile was selected
"""
def post_install(self, install_session: Installer) -> None:
"""
Hook that will be called when the installation process is
finished and custom installation steps for specific default_profiles
are needed
"""
def provision(self, install_session: Installer, users: list[User]) -> None:
"""
Hook that will be called when the installation process is
finished and user configuration for specific default_profiles
is needed
"""
def json(self) -> dict[str, str]:
"""
Returns a json representation of the profile
"""
return {}
async def do_on_select(self) -> SelectResult | None:
"""
Hook that will be called when a profile is selected
"""
return SelectResult.NewSelection
def set_custom_settings(self, settings: dict[CustomSetting, str | None]) -> None:
"""
Set the custom settings for the profile.
This is also called when the settings are parsed from the config
and can be overridden to perform further actions based on the profile
"""
self.custom_settings = settings
def current_selection_names(self) -> list[str]:
if self.current_selection:
return [s.name for s in self.current_selection]
return []
def reset(self) -> None:
self.current_selection = []
def is_top_level_profile(self) -> bool:
top_levels = [ProfileType.Desktop, ProfileType.Server, ProfileType.Xorg, ProfileType.Minimal, ProfileType.Custom]
return self.profile_type in top_levels
def is_desktop_profile(self) -> bool:
return self.profile_type == ProfileType.Desktop
def is_server_type_profile(self) -> bool:
return self.profile_type == ProfileType.ServerType
def is_desktop_type_profile(self) -> bool:
return self.profile_type == ProfileType.DesktopEnv or self.profile_type == ProfileType.WindowMgr
def is_xorg_type_profile(self) -> bool:
return self.profile_type == ProfileType.Xorg
def is_custom_type_profile(self) -> bool:
return self.profile_type == ProfileType.CustomType
def is_graphic_driver_supported(self) -> bool:
if not self.current_selection:
return self._support_gfx_driver
else:
if any([p._support_gfx_driver for p in self.current_selection]):
return True
return False
def is_greeter_supported(self) -> bool:
return self._support_greeter
@property
def display_server(self) -> DisplayServerType | None:
return self._display_server
def preview_text(self) -> str:
"""
Override this method to provide a preview text for the profile
"""
if self.is_desktop_type_profile():
if self._display_server:
text = tr('Environment type: {} {}').format(self._display_server.value, self.profile_type.value)
else:
text = tr('Environment type: {}').format(self.profile_type.value)
if packages := self.packages_text():
text += f'\n{packages}'
return text
return self.packages_text()
def packages_text(self, include_sub_packages: bool = False) -> str:
packages = set()
if self.packages:
packages = set(self.packages)
if include_sub_packages:
for sub_profile in self.current_selection:
if sub_profile.packages:
packages.update(sub_profile.packages)
text = tr('Installed packages') + ':\n'
for pkg in sorted(packages):
text += f' - {pkg}\n'
return text

View File

@ -0,0 +1,77 @@
from typing import TYPE_CHECKING, Self, override
from archinstall.default_profiles.profile import Profile, ProfileType, SelectResult
from archinstall.lib.log import info
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.profile.profiles_handler import profile_handler
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class ServerProfile(Profile):
def __init__(self, current_value: list[Self] = []):
super().__init__(
'Server',
ProfileType.Server,
current_selection=current_value,
)
@override
async def do_on_select(self) -> SelectResult:
items = [
MenuItem(
p.name,
value=p,
preview_action=lambda x: x.value.preview_text() if x.value else None,
)
for p in profile_handler.get_server_profiles()
]
group = MenuItemGroup(items, sort_items=True)
group.set_selected_by_value(self.current_selection)
result = await Selection[Self](
group,
allow_reset=True,
allow_skip=True,
multi=True,
preview_location='right',
).show()
match result.type_:
case ResultType.Selection:
selections = result.get_values()
self.current_selection = selections
return SelectResult.NewSelection
case ResultType.Skip:
return SelectResult.SameSelection
case ResultType.Reset:
return SelectResult.ResetCurrent
@override
def provision(self, install_session: Installer, users: list[User]) -> None:
for profile in self.current_selection:
profile.provision(install_session, users)
@override
def post_install(self, install_session: Installer) -> None:
for profile in self.current_selection:
profile.post_install(install_session)
@override
def install(self, install_session: Installer) -> None:
server_info = self.current_selection_names()
details = ', '.join(server_info)
info(f'Now installing the selected servers: {details}')
for server in self.current_selection:
info(f'Installing {server.name}...')
install_session.add_additional_packages(server.packages)
install_session.enable_service(server.services)
server.install(install_session)
info('If your selections included multiple servers with the same port, you may have to reconfigure them.')

View File

@ -0,0 +1,21 @@
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class CockpitProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Cockpit',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['cockpit', 'udisks2', 'packagekit']
@property
@override
def services(self) -> list[str]:
return ['cockpit.socket']

View File

@ -0,0 +1,30 @@
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class DockerProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Docker',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['docker']
@property
@override
def services(self) -> list[str]:
return ['docker']
@override
def provision(self, install_session: Installer, users: list[User]) -> None:
for user in users:
install_session.arch_chroot(f'usermod -a -G docker {user.username}')

View File

@ -0,0 +1,21 @@
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class HttpdProfile(Profile):
def __init__(self) -> None:
super().__init__(
'httpd',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['apache']
@property
@override
def services(self) -> list[str]:
return ['httpd']

View File

@ -0,0 +1,21 @@
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class LighttpdProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Lighttpd',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['lighttpd']
@property
@override
def services(self) -> list[str]:
return ['lighttpd']

View File

@ -0,0 +1,28 @@
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class MariadbProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Mariadb',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['mariadb']
@property
@override
def services(self) -> list[str]:
return ['mariadb']
@override
def post_install(self, install_session: Installer) -> None:
install_session.arch_chroot('mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql')

View File

@ -0,0 +1,21 @@
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class NginxProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Nginx',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['nginx']
@property
@override
def services(self) -> list[str]:
return ['nginx']

View File

@ -0,0 +1,28 @@
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class PostgresqlProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Postgresql',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['postgresql']
@property
@override
def services(self) -> list[str]:
return ['postgresql']
@override
def post_install(self, install_session: Installer) -> None:
install_session.arch_chroot('initdb -D /var/lib/postgres/data', run_as='postgres')

View File

@ -0,0 +1,21 @@
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class SshdProfile(Profile):
def __init__(self) -> None:
super().__init__(
'sshd',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['openssh']
@property
@override
def services(self) -> list[str]:
return ['sshd']

View File

@ -0,0 +1,21 @@
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class TomcatProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Tomcat',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['tomcat10']
@property
@override
def services(self) -> list[str]:
return ['tomcat10']

View File

@ -0,0 +1,32 @@
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import DisplayServerType, Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class XorgProfile(Profile):
def __init__(
self,
name: str = 'Xorg',
profile_type: ProfileType = ProfileType.Xorg,
):
super().__init__(
name,
profile_type,
support_gfx_driver=True,
display_server=DisplayServerType.Xorg,
)
@property
@override
def packages(self) -> list[str]:
return [
'xorg-server',
'xorg-xinit',
]
@override
def install(self, install_session: Installer) -> None:
install_session.add_additional_packages(self.packages)

1
archinstall/examples Symbolic link
View File

@ -0,0 +1 @@
../examples/

View File

View File

View File

@ -0,0 +1,51 @@
from typing import TYPE_CHECKING
from archinstall.applications.audio import AudioApp
from archinstall.applications.bluetooth import BluetoothApp
from archinstall.applications.firewall import FirewallApp
from archinstall.applications.fonts import FontsApp
from archinstall.applications.power_management import PowerManagementApp
from archinstall.applications.print_service import PrintServiceApp
from archinstall.lib.models import Audio
from archinstall.lib.models.application import ApplicationConfiguration
from archinstall.lib.models.users import User
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class ApplicationHandler:
def __init__(self) -> None:
pass
def install_applications(self, install_session: Installer, app_config: ApplicationConfiguration, users: list[User] | None = None) -> None:
if app_config.bluetooth_config and app_config.bluetooth_config.enabled:
BluetoothApp().install(install_session)
if app_config.audio_config and app_config.audio_config.audio != Audio.NO_AUDIO:
AudioApp().install(
install_session,
app_config.audio_config,
users,
)
if app_config.power_management_config:
PowerManagementApp().install(
install_session,
app_config.power_management_config,
)
if app_config.print_service_config and app_config.print_service_config.enabled:
PrintServiceApp().install(install_session)
if app_config.firewall_config:
FirewallApp().install(
install_session,
app_config.firewall_config,
)
if app_config.fonts_config:
FontsApp().install(
install_session,
app_config.fonts_config,
)

View File

@ -0,0 +1,263 @@
from typing import override
from archinstall.lib.hardware import SysInfo
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.models.application import (
ApplicationConfiguration,
Audio,
AudioConfiguration,
BluetoothConfiguration,
Firewall,
FirewallConfiguration,
FontPackage,
FontsConfiguration,
PowerManagement,
PowerManagementConfiguration,
PrintServiceConfiguration,
)
from archinstall.lib.translationhandler import tr
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
class ApplicationMenu(AbstractSubMenu[ApplicationConfiguration]):
def __init__(
self,
preset: ApplicationConfiguration | None = None,
):
if preset:
self._app_config = preset
else:
self._app_config = ApplicationConfiguration()
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, checkmarks=True)
super().__init__(
self._item_group,
config=self._app_config,
allow_reset=True,
)
@override
async def show(self) -> ApplicationConfiguration | None:
_ = await super().show()
return self._app_config
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Bluetooth'),
action=select_bluetooth,
value=self._app_config.bluetooth_config,
preview_action=self._prev_bluetooth,
key='bluetooth_config',
),
MenuItem(
text=tr('Audio'),
action=select_audio,
preview_action=self._prev_audio,
key='audio_config',
),
MenuItem(
text=tr('Print service'),
action=select_print_service,
preview_action=self._prev_print_service,
key='print_service_config',
),
MenuItem(
text=tr('Power management'),
action=select_power_management,
preview_action=self._prev_power_management,
enabled=SysInfo.has_battery(),
key='power_management_config',
),
MenuItem(
text=tr('Firewall'),
action=select_firewall,
preview_action=self._prev_firewall,
key='firewall_config',
),
MenuItem(
text=tr('Additional fonts'),
action=select_fonts,
value=self._app_config.fonts_config,
preview_action=self._prev_fonts,
key='fonts_config',
),
]
def _prev_power_management(self, item: MenuItem) -> str | None:
if item.value is not None:
config: PowerManagementConfiguration = item.value
return f'{tr("Power management")}: {config.power_management.value}'
return None
def _prev_bluetooth(self, item: MenuItem) -> str | None:
if item.value is not None:
bluetooth_config: BluetoothConfiguration = item.value
output = f'{tr("Bluetooth")}: '
output += tr('Enabled') if bluetooth_config.enabled else tr('Disabled')
return output
return None
def _prev_audio(self, item: MenuItem) -> str | None:
if item.value is not None:
config: AudioConfiguration = item.value
return f'{tr("Audio")}: {config.audio.value}'
return None
def _prev_print_service(self, item: MenuItem) -> str | None:
if item.value is not None:
print_service_config: PrintServiceConfiguration = item.value
output = f'{tr("Print service")}: '
output += tr('Enabled') if print_service_config.enabled else tr('Disabled')
return output
return None
def _prev_firewall(self, item: MenuItem) -> str | None:
if item.value is not None:
config: FirewallConfiguration = item.value
return f'{tr("Firewall")}: {config.firewall.value}'
return None
def _prev_fonts(self, item: MenuItem) -> str | None:
if item.value is not None:
config: FontsConfiguration = item.value
packages = ', '.join(f.value for f in config.fonts)
return f'{tr("Additional fonts")}: {packages}'
return None
async def select_power_management(preset: PowerManagementConfiguration | None = None) -> PowerManagementConfiguration | None:
group = MenuItemGroup.from_enum(PowerManagement)
if preset:
group.set_focus_by_value(preset.power_management)
result = await Selection[PowerManagement](
group,
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return PowerManagementConfiguration(power_management=result.get_value())
case ResultType.Reset:
return None
async def select_bluetooth(preset: BluetoothConfiguration | None) -> BluetoothConfiguration | None:
header = tr('Would you like to configure Bluetooth?') + '\n'
preset_val = preset.enabled if preset else False
result = await Confirmation(
header=header,
allow_skip=True,
preset=preset_val,
).show()
match result.type_:
case ResultType.Selection:
return BluetoothConfiguration(result.get_value())
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled result type')
async def select_print_service(preset: PrintServiceConfiguration | None) -> PrintServiceConfiguration | None:
header = tr('Would you like to configure the print service?') + '\n'
preset_val = preset.enabled if preset else False
result = await Confirmation(
header=header,
allow_skip=True,
preset=preset_val,
).show()
match result.type_:
case ResultType.Selection:
result.get_value()
return PrintServiceConfiguration(result.get_value())
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled result type')
async def select_audio(preset: AudioConfiguration | None = None) -> AudioConfiguration | None:
items = [MenuItem(a.value, value=a) for a in Audio]
group = MenuItemGroup(items)
if preset:
group.set_focus_by_value(preset.audio)
result = await Selection[Audio](
group,
header=tr('Select audio configuration'),
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return AudioConfiguration(audio=result.get_value())
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def select_firewall(preset: FirewallConfiguration | None = None) -> FirewallConfiguration | None:
group = MenuItemGroup.from_enum(Firewall)
if preset:
group.set_focus_by_value(preset.firewall)
result = await Selection[Firewall](
group,
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return FirewallConfiguration(firewall=result.get_value())
case ResultType.Reset:
return None
async def select_fonts(preset: FontsConfiguration | None = None) -> FontsConfiguration | None:
items = [MenuItem(f'{f.value} ({f.description()})', value=f) for f in FontPackage]
group = MenuItemGroup(items)
if preset:
for f in preset.fonts:
group.set_selected_by_value(f)
result = await Selection[FontPackage](
group,
header=tr('Select font packages to install'),
allow_skip=True,
allow_reset=True,
multi=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
selected = result.get_values()
if selected:
return FontsConfiguration(fonts=selected)
return None
case ResultType.Reset:
return None

671
archinstall/lib/args.py Normal file
View File

@ -0,0 +1,671 @@
import argparse
import json
import os
import sys
import urllib.error
import urllib.parse
from argparse import ArgumentParser, Namespace
from dataclasses import dataclass, field
from enum import Enum, StrEnum
from pathlib import Path
from typing import Any, Self
from urllib.request import Request, urlopen
from pydantic.dataclasses import dataclass as p_dataclass
from archinstall.lib.crypt import decrypt
from archinstall.lib.log import debug, error, logger, warn
from archinstall.lib.menu.util import get_password
from archinstall.lib.models.application import ApplicationConfiguration, ZramConfiguration
from archinstall.lib.models.authentication import AuthenticationConfiguration
from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
from archinstall.lib.models.config import SubConfig
from archinstall.lib.models.device import DiskEncryption, DiskLayoutConfiguration
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import NetworkConfiguration
from archinstall.lib.models.package_types import DEFAULT_KERNEL
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.pacman import PacmanConfiguration
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.models.users import Password, User, UserSerialization
from archinstall.lib.plugins import load_plugin
from archinstall.lib.translationhandler import Language, tr, translation_handler
from archinstall.lib.version import get_version
from archinstall.tui.components import tui
class SubCommand(Enum):
SHARE_LOG = 'share-log'
@p_dataclass
class Arguments:
config: Path | None = None
config_url: str | None = None
creds: Path | None = None
creds_url: str | None = None
creds_decryption_key: str | None = None
silent: bool = False
dry_run: bool = False
script: str | None = None
mountpoint: Path = Path('/mnt')
skip_ntp: bool = False
skip_wkd: bool = False
skip_boot: bool = False
debug: bool = False
offline: bool = False
no_pkg_lookups: bool = False
plugin: str | None = None
skip_version_check: bool = False
skip_wifi_check: bool = False
advanced: bool = False
verbose: bool = False
command: SubCommand | None = None
class ArchConfigType(StrEnum):
VERSION = 'version'
SCRIPT = 'script'
LOCALE_CONFIG = 'locale_config'
ARCHINSTALL_LANGUAGE = 'archinstall_language'
DISK_CONFIG = 'disk_config'
PROFILE_CONFIG = 'profile_config'
MIRROR_CONFIG = 'mirror_config'
NETWORK_CONFIG = 'network_config'
BOOTLOADER_CONFIG = 'bootloader_config'
APP_CONFIG = 'app_config'
AUTH_CONFIG = 'auth_config'
SWAP = 'swap'
USERS = 'users'
ROOT_ENC_PASSWORD = 'root_enc_password'
ENCRYPTION_PASSWORD = 'encryption_password'
HOSTNAME = 'hostname'
KERNELS = 'kernels'
NTP = 'ntp'
TIMEZONE = 'timezone'
SERVICES = 'services'
PACKAGES = 'packages'
PACMAN_CONFIG = 'pacman_config'
CUSTOM_COMMANDS = 'custom_commands'
def text(self) -> str:
match self:
case ArchConfigType.ARCHINSTALL_LANGUAGE:
return tr('ArchInstall Language')
case ArchConfigType.VERSION:
return tr('Version')
case ArchConfigType.SCRIPT:
return tr('Installation Script')
case ArchConfigType.LOCALE_CONFIG:
return tr('Locales')
case ArchConfigType.DISK_CONFIG:
return tr('Disk configuration')
case ArchConfigType.PROFILE_CONFIG:
return tr('Profile')
case ArchConfigType.MIRROR_CONFIG:
return tr('Mirrors and repositories')
case ArchConfigType.NETWORK_CONFIG:
return tr('Network')
case ArchConfigType.BOOTLOADER_CONFIG:
return tr('Bootloader')
case ArchConfigType.APP_CONFIG:
return tr('Application')
case ArchConfigType.AUTH_CONFIG:
return tr('Authentication')
case ArchConfigType.SWAP:
return tr('Swap')
case ArchConfigType.HOSTNAME:
return tr('Hostname')
case ArchConfigType.KERNELS:
return tr('Kernels')
case ArchConfigType.NTP:
return tr('Automatic time sync (NTP)')
case ArchConfigType.TIMEZONE:
return tr('Timezone')
case ArchConfigType.SERVICES:
return tr('Services')
case ArchConfigType.PACKAGES:
return tr('Additional packages')
case ArchConfigType.PACMAN_CONFIG:
return tr('Pacman')
case ArchConfigType.CUSTOM_COMMANDS:
return tr('Custom commands')
case ArchConfigType.USERS:
return tr('Users')
case ArchConfigType.ROOT_ENC_PASSWORD:
return tr('Root encrypted password')
case ArchConfigType.ENCRYPTION_PASSWORD:
return tr('Disk encryption password')
@dataclass
class ArchConfig:
version: str | None = None
script: str | None = None
locale_config: LocaleConfiguration | None = None
archinstall_language: Language = field(default_factory=lambda: translation_handler.get_language_by_abbr('en'))
disk_config: DiskLayoutConfiguration | None = None
profile_config: ProfileConfiguration | None = None
mirror_config: MirrorConfiguration | None = None
network_config: NetworkConfiguration | None = None
bootloader_config: BootloaderConfiguration | None = None
app_config: ApplicationConfiguration | None = None
auth_config: AuthenticationConfiguration | None = None
swap: ZramConfiguration | None = None
hostname: str = 'archlinux'
kernels: list[str] = field(default_factory=lambda: [DEFAULT_KERNEL.value])
ntp: bool = True
packages: list[str] = field(default_factory=list)
pacman_config: PacmanConfiguration = field(default_factory=PacmanConfiguration.default)
timezone: str = 'UTC'
services: list[str] = field(default_factory=list)
custom_commands: list[str] = field(default_factory=list)
def unsafe_config(self) -> dict[ArchConfigType, Any]:
config: dict[ArchConfigType, list[UserSerialization] | str | None] = {}
if self.auth_config:
if self.auth_config.users:
config[ArchConfigType.USERS] = [user.json() for user in self.auth_config.users]
if self.auth_config.root_enc_password:
config[ArchConfigType.ROOT_ENC_PASSWORD] = self.auth_config.root_enc_password.enc_password
if self.disk_config:
disk_encryption = self.disk_config.disk_encryption
if disk_encryption and disk_encryption.encryption_password:
config[ArchConfigType.ENCRYPTION_PASSWORD] = disk_encryption.encryption_password.plaintext
return config
def safe_config(self) -> dict[ArchConfigType, Any]:
base_config: dict[ArchConfigType, Any] = {
ArchConfigType.VERSION: self.version,
ArchConfigType.SCRIPT: self.script,
ArchConfigType.ARCHINSTALL_LANGUAGE: self.archinstall_language.json(),
}
base_config.update(self.plain_cfg())
sub_config = self.sub_cfg()
for config_type, value in sub_config.items():
if not hasattr(value, 'json'):
raise ValueError(f'Config value for {config_type} must implement json() method')
base_config[config_type] = value.json()
return base_config
def plain_cfg(self) -> dict[ArchConfigType, str | list[str] | bool]:
return {
ArchConfigType.HOSTNAME: self.hostname,
ArchConfigType.KERNELS: self.kernels,
ArchConfigType.NTP: self.ntp,
ArchConfigType.TIMEZONE: self.timezone,
ArchConfigType.SERVICES: self.services,
ArchConfigType.PACKAGES: self.packages,
ArchConfigType.CUSTOM_COMMANDS: self.custom_commands,
}
def sub_cfg(self) -> dict[ArchConfigType, SubConfig]:
cfg: dict[ArchConfigType, SubConfig] = {
ArchConfigType.PACMAN_CONFIG: self.pacman_config,
}
if self.mirror_config:
cfg[ArchConfigType.MIRROR_CONFIG] = self.mirror_config
if self.bootloader_config:
cfg[ArchConfigType.BOOTLOADER_CONFIG] = self.bootloader_config
if self.disk_config:
cfg[ArchConfigType.DISK_CONFIG] = self.disk_config
if self.swap:
cfg[ArchConfigType.SWAP] = self.swap
if self.auth_config:
cfg[ArchConfigType.AUTH_CONFIG] = self.auth_config
if self.locale_config:
cfg[ArchConfigType.LOCALE_CONFIG] = self.locale_config
if self.profile_config:
cfg[ArchConfigType.PROFILE_CONFIG] = self.profile_config
if self.network_config:
cfg[ArchConfigType.NETWORK_CONFIG] = self.network_config
if self.app_config:
cfg[ArchConfigType.APP_CONFIG] = self.app_config
return cfg
@classmethod
def from_config(cls, args_config: dict[str, Any], args: Arguments) -> Self:
arch_config = cls()
arch_config.locale_config = LocaleConfiguration.parse_arg(args_config)
if script := args_config.get('script', None):
arch_config.script = script
if archinstall_lang := args_config.get('archinstall-language', None):
arch_config.archinstall_language = translation_handler.get_language_by_name(archinstall_lang)
translation_handler.activate(arch_config.archinstall_language, set_font=False)
if disk_config := args_config.get('disk_config', {}):
enc_password = args_config.get('encryption_password', '')
password = Password(plaintext=enc_password) if enc_password else None
arch_config.disk_config = DiskLayoutConfiguration.parse_arg(disk_config, password)
# DEPRECATED
# backwards compatibility for main level disk_encryption entry
disk_encryption: DiskEncryption | None = None
if args_config.get('disk_encryption', None) is not None and arch_config.disk_config is not None:
disk_encryption = DiskEncryption.parse_arg(
arch_config.disk_config,
args_config['disk_encryption'],
Password(plaintext=args_config.get('encryption_password', '')),
)
if disk_encryption:
arch_config.disk_config.disk_encryption = disk_encryption
if profile_config := args_config.get('profile_config', None):
arch_config.profile_config = ProfileConfiguration.parse_arg(profile_config)
if mirror_config := args_config.get('mirror_config', None):
backwards_compatible_repo = []
if additional_repositories := args_config.get('additional-repositories', []):
backwards_compatible_repo = [Repository(r) for r in additional_repositories]
arch_config.mirror_config = MirrorConfiguration.parse_args(
mirror_config,
backwards_compatible_repo,
)
if net_config := args_config.get('network_config', None):
arch_config.network_config = NetworkConfiguration.parse_arg(net_config)
if bootloader_config_dict := args_config.get('bootloader_config', None):
arch_config.bootloader_config = BootloaderConfiguration.parse_arg(bootloader_config_dict, args.skip_boot)
# DEPRECATED: separate bootloader and uki fields (backward compatibility)
elif bootloader_str := args_config.get('bootloader', None):
bootloader = Bootloader.from_arg(bootloader_str, args.skip_boot)
uki = args_config.get('uki', False)
if uki and not bootloader.has_uki_support():
uki = False
arch_config.bootloader_config = BootloaderConfiguration(bootloader=bootloader, uki=uki, removable=True)
# deprecated: backwards compatibility
audio_config_args = args_config.get('audio_config', None)
app_config_args = args_config.get('app_config', None)
if audio_config_args is not None or app_config_args is not None:
arch_config.app_config = ApplicationConfiguration.parse_arg(app_config_args, audio_config_args)
if auth_config_args := args_config.get('auth_config', None):
arch_config.auth_config = AuthenticationConfiguration.parse_arg(auth_config_args)
if hostname := args_config.get('hostname', ''):
arch_config.hostname = hostname
if kernels := args_config.get('kernels', []):
arch_config.kernels = kernels
arch_config.ntp = args_config.get('ntp', True)
if packages := args_config.get('packages', []):
arch_config.packages = packages
if pacman_config := args_config.get('pacman_config', None):
arch_config.pacman_config = PacmanConfiguration.parse_arg(pacman_config)
elif parallel_downloads := args_config.get('parallel_downloads', 0):
arch_config.pacman_config = PacmanConfiguration(parallel_downloads=int(parallel_downloads))
swap_arg = args_config.get('swap')
if swap_arg is not None:
arch_config.swap = ZramConfiguration.parse_arg(swap_arg)
if timezone := args_config.get('timezone', 'UTC'):
arch_config.timezone = timezone
if services := args_config.get('services', []):
arch_config.services = services
# DEPRECATED: backwards compatibility
root_password = None
if root_password := args_config.get('!root-password', None):
root_password = Password(plaintext=root_password)
if enc_password := args_config.get('root_enc_password', None):
root_password = Password(enc_password=enc_password)
if root_password is not None:
if arch_config.auth_config is None:
arch_config.auth_config = AuthenticationConfiguration()
arch_config.auth_config.root_enc_password = root_password
# DEPRECATED: backwards compatibility
users: list[User] = []
if args_users := args_config.get('!users', None):
users = User.parse_arguments(args_users)
if args_users := args_config.get('users', None):
users = User.parse_arguments(args_users)
if users:
if arch_config.auth_config is None:
arch_config.auth_config = AuthenticationConfiguration()
arch_config.auth_config.users = users
if custom_commands := args_config.get('custom_commands', []):
arch_config.custom_commands = custom_commands
return arch_config
class ArchConfigHandler:
def __init__(self) -> None:
self._parser: ArgumentParser = self._define_arguments()
self._add_sub_parsers()
self._args: Arguments = self._parse_args()
config = self._parse_config()
try:
self._config = ArchConfig.from_config(config, self._args)
self._config.version = get_version()
except ValueError as err:
warn(str(err))
sys.exit(1)
@property
def config(self) -> ArchConfig:
return self._config
@property
def args(self) -> Arguments:
return self._args
def get_script(self) -> str:
if script := self.args.script:
return script
if script := self.config.script:
return script
return 'guided'
def print_help(self) -> None:
self._parser.print_help()
def _add_sub_parsers(self) -> None:
subparsers = self._parser.add_subparsers(dest='command', help='Available subcommands')
_ = subparsers.add_parser(SubCommand.SHARE_LOG.value, help='Upload log file to public server')
def _define_arguments(self) -> ArgumentParser:
parser = ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument(
'-v',
'--version',
action='version',
default=False,
version='%(prog)s ' + get_version(),
)
parser.add_argument(
'--config',
type=Path,
nargs='?',
default=None,
help='JSON configuration file',
)
parser.add_argument(
'--config-url',
type=str,
nargs='?',
default=None,
help='Url to a JSON configuration file',
)
parser.add_argument(
'--creds',
type=Path,
nargs='?',
default=None,
help='JSON credentials configuration file',
)
parser.add_argument(
'--creds-url',
type=str,
nargs='?',
default=None,
help='Url to a JSON credentials configuration file',
)
parser.add_argument(
'--creds-decryption-key',
type=str,
nargs='?',
default=None,
help='Decryption key for credentials file',
)
parser.add_argument(
'--silent',
action='store_true',
default=False,
help='WARNING: Disables all prompts for input and confirmation. If no configuration is provided, this is ignored',
)
parser.add_argument(
'--dry-run',
'--dry_run',
action='store_true',
default=False,
help='Generates a configuration file and then exits instead of performing an installation',
)
parser.add_argument(
'--script',
nargs='?',
help='Script to run for installation',
type=str,
)
parser.add_argument(
'--mountpoint',
type=Path,
nargs='?',
default=Path('/mnt'),
help='Define an alternate mount point for installation',
)
parser.add_argument(
'--skip-ntp',
action='store_true',
help='Disables NTP checks during installation',
default=False,
)
parser.add_argument(
'--skip-wkd',
action='store_true',
help='Disables checking if archlinux keyring wkd sync is complete.',
default=False,
)
parser.add_argument(
'--skip-boot',
action='store_true',
help='Disables installation of a boot loader (note: only use this when problems arise with the boot loader step).',
default=False,
)
parser.add_argument(
'--debug',
action='store_true',
default=False,
help='Adds debug info into the log',
)
parser.add_argument(
'--offline',
action='store_true',
default=False,
help='Disabled online upstream services such as package search and key-ring auto update.',
)
parser.add_argument(
'--no-pkg-lookups',
action='store_true',
default=False,
help='Disabled package validation specifically prior to starting installation.',
)
parser.add_argument(
'--plugin',
nargs='?',
type=str,
default=None,
help='File path to a plugin to load',
)
parser.add_argument(
'--skip-version-check',
action='store_true',
default=False,
help='Skip the version check when running archinstall',
)
parser.add_argument(
'--skip-wifi-check',
action='store_true',
default=False,
help='Skip wifi check when running archinstall',
)
parser.add_argument(
'--advanced',
action='store_true',
default=False,
help='Enabled advanced options',
)
parser.add_argument(
'--verbose',
action='store_true',
default=False,
help='Enabled verbose options',
)
return parser
def _parse_args(self) -> Arguments:
argparse_args = vars(self._parser.parse_args())
args: Arguments = Arguments(**argparse_args)
# amend the parameters (check internal consistency)
# Installation can't be silent if config is not passed
if args.config is None and args.config_url is None:
args.silent = False
if args.debug:
warn(f'Warning: --debug mode will write certain credentials to {logger.path}!')
if args.plugin:
plugin_path = Path(args.plugin)
load_plugin(plugin_path)
if args.creds_decryption_key is None:
if os.environ.get('ARCHINSTALL_CREDS_DECRYPTION_KEY'):
args.creds_decryption_key = os.environ.get('ARCHINSTALL_CREDS_DECRYPTION_KEY')
return args
def _parse_config(self) -> dict[str, Any]:
config: dict[str, Any] = {}
config_data: str | None = None
creds_data: str | None = None
if self._args.config is not None:
config_data = self._read_file(self._args.config)
elif self._args.config_url is not None:
config_data = self._fetch_from_url(self._args.config_url)
if config_data is not None:
config.update(json.loads(config_data))
if self._args.creds is not None:
creds_data = self._read_file(self._args.creds)
elif self._args.creds_url is not None:
creds_data = self._fetch_from_url(self._args.creds_url)
if creds_data is not None:
json_data = self._process_creds_data(creds_data)
if json_data is not None:
config.update(json_data)
config = self._cleanup_config(config)
return config
def _process_creds_data(self, creds_data: str) -> dict[str, Any] | None:
if creds_data.startswith('$'): # encrypted data
if self._args.creds_decryption_key is not None:
try:
creds_data = decrypt(creds_data, self._args.creds_decryption_key)
return json.loads(creds_data)
except ValueError as err:
if 'Invalid password' in str(err):
error(tr('Incorrect credentials file decryption password'))
sys.exit(1)
else:
debug(f'Error decrypting credentials file: {err}')
raise err from err
else:
header = tr('Enter credentials file decryption password')
wrong_pwd_text = tr('Incorrect password')
prompt = header
while True:
decryption_pwd: Password | None = tui.run(
lambda p=prompt: get_password( # type: ignore[misc]
header=p,
allow_skip=False,
no_confirmation=True,
)
)
if not decryption_pwd:
return None
try:
creds_data = decrypt(creds_data, decryption_pwd.plaintext)
break
except ValueError as err:
if 'Invalid password' in str(err):
debug('Incorrect credentials file decryption password')
prompt = f'{header}' + f'\n\n{wrong_pwd_text}'
else:
debug(f'Error decrypting credentials file: {err}')
raise err from err
return json.loads(creds_data)
def _fetch_from_url(self, url: str) -> str:
if urllib.parse.urlparse(url).scheme:
try:
req = Request(url, headers={'User-Agent': 'ArchInstall'})
with urlopen(req) as resp:
return resp.read().decode('utf-8')
except urllib.error.HTTPError as err:
error(f'Could not fetch JSON from {url}: {err}')
else:
error('Not a valid url')
sys.exit(1)
def _read_file(self, path: Path) -> str:
if not path.exists():
error(f'Could not find file {path}')
sys.exit(1)
return path.read_text()
def _cleanup_config(self, config: Namespace | dict[str, Any]) -> dict[str, Any]:
clean_args = {}
for key, val in config.items():
if isinstance(val, dict):
val = self._cleanup_config(val)
if val is not None:
clean_args[key] = val
return clean_args

View File

@ -0,0 +1,126 @@
import getpass
from pathlib import Path
from typing import TYPE_CHECKING
from archinstall.lib.command import SysCommandWorker
from archinstall.lib.log import debug, info
from archinstall.lib.models.authentication import AuthenticationConfiguration, U2FLoginConfiguration, U2FLoginMethod
from archinstall.lib.models.users import User
from archinstall.lib.translationhandler import tr
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class AuthenticationHandler:
def setup_auth(
self,
install_session: Installer,
auth_config: AuthenticationConfiguration,
hostname: str,
) -> None:
if auth_config.u2f_config and auth_config.users is not None:
self._setup_u2f_login(install_session, auth_config.u2f_config, auth_config.users, hostname)
def _setup_u2f_login(self, install_session: Installer, u2f_config: U2FLoginConfiguration, users: list[User], hostname: str) -> None:
self._configure_u2f_mapping(install_session, u2f_config, users, hostname)
self._update_pam_config(install_session, u2f_config)
def _update_pam_config(
self,
install_session: Installer,
u2f_config: U2FLoginConfiguration,
) -> None:
match u2f_config.u2f_login_method:
case U2FLoginMethod.Passwordless:
config_entry = 'auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue'
case U2FLoginMethod.SecondFactor:
config_entry = 'auth required pam_u2f.so authfile=/etc/u2f_mappings cue'
case _:
raise ValueError(f'Unknown U2F login method: {u2f_config.u2f_login_method}')
debug(f'U2F PAM configuration: {config_entry}')
debug(f'Passwordless sudo enabled: {u2f_config.passwordless_sudo}')
sudo_config = install_session.target / 'etc/pam.d/sudo'
sys_login = install_session.target / 'etc/pam.d/system-login'
if u2f_config.passwordless_sudo:
self._add_u2f_entry(sudo_config, config_entry)
self._add_u2f_entry(sys_login, config_entry)
def _add_u2f_entry(self, file: Path, entry: str) -> None:
if not file.exists():
debug(f'File does not exist: {file}')
return
content = file.read_text().splitlines()
# remove any existing u2f auth entry
content = [line for line in content if 'pam_u2f.so' not in line]
# add the u2f auth entry as the first one after comments
for i, line in enumerate(content):
if not line.startswith('#'):
content.insert(i, entry)
break
else:
content.append(entry)
file.write_text('\n'.join(content) + '\n')
def _configure_u2f_mapping(
self,
install_session: Installer,
u2f_config: U2FLoginConfiguration,
users: list[User],
hostname: str,
) -> None:
debug(f'Setting up U2F login: {u2f_config.u2f_login_method.value}')
install_session.pacman.strap('pam-u2f')
print(tr('Setting up U2F login: {}').format(u2f_config.u2f_login_method.value))
# https://developers.yubico.com/pam-u2f/
u2f_auth_file = install_session.target / 'etc/u2f_mappings'
u2f_auth_file.touch()
existing_keys = u2f_auth_file.read_text()
registered_keys: list[str] = []
for user in users:
print('')
info(tr('Setting up U2F device for user: {}').format(user.username))
info(tr('You may need to enter the PIN and then touch your U2F device to register it'))
cmd = ' '.join(
['arch-chroot', '-S', str(install_session.target), 'pamu2fcfg', '-u', user.username, '-o', f'pam://{hostname}', '-i', f'pam://{hostname}']
)
debug(f'Enrolling U2F device: {cmd}')
worker = SysCommandWorker(cmd, peek_output=True)
pin_inputted = False
while worker.is_alive():
if pin_inputted is False:
if bytes('enter pin for', 'UTF-8') in worker._trace_log.lower():
worker.write(bytes(getpass.getpass(''), 'UTF-8'))
pin_inputted = True
output = worker.decode().strip().splitlines()
debug(f'Output from pamu2fcfg: {output}')
key = output[-1].strip()
registered_keys.append(key)
all_keys = '\n'.join(registered_keys)
if existing_keys:
existing_keys += f'\n{all_keys}'
else:
existing_keys = all_keys
u2f_auth_file.write_text(existing_keys)

View File

@ -0,0 +1,147 @@
from typing import override
from archinstall.lib.disk.fido import Fido2
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.menu.util import get_password
from archinstall.lib.models.authentication import AuthenticationConfiguration, U2FLoginConfiguration, U2FLoginMethod
from archinstall.lib.models.users import Password, User
from archinstall.lib.translationhandler import tr
from archinstall.lib.user.user_menu import select_users
from archinstall.lib.utils.format import as_table
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
class AuthenticationMenu(AbstractSubMenu[AuthenticationConfiguration]):
def __init__(self, preset: AuthenticationConfiguration | None = None):
if preset:
self._auth_config = preset
else:
self._auth_config = AuthenticationConfiguration()
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, checkmarks=True)
super().__init__(
self._item_group,
config=self._auth_config,
allow_reset=True,
)
@override
async def show(self) -> AuthenticationConfiguration | None:
return await super().show()
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Root password'),
action=lambda x: select_root_password(),
preview_action=self._prev_root_pwd,
key='root_enc_password',
),
MenuItem(
text=tr('User account'),
action=self._create_user_account,
preview_action=self._prev_users,
key='users',
),
MenuItem(
text=tr('U2F login setup'),
action=select_u2f_login,
value=self._auth_config.u2f_config,
preview_action=self._prev_u2f_login,
key='u2f_config',
),
]
async def _create_user_account(self, preset: list[User] | None = None) -> list[User]:
preset = [] if preset is None else preset
users = await select_users(preset=preset)
return users
def _prev_users(self, item: MenuItem) -> str | None:
users: list[User] | None = item.value
if users:
return as_table(users)
return None
def _prev_root_pwd(self, item: MenuItem) -> str | None:
if item.value is not None:
password: Password = item.value
return f'{tr("Root password")}: {password.hidden()}'
return None
def _depends_on_u2f(self) -> bool:
devices = Fido2.get_fido2_devices()
if not devices:
return False
return True
def _prev_u2f_login(self, item: MenuItem) -> str | None:
if item.value is not None:
u2f_config: U2FLoginConfiguration = item.value
login_method = u2f_config.u2f_login_method.display_value()
output = tr('U2F login method: ') + login_method
output += '\n'
output += tr('Passwordless sudo: ') + (tr('Enabled') if u2f_config.passwordless_sudo else tr('Disabled'))
return output
devices = Fido2.get_fido2_devices()
if not devices:
return tr('No U2F devices found')
return None
async def select_root_password() -> Password | None:
password = await get_password(header=tr('Enter root password'), allow_skip=True)
return password
async def select_u2f_login(preset: U2FLoginConfiguration | None) -> U2FLoginConfiguration | None:
devices = Fido2.get_fido2_devices()
if not devices:
return None
items = []
for method in U2FLoginMethod:
items.append(MenuItem(method.display_value(), value=method))
group = MenuItemGroup(items)
if preset is not None:
group.set_selected_by_value(preset.u2f_login_method)
result = await Selection[U2FLoginMethod](
group,
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Selection:
u2f_method = result.get_value()
header = tr('Enable passwordless sudo?')
result_sudo = await Confirmation(
header=header,
allow_skip=True,
preset=False,
).show()
passwordless_sudo = result_sudo.item() == MenuItem.yes()
return U2FLoginConfiguration(
u2f_login_method=u2f_method,
passwordless_sudo=passwordless_sudo,
)
case ResultType.Skip:
return preset
case ResultType.Reset:
return None

111
archinstall/lib/boot.py Normal file
View File

@ -0,0 +1,111 @@
import time
from collections.abc import Iterator
from pathlib import Path
from types import TracebackType
from typing import ClassVar, Self
from archinstall.lib.command import SysCommand, SysCommandWorker
from archinstall.lib.exceptions import SysCallError
from archinstall.lib.log import error
class Boot:
_active_boot: ClassVar[Self | None] = None
def __init__(self, path: Path | str):
if isinstance(path, Path):
path = str(path)
self.path = path
self.container_name = 'archinstall'
self.session: SysCommandWorker | None = None
self.ready = False
def __enter__(self) -> Self:
if Boot._active_boot and Boot._active_boot.path != self.path:
raise KeyError('Archinstall only supports booting up one instance and another session is already active.')
if Boot._active_boot:
self.session = Boot._active_boot.session
self.ready = Boot._active_boot.ready
else:
# '-P' or --console=pipe could help us not having to do a bunch
# of os.write() calls, but instead use pipes (stdin, stdout and stderr) as usual.
self.session = SysCommandWorker(
[
'systemd-nspawn',
'-D',
self.path,
'--timezone=off',
'-b',
'--no-pager',
'--machine',
self.container_name,
]
)
if not self.ready and self.session:
while self.session.is_alive():
if b' login:' in self.session:
self.ready = True
break
Boot._active_boot = self
return self
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
# b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync.
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
if exc_type is not None:
error(
str(exc_value),
f'The error above occurred in a temporary boot-up of the installation {self.path!r}',
)
shutdown = None
shutdown_exit_code: int | None = -1
try:
shutdown = SysCommand(f'systemd-run --machine={self.container_name} --pty shutdown now')
except SysCallError as err:
shutdown_exit_code = err.exit_code
if self.session:
while self.session.is_alive():
time.sleep(0.25)
if shutdown and shutdown.exit_code:
shutdown_exit_code = shutdown.exit_code
if self.session and (self.session.exit_code == 0 or shutdown_exit_code == 0):
Boot._active_boot = None
else:
session_exit_code = self.session.exit_code if self.session else -1
raise SysCallError(
f'Could not shut down temporary boot of {self.path!r}: {session_exit_code}/{shutdown_exit_code}',
exit_code=next(filter(bool, [session_exit_code, shutdown_exit_code])),
)
def __iter__(self) -> Iterator[bytes]:
if self.session:
yield from self.session
def __contains__(self, key: bytes) -> bool:
if self.session is None:
return False
return key in self.session
def is_alive(self) -> bool:
if self.session is None:
return False
return self.session.is_alive()
def SysCommand(self, cmd: list[str], *args, **kwargs) -> SysCommand: # type: ignore[no-untyped-def]
return SysCommand(['systemd-run', f'--machine={self.container_name}', '--pty', *cmd], *args, **kwargs)
def SysCommandWorker(self, cmd: list[str], *args, **kwargs) -> SysCommandWorker: # type: ignore[no-untyped-def]
return SysCommandWorker(['systemd-run', f'--machine={self.container_name}', '--pty', *cmd], *args, **kwargs)

View File

View File

@ -0,0 +1,217 @@
import textwrap
from typing import override
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
from archinstall.lib.translationhandler import tr
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
class BootloaderMenu(AbstractSubMenu[BootloaderConfiguration]):
def __init__(
self,
bootloader_conf: BootloaderConfiguration,
uefi: bool,
skip_boot: bool = False,
):
self._bootloader_conf = bootloader_conf
self._skip_boot = skip_boot
self._uefi = uefi
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, sort_items=False, checkmarks=True)
super().__init__(
self._item_group,
config=self._bootloader_conf,
allow_reset=False,
)
def _define_menu_options(self) -> list[MenuItem]:
bootloader = self._bootloader_conf.bootloader
# UKI availability
uki_enabled = self._uefi and bootloader.has_uki_support()
if not uki_enabled:
self._bootloader_conf.uki = False
# Removable availability
removable_enabled = self._uefi and bootloader.has_removable_support()
if not removable_enabled:
self._bootloader_conf.removable = False
return [
MenuItem(
text=tr('Bootloader'),
action=self._select_bootloader,
value=self._bootloader_conf.bootloader,
preview_action=self._prev_bootloader,
mandatory=True,
key='bootloader',
),
MenuItem(
text=tr('Unified kernel images'),
action=self._select_uki,
value=self._bootloader_conf.uki,
preview_action=self._prev_uki,
key='uki',
enabled=uki_enabled,
),
MenuItem(
text=tr('Install to removable location'),
action=self._select_removable,
value=self._bootloader_conf.removable,
preview_action=self._prev_removable,
key='removable',
enabled=removable_enabled,
),
]
def _prev_bootloader(self, item: MenuItem) -> str | None:
if item.value:
return f'{tr("Bootloader")}: {item.value.value}'
return None
def _prev_uki(self, item: MenuItem) -> str | None:
uki_text = f'{tr("Unified kernel images")}'
if item.value:
return f'{uki_text}: {tr("Enabled")}'
else:
return f'{uki_text}: {tr("Disabled")}'
def _prev_removable(self, item: MenuItem) -> str | None:
if item.value:
return tr('Will install to /EFI/BOOT/ (removable location, safe default)')
return tr('Will install to custom location with NVRAM entry')
@override
async def show(self) -> BootloaderConfiguration:
_ = await super().show()
return self._bootloader_conf
async def _select_bootloader(self, preset: Bootloader | None) -> Bootloader | None:
bootloader = await select_bootloader(preset, self._uefi, self._skip_boot)
if bootloader:
# Update UKI option based on bootloader
uki_item = self._menu_item_group.find_by_key('uki')
if not self._uefi or not bootloader.has_uki_support():
uki_item.enabled = False
uki_item.value = False
self._bootloader_conf.uki = False
else:
uki_item.enabled = True
# Update removable option based on bootloader
removable_item = self._menu_item_group.find_by_key('removable')
if not self._uefi or not bootloader.has_removable_support():
removable_item.enabled = False
removable_item.value = False
self._bootloader_conf.removable = False
else:
if not removable_item.enabled:
removable_item.value = True
self._bootloader_conf.removable = True
removable_item.enabled = True
return bootloader
async def _select_uki(self, preset: bool) -> bool:
prompt = tr('Would you like to use unified kernel images?') + '\n'
result = await Confirmation(header=prompt, allow_skip=True, preset=preset).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.item() == MenuItem.yes()
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def _select_removable(self, preset: bool) -> bool:
prompt = (
tr('Would you like to install the bootloader to the default removable media search location?')
+ '\n\n'
+ tr('This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:')
+ '\n\n'
+ tr('Firmware that does not properly support NVRAM boot entries like most MSI motherboards,')
+ '\n '
+ tr('most Apple Macs, many laptops...')
+ '\n'
+ tr('USB drives or other portable external media.')
+ '\n'
+ tr('Systems where you want the disk to be bootable on any computer.')
+ '\n\n'
+ tr(
textwrap.dedent(
"""\
If you do not know what this means, LEAVE THIS OPTION ENABLED, as it is the safe default.
It is suggested to disable this if none of the above apply, as it makes installing multiple
EFI bootloaders on the same disk easier, and it will not overwrite whatever bootloader
was previously installed at the default removable media search location, if any.
It may also make the installation more resilient in case of dual-booting with Windows,
as Windows is known to sometimes erase or replace the bootloader installed at the removable
location.
"""
)
)
+ '\n'
)
result = await Confirmation(
header=prompt,
allow_skip=True,
preset=preset,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def select_bootloader(
preset: Bootloader | None,
uefi: bool,
skip_boot: bool = False,
) -> Bootloader | None:
options = []
hidden_options = []
header = tr('Select bootloader to install')
default = Bootloader.get_default(uefi, skip_boot)
if not skip_boot:
hidden_options += [Bootloader.NO_BOOTLOADER]
if not uefi:
options += [Bootloader.Grub, Bootloader.Limine]
header += '\n' + tr('UEFI is not detected and some options are disabled')
else:
options += [b for b in Bootloader if b not in hidden_options]
items = [MenuItem(o.value, value=o) for o in options]
group = MenuItemGroup(items)
group.set_default_by_value(default)
group.set_focus_by_value(preset)
result = await Selection[Bootloader](
group,
header=header,
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')

View File

@ -0,0 +1,86 @@
from dataclasses import dataclass
from enum import Enum, auto
from pathlib import Path
from archinstall.lib.hardware import SysInfo
from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
from archinstall.lib.models.device import DiskLayoutConfiguration
class BootloaderValidationFailureKind(Enum):
LimineNonFatBoot = auto()
LimineLayout = auto()
BootloaderRequiresUefi = auto()
EfistubNonFatBoot = auto()
@dataclass(frozen=True)
class BootloaderValidationFailure:
kind: BootloaderValidationFailureKind
description: str
def validate_bootloader_layout(
bootloader_config: BootloaderConfiguration | None,
disk_config: DiskLayoutConfiguration | None,
) -> BootloaderValidationFailure | None:
"""Validate bootloader configuration against disk layout.
Returns a failure with a human-readable description if the configuration
would produce an unbootable system, or None if it is valid.
"""
if not (bootloader_config and disk_config):
return None
bootloader = bootloader_config.bootloader
if bootloader == Bootloader.NO_BOOTLOADER:
return None
if bootloader.is_uefi_only() and not SysInfo.has_uefi():
return BootloaderValidationFailure(
kind=BootloaderValidationFailureKind.BootloaderRequiresUefi,
description=f'{bootloader.value} requires a UEFI system.',
)
boot_part = next(
(p for m in disk_config.device_modifications if (p := m.get_boot_partition())),
None,
)
if bootloader == Bootloader.Efistub:
# The UEFI firmware reads the kernel directly from the boot partition,
# which must be FAT.
if boot_part and (boot_part.fs_type is None or not boot_part.fs_type.is_fat()):
return BootloaderValidationFailure(
kind=BootloaderValidationFailureKind.EfistubNonFatBoot,
description='Efistub does not support booting with a non-FAT boot partition.',
)
if bootloader == Bootloader.Limine:
# Limine reads its config and kernels from the boot partition, which
# must be FAT.
if boot_part and (boot_part.fs_type is None or not boot_part.fs_type.is_fat()):
return BootloaderValidationFailure(
kind=BootloaderValidationFailureKind.LimineNonFatBoot,
description='Limine does not support booting with a non-FAT boot partition.',
)
# When the ESP is the boot partition but mounted outside /boot and
# UKI is disabled, kernels end up on the root filesystem which
# Limine cannot access.
if not bootloader_config.uki:
efi_part = next(
(p for m in disk_config.device_modifications if (p := m.get_efi_partition())),
None,
)
if efi_part and efi_part == boot_part and efi_part.mountpoint != Path('/boot'):
return BootloaderValidationFailure(
kind=BootloaderValidationFailureKind.LimineLayout,
description=(
f'Limine requires kernels on a FAT partition. The ESP is mounted at {efi_part.mountpoint}, '
'enable UKI or add a separate /boot partition to install Limine.'
),
)
return None

384
archinstall/lib/command.py Normal file
View File

@ -0,0 +1,384 @@
import os
import shlex
import stat
import subprocess
import sys
import time
from collections.abc import Iterator
from select import EPOLLHUP, EPOLLIN, epoll
from shutil import which
from types import TracebackType
from typing import Any, Self, override
from archinstall.lib.exceptions import RequirementError, SysCallError
from archinstall.lib.log import debug, error, logger
from archinstall.lib.utils.encoding import clear_vt100_escape_codes
class SysCommandWorker:
def __init__(
self,
cmd: str | list[str],
peek_output: bool | None = False,
environment_vars: dict[str, str] | None = None,
working_directory: str = './',
remove_vt100_escape_codes_from_lines: bool = True,
):
if isinstance(cmd, str):
cmd = shlex.split(cmd)
if cmd and not cmd[0].startswith(('/', './')): # Path() does not work well
cmd[0] = locate_binary(cmd[0])
self.cmd = cmd
self.peek_output = peek_output
# define the standard locale for command outputs. For now the C ascii one. Can be overridden
self.environment_vars = {'LC_ALL': 'C'}
if environment_vars:
self.environment_vars.update(environment_vars)
self.working_directory = working_directory
self.exit_code: int | None = None
self._trace_log = b''
self._trace_log_pos = 0
self.poll_object = epoll()
self.child_fd: int | None = None
self.started = False
self.ended = False
self.remove_vt100_escape_codes_from_lines: bool = remove_vt100_escape_codes_from_lines
def __contains__(self, key: bytes) -> bool:
"""
Contains will also move the current buffert position forward.
This is to avoid re-checking the same data when looking for output.
"""
assert isinstance(key, bytes)
index = self._trace_log.find(key, self._trace_log_pos)
if index >= 0:
self._trace_log_pos += index + len(key)
return True
return False
def __iter__(self, *args: str, **kwargs: dict[str, Any]) -> Iterator[bytes]:
last_line = self._trace_log.rfind(b'\n')
lines = filter(None, self._trace_log[self._trace_log_pos : last_line].splitlines())
for line in lines:
if self.remove_vt100_escape_codes_from_lines:
line = clear_vt100_escape_codes(line)
yield line + b'\n'
self._trace_log_pos = last_line
@override
def __repr__(self) -> str:
self.make_sure_we_are_executing()
return str(self._trace_log)
@override
def __str__(self) -> str:
try:
return self._trace_log.decode('utf-8')
except UnicodeDecodeError:
return str(self._trace_log)
def __enter__(self) -> Self:
return self
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
# b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync.
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
if self.child_fd:
try:
os.close(self.child_fd)
except Exception:
pass
if self.peek_output:
# To make sure any peaked output didn't leave us hanging
# on the same line we were on.
sys.stdout.write('\n')
sys.stdout.flush()
if exc_type is not None:
debug(str(exc_value))
if self.exit_code != 0:
raise SysCallError(
f'{self.cmd} exited with abnormal exit code [{self.exit_code}]: {str(self)[-500:]}',
self.exit_code,
worker_log=self._trace_log,
)
def is_alive(self) -> bool:
self.poll()
if self.started and not self.ended:
return True
return False
def write(self, data: bytes, line_ending: bool = True) -> int:
assert isinstance(data, bytes) # TODO: Maybe we can support str as well and encode it
self.make_sure_we_are_executing()
if self.child_fd:
return os.write(self.child_fd, data + (b'\n' if line_ending else b''))
return 0
def make_sure_we_are_executing(self) -> bool:
if not self.started:
return self.execute()
return True
def tell(self) -> int:
self.make_sure_we_are_executing()
return self._trace_log_pos
def seek(self, pos: int) -> None:
self.make_sure_we_are_executing()
# Safety check to ensure 0 < pos < len(tracelog)
self._trace_log_pos = min(max(0, pos), len(self._trace_log))
def peak(self, output: str | bytes) -> bool:
if self.peek_output:
if isinstance(output, bytes):
try:
output = output.decode('UTF-8')
except UnicodeDecodeError:
return False
_cmd_output(output)
sys.stdout.write(output)
sys.stdout.flush()
return True
def poll(self) -> None:
self.make_sure_we_are_executing()
if self.child_fd:
got_output = False
for _fileno, _event in self.poll_object.poll(0.1):
try:
output = os.read(self.child_fd, 8192)
got_output = True
self.peak(output)
self._trace_log += output
except OSError:
self.ended = True
break
if self.ended or (not got_output and not _pid_exists(self.pid)):
self.ended = True
try:
wait_status = os.waitpid(self.pid, 0)[1]
self.exit_code = os.waitstatus_to_exitcode(wait_status)
except ChildProcessError:
try:
wait_status = os.waitpid(self.child_fd, 0)[1]
self.exit_code = os.waitstatus_to_exitcode(wait_status)
except ChildProcessError:
self.exit_code = 1
def execute(self) -> bool:
import pty
if (old_dir := os.getcwd()) != self.working_directory:
os.chdir(str(self.working_directory))
# Note: If for any reason, we get a Python exception between here
# and until os.close(), the traceback will get locked inside
# stdout of the child_fd object. `os.read(self.child_fd, 8192)` is the
# only way to get the traceback without losing it.
self.pid, self.child_fd = pty.fork()
# https://stackoverflow.com/questions/4022600/python-pty-fork-how-does-it-work
if not self.pid:
_cmd_history(self.cmd)
try:
os.execve(self.cmd[0], list(self.cmd), {**os.environ, **self.environment_vars})
except FileNotFoundError:
error(f'{self.cmd[0]} does not exist.')
self.exit_code = 1
return False
else:
# Only parent process moves back to the original working directory
os.chdir(old_dir)
self.started = True
self.poll_object.register(self.child_fd, EPOLLIN | EPOLLHUP)
return True
def decode(self, encoding: str = 'UTF-8') -> str:
return self._trace_log.decode(encoding)
class SysCommand:
def __init__(
self,
cmd: str | list[str],
peek_output: bool | None = False,
environment_vars: dict[str, str] | None = None,
working_directory: str = './',
remove_vt100_escape_codes_from_lines: bool = True,
):
self.cmd = cmd
self.peek_output = peek_output
self.environment_vars = environment_vars
self.working_directory = working_directory
self.remove_vt100_escape_codes_from_lines = remove_vt100_escape_codes_from_lines
self.session: SysCommandWorker | None = None
self.create_session()
def __enter__(self) -> SysCommandWorker | None:
return self.session
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
# b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync.
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
if exc_type is not None:
error(str(exc_value))
def __iter__(self, *args: list[Any], **kwargs: dict[str, Any]) -> Iterator[bytes]:
if self.session:
yield from self.session
def __getitem__(self, key: slice) -> bytes:
if not self.session:
raise KeyError('SysCommand() does not have an active session.')
elif type(key) is slice:
start = key.start or 0
end = key.stop or len(self.session._trace_log)
return self.session._trace_log[start:end]
else:
raise ValueError("SysCommand() doesn't have key & value pairs, only slices, SysCommand('ls')[:10] as an example.")
@override
def __repr__(self, *args: list[Any], **kwargs: dict[str, Any]) -> str:
return self.decode('UTF-8', errors='backslashreplace') or ''
def create_session(self) -> bool:
"""
Initiates a :ref:`SysCommandWorker` session in this class ``.session``.
It then proceeds to poll the process until it ends, after which it also
clears any printed output if ``.peek_output=True``.
"""
if self.session:
return True
with SysCommandWorker(
self.cmd,
peek_output=self.peek_output,
environment_vars=self.environment_vars,
remove_vt100_escape_codes_from_lines=self.remove_vt100_escape_codes_from_lines,
working_directory=self.working_directory,
) as session:
self.session = session
while not self.session.ended:
self.session.poll()
if self.peek_output:
sys.stdout.write('\n')
sys.stdout.flush()
return True
def decode(self, encoding: str = 'utf-8', errors: str = 'backslashreplace', strip: bool = True) -> str:
if not self.session:
raise ValueError('No session available to decode')
val = self.session._trace_log.decode(encoding, errors=errors)
if strip:
return val.strip()
return val
def output(self, remove_cr: bool = True) -> bytes:
if not self.session:
raise ValueError('No session available')
if remove_cr:
return self.session._trace_log.replace(b'\r\n', b'\n')
return self.session._trace_log
@property
def exit_code(self) -> int | None:
if self.session:
return self.session.exit_code
else:
return None
@property
def trace_log(self) -> bytes | None:
if self.session:
return self.session._trace_log
return None
def run(
cmd: list[str],
input_data: bytes | None = None,
) -> subprocess.CompletedProcess[bytes]:
_cmd_history(cmd)
return subprocess.run(
cmd,
input=input_data,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
check=True,
)
def locate_binary(name: str) -> str:
if path := which(name):
return path
raise RequirementError(f'Binary {name} does not exist.')
def _pid_exists(pid: int) -> bool:
try:
return any(subprocess.check_output(['ps', '--no-headers', '-o', 'pid', '-p', str(pid)]).strip())
except subprocess.CalledProcessError:
return False
def _cmd_history(cmd: list[str]) -> None:
content = f'{time.time()} {cmd}\n'
_append_log('cmd_history.txt', content)
def _cmd_output(output: str) -> None:
_append_log('cmd_output.txt', output)
def _append_log(file: str, content: str) -> None:
path = logger.directory / file
change_perm = not path.exists()
try:
with path.open('a') as f:
f.write(content)
if change_perm:
path.chmod(stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP)
except PermissionError, FileNotFoundError:
# If the file does not exist, ignore the error
pass

View File

@ -0,0 +1,275 @@
import json
import readline
import stat
from pathlib import Path
from typing import Any
from pydantic import TypeAdapter
from archinstall.lib.args import ArchConfig, ArchConfigType
from archinstall.lib.crypt import encrypt
from archinstall.lib.log import debug, logger, warn
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.menu.util import get_password, prompt_dir
from archinstall.lib.models.network import NetworkConfiguration
from archinstall.lib.translationhandler import tr
from archinstall.lib.utils.format import as_key_value_pair
from archinstall.tui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.result import ResultType
class ConfigurationOutput:
def __init__(self, config: ArchConfig):
"""
Configuration output handler to parse the existing
configuration data structure and prepare for output on the
console and for saving it to configuration files
:param config: Archinstall configuration object
:type config: ArchConfig
"""
self._config = config
self._default_save_path = logger.directory
self._user_config_file = Path('user_configuration.json')
self._user_creds_file = Path('user_credentials.json')
@property
def user_configuration_file(self) -> Path:
return self._user_config_file
@property
def user_credentials_file(self) -> Path:
return self._user_creds_file
def user_config_to_json(self) -> str:
config = self._config.safe_config()
adapter = TypeAdapter(dict[ArchConfigType, Any])
python_dict = adapter.dump_python(config)
return json.dumps(python_dict, indent=4, sort_keys=True)
def user_credentials_to_json(self) -> str:
cfg = self._config.unsafe_config()
adapter = TypeAdapter(dict[ArchConfigType, Any])
python_dict = adapter.dump_python(cfg)
return json.dumps(python_dict, indent=4, sort_keys=True)
def write_debug(self) -> None:
debug(' -- Chosen configuration --')
debug(self.user_config_to_json())
def as_summary(self) -> str:
"""
Render a concise two-column summary of the current configuration.
Returns an empty string if nothing meaningful to show.
"""
cfg: dict[str, str | list[str] | bool] = {}
for key, value in self._config.plain_cfg().items():
cfg[key.text()] = value
for config_type, obj in self._config.sub_cfg().items():
if not hasattr(obj, 'summary'):
continue
summary = obj.summary()
if summary:
cfg[config_type.text()] = summary
simple_summary = as_key_value_pair(cfg, ignore_empty=True)
return simple_summary
async def confirm_config(self, show_install_warnings: bool = False) -> bool:
header = f'{tr("The specified configuration will be applied")}. '
header += tr('Would you like to continue?') + '\n'
if show_install_warnings:
header += self._render_install_warnings()
group = MenuItemGroup.yes_no()
group.set_preview_for_all(lambda x: self.user_config_to_json())
result = await Confirmation(
group=group,
header=header,
allow_skip=False,
preset=True,
preview_location='bottom',
preview_header=tr('Configuration preview'),
).show()
if not result.get_value():
return False
return True
def get_install_warnings(self) -> list[str]:
warnings: list[str] = []
if not isinstance(self._config.network_config, NetworkConfiguration):
warnings.append(tr('Warning: no network configuration selected. Network will need to be set up manually on the installed system.'))
return warnings
def _render_install_warnings(self) -> str:
warnings = self.get_install_warnings()
if not warnings:
return ''
return '\n' + '\n'.join(f'[yellow]{w}[/]' for w in warnings) + '\n'
def _is_valid_path(self, dest_path: Path) -> bool:
dest_path_ok = dest_path.exists() and dest_path.is_dir()
if not dest_path_ok:
warn(
f'Destination directory {dest_path.resolve()} does not exist or is not a directory\n.',
'Configuration files can not be saved',
)
return dest_path_ok
def save_user_config(self, dest_path: Path) -> None:
if self._is_valid_path(dest_path):
target = dest_path / self._user_config_file
target.write_text(self.user_config_to_json())
target.chmod(stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP)
def save_user_creds(
self,
dest_path: Path,
password: str | None = None,
) -> None:
data = self.user_credentials_to_json()
if password:
data = encrypt(password, data)
if self._is_valid_path(dest_path):
target = dest_path / self._user_creds_file
target.write_text(data)
target.chmod(stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP)
def save(
self,
dest_path: Path | None = None,
creds: bool = False,
password: str | None = None,
) -> None:
save_path = dest_path or self._default_save_path
if self._is_valid_path(save_path):
self.save_user_config(save_path)
if creds:
self.save_user_creds(save_path, password=password)
async def save_config(config: ArchConfig) -> None:
def preview(item: MenuItem) -> str | None:
match item.value:
case 'user_config':
serialized = config_output.user_config_to_json()
return f'{config_output.user_configuration_file}\n{serialized}'
case 'user_creds':
if maybe_serial := config_output.user_credentials_to_json():
return f'{config_output.user_credentials_file}\n{maybe_serial}'
return tr('No configuration')
case 'all':
output = [str(config_output.user_configuration_file)]
config_output.user_credentials_to_json()
output.append(str(config_output.user_credentials_file))
return '\n'.join(output)
return None
config_output = ConfigurationOutput(config)
items = [
MenuItem(
tr('Save user configuration (including disk layout)'),
value='user_config',
preview_action=preview,
),
MenuItem(
tr('Save user credentials'),
value='user_creds',
preview_action=preview,
),
MenuItem(
tr('Save all'),
value='all',
preview_action=preview,
),
]
group = MenuItemGroup(items)
result = await Selection[str](
group,
allow_skip=True,
preview_location='right',
).show()
match result.type_:
case ResultType.Skip:
return
case ResultType.Selection:
save_option = result.get_value()
case _:
raise ValueError('Unhandled return type')
readline.set_completer_delims('\t\n=')
readline.parse_and_bind('tab: complete')
dest_path = await prompt_dir(
tr('Enter a directory for the configuration(s) to be saved') + '\n',
allow_skip=True,
)
if not dest_path:
return
header = tr('Do you want to save the configuration file(s) to {}?').format(dest_path)
save_result = await Confirmation(
header=header,
allow_skip=False,
preset=True,
).show()
match save_result.type_:
case ResultType.Selection:
if not save_result.get_value():
return
case _:
return
debug(f'Saving configuration files to {dest_path.absolute()}')
header = tr('Do you want to encrypt the user_credentials.json file?')
enc_result = await Confirmation(
header=header,
allow_skip=False,
preset=False,
).show()
enc_password: str | None = None
if enc_result.type_ == ResultType.Selection:
if enc_result.get_value():
password = await get_password(
header=tr('Credentials file encryption password'),
allow_skip=True,
)
if password:
enc_password = password.plaintext
match save_option:
case 'user_config':
config_output.save_user_config(dest_path)
case 'user_creds':
config_output.save_user_creds(dest_path, password=enc_password)
case 'all':
config_output.save(dest_path, creds=True, password=enc_password)

125
archinstall/lib/crypt.py Normal file
View File

@ -0,0 +1,125 @@
import base64
import ctypes
import os
from pathlib import Path
from cryptography.fernet import Fernet, InvalidToken
from cryptography.hazmat.primitives.kdf.argon2 import Argon2id
from archinstall.lib.log import debug
libcrypt = ctypes.CDLL('libcrypt.so')
libcrypt.crypt.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
libcrypt.crypt.restype = ctypes.c_char_p
libcrypt.crypt_gensalt.argtypes = [ctypes.c_char_p, ctypes.c_ulong, ctypes.c_char_p, ctypes.c_int]
libcrypt.crypt_gensalt.restype = ctypes.c_char_p
LOGIN_DEFS = Path('/etc/login.defs')
def _search_login_defs(key: str) -> str | None:
defs = LOGIN_DEFS.read_text()
for line in defs.split('\n'):
line = line.strip()
if line.startswith('#'):
continue
if line.startswith(key):
value = line.split(' ')[1]
return value
return None
def crypt_gen_salt(prefix: str | bytes, rounds: int) -> bytes:
if isinstance(prefix, str):
prefix = prefix.encode('utf-8')
setting = libcrypt.crypt_gensalt(prefix, rounds, None, 0)
if setting is None:
raise ValueError(f'crypt_gensalt() returned NULL for prefix {prefix!r} and rounds {rounds}')
return setting
def crypt_yescrypt(plaintext: str) -> str:
"""
By default chpasswd in Arch uses PAM to hash the password with crypt_yescrypt
the PAM code https://github.com/linux-pam/linux-pam/blob/master/modules/pam_unix/support.c
shows that the hashing rounds are determined from YESCRYPT_COST_FACTOR in /etc/login.defs
If no value was specified (or commented out) a default of 5 is chosen
"""
value = _search_login_defs('YESCRYPT_COST_FACTOR')
if value is not None:
rounds = int(value)
if rounds < 3:
rounds = 3
elif rounds > 11:
rounds = 11
else:
rounds = 5
debug(f'Creating yescrypt hash with rounds {rounds}')
enc_plaintext = plaintext.encode('utf-8')
salt = crypt_gen_salt('$y$', rounds)
crypt_hash = libcrypt.crypt(enc_plaintext, salt)
if crypt_hash is None:
raise ValueError('crypt() returned NULL')
return crypt_hash.decode('utf-8')
def _get_fernet(salt: bytes, password: str) -> Fernet:
# https://cryptography.io/en/latest/hazmat/primitives/key-derivation-functions/#argon2id
kdf = Argon2id(
salt=salt,
length=32,
iterations=1,
lanes=4,
memory_cost=64 * 1024,
ad=None,
secret=None,
)
key = base64.urlsafe_b64encode(
kdf.derive(
password.encode('utf-8'),
),
)
return Fernet(key)
def encrypt(password: str, data: str) -> str:
salt = os.urandom(16)
f = _get_fernet(salt, password)
token = f.encrypt(data.encode('utf-8'))
encoded_token = base64.urlsafe_b64encode(token).decode('utf-8')
encoded_salt = base64.urlsafe_b64encode(salt).decode('utf-8')
return f'$argon2id${encoded_salt}${encoded_token}'
def decrypt(data: str, password: str) -> str:
_, algo, encoded_salt, encoded_token = data.split('$')
salt = base64.urlsafe_b64decode(encoded_salt)
token = base64.urlsafe_b64decode(encoded_token)
if algo != 'argon2id':
raise ValueError(f'Unsupported algorithm {algo!r}')
f = _get_fernet(salt, password)
try:
decrypted = f.decrypt(token)
except InvalidToken:
raise ValueError('Invalid password')
return decrypted.decode('utf-8')

Some files were not shown because too many files have changed in this diff Show More