Commit Graph

1283 Commits

Author SHA1 Message Date
Adriaan de Groot
eb840d4117 libcalamares: ditch namespace CalamaresUtils
- Most CalamaresUtils things go to Calamares
- YAML support to Calamares::YAML and then remove redundant "yaml"
  from the function names.
2023-09-11 20:34:01 +02:00
Adriaan de Groot
f4e3964ee5 libcalamares: use namespace Calamares::Partition consistently 2023-09-11 00:09:31 +02:00
Adriaan de Groot
641e186b7c libcalamares: use namespace Calamares::Packages consistently 2023-09-10 23:55:48 +02:00
Adriaan de Groot
a9ef587705 libcalamares: use namespace Calamares::Network consistently 2023-09-10 22:32:49 +02:00
Adriaan de Groot
d199288034 libcalamares: use namespace Calamares::GeoIP consistently 2023-09-10 22:26:32 +02:00
Adriaan de Groot
47cbcbd348 libcalamares: move all locale-related things into namespace Calamares::Locale
The locale bits were spread over Calamares::Locale and CalamaresUtils::Locale.
2023-09-10 22:26:32 +02:00
Adriaan de Groot
c2064124b9 libcalamares: needs to link in QtNetwork 2023-09-08 21:41:31 +02:00
demmm
07e5a3a113 [partition] start Qt6 work
make kpmcorehelper usable for both kf5 & 6, though no section added yet dealing with set to NOT for Qt6
adjust CalamaresConfig to not be hardcoded to kf5
one more var needed in Variant.h, used in PartitionInfo.cpp
adjust QVariant & QtConcurrent use
2023-09-07 13:03:16 +02:00
Adriaan de Groot
5f8b6ed437 dummycpp: adapt to Qt6
- since HashVariantType has more than one consumer, move it to header
2023-09-05 00:05:46 +02:00
Adriaan de Groot
ca9006a1bc i18n: move translation helper-function to CMakeModules 2023-09-04 22:44:08 +02:00
Adriaan de Groot
8a8860e75c Qt6: resolve TODOs against missing KF6
- On FreeBSD, no KF6 was available
- On KDE Neon Unstable, there are somewhat wonky KF6 packages available
- Adjust CMake to find the KDE Neon versions, then fix the C++ code
2023-09-04 21:51:03 +02:00
Adriaan de Groot
4b3278058b libcalamares: repair test
The calamaresstyle tool reformatted a bunch of R-strings,
leading to test failures. Mark them with INDENT-OFF so
astyle doesn't break them again.
2023-09-03 23:16:54 +02:00
Adriaan de Groot
95aa8d8127 libcalamares: update maintainer and sponsor 2023-09-03 23:02:47 +02:00
Adriaan de Groot
bc9d5aae58 libcalamares: repair locale tests for Qt6 compatibility 2023-09-03 23:02:09 +02:00
Adriaan de Groot
49d449c211 i18n: enable Qt6 build of lang/ and libcalamares translations 2023-09-03 23:00:13 +02:00
Adriaan de Groot
ad8c87e5d3 libcalamares: repair tests for Qt6 compatibility 2023-09-03 23:00:13 +02:00
Adriaan de Groot
25250179da libcalamares: handle variants in Python
The Python helpers need a couple of obscure QVariants,
do not add them to the "global" list of compatible variant types.
2023-09-03 23:00:13 +02:00
Adriaan de Groot
cdb2eb8b9a libcalamares: deal with KF5 macro expansion
Since KF5 is not looked-for in the Qt6 build, mock up
a useless macro-expander in its place.
2023-09-03 23:00:13 +02:00
Adriaan de Groot
e0b820abbc libcalamares: deal with QtConcurrent::run
In Qt5, you pass the pointer-to-object for a member-function-call
first, and in Qt6, as a regular parameter.
2023-09-03 22:58:49 +02:00
Adriaan de Groot
fe8939e745 libcalamares: deal with QRegExp 2023-09-03 22:58:49 +02:00
Adriaan de Groot
99d012c5ce libcalamares: deal with QVariant
Compatibility header required, and logging was missing
a (transitively included in Qt5) include for QVariant.
2023-09-03 22:58:44 +02:00
Adriaan de Groot
27329a497a libcalamares: deal with QMutexLocker
- Add a compat/ directory with support for Calamares-named
  variations of Qt classes where there are relevant differences
  between Qt5 and Qt6
2023-09-03 22:58:33 +02:00
Adriaan de Groot
50f2a6ad4a libcalamares: deal with QPair
Use std::pair instead. Also applies to Qt5 build.
2023-09-03 22:53:43 +02:00
Adriaan de Groot
179796d598 CMake: can't mix KF5 and Qt6
This will fail to build because we require KDE Frameworks
CoreAddons, but I don't have one just now.
2023-09-03 22:53:43 +02:00
Adriaan de Groot
b905afb169 CMake: restrict Qt6 build
- build **only** libcalamares
- switch the finding and linking of Qt modules to use qtname
2023-09-03 22:53:43 +02:00
Adriaan de Groot
5ff9fcd59a libcalamares: prevent astyle from reformatting string 2023-09-03 22:53:30 +02:00
Adriaan de Groot
3757fcf0bf libcalamares: drop useless variable 2023-08-28 22:33:56 +02:00
Adriaan de Groot
dc666d29b8 libcalamares: suppress unused-variable warning 2023-08-28 22:33:00 +02:00
Adriaan de Groot
9c2cbf7588 [libcalamares] Repair link to Translations 2023-04-24 23:32:24 +02:00
Jeremy Attali
9def0cb66f [partition] Add support for LUKS2
This commit adds support for LUKS2 behind a new `partition.conf` key:
`luksGeneration`.

