From: "Andreas Sturmlechner" <asturm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: kde-plasma/plasma-desktop/files/, kde-plasma/plasma-desktop/
Date: Fri, 10 Dec 2021 14:58:36 +0000 (UTC) [thread overview]
Message-ID: <1639148301.75a7e9b75c3eb446457b36b06a88ebb8485ea54e.asturm@gentoo> (raw)
commit: 75a7e9b75c3eb446457b36b06a88ebb8485ea54e
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 10 14:37:01 2021 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Dec 10 14:58:21 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75a7e9b7
kde-plasma/plasma-desktop: Fix touchpad applet, initial panel sizing
Upstream commit 9f19af95e9699420b057b6ff7e99968faf8948a3
See also: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/715
Upstream commits:
2131daa05195a2b55f593acf3d323cf4c2a89936
aadab772fb81ff3d97c8b5342a8a018f51b2ef60
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=445982
Package-Manager: Portage-3.0.29, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
...a-desktop-5.23.4-fix-panel-initial-sizing.patch | 126 ++++++++++++++
| 53 ++++++
...ktop-5.23.4-fix-touchpad-mousearea-lookup.patch | 35 ++++
.../plasma-desktop/plasma-desktop-5.23.4-r1.ebuild | 190 +++++++++++++++++++++
4 files changed, 404 insertions(+)
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-panel-initial-sizing.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-panel-initial-sizing.patch
new file mode 100644
index 000000000000..d77187409738
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-panel-initial-sizing.patch
@@ -0,0 +1,126 @@
+From 9f19af95e9699420b057b6ff7e99968faf8948a3 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Fri, 3 Dec 2021 16:34:40 +0000
+Subject: [PATCH] containments/panel: Fix initial sizing
+
+Timers for anything that affect layouts are universally wrong.
+
+Ultimately this breaks layouts internal usage of QQmlParserStatus. For
+runtime changes layout internally most relayouting is buffered
+internally till the polish event which is once per frame.
+
+Removing this makes startup faster, less glitchy and more declarative.
+
+
+(cherry picked from commit b2fd1578a0063938a3eda8d8e41f14394b7635f7)
+---
+ containments/panel/contents/ui/main.qml | 34 ++++++-------------------
+ 1 file changed, 8 insertions(+), 26 deletions(-)
+
+diff --git a/containments/panel/contents/ui/main.qml b/containments/panel/contents/ui/main.qml
+index 0a5477476..9b5656acf 100644
+--- a/containments/panel/contents/ui/main.qml
++++ b/containments/panel/contents/ui/main.qml
+@@ -154,14 +154,12 @@ function checkLastSpacer() {
+
+ //BEGIN connections
+ Component.onCompleted: {
+- currentLayout.isLayoutHorizontal = isHorizontal
+ LayoutManager.plasmoid = plasmoid;
+ LayoutManager.root = root;
+ LayoutManager.layout = currentLayout;
+ LayoutManager.lastSpacer = lastSpacer;
+ LayoutManager.marginHighlights = [];
+ LayoutManager.restore();
+- containmentSizeSyncTimer.restart();
+
+ plasmoid.action("configure").visible = Qt.binding(function() {
+ return !plasmoid.immutable;
+@@ -200,7 +198,6 @@ function checkLastSpacer() {
+ event.accept(event.proposedAction);
+ root.fixedWidth = 0;
+ root.fixedHeight = 0;
+- containmentSizeSyncTimer.restart();
+ }
+
+
+@@ -215,8 +212,6 @@ function checkLastSpacer() {
+ }
+
+ Plasmoid.onUserConfiguringChanged: {
+- containmentSizeSyncTimer.restart();
+-
+ if (plasmoid.immutable) {
+ if (dragOverlay) {
+ dragOverlay.destroy();
+@@ -245,11 +240,7 @@ function checkLastSpacer() {
+ }
+ }
+
+- Plasmoid.onFormFactorChanged: containmentSizeSyncTimer.restart();
+- Containment.onEditModeChanged: containmentSizeSyncTimer.restart();
+-
+ onToolBoxChanged: {
+- containmentSizeSyncTimer.restart();
+ if (startupTimer.running) {
+ startupTimer.restart();
+ }
+@@ -478,10 +469,16 @@ function checkLastSpacer() {
+
+ GridLayout {
+ id: currentLayout
+- property bool isLayoutHorizontal
++ readonly property bool isLayoutHorizontal: root.isHorizontal
+ rowSpacing: PlasmaCore.Units.smallSpacing
+ columnSpacing: PlasmaCore.Units.smallSpacing
+
++ x: (isLayoutHorizontal && root.toolBox && Qt.application.layoutDirection === Qt.RightToLeft && plasmoid.editMode) ? root.toolBox.width : 0;
++ y: 0
++
++ width: root.width - (isLayoutHorizontal && root.toolBox && plasmoid.editMode ? root.toolBox.width : 0)
++ height: root.height - (!isLayoutHorizontal && root.toolBox && plasmoid.editMode ? root.toolBox.height : 0)
++
+ Layout.preferredWidth: {
+ var width = 0;
+ for (var i = 0, length = currentLayout.children.length; i < length; ++i) {
+@@ -505,36 +502,21 @@ function checkLastSpacer() {
+ rows: 1
+ columns: 1
+ //when horizontal layout top-to-bottom, this way it will obey our limit of one row and actually lay out left to right
+- flow: isHorizontal ? GridLayout.TopToBottom : GridLayout.LeftToRight
++ flow: isLayoutHorizontal ? GridLayout.TopToBottom : GridLayout.LeftToRight
+ layoutDirection: Qt.application.layoutDirection
+ }
+
+ onWidthChanged: {
+- containmentSizeSyncTimer.restart()
+ if (startupTimer.running) {
+ startupTimer.restart();
+ }
+ }
+ onHeightChanged: {
+- containmentSizeSyncTimer.restart()
+ if (startupTimer.running) {
+ startupTimer.restart();
+ }
+ }
+
+- Timer {
+- id: containmentSizeSyncTimer
+- interval: 150
+- onTriggered: {
+- dndSpacer.parent = root;
+- currentLayout.x = (isHorizontal && toolBox && Qt.application.layoutDirection === Qt.RightToLeft && plasmoid.editMode) ? toolBox.width : 0;
+- currentLayout.y = 0
+- currentLayout.width = root.width - (isHorizontal && toolBox && plasmoid.editMode ? toolBox.width : 0)
+- currentLayout.height = root.height - (!isHorizontal && toolBox && plasmoid.editMode ? toolBox.height : 0)
+- currentLayout.isLayoutHorizontal = isHorizontal
+- }
+- }
+-
+ //FIXME: I don't see other ways at the moment a way to see when the UI is REALLY ready
+ Timer {
+ id: startupTimer
+--
+GitLab
+
--git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-applet-popup-close-on-click.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-applet-popup-close-on-click.patch
new file mode 100644
index 000000000000..1c9a2b79e31e
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-applet-popup-close-on-click.patch
@@ -0,0 +1,53 @@
+From 2131daa05195a2b55f593acf3d323cf4c2a89936 Mon Sep 17 00:00:00 2001
+From: Nate Graham <nate@kde.org>
+Date: Thu, 2 Dec 2021 20:13:46 -0700
+Subject: [PATCH] kcms/touchpad/applet: Make the popup close on click
+
+BUG: 445982
+FIXED-IN: 5.23.5
+(cherry picked from commit 4cb2de984ab79bc257af0135bf92ea7390d5617f)
+---
+ .../applet/qml/contents/ui/touchpad.qml | 23 +++++++++++--------
+ 1 file changed, 13 insertions(+), 10 deletions(-)
+
+diff --git a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+index 3f5eb722f..106859c3a 100644
+--- a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
++++ b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+@@ -56,20 +56,23 @@ Item {
+ connectedSources: dataSource.sources
+ }
+
+- Plasmoid.compactRepresentation: PlasmaCore.ToolTipArea {
+- id: toolTip
++ Plasmoid.compactRepresentation: PlasmaCore.IconItem {
++ implicitWidth: PlasmaCore.Units.iconSizes.small
++ implicitHeight: PlasmaCore.Units.iconSizes.small
+
+- Layout.minimumWidth: PlasmaCore.Units.iconSizes.small
+- Layout.minimumHeight: Layout.minimumWidth
++ source: plasmoid.icon
++ active: parent.containsMouse
+
+- mainText: plasmoid.title
+- subText: plasmoid.toolTipSubText
++ PlasmaCore.ToolTipArea {
++ mainText: plasmoid.title
++ subText: plasmoid.toolTipSubText
++ }
+
+- PlasmaCore.IconItem {
++ MouseArea {
+ anchors.fill: parent
+- source: plasmoid.icon
+- active: parent.containsMouse
+- enabled: root.hasTouchpad
++ onClicked: {
++ plasmoid.expanded = !plasmoid.expanded;
++ }
+ }
+ }
+
+--
+GitLab
+
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-mousearea-lookup.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-mousearea-lookup.patch
new file mode 100644
index 000000000000..07d741424005
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-mousearea-lookup.patch
@@ -0,0 +1,35 @@
+From aadab772fb81ff3d97c8b5342a8a018f51b2ef60 Mon Sep 17 00:00:00 2001
+From: Nate Graham <nate@kde.org>
+Date: Fri, 3 Dec 2021 09:36:47 -0700
+Subject: [PATCH] kcms/touchpad/applet: Fix mousearea lookup
+
+(cherry picked from commit f4060c48b264a5054c2ffa795c208910d42bfd42)
+---
+ kcms/touchpad/applet/qml/contents/ui/touchpad.qml | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+index 106859c3a..aa1034e59 100644
+--- a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
++++ b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+@@ -61,7 +61,7 @@ Item {
+ implicitHeight: PlasmaCore.Units.iconSizes.small
+
+ source: plasmoid.icon
+- active: parent.containsMouse
++ active: mousearea.containsMouse
+
+ PlasmaCore.ToolTipArea {
+ mainText: plasmoid.title
+@@ -69,6 +69,8 @@ Item {
+ }
+
+ MouseArea {
++ id: mousearea
++
+ anchors.fill: parent
+ onClicked: {
+ plasmoid.expanded = !plasmoid.expanded;
+--
+GitLab
+
diff --git a/kde-plasma/plasma-desktop/plasma-desktop-5.23.4-r1.ebuild b/kde-plasma/plasma-desktop/plasma-desktop-5.23.4-r1.ebuild
new file mode 100644
index 000000000000..a19fe33aac17
--- /dev/null
+++ b/kde-plasma/plasma-desktop/plasma-desktop-5.23.4-r1.ebuild
@@ -0,0 +1,190 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+KFMIN=5.86.0
+PVCUT=$(ver_cut 1-3)
+QTMIN=5.15.2
+VIRTUALX_REQUIRED="test"
+inherit ecm kde.org optfeature
+
+DESCRIPTION="KDE Plasma desktop"
+XORGHDRS="${PN}-override-include-dirs-1"
+SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${XORGHDRS}.tar.xz"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="emoji ibus +kaccounts +policykit scim +semantic-desktop telemetry"
+
+COMMON_DEPEND="
+ >=dev-qt/qtconcurrent-${QTMIN}:5
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtdeclarative-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtnetwork-${QTMIN}:5
+ >=dev-qt/qtprintsupport-${QTMIN}:5
+ >=dev-qt/qtsql-${QTMIN}:5
+ >=dev-qt/qtsvg-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=dev-qt/qtx11extras-${QTMIN}:5
+ >=dev-qt/qtxml-${QTMIN}:5
+ >=kde-frameworks/attica-${KFMIN}:5
+ >=kde-frameworks/kactivities-${KFMIN}:5
+ >=kde-frameworks/kactivities-stats-${KFMIN}:5
+ >=kde-frameworks/karchive-${KFMIN}:5
+ >=kde-frameworks/kauth-${KFMIN}:5
+ >=kde-frameworks/kbookmarks-${KFMIN}:5
+ >=kde-frameworks/kcmutils-${KFMIN}:5
+ >=kde-frameworks/kcodecs-${KFMIN}:5
+ >=kde-frameworks/kcompletion-${KFMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/kcrash-${KFMIN}:5
+ >=kde-frameworks/kdbusaddons-${KFMIN}:5
+ >=kde-frameworks/kdeclarative-${KFMIN}:5
+ >=kde-frameworks/kded-${KFMIN}:5
+ >=kde-frameworks/kdelibs4support-${KFMIN}:5
+ >=kde-frameworks/kglobalaccel-${KFMIN}:5
+ >=kde-frameworks/kguiaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kiconthemes-${KFMIN}:5
+ >=kde-frameworks/kio-${KFMIN}:5
+ >=kde-frameworks/kitemmodels-${KFMIN}:5
+ >=kde-frameworks/kitemviews-${KFMIN}:5
+ >=kde-frameworks/kjobwidgets-${KFMIN}:5
+ >=kde-frameworks/knewstuff-${KFMIN}:5
+ >=kde-frameworks/knotifications-${KFMIN}:5
+ >=kde-frameworks/knotifyconfig-${KFMIN}:5
+ >=kde-frameworks/kparts-${KFMIN}:5
+ >=kde-frameworks/krunner-${KFMIN}:5
+ >=kde-frameworks/kservice-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+ >=kde-frameworks/kwindowsystem-${KFMIN}:5
+ >=kde-frameworks/kxmlgui-${KFMIN}:5
+ >=kde-frameworks/plasma-${KFMIN}:5
+ >=kde-frameworks/solid-${KFMIN}:5
+ >=kde-frameworks/sonnet-${KFMIN}:5
+ >=kde-plasma/kwin-${PVCUT}:5
+ >=kde-plasma/libksysguard-${PVCUT}:5
+ >=kde-plasma/libkworkspace-${PVCUT}:5
+ >=kde-plasma/plasma-workspace-${PVCUT}:5
+ >=media-libs/phonon-4.11.0
+ virtual/libcrypt:=
+ x11-libs/libX11
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libxcb[xkb]
+ x11-libs/libxkbfile
+ emoji? (
+ app-i18n/ibus[emoji]
+ dev-libs/glib:2
+ media-fonts/noto-emoji
+ )
+ ibus? (
+ app-i18n/ibus
+ dev-libs/glib:2
+ >=dev-qt/qtx11extras-${QTMIN}:5
+ x11-libs/libxcb
+ x11-libs/xcb-util-keysyms
+ )
+ kaccounts? (
+ kde-apps/kaccounts-integration:5
+ net-libs/accounts-qt
+ )
+ policykit? ( >=kde-frameworks/kwallet-${KFMIN}:5 )
+ scim? ( app-i18n/scim )
+ semantic-desktop? ( >=kde-frameworks/baloo-${KFMIN}:5 )
+ telemetry? ( dev-libs/kuserfeedback:5 )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-libs/boost
+ x11-base/xorg-proto
+"
+RDEPEND="${COMMON_DEPEND}
+ !kde-plasma/user-manager
+ >=dev-qt/qtgraphicaleffects-${QTMIN}:5
+ >=dev-qt/qtquickcontrols2-${QTMIN}:5
+ >=kde-frameworks/kirigami-${KFMIN}:5
+ >=kde-frameworks/qqc2-desktop-style-${KFMIN}:5
+ >=kde-plasma/kde-cli-tools-${PVCUT}:5
+ >=kde-plasma/oxygen-${PVCUT}:5
+ sys-apps/util-linux
+ x11-apps/setxkbmap
+ x11-misc/xdg-user-dirs
+ kaccounts? ( net-libs/signon-oauth2 )
+ policykit? ( sys-apps/accountsservice )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${WORKDIR}/${XORGHDRS}/override-include-dirs.patch" # downstream patch
+ # 5.23 branch
+ "${FILESDIR}"/${P}-fix-panel-initial-sizing.patch
+ "${FILESDIR}"/${P}-fix-touchpad-applet-popup-close-on-click.patch # KDE-bug 445982
+ "${FILESDIR}"/${P}-fix-touchpad-mousearea-lookup.patch
+)
+
+src_prepare() {
+ ecm_src_prepare
+
+ if ! use policykit; then
+ ecm_punt_bogus_dep KF5 Wallet
+ cmake_run_in kcms cmake_comment_add_subdirectory users
+ fi
+
+ if ! use ibus; then
+ sed -e "s/Qt5X11Extras_FOUND AND XCB_XCB_FOUND AND XCB_KEYSYMS_FOUND/false/" \
+ -i applets/kimpanel/backend/ibus/CMakeLists.txt || die
+ fi
+
+ use emoji || cmake_run_in applets/kimpanel/backend/ibus \
+ cmake_comment_add_subdirectory emojier
+
+ # TODO: try to get a build switch upstreamed
+ if ! use scim; then
+ sed -e "s/^pkg_check_modules.*SCIM/#&/" -i CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_DISABLE_FIND_PACKAGE_PackageKitQt5=ON # not packaged
+ -DEVDEV_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ -DXORGLIBINPUT_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ -DXORGSERVER_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ -DSYNAPTICS_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ $(cmake_use_find_package kaccounts AccountsQt5)
+ $(cmake_use_find_package kaccounts KAccounts)
+ $(cmake_use_find_package semantic-desktop KF5Baloo)
+ $(cmake_use_find_package telemetry KUserFeedback)
+ )
+ if ! use emoji && ! use ibus; then
+ mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_GLIB2=ON )
+ fi
+
+ ecm_src_configure
+}
+
+src_test() {
+ # parallel tests fail, foldermodeltest,positionertest hang, bug #646890
+ # test_kio_fonts needs D-Bus, bug #634166
+ # lookandfeel-kcmTest is unreliable for a long time, bug #607918
+ local myctestargs=(
+ -j1
+ -E "(foldermodeltest|positionertest|test_kio_fonts|lookandfeel-kcmTest)"
+ )
+
+ ecm_src_test
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ optfeature "screen reader support" app-accessibility/orca
+ fi
+ ecm_pkg_postinst
+}
next reply other threads:[~2021-12-10 14:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-10 14:58 Andreas Sturmlechner [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-10-08 15:36 [gentoo-commits] repo/gentoo:master commit in: kde-plasma/plasma-desktop/files/, kde-plasma/plasma-desktop/ Andreas Sturmlechner
2023-11-12 9:21 Andreas Sturmlechner
2023-04-10 18:35 Andreas Sturmlechner
2023-03-22 23:01 Andreas Sturmlechner
2022-08-07 20:58 Andreas Sturmlechner
2022-05-29 20:44 Andreas Sturmlechner
2022-02-10 20:10 Andreas Sturmlechner
2022-01-25 9:49 Andreas Sturmlechner
2021-02-18 19:56 Andreas Sturmlechner
2021-02-05 10:12 Andreas Sturmlechner
2021-01-24 19:44 Andreas Sturmlechner
2020-09-29 12:49 Andreas Sturmlechner
2020-08-18 17:49 Andreas Sturmlechner
2020-05-16 22:38 Andreas Sturmlechner
2020-05-07 19:57 Andreas Sturmlechner
2019-12-17 23:49 Andreas Sturmlechner
2019-12-17 23:49 Andreas Sturmlechner
2018-10-04 12:23 Andreas Sturmlechner
2018-09-11 16:24 Andreas Sturmlechner
2018-05-18 22:53 Andreas Sturmlechner
2017-02-15 16:59 Johannes Huber
2017-01-08 14:24 Andreas Sturmlechner
2016-03-13 18:54 Michael Palimaka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1639148301.75a7e9b75c3eb446457b36b06a88ebb8485ea54e.asturm@gentoo \
--to=asturm@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox