Kevin Kofler
e7d0f205a4
locale: Support distributions without locale-gen.
...
If /etc/locale.gen (or the configured localeGenPath) does not exist,
assume that all the supported languages are already built into the
locale archive, and retrieve the list from "locale -a".
The list will then contain lines with only the locale rather than
locale + space + encoding, but that should not affect any of the rest of
the code. UTF-8 locales will still contain the string "UTF-8" (as part
of the ".UTF-8" suffix), we will not write a locale.gen file if we don't
have locale-gen, and everything else just strips away the encoding.
2014-11-25 20:03:37 +01:00
Kevin Kofler
440b38addf
locale: Optimize guessLCLocale by moving function calls out of loops.
2014-11-25 19:44:16 +01:00
Kevin Kofler
bcbe5103b9
locale: Don't assume 2-letter language codes.
...
Some languages have 3-letter codes. So instead of splitting the output
of QLocale::name, use QLocale::language and the static
QLocale::languageToString.
2014-11-25 19:41:01 +01:00
Teo Mrnjavac
d2288d0961
Write lc locale setting from GlobalStorage.
2014-11-25 17:56:38 +01:00
Teo Mrnjavac
6049267cf6
Load lcLocale value into GlobalStorage. Also allow localeGenPath setting
...
in locale.conf.
2014-11-25 17:43:12 +01:00
Teo Mrnjavac
2ca58c6f91
Massive cleanup in LocalePage. Add LCLocale setting, with autodetect.
2014-11-25 17:41:27 +01:00
Teo Mrnjavac
100f08518b
Build LCLocale dialog.
2014-11-25 17:40:38 +01:00
Teo Mrnjavac
ddfb8dfbc5
Add relevant strings.
2014-11-25 17:40:24 +01:00
Teo Mrnjavac
6cb072acc4
New LC LOCALE picker dialog.
2014-11-25 17:40:24 +01:00
Teo Mrnjavac
da0afd6e55
Better error reporting in CreatePartitionTableJob.cpp
2014-11-23 11:46:45 +01:00
Teo Mrnjavac
0d64c849fd
Unbreak build. Sorry.
2014-11-20 17:21:10 +01:00
Teo Mrnjavac
0d89ba761a
Uic in GreetingPage.
2014-11-20 10:04:10 +01:00
Teo Mrnjavac
01c3244396
Merge pull request #155 from calamares/fix-issue-128
...
grubcfg: Create /etc/default/grub if missing.
2014-11-19 17:20:06 +01:00
Kevin Kofler
ab4d31f1a6
bootloader: Allow overriding the bootloaderEntryName setting.
...
Allow setting bootloaderEntryName in bootloader.conf. If not specified
there, the setting will be taken from branding.desc.
2014-11-19 17:01:02 +01:00
Kevin Kofler
462819060b
branding: Add a dedicated bootloaderEntryName setting.
...
Use it in the bootloader and grubcfg modules instead of
shortProductName.
2014-11-19 16:50:15 +01:00
Kevin Kofler
4df754ef29
Move detect_firmware_type to the prepare module.
...
This avoids the duplication between the bootloader and grub modules.
2014-11-19 13:58:18 +01:00
Kevin Kofler
930a49677a
grub/test.yaml: Define the shortProductName.
2014-11-18 20:56:41 +01:00
Kevin Kofler
132628c175
grub: Add EFI support.
...
Fixes #110 .
This is based on Daniel Hillenbrand's submissions, but it makes the same
adjustments already done in the bootloader module that's already merged:
* Put detect_firmware_type into the grub module itself until a better
place is found.
* Get the distribution name from the branding configuration and use the
file_name_sanitizer on it.
* Get the grub-install executable name from the module configuration.
It also fixes a Python syntax error in the original submission.
2014-11-18 20:51:26 +01:00
Teo Mrnjavac
fb37a0bf2f
Fix focus in UsersPage.
2014-11-18 15:57:07 +01:00
Kevin Kofler
1499963920
grubcfg: Create /etc/default/grub if missing.
...
Also adds a grubcfg.conf with the following settings:
* overwrite: If set to true, always creates /etc/default/grub from
scratch even if the file already existed. If set to false, edits the
existing file instead. The default is "false".
* defaults: Default entries to write to /etc/default/grub if it does not
exist yet or if we are overwriting it. Note that in addition,
GRUB_CMDLINE_LINUX_DEFAULT and GRUB_DISTRIBUTOR will always be
written, with automatically detected values. The default in the code
is empty. The shipped grubcfg.conf currently reproduces the default
settings from the Fedora installer Anaconda.
Fixes #128 .
2014-11-18 04:33:39 +01:00
Kevin Kofler
d5b95d79e5
grubcfg: Handle the case where expected lines are missing.
...
Check whether we actually had a GRUB_CMDLINE_LINUX_DEFAULT and a
GRUB_DISTRIBUTOR line, add any of them if it was missing.
2014-11-18 03:40:47 +01:00
Kevin Kofler
f58cca1bb2
grubcfg: Don't error if /etc/default is missing.
...
It is created later in the function.
2014-11-18 03:38:20 +01:00
Kevin Kofler
5cae4e0632
partition: Don't assume that an unknown OS is Windows 7.
...
Don't talk about "Windows 7 programs, documents, photos, music, and
other files" when we actually have no idea what the other operating
system is or when there are multiple ones.
2014-11-18 02:48:58 +01:00
Kevin Kofler
75921ec125
bootloader/test.yaml: Define the shortProductName.
2014-11-16 15:05:00 +01:00
Kevin Kofler
48eca95a26
grubcfg: Use shortProductName.
...
This is particularly useful if the full product name contains
"GNU/Linux" or "Linux", because e.g. "Generic GNU/Linux GNU/Linux" does
not make sense.
2014-11-16 05:18:11 +01:00
Kevin Kofler
e420341ba6
bootloader: Use shortProductName.
...
This is particularly useful if the full product name contains
"GNU/Linux" or "Linux", because e.g. "Generic GNU/Linux GNU/Linux" does
not make sense.
2014-11-16 05:17:06 +01:00
Kevin Kofler
cde7356f0d
grubcfg: Quote the GRUB_DISTRIBUTOR value.
2014-11-16 04:58:00 +01:00
Kevin Kofler
76450b44a3
bootloader: Ensure that the file names are valid.
...
Change any '/' slashes to '-' dashes. Also change spaces to underscores
while we are at it.
2014-11-16 04:56:11 +01:00
Kevin Kofler
8f5b0585cb
grubcfg: Get the distribution name from the branding.
...
Remove the redundant "distributor" setting from grubcfg.conf (and the
entire grubcfg.conf file that has no settings left for now).
2014-11-16 04:33:27 +01:00
Kevin Kofler
3cf5baadc1
bootloader: Get the distribution name from the branding.
...
Remove the redundant "distribution" setting from bootloader.conf.
2014-11-16 04:26:51 +01:00
Teo Mrnjavac
78de47eb8c
Retranslate Users module.
2014-11-13 17:42:02 +01:00
Teo Mrnjavac
ecc2d27a18
Merge pull request #151 from calamares/localecfg
...
adding localecfg
2014-11-13 17:34:07 +01:00
Rohan Garg
60eb9cfae6
Use the correct file to write things into
2014-11-13 17:08:46 +01:00
Teo Mrnjavac
0f9496babe
Finish up retranslation in PreparePage.
2014-11-13 16:52:32 +01:00
Teo Mrnjavac
280baf7326
Move PrepareCheckWidget text out of ctor.
2014-11-13 16:52:32 +01:00
Teo Mrnjavac
9b2dfdf1ec
Use Retranslator in Prepare module (partial).
2014-11-13 16:52:32 +01:00
demmm
ff1383d7f5
adding localecfg
...
locale hardcoded to en_US until local globalstorage is available
run pep8 on bootloader main.py, plain switch from subprocess to chroot_call fails for gummiboot call
2014-11-12 23:10:20 -05:00
Kevin Kofler
7e1ec78d35
grub, bootloader: Make the grub-* and /boot/grub names configurable.
...
Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
Fixes #123 .
2014-11-13 00:19:24 +01:00
Rohan Garg
d9187c25c7
check_chroot_call does not actually return a error code, use chroot_call
...
instead.
Thanks to Kevin Kofler for pointing this out.
2014-11-12 18:54:26 +01:00
Rohan Garg
1f6feb9417
Make sure we return a message when dracut or initramfs fail
2014-11-12 17:05:06 +01:00
Teo Mrnjavac
388363c1f2
Merge pull request #148 from calamares/gummibot
...
make gummiboot kernel/distro agnostic
2014-11-12 12:17:32 +01:00
Teo Mrnjavac
faa77d7f5e
Use Retranslator in Partitioning module.
2014-11-11 17:09:33 +01:00
Teo Mrnjavac
688cc8f798
Use Retranslator in KeyboardPage.
2014-11-11 15:46:49 +01:00
Rohan Garg
fb92697a93
Make sure our return value is correct
2014-11-11 15:33:03 +01:00
Teo Mrnjavac
99114e04d8
Merge pull request #147 from kkofler/fix-issue-31
...
keyboard: Write the keyboard model and layout settings to the root mount point.
2014-11-11 15:23:07 +01:00
Teo Mrnjavac
1d9535053a
Use Retranslator in GreetingPage.
2014-11-11 15:17:46 +01:00
Teo Mrnjavac
e5c3888be2
Allow multiple CALAMARES_RETRANSLATE blocks in the same widget.
2014-11-11 15:12:44 +01:00
Teo Mrnjavac
945b59748a
Add RETRANSLATE macro to CalamaresUtils::Retranslator.
2014-11-11 15:12:44 +01:00
Kevin Kofler
3e9de2a05a
keyboard: Allow absolute paths for the xOrgConfFileName setting.
...
This should ensure it works on all distributions.
2014-11-11 14:59:30 +01:00
Rohan Garg
2c8aa950a3
Update README.md
2014-11-11 14:56:34 +01:00
Kevin Kofler
86d51b4a9c
keyboard: Pass settings directly, not through GlobalStorage.
...
Pass the settings from keyboard.conf directly to the
SetKeyboardLayoutJob rather than through GlobalStorage.
2014-11-11 14:37:05 +01:00
Kevin Kofler
2fec6e3202
keyboard: kbd-model-map: Add link to the original.
...
In particular, to the upstream git log for the file.
2014-11-11 14:04:21 +01:00
Kevin Kofler
bfdcf0dbc0
keyboard: Coding style fixes.
2014-11-11 13:57:08 +01:00
Teo Mrnjavac
6f3898a73d
Use Retranslator in LocalePage.
2014-11-11 12:44:32 +01:00
demmm
53da965bb1
make gummiboot kernel/distro agnostic
...
add hibernate option to .conf
create a fallback entry in gummiboot menu
re-add firmware to globalstorage, simplifies this module, will be needed to add more OS to gummi
2014-11-11 00:13:15 -05:00
Kevin Kofler
4f9f7d7858
keyboard: Write the keyboard model and layout settings to the root mount point.
...
This is implemented as a new SetKeyboardLayout job that does the work.
Portions of the code are adapted from systemd-localed's source code,
which is under a compatible license (LGPLv2.1+, can be converted to our
GPLv3+ license). I ported it from C to to C++/Qt and made some minor
tweaks to the mapping logic (from X11 to vconsole layouts) though.
Fixes #31 .
Tested on a Fedora Remix (Kannolo 21) with the default module settings
(finds the converted X11 keymaps for the virtual console) and with
convertedKeymapPath: "" (does the legacy keymap conversion as expected).
2014-11-11 04:48:03 +01:00
Rohan Garg
2b26be4162
Fix copyright holder
2014-11-10 15:45:40 +01:00
Rohan Garg
ce96b13c0d
Add a initramfs module that updates the initramfs post install
2014-11-10 15:42:31 +01:00
Teo Mrnjavac
dec452f9b5
Make LocalePage retranslatable.
2014-11-10 14:56:29 +01:00
Teo Mrnjavac
2617ef369e
Use retranslate pattern in GreetingPage.
2014-11-10 14:36:18 +01:00
Teo Mrnjavac
9e9a922498
Language selector + focus fix in GreetingPage.
2014-11-10 12:40:00 +01:00
Rohan Garg
d3d9ea130c
Fix build, last merge was a bit broken
2014-11-07 16:06:14 +01:00
Teo Mrnjavac
294d6a34ca
Merge pull request #142 from shadeslayer/github_master
...
Make sure we also write to the /etc/hosts file
2014-11-07 15:23:52 +01:00
Rohan Garg
7a2fe5e647
Make sure we also write to the /etc/hosts file
2014-11-07 15:19:55 +01:00
Manjaro Linux
36e8ed5f46
adjust LXDE startup scripts
...
- add LXQT support
- add LXDE 0.5 changes in Archlinux
2014-11-07 14:04:15 +01:00
Teo Mrnjavac
7c89613332
Merge pull request #140 from kkofler/detect-sddm-session-type
...
displaymanager: Detect SDDM session type
2014-11-07 11:50:28 +01:00
Kevin Kofler
8512e43405
displaymanager: Set Session= for sddm autologin.
...
Detect the correct value using find_desktop_environment.
2014-11-07 04:09:54 +01:00
Kevin Kofler
467d78dde6
displaymanager: Use a regex to match User= in sddm.conf.
...
This ensures we really only match the User= line and not the
RememberLastUser= one.
2014-11-07 04:09:54 +01:00
Kevin Kofler
e365864c05
displaymanager: Detect the KDE Plasma (5 and 4) and GNOME desktop environments.
...
Add them to the front of the list of desktop environments because users
are more likely to expect those as the default if they have them
installed.
2014-11-07 04:09:54 +01:00
Kevin Kofler
4990b8e3f8
displaymanager: Refactor the desktop environment detection to eliminate the copy&paste.
...
This also fixes some issues with the previous code:
* The code for LightDM only supported Xfce.
* The case where multiple desktop environments are installed was not
handled in a good way.
* We now also check that the xsession definition actually exists. This
allows handling the case where upstream changed the xsession
definition's name without renaming the invoked binary.
2014-11-07 04:09:54 +01:00
Kevin Kofler
5a4ae7f62c
displaymanager: Run "sddm --example-config > /etc/sddm.conf" in a shell.
...
Otherwise, the output redirection cannot work (and the argument was also
misinterpreted as part of the command name).
2014-11-07 01:09:33 +01:00
Teo Mrnjavac
1df44eddba
Fix displaymanager sddm config call.
2014-11-06 10:44:53 +01:00
demmm
3828eb6d2a
add the define
2014-11-05 22:42:58 -05:00
demmm
a186c7e44b
Missing define, check_chroot_call replaced
...
not really needed here, subprocess.call well tested
2014-11-05 22:26:10 -05:00
Teo Mrnjavac
486f160ca9
Merge pull request #134 from calamares/sddm
...
Generate sddm.conf if not present.
2014-11-04 09:51:36 +01:00
demmm
49bdb25f30
remove erronous line line, wrongly left in
2014-10-30 14:30:53 -04:00
Teo Mrnjavac
8026a287d3
Shut up Qt lupdate warnings.
2014-10-29 13:06:52 +01:00
Teo Mrnjavac
10ca85338d
Yet another Qt 5.4 fix.
2014-10-28 18:38:27 +01:00
demmm
8cefd1dcb8
remove indent
2014-10-28 11:18:10 -04:00
demmm
e26335d2da
proper check for existing sddm.conf
...
second set of if/else is obsolete with this, sddm.conf always exists at this point
2014-10-28 11:15:35 -04:00
demmm
231c93a513
missed colon
2014-10-27 14:00:35 -04:00
demmm
f26406daa4
actually create a sddm.conf
2014-10-27 13:53:34 -04:00
Rohan Garg
6a9c9cbaae
Fix typo
2014-10-27 18:39:11 +01:00
Teo Mrnjavac
8b0ad2f675
Merge pull request #129 from shadeslayer/master
...
Add support to set the hostname
2014-10-27 17:00:33 +01:00
Rohan Garg
fdd84d1f99
Don't crash when packageOperations is empty
2014-10-27 16:58:42 +01:00
demmm
972fe23131
create sddm.conf if not present
2014-10-27 11:57:32 -04:00
Rohan Garg
a0a3b4dc49
Style fixes
...
Run calamaresstyle over new classes
2014-10-27 16:53:57 +01:00
Teo Mrnjavac
ee2ed0921e
Allow mounting a Fedora image.
...
Fixes #127
2014-10-27 11:02:09 +01:00
Rohan Garg
4a4dc74f5c
Drop useless line
2014-10-22 15:54:07 +02:00
Rohan Garg
b587a0ff00
Add support to set the hostname
2014-10-21 19:06:27 +02:00
Rohan Garg
8a623cc118
Fix function call
2014-10-17 11:52:29 +02:00
Teo Mrnjavac
97867af2aa
Autopep8 pass on bootloader module.
2014-10-16 21:08:18 +02:00
Teo Mrnjavac
8f250311e8
Allow links in Greeting page.
2014-10-16 21:05:57 +02:00
Teo Mrnjavac
c2d6237d31
Merge pull request #119 from calamares/efi
...
adding new bootloader job
2014-10-16 21:08:30 +02:00
Rohan Garg
34befb9cb8
Refactor CPU detection code to be more reliable
...
Instead of parsing hwinfo output, which might or might be present
on systems, just parse the /proc/cpuinfo file, it's much more
reliable.
2014-10-16 19:34:43 +02:00
Rohan Garg
b8b2c2b735
Properly break lines in Python
2014-10-16 19:00:44 +02:00
Teo Mrnjavac
2e2bd78deb
Use Branding in partition viewmodule.
2014-10-16 17:00:08 +02:00
Teo Mrnjavac
4c51d320f6
Use branding in Prepare viewmodule.
2014-10-16 16:59:29 +02:00
Teo Mrnjavac
8e38a03cca
Branding in greeting module.
2014-10-16 16:58:58 +02:00
Rohan Garg
6513c6400e
Handle line breaks properly
2014-10-15 12:51:43 +02:00
Teo Mrnjavac
fc60bcb313
Update partitionmanager submodule.
2014-10-15 10:29:53 +02:00
demmm
58bc7c86c1
remove globalstorage entry for efi
2014-10-14 10:47:21 -04:00
Rohan Garg
f9bd0dfcfc
Make sure the hwinfo executable exists before calling it
2014-10-14 15:41:20 +02:00
Rohan Garg
eed387f7a4
Make sure to check things exist before actually modifying them
...
This fixes crashes when a system does not have squashfs-tools or
a grub dir does not exist.
2014-10-14 15:09:38 +02:00
Teo Mrnjavac
9c10b49802
Check if the filesystem to be resized actually supports grow/shrink.
2014-10-14 11:48:19 +02:00
demmm
7a310ef27b
rename grub to bootloader calls
2014-10-12 18:21:28 -04:00
demmm
c1a1399958
adding new bootloader job
...
options are to use grub for BIOS, gummiboot for efi
set extra mountpoint when efi is found
2014-10-12 13:45:02 -04:00
Teo Mrnjavac
9e84581354
Only add wheel to sudoers if a wheel group is defined in conf.
2014-10-08 15:35:27 +02:00
Teo Mrnjavac
ad68ce0187
Make default groups, users group and autologin group configurable.
2014-10-08 15:05:23 +02:00
Teo Mrnjavac
0d1fb79ec8
New config file for users module.
2014-10-08 15:02:27 +02:00
Teo Mrnjavac
ce407a5ec4
Use good old C++ template instead of auto parameter which needs C++1y.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
961eadada4
New UI and logic for Alongside autopartitioning+install.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
08a2ab94e7
Use PMUtils::findPartitionByPath in PVS + fix back button in Alongside.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
2347ead200
Remove bad debug feature.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
6d60ca5e63
Fix item order in ChoicePage
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
6bd5736d35
Add findPartitionByPath to PMUtils
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
51d12b2b35
The vfat driver apparently supports FAT16 too, be consistent.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
482b2c0da2
Fix fstype names for mount -t syntax.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
e7995ad540
Improve Osprober logic to immediately check if entries are resizable.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
045d9cdf8c
Fix layout in partitioning choice page.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
faa39e1746
Enable resize+alongside radiobutton if osprober reports multiple lines.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
0801756cd1
Stub for Alongside page, and logic to detect if alongside is possible.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
dbd6573ed4
Write required disk space into GlobalStorage.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
c070b1c836
Const correctness.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
c6eb0721d9
Check for root mount point before going ahead.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
aeb20761cc
Add preview and partitioning operations to Erase+Autopartition code path
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
8a50685c75
Add clearJobs to PCM
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
b7f2d5d9d3
Fix page flow issue in partition module.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
a943d55063
Size policy on erase page.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
ef703b0859
Add page for erase+install operation.
2014-10-07 16:07:28 +02:00
Teo Mrnjavac
dab5a05116
Add isDirty check to PartitionCoreModule
2014-10-07 16:07:27 +02:00
Teo Mrnjavac
4cadbf9b98
Expose icon and tooltip in DeviceModel.
2014-10-07 16:07:27 +02:00
Teo Mrnjavac
a98a4bb614
Add ChoicePage to partition module + OS detection with os-prober.
2014-10-07 16:07:27 +02:00
Teo Mrnjavac
73246b47c6
Prefer nullptr over 0.
2014-10-07 16:07:27 +02:00
Teo Mrnjavac
d39e77f7e8
New PrettyRadioButton, an alternative to QRadioButton with rich text.
2014-10-07 16:07:27 +02:00
Teo Mrnjavac
4d9f887c58
Make the prepare viewmodule use WaitingWidget
2014-10-07 16:07:27 +02:00
Teo Mrnjavac
8651b33843
Make the locale viewmodule use WaitingWidget.
2014-10-07 16:07:27 +02:00
Pier Luigi Fiorini
5624132172
Add packages job
...
This job can be used to install and remove packages.
2014-09-01 21:48:35 +02:00
demmm
631649ea69
1.0 Gb RAM should be a good default
2014-08-27 16:17:03 -04:00
Teo Mrnjavac
a9aa3e9aa6
Show an error or warning if there are unsatisfied requirements.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
5434a04ebc
Block the install process if an entry is required but unsatisfied.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
87711c89fc
Use common icons in users viewmodule.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
d97bb47f09
Add proper QResrouce system to libcalamaresui, finish up prepare checks
...
This also adds ImageRegistry, a SVG cache, a bunch of utility functions
for shared pixmaps in CalamaresUtilsGui and renames several qrc files
in viewmodules.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
0404413b05
Store active user in GlobalStorage as username.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
3bef0b835a
Check for mains power in prepare viewmodule.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
26419f2c8a
Check for internet connection in prepare viewmodule.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
b32bbf2b9a
Add check for enough RAM to prepare viewmodule.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
03800e2966
Newline at end of file.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
9563b2efc7
WIP: new prepare viewmodule, with free space check using libparted.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
1bb6603998
Move spinner widget to libcalamaresui.
2014-08-26 18:24:51 +02:00