A bit of context, LUKS2 is the default encryption operating mode since
cryptsetup >= 2.1.0 (See [Arch
wiki](https://wiki.archlinux.org/title/dm-crypt/Device_encryption#Encryption_options_with_dm-crypt).
It is considered more secured and allows additional extensions. It also
comes with Argon2id as the default Password Based Key Derivation
Function (`--pbkdf` option). So it's important to provide this as an
option for Calamares in order to make Linux installs more secure, for
those who wish to encrypt their system.

This commit was tested on a custom Manjaro installer with:

- grub bootloader with the [argon patches](https://aur.archlinux.org/packages/grub-improved-luks2-git).
- [rEFInd](https://wiki.archlinux.org/title/REFInd) bootloader with
  unencrypted `/boot` partition because rEFInd [doesn't support booting
  from an encrypted volume](https://sourceforge.net/p/refind/discussion/general/thread/400418ac/)

**Important consideration for distribution maintainers**:

- You need to have compile flag `WITH_KPMCORE4API` on
- If you are shipping with grub by default please note that you need to
  ship it with the Argon patches. Example on Arch Linux: [grub-improved-luks2-git](https://aur.archlinux.org/packages/grub-improved-luks2-git)
- If `luksGeneration` is not found in partition.conf, it will default to
  luks1
- Please test this on your own distribution as this was only tested on
  Manjaro installer (see above).
2022-09-09 20:41:12 -04:00
Adriaan de Groot
6558cd5150 CMake: add .so-version
This is basically PR #2002, from Undef-a.
2022-08-23 15:45:20 +02:00
Adriaan de Groot
66cc1a74ec CMake: apply gersemi to libcalamares
Since this CMakeLists.txt writes out a C program, the formatting
is a bit weird; just start the written TU with a blank line to
make gersemi happy and keep the C-code aligned.
2022-08-23 12:23:13 +02:00
Adriaan de Groot
ba96f7ddc2 CMake: build libcalamares with an internal name for KPMcore 2022-07-23 23:48:21 +02:00
Adriaan de Groot
97cbebc0f7 [libcalamares] Move KPMcore-dependencies
- FileSystem.h depends on KPMcore and only compiles when
  KPMcore is present; it can use KPMcore identifiers.
- Global.h doesn't.
- Move the few functions introduced into Global.h that need
  KPMcore, to FileSystem.h instead.
2022-07-19 11:46:57 +02:00
Adriaan de Groot
04e93f513c [libcalamares] Always use the calamares::kpmcore library
When KPMcore is present, the calamares::kpmcore wraps that
and provides suitable API detection. If KPMcore is not
present, the same interface library provides -DWITHOUT_KPMcore.
2022-07-19 11:41:01 +02:00
Adriaan de Groot
eef3bb19d3
Merge pull request #2011 from calamares/improve-kpmcore
Fix kpmcore detection and compilation on Debian-11
2022-07-18 23:23:32 +02:00
Adriaan de Groot
10da2c257d
Merge pull request #2009 from calamares/issue-1940
[libcalamares] Remove translation-languages define
2022-07-18 23:03:22 +02:00
Adriaan de Groot
eccfdbd986 [libcalamares] Mark a TODO that is causing build failures 2022-07-10 13:38:48 +02:00
Adriaan de Groot
3360ad612e [libcalamares] Use Calamares interface-library to kpmcore 2022-07-10 13:38:48 +02:00
Adriaan de Groot
ab813b607f CMake: move kpmcore support into the helper-CMake-module
- find the dependencies just once
- fix the interface for kpmcore so it can find its own
  includes (this is mostly relevant for Debian)
2022-07-10 13:38:48 +02:00
Adriaan de Groot
170a5a8697 [libcalamares] Factor out the list of translations
The list of translation codes lives in one place, make it accessible
through a function in Calamares::Locale.
2022-07-03 00:05:40 +02:00
Adriaan de Groot
18a3092aa1 [libcalamares] Use namespace Calamares
The distinction CalamaresUtils and Calamares is old-fashioned,
since we can use nested namespaces (and already do) for a lot
of things; make libcalamares/locale/ a bit more consistent
by using namespace Calamares::Locale for everything.
2022-07-02 23:19:44 +02:00
Adriaan de Groot
d7e35d2ad2 [libcalamares] Use newly-generated table of language names 2022-07-02 23:19:44 +02:00
Adriaan de Groot
f53f83be56 CMake: create header with available languages 2022-07-02 23:19:44 +02:00
Adriaan de Groot
2322f12b59 [libcalamares] Remove translation-languages define
This doesn't compile, since it doesn't provide any replacement
for the translations define.
2022-07-02 17:42:02 +02:00
Adriaan de Groot
273941f451 [libcalamares] Add convenience for building macro-expanders 2022-07-02 15:56:21 +02:00
Adriaan de Groot
ee848e2367 [libcalamares] About box should show extended version if available 2022-06-27 23:48:03 +02:00
Adriaan de Groot
1c7c0b9af8 CI: apply coding style (clang-format 13) 2022-06-27 00:37:15 +02:00
Adriaan de Groot
96fb97d53a Changes: pre-release housekeeping
- this would be the first 3.3 release, scripts still needed
  cleanup to handle all the changes in 3.3
- support "-alpha1" kinds of designation
- support more versioning information in the headers
2022-06-26 23:49:14 +02:00
Adriaan de Groot
3a0b75a006 Merge branch '3.2.x-stable' into calamares 2022-06-19 16:05:17 +02:00
Adriaan de Groot
b11ee3abc5 [libcalamares] Add alternatives ca@valencia and ca_ES@valencia 2022-06-19 15:34:20 +02:00
Adriaan de Groot
2478570deb [libcalamares, keyboard] Use convenience for getting current locale 2022-06-18 00:40:26 +02:00
Adriaan de Groot
d80661211c [libcalamares] Introduce convenience for reading Locale map 2022-06-18 00:23:21 +02:00
Adriaan de Groot
42f9f07a07 [libcalamares] The spinner doesn't support rich text 2022-06-10 01:27:37 +02:00
Adriaan de Groot
9f91b50553 [libcalamares] Use Q_EMIT instead of 'emit' 2022-06-10 01:04:43 +02:00
Adriaan de Groot
821a62ffbb [libcalamares] Add missing <memory> for std::unique_ptr
SEE #1972
2022-06-02 14:38:44 +02:00
Adriaan de Groot
72240d0d59 Merge branch 'work-3.3' into calamares 2022-05-29 17:22:36 +02:00
Adriaan de Groot
3e72635204 [libcalamares] Fix path-search for loading branding-translation
- log which path is actually being used
- there are two overloads for QTranslator::load(); the intention
  was to call `QTranslator::load(const QLocale&, ...)`, but the
  types of the arguments were wrong, leading to the other
  overload being called, and interpreting the locale-name
  (e.g. "nl") as a full filename.

Improve logging, call the "other" overload with the right parameters
and drop the not-needed ones.

FIXES #1961
2022-05-29 00:55:35 +02:00
Adriaan de Groot
4a852facb3 [welcome] Use generated about string 2022-05-23 16:57:51 +02:00
Adriaan de Groot
09255a1d9c [libcalamares] Add a more extensible About message
- make the years easier to update without annoying translators
- make the maintainers extensible.
2022-05-23 16:45:23 +02:00
Adriaan de Groot
66682b3e84 Merge branch 'calamares' into work-3.3 2022-05-18 15:13:21 +02:00
Adriaan de Groot
874a0c1f38 CI: apply coding style globally again 2022-05-18 12:44:55 +02:00
dalto
152f99fb07 Remove useless emits 2022-05-13 17:24:07 -05:00
Adriaan de Groot
52e2c8c262 [libcalamares] Use stronger type, rather than comment 2022-05-10 00:30:35 +02:00
Adriaan de Groot
21aa608ce2 Merge branch 'calamares' into work-3.3 2022-05-05 23:35:53 +02:00
Adriaan de Groot
091eb9683b [libcalamares] Give Occitan a native name 2022-05-05 15:23:54 +02:00
Adriaan de Groot
4be25e2f70 [libcalamares] Special-case the regions through the lookup-table as well 2022-05-05 15:20:29 +02:00
Adriaan de Groot
2de7736291 [libcalamares] Replace locale special-cases by a table
Replace the function with a table-driven approach,
since that is somewhat easier to extend to more
languages.
2022-05-05 14:42:12 +02:00
Lt-Henry
a8857e51f4 Improving special-case language detection 2022-05-05 11:12:29 +02:00
Adriaan de Groot
4713f0be42 Merge branch 'calamares' into work-3.3 2022-05-04 11:59:46 +02:00
Adriaan de Groot
1f7b2a3d2d [libcalamares] Remove CommandList destructor
The destructor was just the default one, but declaring it
blocks the default copy constructor.
2022-05-04 11:38:42 +02:00
Adriaan de Groot
792c4914b0 [libcalamares] Compare translation IDs, extend find()
Allow naive comparison of translation IDs (e.g. "ca@valencia"
against other IDs) and make it easier to find one.
2022-05-04 10:35:43 +02:00
Adriaan de Groot
5307976179 [libcalamares] Special-case startup for some languages 2022-05-04 10:10:35 +02:00
Adriaan de Groot
d7459e2bfe CMake: modernize optional parts of libcalamares 2022-04-25 15:23:27 +02:00
Adriaan de Groot
585d06494e CMake: fix linking with modern Python and Boost 2022-04-25 14:47:18 +02:00
Adriaan de Groot
b129cb0786 [libcalamares] Match roles from model to Qt standard roles 2022-04-20 16:25:28 +02:00
Adriaan de Groot
07f4ec529b [libcalamares] Clean up requirements model API
- don't need friends
- made modify-the-model API public where it makes sense
- improve naming
2022-04-20 15:39:53 +02:00
Adriaan de Groot
7e5df42fc0 Merge branch 'issue-1924' into work-3.3
This is a rather clunky implementation of re-check requirements.

"Clunky" because the UI parts are re-created each time, rather
than fishing from a model of checked (or unchecked) requirements.
The Widgets parts should be updated to use a full model, rather
than the recreate-list-of-Widgets implementation they have now.

Unrelated changes pull in a bunch of improvements to the
waiting spinner widget.
2022-04-16 12:34:40 +02:00
Adriaan de Groot
a9e098b0b4 [libcalamares] Allow resetting the requirements model
- When a requirements checker starts, it can reset the model
  to clear it of previous entries.
2022-04-13 17:08:17 +02:00
Adriaan de Groot
bbea67ecb4 [libcalamares] Add an expand() to command lines and lists
- While this is primarily convenient for testing (e.g. checking
  that a command is expanded the way we expect), it simplifies
  some of the code because it's now clear that run() uses an
  expanded copy of the command-list to do the actual work.
2022-04-13 14:08:21 +02:00
Adriaan de Groot
d76dd2f8e0 [libcalamares] Use new expander in CommandList
- This switches @@ROOT@@ for ${ROOT} and uses standard macro-
  expansion mechanisms for the commands; undefined variables
  will be logged as well.
2022-04-12 16:06:42 +02:00
Adriaan de Groot
f923dedc3f [libcalamares] Add a word-expander
This is a variant on KMacroExpander, which allows for
reporting of errors after expansion.
2022-04-12 15:28:07 +02:00
Adriaan de Groot
576f244d2d *: Chase new namespace Calamares::String 2022-04-12 14:15:52 +02:00
Adriaan de Groot
d03a8acc9d [libcalamares] Create namespace Calamares::String
This is a step towards getting rid of CalamaresUtils and
using more structured namespaces overall, e.g. Calamares::String
for things related to string-handling.
2022-04-12 14:14:02 +02:00
Adriaan de Groot
82b5ca8bfc Merge branch 'calamares' into work-3.3 2022-04-12 12:44:39 +02:00
vt
73462d9214 [libcalamares] Fix file-reading from target system
readTargetFile was not fully reading files because of an incorrect
EOF check. This could cause /etc/openswap.conf files to be
truncated and hibernation to fail on installed systems.
2022-04-10 19:36:38 -04:00
Adriaan de Groot
9e4b2d14cb [libcalamares] Add a path parameter when creating descriptors
This allows us to print the path of a descriptor file in
error messages, which in turn makes it easier to find
problems with the descriptor files.
2022-03-28 12:29:47 +02:00
Adriaan de Groot
ec3282e15d [libcalamares] Allow checking a Once object for repeat messages 2022-03-28 12:28:07 +02:00
Adriaan de Groot
f888cb87d1 [libcalamares] Start deprecating signed sizes 2022-03-22 15:23:24 +01:00
Adriaan de Groot
97031ea3e6 [libcalamares] The amount of memory in the system cannot be negative 2022-03-22 15:23:24 +01:00
Adriaan de Groot
99b19b9539 [libcalamares] Always log to file, sometimes to terminal 2022-03-22 12:54:54 +01:00
Adriaan de Groot
aedb55ea36 [partition] Require modern KPMCore 2022-03-21 23:44:20 +01:00
Adriaan de Groot
49c56add7d Merge branch 'calamares' into work-3.3 2022-03-21 23:21:54 +01:00
Adriaan de Groot
7aafeec2cb [libcalamares] Fix entry-format, it was totally bogus 2022-03-01 16:14:45 +01:00
Adriaan de Groot
2f782f18c4 [libcalamares] Fix file reading
- atEnd() doesn't behave as expected
- drop the textstream, not needed
- rename variables to be more descriptive
2022-03-01 16:13:25 +01:00
Adriaan de Groot
60630efa6a [partition] Log DBus calls and switch to blocking calls to ensure they happen 2022-03-01 14:03:04 +01:00
Adriaan de Groot
c5fec83f64 [libcalamares] Fix typo 2022-02-28 11:30:36 +01:00
Adriaan de Groot
f2a6736883 [libcalamares] More chatty when DBus fails 2022-02-28 11:29:45 +01:00
Adriaan de Groot
5b40f17b9c [libcalamares] Prep-work for supporting non-Solid automounting 2022-02-28 11:26:57 +01:00
Adriaan de Groot
7f14aa6bf1 [libcalamares] Avoid warnings about KPMCore headers 2022-02-08 16:35:23 +01:00