Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: arctica-gree...@packages.debian.org
Control: affects -1 + src:arctica-greeter

Various fixes and a11y improvements of arctica-greeter haven't made it in
time for the Debian 12 release. While testing Arctica Greeter for Debian
Edu (with MATE desktop), these fixes and improvements have been
cherry-picked from upstream into this package update targetting Debian
12. This effort is part of getting Debian Edu 12 ready for its initial
release.

[ Reason ]
Fine-polish Arctica Greeter for being used on Debian Edu workstations.
This will also bring benefit to all Arctica Greeter users in Debian 12.

[ Impact ]

If this version of arctica-greeter will not get accepted, there will be
some a11y downsides (e.g. a fixed on-screen keyboard theme and a
non-optimal OSK layout.

Furthermore, Arctica Greeter's desktop background is hard-coded to the
emerald theme's background rather than using the desktop-base activated
"active-theme". This is problematic for Debian Edu as Debian Edu ships
its own background images (which get activated in the desktop-base
manner).

[ Tests ]
Manual tests on Debian Edu and on a local machine as well as in a
VM running Debian testing/unstable.

[ Risks ]
Potential regressions.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]

+  * debian/patches:
+    + [a11y] Add patches 0001 and 0002. Support configuring the onscreen
+      keyboard theme via ArcticaGreeter's gsettings.
+    + [a11y, i18n]  Use 'Compact' OSK layout (instead of Small) which include
+      special keys such as German Umlauts, etc.

-> allow site admins to customize onboard's OSK theme and layout via gsettings.

+    + Add 0004-src-session-list.vala-Treat-gnome-xorg-as-GNOME-and-.patch. Show
+      correct icon for GNOME/X.Org session in session chooser list.

-> Fix session icon for GNOME/X.org (GNOME foot instead of white circle). This 
patch
comes together with a change for Plasma, but this is only relevant for
openSUSE users, however, the patch was cherry-picked as is from upstream
with both adjustments included.

+    + Add patches 0005, 0006 and 0007. Make PAM messages (esp. on login 
failure,
+      password expiry, etc.) be displayed fully and in readable colors.

In a Linux desktop customer project where Arctica Greeter is used, we
observed problems with error messages coming from PAM at login time (e.g.
expired passwords, requests to update/change one's password before
login). PAM messages would be truncated after one line and would hardly
readable (due to bg and fg color choice).

All those issues are addressed in the above named patch files.

+  * debian/30_arctica-greeter-theme-debian.gschema.override:
+    + Use active theme rather then emerald (although the button color scheme
+      is designed for emerald). This allows the user/admin to adjust the
+      background image of Arctica Greeter via the alternative system in
+      desktop-base.

As mentioned above, use Debian's active-theme rather than hard-coding Debian's 
emerald theme.

[ Other info ]
None. Let me know if more feedback is required.
diff -Nru 
arctica-greeter-0.99.3.0/debian/30_arctica-greeter-theme-debian.gschema.override
 
arctica-greeter-0.99.3.0/debian/30_arctica-greeter-theme-debian.gschema.override
--- 
arctica-greeter-0.99.3.0/debian/30_arctica-greeter-theme-debian.gschema.override
    2023-03-01 19:35:03.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/30_arctica-greeter-theme-debian.gschema.override
    2023-08-24 07:40:47.000000000 +0200
@@ -1,5 +1,5 @@
 [org.ArcticaProject.arctica-greeter]
-background='/usr/share/desktop-base/emerald-theme/login/background-nologo.svg'
+background='/usr/share/desktop-base/active-theme/login/background-nologo.svg'
 background-color='#032F3D'
 togglebox-button-bgcolor='#032F3D'
 togglebox-button-bordercolor='#032F3D'
