arcolinuxz
5b225cf960
[preservefiles] Put the logs in /var/log
2021-12-11 23:58:23 +01:00
Adriaan de Groot
132ebd2c2d
[networkcfg] NetworkManager files are UTF-8 encoded
...
The filenames don't matter, but the contents of the file are also
UTF-8, and depending on the default encoding of the Python
interpreter, this can fail on non-ASCII characters in the
file. Set the encoding explicitly while reading and writing
the NetworkManager configuration files.
FIXES #1848
2021-12-11 15:12:51 +01:00
Adriaan de Groot
03da766b39
[partition] Keep 64-bit integers for swap sizes
...
FIXES #1849
2021-12-11 13:19:08 +01:00
Adriaan de Groot
7ac42b5f40
[umount] Tests don't like an empty config
...
- modules with no configuration should be marked 'noconfig',
but umount is special: it has no **useful** configuration
(maybe no **non-deprecated** configuration), but isn't
marked 'noconfig' **yet**.
2021-12-10 16:44:01 +01:00
Adriaan de Groot
3870851074
[luksopenswaphookcfg] Remove Python implementation
2021-12-08 14:35:52 +01:00
Adriaan de Groot
046a228d62
[luksopenswaphookcfg] Expand tests with lines more-closely tailored to the actual file-format
2021-12-08 14:25:03 +01:00
Adriaan de Groot
2c20a00cc3
[luksopenswaphookcfg] Read GS for finding LUKS config
2021-12-08 14:12:25 +01:00
Adriaan de Groot
45d6eb36fb
[luksopenswaphookcfg] Extend info with btrfs subvol
...
This is a C++-ification of e8936392
from dalto8 . Add a line
for options to the empty-file-fallback.
2021-12-08 14:12:25 +01:00
Adriaan de Groot
7ea21663ca
[luksopenswaphookcfg] Partial implementation in C++
...
- Futz a bit with the string replacements -- do not assume #
will introduce a comment half-way through a line.
2021-12-08 14:12:20 +01:00
Adriaan de Groot
5ca029df25
[luksopenswaphookcfg] Start a C++ port
...
- this module needs work to handle BTRFS special-cases *anyway*
- limited in scope, few options: port it while doing the
special-cases
So far, this is just a C++ stub.
SEE #1659 #1644
2021-12-08 14:12:20 +01:00
Adriaan de Groot
bc2713ccbb
[libcalamares] Add string functions for lstrip() and rstrip()-like
2021-12-08 14:08:37 +01:00
Adriaan de Groot
bb948c47dc
[fstab] Cut the example btrfs flags to 'defaults'
...
Testing shows that the flags can influence -- maybe cause -- data
corruption when noatime is set.
FIXES #1846
2021-12-08 13:06:53 +01:00
Adriaan de Groot
f0eb7ffbda
[partition Untangle, Warnings--
...
The translations apply to labels and a tooltip, which depends on
the partition-table type. Move the strings together and make
the whole range of the switch explicitly.
2021-12-08 00:59:20 +01:00
Adriaan de Groot
e8ca298712
[partition] Reduce warnings
2021-12-08 00:15:01 +01:00
Adriaan de Groot
13700b18c8
[partition] Warnings--
...
- remove superfluous `break`
- massage types around partition sizes
2021-12-08 00:06:17 +01:00
Adriaan de Groot
1197d8c750
[interactiveterminal] Warnings-- with KF5 5.86-or-later
2021-12-07 18:19:32 +01:00
Adriaan de Groot
09f47b5762
[partition] Build tests with consistent flags (in particular, KPMCore4-API flags)
2021-12-07 15:51:45 +01:00
Adriaan de Groot
4611545f93
[libcalamares] Warnings-- on switch()
...
- some switch statements handle a bunch of items explicitly,
then default the rest. Clang complains about that. Turn off
the warning for these specific switches, since there's dozens
of values that simply do not need to be handled.
2021-12-07 15:42:14 +01:00
Adriaan de Groot
6e715205d7
[partition] Warnings-- by calling formatting consistently
2021-12-07 15:36:11 +01:00
Adriaan de Groot
09a03fbbc0
[partition] Warnings--: we don't care about one-byte-in-10^12
2021-12-07 15:31:49 +01:00
Adriaan de Groot
bb3f4442f5
[partition] Warnings-reduction
...
- use consistent size-formatting
- needs an out-of-line virtual function
2021-12-07 15:30:21 +01:00
Adriaan de Groot
5b05110351
[partition] Add convenience function formatByteSize
...
We want to use the KPMCore function consistently, but Calamares
uses a qint64 most of the time. Centralize the cast to double
in one place in the code.
2021-12-07 15:29:02 +01:00
Adriaan de Groot
eda85c176a
[tracking] Avoid unused-deprecated-methods warnings
...
- these are internal classes, with no real Qt machinery; remove
the Q_OBJECT macros.
- replace the tr() calls with calls with an explicit context,
so that translations do not change.
2021-12-07 15:07:07 +01:00
Adriaan de Groot
32da51b44c
[libcalamares] Avoid warnings in Boost::Python macros
2021-12-07 14:48:19 +01:00
Adriaan de Groot
0b6239a996
[libcalamaresui] Warnings-- : we know TCP ports are 16 bit
2021-12-07 14:28:55 +01:00
Adriaan de Groot
79ae3cd00f
Merge branch 'shuffle-error-dialog' into calamares
2021-12-07 14:27:13 +01:00
Adriaan de Groot
c2e63f4a6b
[libcalamaresui] Don't bother tagging nonexistent 3rdparty sources
2021-12-07 14:20:31 +01:00
Adriaan de Groot
8b804c4ae0
[libcalamaresui] Improve icon+heading layout
...
- Icon was too wide, heading and message placed off to the side
2021-12-07 14:15:43 +01:00
Adriaan de Groot
3030a710cc
[libcalamaresui] Simplify
2021-12-07 12:58:22 +01:00
Adriaan de Groot
b07c9bb4af
[libcalamaresui] Use meaningful type for Upload info
...
- use a struct with named fields instead of a tuple
- offer an operator bool() for the logic of does-it-make-sense-to-upload
2021-12-07 12:53:43 +01:00
Adriaan de Groot
3234de5753
[libcalamaresui] Make web-paste decision more readable
2021-12-07 12:48:17 +01:00
Adriaan de Groot
2f9edb3e08
[libcalamaresui] Code style
2021-12-07 12:44:19 +01:00
Adriaan de Groot
ca7f288488
[libcalamaresui] APIDOX for ErrorDialog
2021-12-07 12:40:05 +01:00
Adriaan de Groot
49890acd04
[libcalamaresui] Fix build after move
2021-12-07 12:39:50 +01:00
Adriaan de Groot
dc11dd2203
[libcalamaresui] Move ErrorDialog to the widgets/ part
2021-12-07 12:24:41 +01:00
Adriaan de Groot
6e59177f54
Merge pull request #1843 from LordTermor/calamares
...
Rework of error dialog
2021-12-07 12:06:01 +01:00
Adriaan de Groot
149f3ff3fe
[partition] Reduce warnings about shadowed variables
2021-12-06 14:52:33 +01:00
Adriaan de Groot
d89553a777
[partition] Avoid problems with MessageAndPath in containers (drop const)
2021-12-06 14:46:26 +01:00
Adriaan de Groot
890c17cd71
[libcalamares] Expand error-logging when creating files
2021-12-06 14:46:26 +01:00
Adriaan de Groot
6ef7acc108
[libcalamares] Add minor tests for new readTargetFile
2021-12-06 14:46:26 +01:00
Adriaan de Groot
baf8297cc4
[libcalamares] Reading a file from target system
2021-12-06 14:46:26 +01:00
Adriaan de Groot
47f2dd3c18
Merge pull request #1844 from dalto8/openswap
...
Add support for unlocking encrypted swap with root on a btrfs subvol
2021-12-06 10:42:44 +01:00
dalto
6e08da6c8d
[bootloader] Fix error with systemd-boot when path exists in the ESP
2021-12-06 10:31:58 +01:00
Artem Grinev
aa332477fd
[libcalamaresui] Run clang-format on TranslationFix.cpp
2021-12-06 03:11:16 +04:00
Artem Grinev
d9f7726f7d
[libcalamaresui] Add SPDX-header for Error Dialog files
2021-12-06 02:41:17 +04:00
Artem Grinev
2f2a418cc4
[libcalamaresui] Run clang-format
2021-12-06 02:37:11 +04:00
Artem Grinev
2dd77ee828
[libcalamaresui] Initialize Error Dialog field
2021-12-06 02:31:05 +04:00
Artem Grinev
bfa7b9a792
[libcalamaresui] Use translation fix for Error Dialog
2021-12-06 02:27:18 +04:00
Artem Grinev
32c5e18db0
[libcalamaresui] Add QDialogButtonBox translation fix
2021-12-06 02:26:13 +04:00
dalto
e8936392e3
[luksopenswaphookcfg] Add support unlocking swap with root on a btrfs subvol
2021-12-05 13:17:23 -06:00
Adriaan de Groot
c834a5066d
[umount] Make it much more clear that the logfiles-thing is going away.
2021-12-05 02:26:23 +01:00
Artem Grinev
6bf0da7230
[libcalamaresui] Initial rework of error dialog
2021-12-05 04:50:13 +04:00
Adriaan de Groot
1d96c5af46
[partition] Table type 'none' is a late addition.
2021-12-05 01:32:51 +01:00
dalto
6e8779cbce
[mount] Ensure path is available when creating nested btrfs subvolumes
2021-12-04 08:53:15 -06:00
Adriaan de Groot
ceb9ec4115
[fstab] Avoid KeyError when no subvol is set (from dalto8)
2021-12-04 02:15:33 +01:00
Adriaan de Groot
c22bbea528
[packages] Fix tests; YAML interpretation of 'yes' is not a bool
2021-12-04 02:04:24 +01:00
Adriaan de Groot
f26c81700d
[fstab] Suppress empty subvol= options in fstab
2021-12-02 22:08:17 +01:00
Adriaan de Groot
96ccf256b2
[mount] Add documentation to the config file
2021-12-02 22:02:14 +01:00
Adriaan de Groot
951ddfb72a
[mount] Experimental: accept 'no' for subvolumes
...
If there is no subvolume set, skip creation of that subvolume.
This allows root to be on a bare FS, without a tag or subvolume
name. To achieve this, use
subvolume: no
(no quotes there) in the YAML.
2021-12-01 23:06:02 +01:00
Adriaan de Groot
3845e05834
[locale] Correct timezone 5.0 / 5.5
...
Timezones 5.0 and 5.5 have considerable overlap; clear up most
of it. Since a pixel is about 55x55km on the ground, and the
translation of latitude and longitude is sketchy at best,
accuracy on this timezone map is not very good.
FIXES #1832
2021-11-29 22:04:31 +01:00
Adriaan de Groot
cdc3a9aad2
Merge pull request #1834 from dalto8/btrfs-swap
...
[fstab] Use different options for the btrfs swap subvolume
2021-11-29 15:16:17 +01:00
Adriaan de Groot
dfd13b4948
[packages] Remove bad config-lines
...
- rootMountPoint is a global thing, not a job-configuration item
2021-11-29 15:02:05 +01:00
Adriaan de Groot
28bd737062
[packages] Validate test-configs, too
...
- The config-files has a typo, so didn't validate, so
the loaded data was wrong, leading to test-failures.
See 61e0d538e9
.
2021-11-29 14:59:43 +01:00
Adriaan de Groot
61e0d538e9
[packages] Be more explicit in test failures, fix test data
2021-11-29 14:44:12 +01:00
Adriaan de Groot
474aaf7603
[packages] Fix loading of the subkeys for pacman
2021-11-29 14:23:15 +01:00
Adriaan de Groot
65488ca174
[libcalamares] More verbose when loading YAML for Python
2021-11-29 14:19:06 +01:00
Adriaan de Groot
1260d3fcb9
[packages] Expand tests for PM-specifics more
2021-11-29 13:21:50 +01:00
Adriaan de Groot
3e0c9ba056
[packages] Expand tests with PM-specific bits
2021-11-29 13:04:44 +01:00
Adriaan de Groot
fcbe8d3a3e
[libcalamares] API for YAML-loading from Python
2021-11-29 12:59:30 +01:00
Adriaan de Groot
7f643010b2
[libcalamares] Expose error() and warn() to Python
2021-11-29 12:26:07 +01:00
Adriaan de Groot
e9970474f5
[libcalamares] Allow Python to log an Error as well
2021-11-29 12:22:02 +01:00
Adriaan de Groot
8a1e5d35fa
[packages] Move pacman-options into their own key with subkeys
2021-11-29 11:59:09 +01:00
Adriaan de Groot
90459e434f
Merge pull request #1833 from dalto8/pacman
...
[packages] Additional pacman options
2021-11-29 11:39:01 +01:00
dalto
bd07db544f
[packages] Update doumentation for run_pacman() to be more complete
2021-11-28 15:56:16 -06:00
dalto
6b838bbf3d
[fstab] Add comment explaining logic
2021-11-26 13:00:30 -06:00
dalto
df3e049e1c
[fstab] Use different options for the btrfs swap subvolume
2021-11-26 12:36:15 -06:00
dalto
bb24ee1b3b
[packages] Fix location of call to reset_progress()
2021-11-26 10:56:32 -06:00
dalto
c80b4ff4c2
[packages] Make callback logic more sensible
2021-11-26 08:30:18 -06:00
dalto
e1e29780f2
[packages] Change callbacks
2021-11-25 15:55:22 -06:00
dalto
fa10bb8dd3
[packages] Add support for more pacman options
2021-11-25 11:52:41 -06:00
dalto
ee032b43fe
[zfs] Fix spelling error in readme
2021-11-19 14:24:36 -06:00
dalto
f37a775977
[zfs] Update module documentation
2021-11-19 10:46:23 -06:00
Adriaan de Groot
8ca6a7caef
[displaymanager] Fix tests (don't overwrite developer host configuration)
2021-11-16 17:30:28 +01:00
Adriaan de Groot
b0d951d7e5
[grubcfg] Avoid UnboundLocal, always set zfs_root_path to something
2021-11-16 17:22:43 +01:00
Adriaan de Groot
8652fc5f6d
[zfs] Fix schema
...
- typo (canmount vs canMount)
- the canMount property is nominally a string, but YAML is 'special'
and interprets 'on' and 'off' and 'yes' and 'no' and other strings
as booleans unless quoted.
2021-11-16 17:14:12 +01:00
Adriaan de Groot
b00177bd65
[zfs] SPDX tag the documentation
2021-11-19 12:55:23 +01:00
Adriaan de Groot
bcd8ebd614
[displaymanager] SPDX tags for tests
2021-11-19 12:53:42 +01:00
Adriaan de Groot
2f2271aad6
[mount][bootloader] Communicate btrfs root subvolume
...
Ensure root subvolume is set correctly for systemd-boot.
FIXES #1821
2021-11-19 11:20:09 +01:00
dalto
f5b882a075
[partition] Remove setState call to resolve compat issue with older kpmcore
2021-11-18 13:36:23 -06:00
dalto
b0f6530a58
[mount][bootloader] Ensure root subvolume is set correctly for systemd-boot
2021-11-18 10:04:49 -06:00
Adriaan de Groot
ece1e338e0
Merge pull request #1822 from dalto8/zfs-wip
...
[zfs] Support for installing to root-on-ZFS
2021-11-17 12:20:34 +01:00
dalto8
e814920bca
[zfs] Fix typo in README
2021-11-17 00:17:59 +00:00
dalto
c70e31a919
[zfs] Add README.md with some implementation notes
2021-11-16 18:16:32 -06:00
dalto
7e17106f34
[bootloader] Cleanup zfs support from testing
2021-11-16 17:48:49 -06:00
dalto
9603cbef14
[grubcfg] Add zfs entry to kernel_params
2021-11-16 17:48:02 -06:00
dalto
87cca4053f
[zfs][mount] Refactor zfs dataset mounting logic
2021-11-16 13:59:24 -06:00
dalto
b65321d80b
[bootloader] Add zfs support for grub-install
2021-11-16 13:48:34 -06:00
dalto
3ee388526d
[zfs] Cleanup code based on review feedback
2021-11-16 09:06:42 -06:00
Adriaan de Groot
efe84bc6c0
[partition] Don't log private names
...
- log device node (/dev/sdb) instead of its name
- don't log job's prettyName() because that's translated, and also
contains user-visible private names (introducing a non-translated,
nicely redacted version of prettyName() seems like too much effort
for something that can be reconstructed from bits earlier in the log)
2021-11-16 15:31:35 +01:00
Adriaan de Groot
5a4e2b73ab
[libcalamares][partition] Give RedactedName a convert-to-QString
...
- use hex-trailer
- while here, convert DebugRow to use a copy rather than a reference,
to avoid dangling references when applied to temporaries
- convert *partition* module to use the RedactedNames
2021-11-16 15:22:04 +01:00
Adriaan de Groot
152b3c333b
[libcalamares] Introduce redaction-of-names class for logging
...
- redacted names are stable inside of one run of Calamares
- random, private displays of a given string for a context
SEE #1593
2021-11-16 14:47:13 +01:00
Adriaan de Groot
7b3c4db8f0
[libcalamares] Redacted -> RedactedCommand
...
- For logging (shell) commands where a password might become visible, use
RedactedCommand. Rename it to allow for other kinds of redaction, too.
2021-11-16 14:21:46 +01:00
Adriaan de Groot
7cc84b89be
[partition] Clarify the meaning of the various UUIDs in debug-output
2021-11-16 14:15:00 +01:00
Adriaan de Groot
4db4e983e3
[partition] Don't format tables of attributes in source
2021-11-16 14:04:00 +01:00
Adriaan de Groot
3aac4dea67
[partition] Remove logging-of-a-pointer during device detection
2021-11-16 13:52:10 +01:00
dalto
0a7262148e
[umount] Convert zfs export call to use host_env_process_output
2021-11-15 19:03:20 -06:00
dalto
4778d9b2dd
[mount] zfs changes from review feedback
2021-11-15 18:41:35 -06:00
dalto
3a90382699
[partition] zfs changes from review feedback
2021-11-15 18:41:35 -06:00
dalto
3ebe695a23
[fstab] Exclude zfs partitions from fstab
2021-11-15 18:41:35 -06:00
dalto
ebae698a6e
[mount] Move zfs code into a seperate function to improve readability
2021-11-15 18:41:35 -06:00
dalto
18ad188ef6
[zfs] Ensure overlapping datasets don't get created and code cleanup
2021-11-15 18:41:35 -06:00
dalto
6e440bf9bb
[umount] Export zpools after unmounting
2021-11-15 18:41:35 -06:00
dalto
490ac8d086
[partition] Ensure format is selected for existing zfs partitions
2021-11-15 18:41:35 -06:00
dalto
c48c91a5bd
[partition] Add support for zfs encryption when erase disk is selected
2021-11-15 18:41:35 -06:00
dalto
ee99ee48f6
Add support for multiple zpools
2021-11-15 18:41:35 -06:00
dalto
a5b21b2500
[zfs] Fix typo and add missing continue
2021-11-15 18:41:34 -06:00
dalto
75c947c5a3
[mount] Fix zfs code and add support for encryption
2021-11-15 18:41:34 -06:00
dalto
1ccabf1b13
[zfs] Export zpool so it can later be mounted at the correct location
2021-11-15 18:41:34 -06:00
dalto
6da9bad272
[partition][zfs] Add support for zfs encryption
2021-11-15 18:41:34 -06:00
dalto
074941e2bd
[bootloader] Add initial support for zfs
2021-11-15 18:41:34 -06:00
dalto
5d71723aec
[mount] Improve error handling for zfs
2021-11-15 18:41:34 -06:00
dalto
de0bbbe90a
[mount] Add support for zfs datasets
2021-11-15 18:41:34 -06:00
dalto
7f05096611
[zfs] Add delay before creating the zpool
2021-11-15 18:41:34 -06:00
dalto
7635b76352
[zfs] Add datasets to global storage for other modules
2021-11-15 18:41:34 -06:00
dalto
b9559a9d82
[zfs] Update to Calamares coding standards
2021-11-15 18:41:34 -06:00
dalto
76892136cf
[initcpiocfg] Add support for zfs
2021-11-15 18:41:34 -06:00
dalto
11bf84bac7
[zfs] Initial commit for zfs module
2021-11-15 18:41:34 -06:00
dalto
24a376493b
[partition] Add support for manually creating a partition for zfs
2021-11-15 18:41:34 -06:00
dalto
ca3f0e2892
[partition] Add zfs to the filesystem list if the zfs modules is enabled
2021-11-15 18:41:34 -06:00
Adriaan de Groot
3dd02edc78
[libcalamares] Document how to interpret percents
...
- use 0..1 in floats for percentages (I suppose you could
call that a perunage, but that would be weird).
2021-11-15 23:16:58 +01:00
Adriaan de Groot
d5bef9efb5
Python: document which exception is thrown on process failure
2021-11-15 21:48:17 +01:00
Adriaan de Groot
5f7b221e11
[displaymanager] Fix greetd commands
...
- since default_desktop_environment isn't a string, need
to pick the string -- the command -- out of the object first.
2021-11-15 13:38:46 +01:00
Adriaan de Groot
16a029abd2
[displaymanager] Adjust tests to match real runtime
...
- the default_desktop_environment isn't a string, but an
object; it is unusual for it to be used in set_autologin
2021-11-15 13:37:23 +01:00
Adriaan de Groot
f3e85efd41
[displaymanager] Add tests that run parts of the DM code
...
- load and set autologin for greetd (this was used to shake out
code bugs in load/save)
- load and set autologin for sddm
2021-11-15 13:00:40 +01:00
Adriaan de Groot
ce6aec158a
[displaymanager] Fix config loading-and-saving
...
- toml.dump() takes a file-like object
- toml.loads() takes a whole string to parse, (e.g. the TOML data),
not a pathname, so change to toml.load() which takes a file-like
object.
2021-11-15 12:23:17 +01:00
Adriaan de Groot
54fd81a87e
[displaymanager] Handle case where config file doesn't exist or has no key
...
- If the config file doesn't exist, the dictionary is empty
- If it **does** exist, it might not have key 'default_session' in it
Either case should avoid a KeyError by using get() (or setdefault,
in this context). Subsequent use of os.path.exists() is strange,
since the value is a **group** (e.g. a dictionary) in the config
file. Just check if it exists, and then fill something in.
2021-11-15 12:21:27 +01:00
Adriaan de Groot
11424195ef
[displaymanager] Missing method call
...
- Add `()` to call the config_path() method, because we need a path
to pass to os.path.exists().
2021-11-15 12:20:54 +01:00
Adriaan de Groot
fad2f6ea88
[displaymanager] Add simple test
2021-11-15 11:52:24 +01:00
Adriaan de Groot
58cf9ffeeb
[displaymanager] Import toml only for the DMs that actually need it
2021-11-15 11:43:47 +01:00
Adriaan de Groot
85f36c77b1
[displaymanager] Import configparser only for the DMs that actually need it
2021-11-15 11:42:25 +01:00
Adriaan de Groot
138db1c817
Merge branch 'feat/greetd-support' of git://github.com/boredland/calamares into boredland-feat/greetd-support
2021-11-15 11:40:18 +01:00
dalto
daa5731acf
[fstab] Improve comment about space_cache
2021-11-12 09:29:04 -06:00
dalto
9ef520f862
Add comment describing the situation with space_cache on btrfs
2021-11-12 08:58:43 -06:00
dalto
0bef2a91a1
[fstab] Remove space_cache from btrfs mount options
2021-11-10 17:16:09 -06:00
Adriaan de Groot
4fb8993a38
[finishedq] Add sample QML for mobile usage
...
This has a countdown-timer that automatically restarts;
the rest of the settings follow the finishedq.conf values.
FIXES #1601
2021-11-09 23:08:40 +01:00
Adriaan de Groot
8639c9a79f
[partition] Fix up tests
2021-11-09 16:37:25 +01:00
Adriaan de Groot
cd0785164b
[partition] Fix compatibility with Qt 5.12
2021-11-09 15:57:20 +01:00
Adriaan de Groot
2a86e86817
[packages] Make package-installation messages slightly less scary.
...
From a test with XeroLinux, at some point it says 'reinstalling linux...'
which is a message from pacman about the package called 'linux'.
2021-11-09 15:25:06 +01:00
Adriaan de Groot
e4b44b5f85
[packages] Look for other progress indicators
...
- the (n/m) lines are output of specific steps, not actual package-
installation. So look for "<action> <packagename> ..." lines instead.
This means we keep some state around, and need extra machinery to
report those lines rather than the generic progress reporting
that reports on groups.
2021-11-09 14:42:12 +01:00
Adriaan de Groot
4821f450f3
[packages] Report progress by scanning pacman output
...
- during install and remove, check for (n/m) output lines which
report progress of the pacman actions and turn those into progress
reports for the *packages* module.
2021-11-09 13:07:29 +01:00