Commit Graph

2161 Commits

Author SHA1 Message Date
Teo Mrnjavac
27328a720b Get new locale name in retranslate function. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
b1c67f429f Update headers. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
f4696f22a1 Pass locale name to PythonQt module. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
99ca3d768d Expose translator locale name. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
0c36de68ff Attach retranslator to base widget of ViewStep. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
3143015440 PEP fix. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
e541dbfbea React to retranslate call. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
9923e8504d Nicer strings. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
d3845144bb Start from empty str for entry point annotation. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
46787222c9 Fix ifdefs for WITH_PYTHONQT. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0d6daf11b5 Update dummypythonqt to test PythonQt jobs. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
ca7728cd34 Implement PythonQtViewStep::jobs as a wrapper for Python-provided jobs. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
d425f71fdb Build it. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
aad1c536d1 New PythonQtJob class. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
3170067089 Make JobResult inheritable and remove obsolete Status enum. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
f3fa124f8d Set configuration map in PythonQt module. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
a3887d268a Expose global_storage and utils as objects in PythonQt.calamares. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
864109fd4e Build them. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
4648f5e8e0 Utils wrapper class, to expose libcalamares.utils under PythonQt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
7791307e1e Wrapper for GlobalStorage, to make it available through PythonQt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
25613d1bef Fix _calamares_module_basewidget check and improve readability. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0f0a6ab18d PythonQtViewStep has no decorator. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
9aefeed648 Expose PythonQt.calamares.global_storage. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
69d870a486 Preliminary work on translations support in dummypythonqt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
b77b4ee7d5 Extend dummypythonqt to test QWidget parenting and QObject::connect. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
a54f217173 Use CalamaresUtils::lookupAndCall in PythonQtViewStep.
This is done to support both Pythonic and Qt style method names, i.e.
both "isNextEnabled" and "is_next_enabled" is ok in a Python module.
Also better documentation in PythonQtViewStep, and stub for
setConfigurationMap.
Finally, proper handling of PythonQtViewStep Python-facing basewidget:
with this change, a call to PQVS::widget() only triggers a widget
relayout if it's necessary, and leaves it alone otherwise.
2016-12-16 17:03:00 +01:00
Teo Mrnjavac
fb9d1fa339 Add PythonQtUtils.{h,cpp} with CalamaresUtils::lookupAndCall. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
9570bd94e8 Nor this. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
869828a557 We don't need this. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
f1d6cc0283 Rewritten dummypythonqt module to work with current API state. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
53f687587b Add support for attaching a Python console in DebugWindow.
Also add support for showing module type/interface.
Also minor layout improvements.
2016-12-16 17:03:00 +01:00
Teo Mrnjavac
c618999418 Properly load new PythonQtViewModule.
Only initialize Python if it's not initialized yet.
Inject @calamares_module decorator to fetch the entry class.
2016-12-16 17:03:00 +01:00
Teo Mrnjavac
2736ad6e09 User-visible Type and Interface strings in Module. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
d526935001 Remove PythonQtConsoleViewStep, which was only there for testing. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
b4002a716a New PythonQtViewStep. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0f734c8c5c Make sure to only call Py_Initialize if Python is not initialized. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
553062fc11 Fix build. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
8a90b89d25 Headers. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
264fb6996f dummypythonqt module for testing purposes. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0a5faa4888 PythonQtConsoleViewStep for testing purposes. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
2c3b56c803 Link against PythonQt; new PythonQtViewModule stub. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
ada620effc Find PythonQt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
8882a477be Do not dereference nullptr. 2016-12-14 09:08:32 +01:00
Teo Mrnjavac
9bff57a60d Provide default for m_writeEtcDefaultKeyboard in KeyboardViewStep. 2016-12-14 09:08:25 +01:00
Teo Mrnjavac
66c578fa8d Write hasInternet to GlobalStorage.
CAL-431 #close
2016-12-14 09:08:15 +01:00
Teo Mrnjavac
32039bd388 Do not LINK_PUBLIC by default. 2016-12-14 09:07:41 +01:00
Teo Mrnjavac
49afe4bc8e Document settings for services module. 2016-12-14 09:02:47 +01:00
Teo Mrnjavac
026fa922d2 Do not dereference nullptr. 2016-12-14 09:02:07 +01:00
Teo Mrnjavac
07de427aab Provide default for m_writeEtcDefaultKeyboard in KeyboardViewStep. 2016-12-14 09:01:56 +01:00
Teo Mrnjavac
163cf52900 Write hasInternet to GlobalStorage.
CAL-431 #close
2016-12-14 09:01:39 +01:00
Teo Mrnjavac
cdf77c8a0d Do not LINK_PUBLIC by default. 2016-12-14 09:01:10 +01:00
Teo Mrnjavac
bbba9e60ee Document settings for services module. 2016-12-14 09:00:35 +01:00
Teo Mrnjavac
457172df66 Do not dereference nullptr. 2016-12-13 12:17:07 +01:00
Teo Mrnjavac
c36b1f66a5 Provide default for m_writeEtcDefaultKeyboard in KeyboardViewStep. 2016-12-13 12:17:07 +01:00
Teo Mrnjavac
f4dc81b0bc Write hasInternet to GlobalStorage.
CAL-431 #close
2016-12-12 13:37:18 +01:00
Bernhard Landauer
a8fe13a6d4 logo padding 2016-12-12 08:28:13 +01:00
Bernhard Landauer
8b2986c80a update logos 2016-12-12 08:24:43 +01:00
Teo Mrnjavac
e2b2d761c2 Do not LINK_PUBLIC by default. 2016-12-07 16:37:29 +01:00
Philip
0bd31b0404 [displaymanager] set_autologin: Unset autologin for sddm when needed 2016-12-06 21:58:30 +01:00
Philip
4666a96b56 [displaymanager] set_autologin: Unset autologin for sddm when needed 2016-12-06 21:57:31 +01:00
Philip
ec44f2e4f4 [users] implement upstream fixes 2016-12-06 21:56:40 +01:00
Teo Mrnjavac
dd035bf151 Document settings for services module. 2016-12-05 17:59:47 +01:00
Kevin Kofler
bc8dd4225a [displaymanager] set_autologin: Unset autologin for sddm when needed
CAL-423 #close
2016-12-03 19:18:41 +01:00
Teo Mrnjavac
45315e6ae9 Improve debug output for bootloader code path. 2016-12-02 18:36:02 +01:00
Teo Mrnjavac
e10034c670 Bump KPMcore requirement. 2016-12-01 19:15:11 +01:00
Kevin Kofler
041db6e3d7 [dracutlukscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg and initramfscfg.
2016-11-25 22:28:44 +01:00
Kevin Kofler
423c7b57e3 [initramfscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg.

I had to create an encrypt_hook_nokey that is a copy of encrypt_hook
without the part that copies the keyfile.
2016-11-25 22:28:33 +01:00
Teo Mrnjavac
e0c5e81b5b Write Btrfs subvolume lines to fstab. 2016-11-25 22:24:57 +01:00
Teo Mrnjavac
84b96b4f18 Special case for Btrfs root: create subvolumes and mount them. 2016-11-25 22:24:53 +01:00
Kevin Kofler
c7d390f864 [dracutlukscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg and initramfscfg.
2016-11-25 22:23:57 +01:00
Kevin Kofler
88d6989c8f [initramfscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg.

I had to create an encrypt_hook_nokey that is a copy of encrypt_hook
without the part that copies the keyfile.
2016-11-25 22:23:45 +01:00
Teo Mrnjavac
8f68f9bdef Write Btrfs subvolume lines to fstab. 2016-11-25 22:22:27 +01:00
Teo Mrnjavac
e3d7180932 Special case for Btrfs root: create subvolumes and mount them. 2016-11-25 22:22:17 +01:00
Teo Mrnjavac
0ad819e301 Make sure we write the inner fs type to globalstorage. 2016-11-25 16:21:25 +01:00
Philip
8e2b041498 [pythonqt] Start from empty str for entry point annotation. 2016-11-22 20:57:24 +01:00
shainer
2759529841 Remove current partition's mountpoint from used list.
This means that when we edit a partition, we don't consider
its current mountpoint invalid because it is already in-use.

We need to do this for both "edit existing partition" and
"edit a partition that we are still creating".
2016-11-20 23:19:33 +00:00
shainer
349470ae71 Check mountpoints when editing a partition too. 2016-11-20 23:06:03 +00:00
shainer
8c1199df2d Check first selection of mountpoint too.
When opening the dialog.
2016-11-20 23:05:44 +00:00
shainer
f51b05e8aa Get the mountpoint from PartitionInfo.
The Partition object includes the root mountpoint in
the partition mountpoint, which is not what we want.
2016-11-20 22:46:28 +00:00
shainer
c8dbeb5341 Avoid creating a new partition with a used mountpoint.
We get the mountpoints already used by other partitions, and
disable the Ok button in the "Create new partition" dialog if
the user selects/writes a mountpoint which is already used.

We are going to do the same in the Edit partition dialog
after testing.
2016-11-20 22:05:55 +00:00
Kevin Kofler
34516e9477 [dracutlukscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg and initramfscfg.
2016-11-19 02:30:34 +01:00
Kevin Kofler
d9840feef9 [initramfscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg.

I had to create an encrypt_hook_nokey that is a copy of encrypt_hook
without the part that copies the keyfile.
2016-11-19 02:13:04 +01:00
Teo Mrnjavac
c0b7b0bc27 Show warning. 2016-11-18 09:06:29 +01:00
Teo Mrnjavac
45e7363dfb Oops. 2016-11-18 09:06:26 +01:00
Teo Mrnjavac
8d93c34031 Warn user about encrypted root with unencrypted /boot. 2016-11-18 09:06:21 +01:00
Teo Mrnjavac
555f0ba6cf Don't include keyfile in initramfs on unencrypted /boot. 2016-11-18 09:06:17 +01:00
Teo Mrnjavac
b513a892af Show warning. 2016-11-18 09:05:53 +01:00
Teo Mrnjavac
2aedea7d5f Oops. 2016-11-18 09:05:40 +01:00
Teo Mrnjavac
d852999cba Warn user about encrypted root with unencrypted /boot. 2016-11-18 09:05:27 +01:00
Teo Mrnjavac
b04dcdc42f Don't include keyfile in initramfs on unencrypted /boot. 2016-11-18 09:05:15 +01:00
Teo Mrnjavac
83b51a5867 Show warning. 2016-11-17 19:03:24 +01:00
Teo Mrnjavac
17fe2d82f4 Oops. 2016-11-17 18:28:58 +01:00
Teo Mrnjavac
a55bef5d2d Warn user about encrypted root with unencrypted /boot. 2016-11-17 18:15:37 +01:00
Teo Mrnjavac
79b0889db7 Don't include keyfile in initramfs on unencrypted /boot. 2016-11-17 18:15:37 +01:00
shainer
e5f5bb99d7 Change the default value of critical to false.
This means all package groups are non-critical by default.
Update documentation accordingly.
2016-11-13 12:12:07 +00:00
shainer
b6d6075213 New example netinstall.yaml, less groups for easier testing. 2016-11-13 10:56:13 +00:00
shainer
5fadd0a3ce New example netinstall.yaml with non-critical group. 2016-11-12 18:08:08 +00:00
shainer
58ae8e13c9 Add support for non-critical groups in netinstall.
Package groups are divided into critical and non-critical
depending on whether we want all Calamares to fail if installing
a package in the group fails, or we are okay with just logging a
warning.

The distinction is configured in the YAML file listing the package
groups. By default, all groups are critical, to keep supporting
the previous behaviour.
2016-11-12 17:57:58 +00:00
Teo Mrnjavac
a9d8107b3b Write Btrfs subvolume lines to fstab. 2016-11-11 16:47:08 +01:00
Teo Mrnjavac
e9ecb64a36 Special case for Btrfs root: create subvolumes and mount them. 2016-11-11 16:47:08 +01:00
Philip
e8f694fe02 [partition] Bump kpmcore requirements 2016-11-09 08:47:27 +01:00
Philip
b95503065f [mount] Bind-mount /run/udev in the chroot by default 2016-11-09 07:40:34 +01:00
Philip
433d6ded6d [mount] Bind-mount /run/udev in the chroot by default 2016-11-09 07:39:58 +01:00
Teo Mrnjavac
93cf5acea4 Bind-mount /run/udev in the chroot by default.
NOTE: this is absolutely necessary for grub-mkconfig's os-prober
instance to work.
2016-11-08 11:18:19 +01:00
Philip
d698b98988 Modifications
-  [welcome] Use QNetworkAccessManager in checkHasInternet
-  [bootloader] Fix UEFI firmware workaround for 32-bit UEFI
2016-11-06 08:51:03 +01:00
Philip
2e9fe3f185 Modifications
-  [welcome] Use QNetworkAccessManager in checkHasInternet
-  [bootloader] Fix UEFI firmware workaround for 32-bit UEFI
2016-11-06 08:49:45 +01:00
Kevin Kofler
4f11faea52 [bootloader] Fix UEFI firmware workaround for 32-bit UEFI.
On 32-bit UEFI (note that the bitness of the firmware is what matters
here, not the bitness of the distribution), instead of copying
grubx64.efi to bootx64.efi, copy grubia32.efi to bootia32.efi.

Patch by TeHMoroS from SparkyLinux.

CAL-403 #close
2016-11-06 03:38:34 +01:00
Kevin Kofler
f08739cd15 [welcome] Use QNetworkAccessManager in checkHasInternet.
Use QNetworkAccessManager instead of raw QtDBus queries to
NetworkManager in RequirementsChecker::checkHasInternet(). This is much
simpler (i.e., less error-prone) and should be more portable (to, e.g.,
ConnMan).
2016-11-05 22:11:57 +01:00
Philip
e21338d81e Modifications
- [bootloader] Fix vfat_correct_case
- [welcome] Fix RequirementsChecker::checkHasInternet()
2016-11-05 22:02:41 +01:00
Philip
c8f1134196 Modifications
- [bootloader] Fix vfat_correct_case
- [welcome] Fix RequirementsChecker::checkHasInternet()
2016-11-05 22:01:44 +01:00
Kevin Kofler
6eb512ab49 [welcome] Fix RequirementsChecker::checkHasInternet().
The NetworkManager property is called "State", not "state". The call
was always failing, and the method was always returning true as a
result.
2016-11-05 20:34:13 +01:00
Kevin Kofler
62bded1447 [bootloader] Fix vfat_correct_case.
If the directory already existed, vfat_correct_case was returning only
the last part rather than the full path as it is supposed to.
2016-11-05 17:41:38 +01:00
Philip
e91be5bd12 v2.4.4
- [partition] remove sgdisk dependency
- [displaymanager] use configparser and add better autologin handling
- [displaymanager] set a preferred Xsession for autologin
- [netinstall] Support selecting visible groups by default
- [packages] Add option of updating packages db before perfoming package operations
- [packages] Allow try_install and try_remove entries in packages module
- [unpackfs] Do not fail if rsync returns exit code 23
2016-11-05 09:55:37 +01:00
Kevin Kofler
35f098e04a [unpackfs] Do not fail if rsync returns exit code 23.
Unfortunately, rsync returns exit code 23 (Partial transfer due to
error) if it cannot write extended attributes (with -X) because the
target file system does not support it, e.g., the FAT EFI system
partition. We need -X because distributions using file system
capabilities and/or SELinux require the extended attributes. But
distributions using SELinux may also have SELinux labels set on files
under /boot/efi, and rsync complains about those. The only clean way
would be to split the rsync into one with -X and --exclude /boot/efi and
a separate one without -X for /boot/efi, but only if /boot/efi is
actually an EFI system partition. For now, this hack will have to do.

See also:
https://bugzilla.redhat.com/show_bug.cgi?id=868755#c50
for the same issue in Anaconda, which uses a similar workaround.
2016-11-05 09:25:59 +01:00
Kevin Kofler
0131d7fbf1 [unpackfs] Do not fail if rsync returns exit code 23.
Unfortunately, rsync returns exit code 23 (Partial transfer due to
error) if it cannot write extended attributes (with -X) because the
target file system does not support it, e.g., the FAT EFI system
partition. We need -X because distributions using file system
capabilities and/or SELinux require the extended attributes. But
distributions using SELinux may also have SELinux labels set on files
under /boot/efi, and rsync complains about those. The only clean way
would be to split the rsync into one with -X and --exclude /boot/efi and
a separate one without -X for /boot/efi, but only if /boot/efi is
actually an EFI system partition. For now, this hack will have to do.

See also:
https://bugzilla.redhat.com/show_bug.cgi?id=868755#c50
for the same issue in Anaconda, which uses a similar workaround.
2016-11-04 01:37:08 +01:00
Teo Mrnjavac
2bc12b80cc Allow try_install and try_remove entries in packages module. 2016-11-03 18:04:38 +01:00
Teo Mrnjavac
d4bdef0be3 Add option of updating packages db before perfoming package operations. 2016-11-03 18:04:28 +01:00
Kevin Kofler
f43c600adc [netinstall] Support selecting visible groups by default.
In other words, support:
  hidden: false
  selected: true
groups.

This was supposed to work according to README.md, but not actually
implemented. Now it should be working.
2016-11-03 18:04:15 +01:00
Teo Mrnjavac
c4df69b4a7 Allow try_install and try_remove entries in packages module. 2016-11-02 17:00:45 +01:00
Teo Mrnjavac
b272917e83 Add option of updating packages db before perfoming package operations. 2016-11-02 13:04:11 +01:00
Rohan Garg
d67fdccd4c Make sure we also set a preferred Xsession 2016-11-02 09:51:27 +01:00
Kevin Kofler
075577d948 [netinstall] Support selecting visible groups by default.
In other words, support:
  hidden: false
  selected: true
groups.

This was supposed to work according to README.md, but not actually
implemented. Now it should be working.
2016-11-02 05:58:00 +01:00
Philip
b7c121de9c [users] add missing images 2016-11-01 05:52:58 +01:00
Philip
09f6392173 [users] enhance dialog
- multiple users management.
- ability to set different shells based on configuration.
- ability to select avatars from files and then copy them to a target location in the user's home directory. No specific location suggested due to differences between DEs on where to read avatars from.
2016-11-01 05:42:56 +01:00
Philip
0b4f015d3a [displaymanager] set a preferred Xsession for autologin 2016-11-01 05:28:39 +01:00
Philip
0ceadc2b95 [displaymanager] use configparser and add better autologin handling 2016-10-31 18:02:50 +01:00
Rohan Garg
662656a762
Better handling for when the Autologin section already has things 2016-10-31 17:55:59 +01:00
Philip
e2f26467ab [libcalamaresui] try with upstream fix 2016-10-31 17:55:19 +01:00
Rohan Garg
f7ac1a3ede Use configparser to parse sddm.conf
Since sddm.conf follows the INI format we can use configparser
with a few added options to properly parse the config and write
it out instead of manually parsing each line which is slow and
prone to error.

For eg. The old code would fail to parse a conf which had no
commented out User key but where the user had configured autologin
in Calamares.
2016-10-31 17:10:46 +01:00
Philip
5bbb71e90e [libcalamaresui] try to fix issue with ‘pythonConsoleButton’ not declared in this scope 2016-10-31 11:57:23 +01:00
Philip
f42e904dba [partition] remove sgdisk dependency 2016-10-31 11:06:04 +01:00
Philip
4752f70809 Merge pythonqt branch 2016-10-31 07:45:35 +01:00
Kevin Kofler
1548fe4810 [partition] Use FlagEsp instead of sgdisk to scan for ESPs.
Address an old FIXME in
PartitionCoreModule::scanForEfiSystemPartitions(): Check the FlagEsp on
the Partition object (that KPMcore has been supporting since 2.1.0)
instead of running sgdisk.
2016-10-29 01:09:14 +02:00
Kevin Kofler
5377003f89 Set the ESP flag in partition rather than bootloader.
The manual partitioning setup was already requiring the user to check
the ESP flag for the EFI System Partition. Now the autopartitioning also
sets it directly (a one-line change). The sgdisk call in the bootloader
module is thus no longer necessary (it was only a workaround because
kpmcore < 2.1.0 did not support FlagEsp), so remove that snippet.

This fixes configurations such as NVME disks where splitting boot_device
into boot_device[-1:] and boot_device[:-1] is not the correct split
(because the partition gets a 2-letter suffix) (reported by demmm on
IRC).
2016-10-29 00:52:38 +02:00
Kevin Kofler
ff7cf9b9ec New dummycpp C++ job module (ported from dummypython). 2016-10-28 21:02:30 +02:00
Kevin Kofler
7264c9dcbf Add support for C++/Qt batch job plugins
These job plugins work similarly to view modules, with the following
differences:

* These jobs need to link only libcalamares, not libcalamaresui. For
  this reason, PluginFactory was moved from libcalamaresui to
  libcalamares. (It depends only on QtCore.)

* Instead of deriving from ViewModule, derive from CppJob (which is a
  subclass of Job).

* Like process and Python jobs, a job plugin is a single job, whereas a
  ViewModule can generate a whole list of jobs.

The CppJob and CppJobModule classes are new. In Module::fromDescriptor,
the combination type=job, intf=qtplugin is now supported and mapped to
CppJobModule.
2016-10-28 21:02:19 +02:00
Kevin Kofler
9ae4755b1c New dummycpp C++ job module (ported from dummypython). 2016-10-28 20:57:32 +02:00
Kevin Kofler
206a89e06c Add support for C++/Qt batch job plugins
These job plugins work similarly to view modules, with the following
differences:

* These jobs need to link only libcalamares, not libcalamaresui. For
  this reason, PluginFactory was moved from libcalamaresui to
  libcalamares. (It depends only on QtCore.)

* Instead of deriving from ViewModule, derive from CppJob (which is a
  subclass of Job).

* Like process and Python jobs, a job plugin is a single job, whereas a
  ViewModule can generate a whole list of jobs.

The CppJob and CppJobModule classes are new. In Module::fromDescriptor,
the combination type=job, intf=qtplugin is now supported and mapped to
CppJobModule.
2016-10-28 20:55:50 +02:00
Teo Mrnjavac
19e41a3c71 Only add LUKS keyfile if relevant, and with a 15s timeout. 2016-10-28 20:52:20 +02:00
Teo Mrnjavac
a2c7256406 Add user to groups separately from useradd. 2016-10-28 20:51:03 +02:00
Philip
381f3e9bb3 Revert "Improve user-visible strings in SetPartFlagsJob."
This reverts commit fbe72b3663.
2016-10-28 20:50:10 +02:00
Teo Mrnjavac
5e81ddecad Only add LUKS keyfile if relevant, and with a 15s timeout. 2016-10-28 20:47:09 +02:00
Teo Mrnjavac
9a643431dd Improve user-visible strings in SetPartFlagsJob. 2016-10-28 20:46:56 +02:00
Teo Mrnjavac
c61e53edf7 Add user to groups separately from useradd. 2016-10-28 20:46:32 +02:00
Teo Mrnjavac
4488761a63 Only add LUKS keyfile if relevant, and with a 15s timeout. 2016-10-28 10:17:39 +02:00
Teo Mrnjavac
fbe72b3663 Improve user-visible strings in SetPartFlagsJob. 2016-10-28 09:24:00 +02:00
Teo Mrnjavac
de979f8528 Add user to groups separately from useradd. 2016-10-27 15:26:20 +02:00
Philip
37df041b9c [displaymanager] use same pattern for all str.format calls 2016-10-26 22:14:00 +02:00
Bernhard Landauer
b293f0320d [displaymanager] add Deepin 2016-10-26 22:13:58 +02:00
Philip
f71602ec6c [displaymanager] use same pattern for all str.format calls 2016-10-26 22:13:38 +02:00
Bernhard Landauer
811b1422e9 [displaymanager] add Deepin 2016-10-26 22:13:26 +02:00
Philip
22cf2c16a2 [displaymanager] use same pattern for all str.format calls 2016-10-26 21:40:14 +02:00
Bernhard Landauer
c99cdc0fa7 [displaymanager] add Deepin 2016-10-26 03:56:03 +02:00
Philip
e1d72552db [branding] bump to 16.10 2016-10-22 11:21:52 +02:00
Kevin Kofler
9d2291b74e [grubcfg] Compare integers to integers, not strings.
target_env_call returns an integer, so do not compare its result to the
string "0".
2016-10-22 11:21:41 +02:00
V3n3RiX
a279eaf4fa dracut : unlock encrypted swap if exists (#267)
* dracut : unlock encrypted swap if exists
* only check for swap_outer_uuid if dracut exists
2016-10-22 11:21:31 +02:00
V3n3RiX
e0dc6e03fd Only write rd.luks.uuid if dracut is present and leave other initramfs generators clean (#266)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo

* only write rd.luks.uuid line if dracut is present, and leave other initramfs generators alone :D

* add missing = operator
2016-10-22 11:21:19 +02:00
V3n3RiX
f5793a760d add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut… (#265)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo
2016-10-22 11:21:10 +02:00
Kevin Kofler
4a88223f6d [dracutlukscfg] New module: pre-configuration for dracut+LUKS. 2016-10-22 11:21:02 +02:00
Kevin Kofler
4a7c469f96 [grubcfg] Fix mismatched quoting and escaping.
If we use .replace("'", "'\\''") for escaping, we also need to use
single quotes, not double quotes.

This was broken by the port from '%' to format, which also randomly
changed quoting characters for no good reason. Changing the outer ones
does not matter, but \" or ' within a string is not the same thing!
2016-10-22 11:20:54 +02:00
David McKinney
af8b0e84a4 [initramfscfg] New module: pre-configuration for update-initramfs.
Added an initramfscfg module to handle pre-configuration for the Debian
update-initramfs, such as installing hooks (needed for luks/FDE support
on Debian-based distros).

Closes #254. (Cherry-picked from the pull request.)
2016-10-22 11:20:37 +02:00
Philip
3a5cb47081 [branding] bump to 16.10 2016-10-22 11:08:35 +02:00
Kevin Kofler
c0898c308b [grubcfg] Compare integers to integers, not strings.
target_env_call returns an integer, so do not compare its result to the
string "0".
2016-10-22 11:06:55 +02:00
V3n3RiX
4a35035396 dracut : unlock encrypted swap if exists (#267)
* dracut : unlock encrypted swap if exists
* only check for swap_outer_uuid if dracut exists
2016-10-22 11:06:42 +02:00
V3n3RiX
93ecf0d44d Only write rd.luks.uuid if dracut is present and leave other initramfs generators clean (#266)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo

* only write rd.luks.uuid line if dracut is present, and leave other initramfs generators alone :D

* add missing = operator
2016-10-22 11:06:31 +02:00
V3n3RiX
601f61fefa add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut… (#265)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo
2016-10-22 11:06:14 +02:00
Kevin Kofler
645ba95989 [dracutlukscfg] New module: pre-configuration for dracut+LUKS. 2016-10-22 11:05:27 +02:00
Kevin Kofler
b1169dc48c [grubcfg] Fix mismatched quoting and escaping.
If we use .replace("'", "'\\''") for escaping, we also need to use
single quotes, not double quotes.

This was broken by the port from '%' to format, which also randomly
changed quoting characters for no good reason. Changing the outer ones
does not matter, but \" or ' within a string is not the same thing!
2016-10-22 11:00:54 +02:00
David McKinney
1b8b5aab13 [initramfscfg] New module: pre-configuration for update-initramfs.
Added an initramfscfg module to handle pre-configuration for the Debian
update-initramfs, such as installing hooks (needed for luks/FDE support
on Debian-based distros).

Closes #254. (Cherry-picked from the pull request.)
2016-10-22 11:00:20 +02:00
Kevin Kofler
668284f5f1 [grubcfg] Compare integers to integers, not strings.
target_env_call returns an integer, so do not compare its result to the
string "0".
2016-10-21 00:19:22 +02:00
V3n3RiX
11c9e87fd0 dracut : unlock encrypted swap if exists (#267)
* dracut : unlock encrypted swap if exists
* only check for swap_outer_uuid if dracut exists
2016-10-20 17:00:15 +02:00
V3n3RiX
0bde162a9c Only write rd.luks.uuid if dracut is present and leave other initramfs generators clean (#266)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo

* only write rd.luks.uuid line if dracut is present, and leave other initramfs generators alone :D

* add missing = operator
2016-10-19 17:41:35 +02:00
V3n3RiX
7e74d48fb6 add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut… (#265)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo
2016-10-18 18:59:51 +02:00
Kevin Kofler
d5dfe86525 [dracutlukscfg] New module: pre-configuration for dracut+LUKS.
Add a dracutlukscfg module to write a
/etc/dracut.conf.d/calamares-luks.conf file for LUKS full disk
encryption support with Dracut.

You should run:

* partition
* luksbootkeyfile
* dracutlukscfg
* dracut

in that order (not necessarily in immediate sequence). The
luksopenswaphook module is not used with Dracut.
2016-10-16 19:08:16 +02:00
Kevin Kofler
2573731cdb [grubcfg] Fix mismatched quoting and escaping.
If we use .replace("'", "'\\''") for escaping, we also need to use
single quotes, not double quotes.

This was broken by the port from '%' to format, which also randomly
changed quoting characters for no good reason. Changing the outer ones
does not matter, but \" or ' within a string is not the same thing!
2016-10-16 18:44:22 +02:00
Philip
87006eaa20 [services] proper DM check 2016-10-15 09:41:10 +02:00
Philip
9d18fb1ece [services] don't configure DM if already configured 2016-10-14 18:55:02 +02:00
Teo Mrnjavac
499fd513b4 Use the target system's boot name in partitioning summary widget. 2016-10-14 18:37:35 +02:00
Kevin Kofler
eb6bb49d5a [fstab] Write configurable options to crypttab (default: luks).
fstab.conf: Add a new "crypttabOptions" option that defaults to "luks".
            Document that for Debian and Debian-based distributions, the
            setting should be changed to "luks,keyscript=/bin/cat".

main.py: Append the options from the above setting to the end of every
         line in crypttab.

At least the "luks" option should always be there, because there may be
different encryption types. The Debian initramfs-tools also require the
Debian-specific keyscript option and will otherwise ignore the keyfile
entirely (see pull request #254).
2016-10-14 18:37:19 +02:00
Kevin Kofler
17c0dd08c7 [fstab] Do not omit "/" from crypttab.
At least the Debian update-initramfs needs the entry to be there (see
pull request #254). Dracut will probably need it too. And logically, it
should be there.
2016-10-14 18:37:09 +02:00
Teo Mrnjavac
130eb43b26 Use the target system's boot name in partitioning summary widget. 2016-10-14 18:21:52 +02:00
Kevin Kofler
9a5221bbd8 [fstab] Write configurable options to crypttab (default: luks).
fstab.conf: Add a new "crypttabOptions" option that defaults to "luks".
            Document that for Debian and Debian-based distributions, the
            setting should be changed to "luks,keyscript=/bin/cat".

main.py: Append the options from the above setting to the end of every
         line in crypttab.

At least the "luks" option should always be there, because there may be
different encryption types. The Debian initramfs-tools also require the
Debian-specific keyscript option and will otherwise ignore the keyfile
entirely (see pull request #254).
2016-10-14 18:21:20 +02:00
Kevin Kofler
fce053439c [fstab] Do not omit "/" from crypttab.
At least the Debian update-initramfs needs the entry to be there (see
pull request #254). Dracut will probably need it too. And logically, it
should be there.
2016-10-14 18:21:05 +02:00
Teo Mrnjavac
6e7dc0b437 Use the target system's boot name in partitioning summary widget. 2016-10-14 15:27:24 +02:00
David McKinney
b63ab4df15 [initramfscfg] New module: pre-configuration for update-initramfs.
Added an initramfscfg module to handle pre-configuration for the Debian
update-initramfs, such as installing hooks (needed for luks/FDE support
on Debian-based distros).

Closes #254. (Cherry-picked from the pull request.)
2016-10-13 19:20:20 +02:00
Kevin Kofler
0876af63d0 [fstab] Write configurable options to crypttab (default: luks).
fstab.conf: Add a new "crypttabOptions" option that defaults to "luks".
            Document that for Debian and Debian-based distributions, the
            setting should be changed to "luks,keyscript=/bin/cat".

main.py: Append the options from the above setting to the end of every
         line in crypttab.

At least the "luks" option should always be there, because there may be
different encryption types. The Debian initramfs-tools also require the
Debian-specific keyscript option and will otherwise ignore the keyfile
entirely (see pull request #254).
2016-10-13 19:01:13 +02:00
Kevin Kofler
4d28544e6f [fstab] Do not omit "/" from crypttab.
At least the Debian update-initramfs needs the entry to be there (see
pull request #254). Dracut will probably need it too. And logically, it
should be there.
2016-10-13 18:44:07 +02:00
Kevin Kofler
b6f8d6ae92 users: Drop dependency on chfn. (#260)
Pass the full name directly to useradd instead, using the "-c" (comment)
parameter, which is "currently used as the field for the user's full
name" according to the documentation.

The chfn utility is no longer installed by default on current Fedora
releases due to its dependency on libuser. (They split out chfn and chsh
from util-linux into an optional subpackage.) It could be added as a
dependency of Calamares, but since it is needed inside the chroot, it
has to be on the base live image, not the overlay. Thus, to allow
testing Calamares with a simple "dnf install calamares" again, the
dependency needs to go away. And it is unnecessary anyway.
2016-09-28 21:24:36 +02:00
Kevin Kofler
3edf1bb162 Fix locale filtering for UTF-8 on Fedora.
locale -a returns the locales using ".utf8" names rather than ".UTF-8".
The case-insensitive match does not help because it is "utf8" rather
than "UTF-8". So we need to match both with and without the dash.
2016-09-28 21:22:10 +02:00
Teo Mrnjavac
2a74fc423f Make writeEtcDefaultKeyboard an option in keyboard.conf. 2016-09-28 21:22:07 +02:00
Teo Mrnjavac
431e6b8c03 Allow disabling automated LUKS modes. 2016-09-28 21:22:04 +02:00
Teo Mrnjavac
11dd15f123 Allow disabling automated LUKS modes. 2016-09-28 21:20:13 +02:00
Teo Mrnjavac
36a96fedfb Make writeEtcDefaultKeyboard an option in keyboard.conf. 2016-09-28 21:19:56 +02:00
Kevin Kofler
a37896da49 Fix locale filtering for UTF-8 on Fedora.
locale -a returns the locales using ".utf8" names rather than ".UTF-8".
The case-insensitive match does not help because it is "utf8" rather
than "UTF-8". So we need to match both with and without the dash.
2016-09-28 21:19:40 +02:00
Kevin Kofler
97b06e3101 users: Drop dependency on chfn. (#260)
Pass the full name directly to useradd instead, using the "-c" (comment)
parameter, which is "currently used as the field for the user's full
name" according to the documentation.

The chfn utility is no longer installed by default on current Fedora
releases due to its dependency on libuser. (They split out chfn and chsh
from util-linux into an optional subpackage.) It could be added as a
dependency of Calamares, but since it is needed inside the chroot, it
has to be on the base live image, not the overlay. Thus, to allow
testing Calamares with a simple "dnf install calamares" again, the
dependency needs to go away. And it is unnecessary anyway.
2016-09-28 21:16:52 +02:00
udeved
9fe9320555 services: enable displaymanager via globalstorage 2016-09-27 19:28:31 +02:00
Kevin Kofler
0ae41dd286 New dummycpp C++ job module (ported from dummypython). 2016-09-27 17:25:09 +02:00
Kevin Kofler
00d9f211f5 Add support for C++/Qt batch job plugins
These job plugins work similarly to view modules, with the following
differences:

* These jobs need to link only libcalamares, not libcalamaresui. For
  this reason, PluginFactory was moved from libcalamaresui to
  libcalamares. (It depends only on QtCore.)

* Instead of deriving from ViewModule, derive from CppJob (which is a
  subclass of Job).

* Like process and Python jobs, a job plugin is a single job, whereas a
  ViewModule can generate a whole list of jobs.

The CppJob and CppJobModule classes are new. In Module::fromDescriptor,
the combination type=job, intf=qtplugin is now supported and mapped to
CppJobModule.
2016-09-27 17:25:09 +02:00
Teo Mrnjavac
5796b05fda Allow disabling automated LUKS modes. 2016-09-26 13:14:54 +02:00
Teo Mrnjavac
5bf4bb8787 Make writeEtcDefaultKeyboard an option in keyboard.conf. 2016-09-26 10:57:57 +02:00