diff -Nru arctica-greeter-0.99.3.0/debian/changelog 
arctica-greeter-0.99.3.0/debian/changelog
--- arctica-greeter-0.99.3.0/debian/changelog   2023-03-01 21:21:03.000000000 
+0100
+++ arctica-greeter-0.99.3.0/debian/changelog   2023-08-24 19:58:57.000000000 
+0200
@@ -1,3 +1,22 @@
+arctica-greeter (0.99.3.0-1+deb12u1) bookworm; urgency=medium
+
+  * debian/patches:
+    + [a11y] Add patches 0001 and 0002. Support configuring the onscreen
+      keyboard theme via ArcticaGreeter's gsettings.
+    + [a11y, i18n]  Use 'Compact' OSK layout (instead of Small) which include
+      special keys such as German Umlauts, etc.
+    + Add 0004-src-session-list.vala-Treat-gnome-xorg-as-GNOME-and-.patch. Show
+      correct icon for GNOME/X.Org session in session chooser list.
+    + Add patches 0005, 0006 and 0007. Make PAM messages (esp. on login 
failure,
+      password expiry, etc.) be displayed fully and in readable colors.
+  * debian/30_arctica-greeter-theme-debian.gschema.override:
+    + Use active theme rather then emerald (although the button color scheme
+      is designed for emerald). This allows the user/admin to adjust the
+      background image of Arctica Greeter via the alternative system in
+      desktop-base.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Thu, 24 Aug 2023 19:58:57 +0200
+
 arctica-greeter (0.99.3.0-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru 
arctica-greeter-0.99.3.0/debian/patches/0001-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
 
arctica-greeter-0.99.3.0/debian/patches/0001-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
--- 
arctica-greeter-0.99.3.0/debian/patches/0001-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/patches/0001-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
     2023-08-24 07:40:06.000000000 +0200
@@ -0,0 +1,27 @@
+From f2eeb8a1bb87b3d055b602d7ee201785ba4f8db4 Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+Date: Thu, 2 Mar 2023 12:29:37 +0100
+Subject: [PATCH 1/2] data/org.ArcticaProject.arctica-greeter.gschema.xml:
+ Improve description of onscreen-keyboard-layout.
+
+Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+---
+ data/org.ArcticaProject.arctica-greeter.gschema.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/org.ArcticaProject.arctica-greeter.gschema.xml 
b/data/org.ArcticaProject.arctica-greeter.gschema.xml
+index 50b7e61..5406035 100644
+--- a/data/org.ArcticaProject.arctica-greeter.gschema.xml
++++ b/data/org.ArcticaProject.arctica-greeter.gschema.xml
+@@ -185,7 +185,7 @@
+     </key>
+     <key name="onscreen-keyboard-layout" type="s">
+       <default>'Small'</default>
+-      <summary>Name of the onscreen keyboard layout (see 
/usr/share/onboard/layouts/ for available layout names).</summary>
++      <summary>Name of the onscreen keyboard layout (see 
/usr/share/onboard/layouts/*.onboard for available layout names).</summary>
+     </key>
+   </schema>
+ </schemalist>
+-- 
+2.30.2
+
diff -Nru 
arctica-greeter-0.99.3.0/debian/patches/0002-OSK-Add-OSK-theme-gsetting-to-individually-configure.patch
 
arctica-greeter-0.99.3.0/debian/patches/0002-OSK-Add-OSK-theme-gsetting-to-individually-configure.patch
--- 
arctica-greeter-0.99.3.0/debian/patches/0002-OSK-Add-OSK-theme-gsetting-to-individually-configure.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/patches/0002-OSK-Add-OSK-theme-gsetting-to-individually-configure.patch
     2023-08-24 07:40:06.000000000 +0200
@@ -0,0 +1,74 @@
+From c68179729de67ad4879613141699dcba35073a26 Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+Date: Thu, 2 Mar 2023 12:30:24 +0100
+Subject: [PATCH 2/2] OSK: Add OSK theme gsetting to individually configure the
+ OSK theme used via ArcticaGreeter's settings.
+
+Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+---
+ ...ArcticaProject.arctica-greeter.gschema.xml |  4 ++++
+ src/menubar.vala                              | 19 +++++++++++++------
+ src/settings.vala                             |  1 +
+ 3 files changed, 18 insertions(+), 6 deletions(-)
+
+diff --git a/data/org.ArcticaProject.arctica-greeter.gschema.xml 
b/data/org.ArcticaProject.arctica-greeter.gschema.xml
+index 5406035..c8bf28b 100644
+--- a/data/org.ArcticaProject.arctica-greeter.gschema.xml
++++ b/data/org.ArcticaProject.arctica-greeter.gschema.xml
+@@ -187,5 +187,9 @@
+       <default>'Small'</default>
+       <summary>Name of the onscreen keyboard layout (see 
/usr/share/onboard/layouts/*.onboard for available layout names).</summary>
+     </key>
++    <key name="onscreen-keyboard-theme" type="s">
++      <default>'Nightshade'</default>
++      <summary>Name of the onscreen keyboard theme (see 
/usr/share/onboard/themes/*.theme for available theme names).</summary>
++    </key>
+   </schema>
+ </schemalist>
+diff --git a/src/menubar.vala b/src/menubar.vala
+index 87e0bf7..d9dab66 100644
+--- a/src/menubar.vala
++++ b/src/menubar.vala
+@@ -538,14 +538,21 @@ public class MenuBar : Gtk.MenuBar
+                 string[] argv;
+                 string cmd;
+                 int onboard_stdout_fd;
+-                var layout = AGSettings.get_string 
(AGSettings.KEY_ONSCREEN_KEYBOARD_LAYOUT);
+-                var file = File.new_for_path 
("/usr/share/onboard/layouts/%s.onboard".printf (layout));
+-                if (file.query_exists ()) {
+-                    cmd = "onboard --xid 
--layout='/usr/share/onboard/layouts/%s.onboard'".printf (layout);
++                var arg_layout   = "";
++                var arg_theme    = "";
++                var layout       = AGSettings.get_string 
(AGSettings.KEY_ONSCREEN_KEYBOARD_LAYOUT);
++                var theme        = AGSettings.get_string 
(AGSettings.KEY_ONSCREEN_KEYBOARD_THEME);
++                var fname_layout = 
"/usr/share/onboard/layouts/%s.onboard".printf (layout);
++                var fname_theme  = 
"/usr/share/onboard/themes/%s.theme".printf (theme);
++                var file_layout  = File.new_for_path (fname_layout);
++                var file_theme   = File.new_for_path (fname_theme);
++                if (file_layout.query_exists ()) {
++                    arg_layout  = "--layout='%s'".printf (fname_layout);
+                 }
+-                else {
+-                    cmd = "onboard --xid";
++                if (file_theme.query_exists ()) {
++                    arg_theme  = "--theme='%s'".printf (fname_theme);
+                 }
++                cmd = "onboard --xid %s %s".printf (arg_layout, arg_theme);
+                 Shell.parse_argv (cmd, out argv);
+                 Process.spawn_async_with_pipes (null,
+                                                 argv,
+diff --git a/src/settings.vala b/src/settings.vala
+index a2dabd0..ecc01c4 100644
+--- a/src/settings.vala
++++ b/src/settings.vala
+@@ -42,6 +42,7 @@ public class AGSettings : Object
+     public const string KEY_XFT_RGBA = "xft-rgba";
+     public const string KEY_ONSCREEN_KEYBOARD = "onscreen-keyboard";
+     public const string KEY_ONSCREEN_KEYBOARD_LAYOUT = 
"onscreen-keyboard-layout";
++    public const string KEY_ONSCREEN_KEYBOARD_THEME = 
"onscreen-keyboard-theme";
+     public const string KEY_HIGH_CONTRAST = "high-contrast";
+     public const string KEY_BIG_FONT = "big-font";
+     public const string KEY_SCREEN_READER = "screen-reader";
+-- 
+2.30.2
+
diff -Nru 
arctica-greeter-0.99.3.0/debian/patches/0003-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
 
arctica-greeter-0.99.3.0/debian/patches/0003-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
--- 
arctica-greeter-0.99.3.0/debian/patches/0003-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/patches/0003-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
     2023-08-24 07:40:29.000000000 +0200
@@ -0,0 +1,27 @@
+From 5cd780e420f4a2d17db3975846bc59bba76f37ba Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+Date: Thu, 2 Mar 2023 13:00:47 +0100
+Subject: [PATCH 3/3] data/org.ArcticaProject.arctica-greeter.gschema.xml: Use
+ 'Compact' onboard layout for providing special keys such as Umlauts etc.
+
+Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+---
+ data/org.ArcticaProject.arctica-greeter.gschema.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/org.ArcticaProject.arctica-greeter.gschema.xml 
b/data/org.ArcticaProject.arctica-greeter.gschema.xml
+index c8bf28b..360717c 100644
+--- a/data/org.ArcticaProject.arctica-greeter.gschema.xml
++++ b/data/org.ArcticaProject.arctica-greeter.gschema.xml
+@@ -184,7 +184,7 @@
+       <summary>Monitor on which to show the Login GUI</summary>
+     </key>
+     <key name="onscreen-keyboard-layout" type="s">
+-      <default>'Small'</default>
++      <default>'Compact'</default>
+       <summary>Name of the onscreen keyboard layout (see 
/usr/share/onboard/layouts/*.onboard for available layout names).</summary>
+     </key>
+     <key name="onscreen-keyboard-theme" type="s">
+-- 
+2.30.2
+
diff -Nru 
arctica-greeter-0.99.3.0/debian/patches/0004-src-session-list.vala-Treat-gnome-xorg-as-GNOME-and-.patch
 
arctica-greeter-0.99.3.0/debian/patches/0004-src-session-list.vala-Treat-gnome-xorg-as-GNOME-and-.patch
--- 
arctica-greeter-0.99.3.0/debian/patches/0004-src-session-list.vala-Treat-gnome-xorg-as-GNOME-and-.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/patches/0004-src-session-list.vala-Treat-gnome-xorg-as-GNOME-and-.patch
     2023-08-24 07:55:52.000000000 +0200
@@ -0,0 +1,34 @@
+From 7bb7689830aff00d358c4d48faac4eb52a354618 Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+Date: Mon, 3 Apr 2023 08:42:03 +0200
+Subject: [PATCH] src/session-list.vala: Treat 'gnome-xorg' as GNOME and
+ 'plasma5' has KDE, as well.
+
+Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+---
+ src/session-list.vala | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/session-list.vala b/src/session-list.vala
+index 4c61edf..1807610 100644
+--- a/src/session-list.vala
++++ b/src/session-list.vala
+@@ -118,6 +118,7 @@ public class SessionList : GreeterList
+         case "gnome-flashback-metacity":
+         case "gnome-shell":
+         case "gnome-wayland":
++        case "gnome-xorg":
+         case "gnome":
+         case "openbox-gnome":
+             return "gnome_badge.png";
+@@ -127,6 +128,7 @@ public class SessionList : GreeterList
+         case "kde-plasma":
+         case "openbox-kde":
+         case "plasma":
++        case "plasma5":
+             return "kde_badge.png";
+         case "i3":
+         case "i3-with-shmlog":
+-- 
+2.39.2
+
diff -Nru 
arctica-greeter-0.99.3.0/debian/patches/0005-src-prompt-box.vala-enable-line-wrapping-for-error-m.patch
 
arctica-greeter-0.99.3.0/debian/patches/0005-src-prompt-box.vala-enable-line-wrapping-for-error-m.patch
--- 
arctica-greeter-0.99.3.0/debian/patches/0005-src-prompt-box.vala-enable-line-wrapping-for-error-m.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/patches/0005-src-prompt-box.vala-enable-line-wrapping-for-error-m.patch
     2023-08-24 07:55:57.000000000 +0200
@@ -0,0 +1,37 @@
+From 036a3b7718f827f2092014c90e883023f125fa7d Mon Sep 17 00:00:00 2001
+From: Mihai Moldovan <io...@ionic.de>
+Date: Wed, 22 Mar 2023 04:08:18 +0100
+Subject: [PATCH] src/prompt-box.vala: enable line wrapping for (error)
+ messages.
+
+Long lines were previously truncated as part of the fading label. Since
+PAM (error) messages are shown within the prompt box, truncating them is
+a really bad idea, since the user might not understand what went wrong
+and how it can be fixed.
+
+Enabling line wrapping makes sure that the full message is always shown
+- at least theoretically. Messages may still be truncated if they are
+long enough to overflow the prompt box itself, but this is caused by the
+prompt box not resizing itself correctly. Further work on that is
+necessary.
+
+Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+---
+ src/prompt-box.vala | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/prompt-box.vala b/src/prompt-box.vala
+index ffce61c..6953c1b 100644
+--- a/src/prompt-box.vala
++++ b/src/prompt-box.vala
+@@ -555,6 +555,7 @@ public class PromptBox : FadableBox
+     public void add_message (string text, bool is_error)
+     {
+         var label = new FadingLabel (text);
++        label.set_line_wrap (true);
+ 
+         var style_ctx = label.get_style_context();
+ 
+-- 
+2.39.2
+
diff -Nru 
arctica-greeter-0.99.3.0/debian/patches/0006-src-prompt-box.vala-set-background-color-for-error-m.patch
 
arctica-greeter-0.99.3.0/debian/patches/0006-src-prompt-box.vala-set-background-color-for-error-m.patch
--- 
arctica-greeter-0.99.3.0/debian/patches/0006-src-prompt-box.vala-set-background-color-for-error-m.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/patches/0006-src-prompt-box.vala-set-background-color-for-error-m.patch
     2023-08-24 07:55:57.000000000 +0200
@@ -0,0 +1,45 @@
+From 20836a6021de0c7f4675881e56f62b32fa78726c Mon Sep 17 00:00:00 2001
+From: Mihai Moldovan <io...@ionic.de>
+Date: Wed, 22 Mar 2023 04:17:50 +0100
+Subject: [PATCH] src/prompt-box.vala: set background color for error messages
+ to pure white.
+
+While this might look ugly, it is important that error messages can be
+read well and a transparent background might be a bad fit with a static
+red text color, if the background is also quite red.
+
+Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+---
+ src/prompt-box.vala | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/src/prompt-box.vala b/src/prompt-box.vala
+index 6953c1b..d925739 100644
+--- a/src/prompt-box.vala
++++ b/src/prompt-box.vala
+@@ -573,10 +573,21 @@ public class PromptBox : FadableBox
+         }
+ 
+         Gdk.RGBA color = { 1.0f, 1.0f, 1.0f, 1.0f };
+-        if (is_error)
++        if (is_error) {
+             color.parse ("#df382c");
++
++            /*
++             * Overriding the background color will look ugly, but at least
++             * always make the text readable, which is probably important for
++             * error messages.
++             * We probably want to find a better way of handling this.
++             */
++            Gdk.RGBA bg_color = { 1.0f, 1.0f, 1.0f, 1.0f };
++            label.override_background_color (Gtk.StateFlags.NORMAL, bg_color);
++        }
+         label.override_color (Gtk.StateFlags.NORMAL, color);
+ 
++
+         label.xalign = 0.0f;
+         label.set_data<bool> ("prompt-box-is-error", is_error);
+ 
+-- 
+2.39.2
+
diff -Nru 
arctica-greeter-0.99.3.0/debian/patches/0007-src-prompt-box.vala-darken-red-error-message-text-co.patch
 
arctica-greeter-0.99.3.0/debian/patches/0007-src-prompt-box.vala-darken-red-error-message-text-co.patch
--- 
arctica-greeter-0.99.3.0/debian/patches/0007-src-prompt-box.vala-darken-red-error-message-text-co.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
arctica-greeter-0.99.3.0/debian/patches/0007-src-prompt-box.vala-darken-red-error-message-text-co.patch
     2023-08-24 07:55:57.000000000 +0200
@@ -0,0 +1,29 @@
+From 5cc2e006692e71bf037be83e138f94273b36d4da Mon Sep 17 00:00:00 2001
+From: Mihai Moldovan <io...@ionic.de>
+Date: Wed, 22 Mar 2023 04:19:07 +0100
+Subject: [PATCH] src/prompt-box.vala: darken red error message text color.
+
+This improves the contrast considerably for the new static white
+background.
+
+Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
+---
+ src/prompt-box.vala | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/prompt-box.vala b/src/prompt-box.vala
+index d925739..e1dc629 100644
+--- a/src/prompt-box.vala
++++ b/src/prompt-box.vala
+@@ -574,7 +574,7 @@ public class PromptBox : FadableBox
+ 
+         Gdk.RGBA color = { 1.0f, 1.0f, 1.0f, 1.0f };
+         if (is_error) {
+-            color.parse ("#df382c");
++            color.parse ("#820900");
+ 
+             /*
+              * Overriding the background color will look ugly, but at least
+-- 
+2.39.2
+
diff -Nru arctica-greeter-0.99.3.0/debian/patches/series 
arctica-greeter-0.99.3.0/debian/patches/series
--- arctica-greeter-0.99.3.0/debian/patches/series      2023-03-01 
16:12:00.000000000 +0100
+++ arctica-greeter-0.99.3.0/debian/patches/series      2023-08-24 
07:55:57.000000000 +0200
@@ -1 +1,8 @@
 2001_dont-blur-logo.patch
+0001-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
+0002-OSK-Add-OSK-theme-gsetting-to-individually-configure.patch
+0003-data-org.ArcticaProject.arctica-greeter.gschema.xml-.patch
+0004-src-session-list.vala-Treat-gnome-xorg-as-GNOME-and-.patch
+0005-src-prompt-box.vala-enable-line-wrapping-for-error-m.patch
+0006-src-prompt-box.vala-set-background-color-for-error-m.patch
+0007-src-prompt-box.vala-darken-red-error-message-text-co.patch

Reply via email to