From 65fe812d5c58eb9e3044a1d1023fbb2d5b17a867 Mon Sep 17 00:00:00 2001 From: Yannick Ulrich Date: Sun, 18 Jul 2021 13:55:42 +0100 Subject: [PATCH] temp/gnome-clocks: new aport (MR 2342) [ci:skip-build] already built successfully in CI --- .../0001-waked-implementation.patch | 183 ++++++++++++++++++ temp/gnome-clocks/APKBUILD | 37 ++++ 2 files changed, 220 insertions(+) create mode 100644 temp/gnome-clocks/0001-waked-implementation.patch create mode 100644 temp/gnome-clocks/APKBUILD diff --git a/temp/gnome-clocks/0001-waked-implementation.patch b/temp/gnome-clocks/0001-waked-implementation.patch new file mode 100644 index 000000000..558ce8d8c --- /dev/null +++ b/temp/gnome-clocks/0001-waked-implementation.patch @@ -0,0 +1,183 @@ +From e60dad2722616995022d3567eabbcc17c9c77a6f Mon Sep 17 00:00:00 2001 +From: Robin Westermann +Date: Sat, 27 Feb 2021 14:41:22 +0100 +Subject: [PATCH] invoke waked when an alarm changes + +When an alarm is deleted, created, edited or rearmed the service +waked is notified about the update. So waked can wake the system +from suspend when an alarm is fired. + +Fixes #100 +--- + build-aux/flatpak/org.gnome.clocks.json | 1 + + src/alarm-face.vala | 2 + + src/alarm-item.vala | 13 +++++- + src/alarm-setup-dialog.vala | 1 + + src/meson.build | 1 + + src/waked-utils.vala | 53 +++++++++++++++++++++++++ + 6 files changed, 69 insertions(+), 2 deletions(-) + create mode 100644 src/waked-utils.vala + +diff --git a/build-aux/flatpak/org.gnome.clocks.json b/build-aux/flatpak/org.gnome.clocks.json +index 1bf5e84..7cb24de 100644 +--- a/build-aux/flatpak/org.gnome.clocks.json ++++ b/build-aux/flatpak/org.gnome.clocks.json +@@ -10,6 +10,7 @@ + "--socket=fallback-x11", + "--socket=wayland", + "--socket=pulseaudio", ++ "--system-talk-name=de.seath.Waked", + "--share=network", + "--system-talk-name=org.freedesktop.GeoClue2", + "--filesystem=xdg-run/dconf", +diff --git a/src/alarm-face.vala b/src/alarm-face.vala +index 0fe77cb..420aa14 100644 +--- a/src/alarm-face.vala ++++ b/src/alarm-face.vala +@@ -119,6 +119,7 @@ public class Face : Gtk.Stack, Clocks.Clock { + ((SetupDialog) dialog).apply_to_alarm (alarm); + save (); + } else if (response == DELETE_ALARM) { ++ WakedUtils.remove_timer (alarm.id); + alarms.delete_item (alarm); + save (); + } +@@ -128,6 +129,7 @@ public class Face : Gtk.Stack, Clocks.Clock { + } + + internal void delete (Item alarm) { ++ WakedUtils.remove_timer (alarm.id); + alarms.delete_item (alarm); + save (); + } +diff --git a/src/alarm-item.vala b/src/alarm-item.vala +index 6103342..f8fa937 100644 +--- a/src/alarm-item.vala ++++ b/src/alarm-item.vala +@@ -20,6 +20,7 @@ + namespace Clocks { + namespace Alarm { + ++ + private struct AlarmTime { + public int hour; + public int minute; +@@ -88,8 +89,11 @@ private class Item : Object, ContentItem { + _active = value; + if (_active) { + reset (); +- } else if (state == State.RINGING) { +- stop (); ++ } else { ++ WakedUtils.remove_timer (id); ++ if (state == State.RINGING) { ++ stop (); ++ } + } + notify_property ("active"); + } +@@ -150,6 +154,10 @@ private class Item : Object, ContentItem { + } + + alarm_time = dt; ++ ++ if (active) { ++ WakedUtils.update_timer (id, alarm_time); ++ } + } + + private void update_snooze_time (GLib.DateTime start_time) { +@@ -221,6 +229,7 @@ private class Item : Object, ContentItem { + update_alarm_time (); // reschedule for the next repeat + } + ++ + return state != last_state; + } + +diff --git a/src/alarm-setup-dialog.vala b/src/alarm-setup-dialog.vala +index 97cde1f..6d1d93f 100644 +--- a/src/alarm-setup-dialog.vala ++++ b/src/alarm-setup-dialog.vala +@@ -255,6 +255,7 @@ private class SetupDialog : Gtk.Dialog { + + private void avoid_duplicate_alarm () { + var alarm = new Item (); ++ alarm.editing = true; + apply_to_alarm (alarm); + + var duplicate = alarm.check_duplicate_alarm (other_alarms); +diff --git a/src/meson.build b/src/meson.build +index 4c51188..4044e65 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -24,6 +24,7 @@ clocks_vala_sources = files( + 'timer-setup.vala', + 'timer-setup-dialog.vala', + 'utils.vala', ++ 'waked-utils.vala', + 'widgets.vala', + 'window.vala', + 'world-face.vala', +diff --git a/src/waked-utils.vala b/src/waked-utils.vala +new file mode 100644 +index 0000000..9b8fa4a +--- /dev/null ++++ b/src/waked-utils.vala +@@ -0,0 +1,53 @@ ++/* ++ * Copyright (C) 2021 Robin Westermann ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++namespace Clocks { ++namespace WakedUtils { ++ ++ [DBus (name = "de.seath.Waked")] ++ interface Waked : Object { ++ public abstract void add (string id, uint64 time) throws GLib.Error; ++ public abstract void update (string id, uint64 time) throws GLib.Error; ++ public abstract void remove (string id) throws GLib.Error; ++ } ++ ++ public void update_timer (string id, GLib.DateTime time) { ++ try { ++ Waked waked = Bus.get_proxy_sync (BusType.SYSTEM, "de.seath.Waked", ++ "/de/seath/Waked/Alarm"); ++ ++ waked.update (id, time.to_unix ()); ++ ++ } catch (GLib.Error e) { ++ stderr.printf ("%s\n", e.message); ++ } ++ } ++ ++ public void remove_timer (string id) { ++ try { ++ Waked waked = Bus.get_proxy_sync (BusType.SYSTEM, "de.seath.Waked", ++ "/de/seath/Waked/Alarm"); ++ ++ waked.remove (id); ++ ++ } catch (GLib.Error e) { ++ stderr.printf ("%s\n", e.message); ++ } ++ } ++} ++} +-- +GitLab + diff --git a/temp/gnome-clocks/APKBUILD b/temp/gnome-clocks/APKBUILD new file mode 100644 index 000000000..a86014457 --- /dev/null +++ b/temp/gnome-clocks/APKBUILD @@ -0,0 +1,37 @@ +# Forked from Alpine to apply waked patch +pkgname=gnome-clocks +pkgver=9999_git20210323 +pkgrel=0 +_commit=13a15e8506d90b0300f9549020c66280ee4d3026 +pkgdesc="Clock application designed for GNOME 3" +url="https://wiki.gnome.org/Apps/Clocks" +# s390x, mips64 and riscv64 blocked by rust -> libhandy +arch="all !s390x !mips64 !riscv64" +license="GPL-2.0-or-later" +depends="gsettings-desktop-schemas waked" +makedepends="meson glib-dev gtk+3.0-dev libgweather-dev gsound-dev gnome-desktop-dev + geoclue-dev geocode-glib-dev gettext-dev vala itstool libhandy1-dev" +checkdepends="appstream-glib desktop-file-utils" +subpackages="$pkgname-lang $pkgname-doc" +source=" + $pkgname-$_commit.tar.gz::https://gitlab.gnome.org/GNOME/gnome-clocks/-/archive/$_commit/gnome-clocks-$_commit.tar.gz + 0001-waked-implementation.patch + " +builddir="$srcdir/$pkgname-$_commit" + +build() { + abuild-meson . output + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +check() { + meson test --no-rebuild -v -C output +} + +package() { + DESTDIR="$pkgdir" meson install --no-rebuild -C output +} +sha512sums=" +ba248a5b45b4200cc08137e9510ef445f649a01481a6e934e189119edf0bab2645a8429d1396739dc8525bf65e059556c41a29a35f970a4b1a24fdacc0e5652d gnome-clocks-13a15e8506d90b0300f9549020c66280ee4d3026.tar.gz +c537f359f71aaec75406fd7055ff897b37045365742e12c14fa825154614253662a23015325a7bc571c81c0c73bd2ceccbee2b9c8b08f93d2e35d603764b3928 0001-waked-implementation.patch +"