Compare commits

...
Author SHA1 Message Date
Luca Weiss ca924ffd86 main/libsignon-glib: remove
unity8/wlcs: remove

upstreamed
2021-04-05 07:46:54 +02:00
Luca Weiss 3e483441a3 unity8/qmenumodel: fix compile 2021-04-04 20:44:26 +02:00
Luca Weiss b218ee2b57 unity8/url-dispatcher: fix compile 2021-04-04 20:44:26 +02:00
Luca Weiss b5e6ba71fa unity8/ubuntu-app-launch: fix compile 2021-04-04 20:44:26 +02:00
Luca Weiss 5804d5fb5c unity8/mir: remove dmz-cursor-theme depends
Don't think it's needed
2021-04-04 20:44:26 +02:00
Luca Weiss ec6fdf0f9c main/dmz-cursor-theme: remove
Don't think it's needed
2021-04-04 20:44:26 +02:00
Luca Weiss 5ae2d7f363 unity8/wlcs: upgrade to 1.2.1 2021-04-04 20:44:26 +02:00
Luca Weiss 3524335a4b main/dbus-cpp: remove
main/net-cpp: remove

main/process-cpp: remove

main/properties-cpp: remove
2021-04-04 20:44:26 +02:00
Luca Weiss 0250ad6059 main/libsignon-glib: update to Alpine version 2021-04-04 20:44:25 +02:00
Luca Weiss b47f2f6ddb main/xcursorgen: remove 2021-04-04 20:44:25 +02:00
Luca Weiss 01b1b8dcaa DNM main/properties-cpp: new aport 2021-04-04 20:44:25 +02:00
Luca Weiss 04fe37043b main/net-cpp: upgrade to 2.2.1 2021-04-04 20:44:25 +02:00
Luca Weiss 2e9b48a286 main/process-cpp: upgrade to 3.0.1 2021-04-04 20:44:25 +02:00
Luca Weiss 8d577714cb main/dbus-cpp: upgrade to 5.0.2 2021-04-04 20:44:25 +02:00
Luca Weiss 7c5bf89af3 main/umockdev: remove
In Alpine now
2021-04-04 20:44:25 +02:00
Luca Weiss 6a7b18c9a3 unity8/mir: fix compile 2021-04-04 20:44:25 +02:00
Luca Weiss 1a8b997a93 unity8/*: various upgrades
unity8/location-service: upgrade to 0_git20200818

unity8/qmenumodel: upgrade to 0_git20201008

unity8/settings-components: upgrade to 0_git20201125

unity8/system-settings: upgrade to 0_git20201218

unity8/trust-store: upgrade to 0_git20201008

unity8/ubuntu-download-manager: upgrade to 0_git20201109

unity8/ubuntu-ui-toolkit: upgrade to 0_git20201106

unity8/unity-api: upgrade to 0_git20201016

unity8/url-dispatcher: upgrade to 0_git20200925
2021-04-04 20:44:25 +02:00
Luca Weiss 22d1ba7622 unity8/unity8: upgrade to 0_git20201130 2021-04-04 20:44:25 +02:00
Luca Weiss 08ccd73275 unity8/mir: upgrade to 1.8.1 2021-04-04 20:44:25 +02:00
Luca Weiss 6332d4e778 Remove cmake-3.15 workaround; fixed upstream 2021-04-04 20:44:25 +02:00
Luca Weiss 0d73234f3c unity8/*: Various upgrades
unity8/lomiri-deviceinfo: new aport

unity8/click: upgrade to 0_git20200517

unity8/gmenuharness: upgrade to 0_git20200517

unity8/gsettings-qt: upgrade to 0_git20200715

unity8/libusermetrics: upgrade to 0_git20200517

unity8/platform-api: upgrade to 0_git20200720

unity8/qmenumodel: upgrade to 0_git20171227

unity8/qtmir: upgrade to 0_git20200610

unity8/settings-components: upgrade to 0_git20200527

unity8/system-settings: upgrade to 0_git20200827

unity8/trust-store: upgrade to 0_git20200527

unity8/ubuntu-app-launch: upgrade to 0_git20181230

unity8/ubuntu-download-manager: upgrade to 0_git20200118

unity8/ubuntu-themes: upgrade to 0_git20200211

unity8/ubuntu-ui-toolkit: upgrade to 0_git20200722

unity8/unity-api: upgrade to 0_git20200512

unity8/unity-system-compositor: upgrade to 0_git20200813

unity8/unity8: upgrade to 0_git20200908

unity8/url-dispatcher: upgrade to 0_git20181007
2021-04-04 20:44:25 +02:00
Luca Weiss 4e266223bb Revert "unity8/url-dispatcher: switch source to gitlab"
This reverts commit af2cb6b4656707039b33ad460a8c09d4bc1a9e27.
2021-04-04 20:44:25 +02:00
Luca Weiss 2e9887c918 Add system-settings as dependency of UI package 2021-04-04 20:44:25 +02:00
Luca Weiss ea849be63a unity8/platform-api: update patch 2021-04-04 20:44:25 +02:00
Luca Weiss 8fde605a1d unity8/qtmir: add missing makedepend 2021-04-04 20:44:25 +02:00
Luca Weiss 04cb433ab6 unity8/unity-system-compositor: upgrade to 0_git20200414 2021-04-04 20:44:25 +02:00
Luca Weiss f483bc3436 Revert "unity8/unity-system-compositor: remove"
This reverts commit 4e10be6834a55f934a871154b79904f01077df77.
2021-04-04 20:44:25 +02:00
Luca Weiss 523493464f unity8/url-dispatcher: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss 61406ca9ab unity8/ubuntu-app-launch: add missing makedepend 2021-04-04 20:44:25 +02:00
Luca Weiss 393e700277 unity8/unity-api: fix checksum 2021-04-04 20:44:25 +02:00
Luca Weiss e271215019 unity8/mir: add makedepend
Alpine split the lttng-ust package
2021-04-04 20:44:25 +02:00
Luca Weiss a9465fe2ee unity8/unity8: upgrade to 0_git20200527 2021-04-04 20:44:25 +02:00
Luca Weiss 7f3e6abe08 unity8/unity7-schemas: remove
schema is included in unity8 source now
2021-04-04 20:44:25 +02:00
Luca Weiss 58ebd08c3c unity8/unity-api: satisfy lint 2021-04-04 20:44:25 +02:00
Luca Weiss 34fb72f13b unity8/ubuntu-ui-toolkit: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss 1a35ea5df0 unity8/qtmir: update gtest patch 2021-04-04 20:44:25 +02:00
Luca Weiss e8e7ee6c7b unity8/ubuntu-themes: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss a6607678b9 unity8/ubuntu-download-manager: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss e50c53a79e unity8/ubuntu-app-launch: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss 0fbd799a2b unity8/trust-store: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss f97421e4d3 unity8/ubuntu-ui-toolkit: add missing dependency 2021-04-04 20:44:25 +02:00
Luca Weiss 1444b3742c unity8/system-settings: clean up, build from xenial, partially fix tests 2021-04-04 20:44:25 +02:00
Luca Weiss a372d39668 unity8/settings-components: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss d23b8be385 unity8/qtmir: fix tests 2021-04-04 20:44:25 +02:00
Luca Weiss 30a1d1b15c unity8/qmenumodel: clean up and fix tests 2021-04-04 20:44:25 +02:00
Luca Weiss 48dec5a232 unity8/qdjango: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss 0a1dc60d83 unity8/platform-api: clean up, refresh patches 2021-04-04 20:44:25 +02:00
Luca Weiss bc53146111 main/umockdev: add checkdepends 2021-04-04 20:44:25 +02:00
Luca Weiss 32bb2c06a4 unity8/mir: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss f078eb837c unity8/gmenuharness: disable tests again, fail when cross compiled 2021-04-04 20:44:25 +02:00
Luca Weiss 831b2bd86e main/postmarketos-ui-lomiri: new aport
Just with a default wallpaper for now
2021-04-04 20:44:25 +02:00
Luca Weiss 17d955dfc9 unity8/unity8: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss 8b37a88a35 unity8/unity8: add suru-icon-theme dependency 2021-04-04 20:44:25 +02:00
Luca Weiss 4d4aff35ad unity8/qtmir: add wayland patch 2021-04-04 20:44:25 +02:00
Luca Weiss da7c53cc0c unity8/location-service: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss e26601b18f unity8/libusermetrics: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss f70f2d86f2 unity8/libqtdbustest: clean up 2021-04-04 20:44:25 +02:00
Luca Weiss 1e1fcbe1f5 unity8/libqtdbusmock: clean up and fix tests 2021-04-04 20:44:25 +02:00
Luca Weiss 1aedc71470 unity8/indicator-network: clean up 2021-04-04 20:44:24 +02:00
Luca Weiss 9c6a4dc6b6 Add ubuntu-themes 2021-04-04 20:44:24 +02:00
Luca Weiss 5d332ff356 unity8/gsettings-ubuntu-touch-schemas: clean up 2021-04-04 20:44:24 +02:00
Luca Weiss be463a876e unity8/gsettings-qt: clean up and fix tests 2021-04-04 20:44:24 +02:00
Luca Weiss 448e73050e unity8/gmenuharness: clean up and enable tests 2021-04-04 20:44:24 +02:00
Luca Weiss da4c8fb8a2 unity8/geonames: prettify 2021-04-04 20:44:24 +02:00
Luca Weiss b7212d5478 unity8/cmake-extras: remove 2021-04-04 20:44:24 +02:00
Luca Weiss 18a88fbda2 unity8/click: upgrade to 0_git20200424 2021-04-04 20:44:24 +02:00
Luca Weiss febfeed4ab Rename pmb:no-crossdirect option to !pmb:crossdirect 2021-04-04 20:44:24 +02:00
Luca Weiss ddc67f4199 unity8/content-hub: work around issue in cross build 2021-04-04 20:44:24 +02:00
Luca Weiss 892d58340d unity8/ubuntu-download-manager: disable failing tests 2021-04-04 20:44:24 +02:00
Luca Weiss f881fdfd8e unity8/ubuntu-app-launch: "fix" cross build 2021-04-04 20:44:24 +02:00
Luca Weiss 210574d127 unity8/pthread-cancel-noop: new aport 2021-04-04 20:44:24 +02:00
Luca Weiss 16133d5a4f unity8/unity-api: skip broken test under QEMU 2021-04-04 20:44:24 +02:00
Luca Weiss b799bfeb81 unity8/ubuntu-download-manager: fix tests 2021-04-04 20:44:24 +02:00
Luca Weiss 681d385667 unity8/unity-api: fix tests 2021-04-04 20:44:24 +02:00
Luca Weiss 1609a7e552 unity8/ubuntu-download-manager: add missing impl 2021-04-04 20:44:24 +02:00
Luca Weiss d6a148799f unity8/system-settings: build with cmake 3.15 2021-04-04 20:44:24 +02:00
Luca Weiss 8b4ad6e3f4 unity8/qtmir: get building again 2021-04-04 20:44:24 +02:00
Luca Weiss 890c73b04c unity8/mir: upgrade to 1.8.0 2021-04-04 20:44:24 +02:00
Luca Weiss bd89b62a11 Revert "main/umockdev: remove"
This reverts commit a10a1c8b41.
2021-04-04 20:44:24 +02:00
Luca Weiss 2fa90493e6 unity8/*: everything until qtmir builds 2021-04-04 20:44:24 +02:00
Luca Weiss ad65fc1d7d Revert lomiri package renames 2021-04-04 20:44:24 +02:00
Luca Weiss 00be87e271 main/properties-cpp: remove 2021-04-04 20:44:24 +02:00
Luca Weiss 0934fb83c5 unity8/url-dispatcher: switch source to gitlab 2021-04-04 20:44:24 +02:00
Luca Weiss bdcdfc9e4b unity8/lomiri-app-launch: upgrade to 0_git20200306 2021-04-04 20:44:24 +02:00
Luca Weiss d458d2ed43 unity8/lomiri-api: upgrade to 0_git20200303 2021-04-04 20:44:24 +02:00
Luca Weiss 69c92f260e unity8/lomiri-download-manager: upgrade to 0_git20200303 2021-04-04 20:44:24 +02:00
Luca Weiss bcb5730c25 unity8/cmake-extras: upgrade to 0_git20200225 2021-04-04 20:44:24 +02:00
Luca Weiss e9f0a19d5b unity8/mir: upgrade to 1.7.1 2021-04-04 20:44:24 +02:00
Luca Weiss cdce5ecab9 unity8/content-hub: adjust makedepends 2021-04-04 20:44:24 +02:00
Luca Weiss 0fbb1ab9db unity8/content-hub: adjust check function 2021-04-04 20:44:24 +02:00
Luca Weiss f0cfaaea48 unity8/trust-store: remove invalid -doc subpackage 2021-04-04 20:44:24 +02:00
Luca Weiss 2a98c18502 unity8/mir: upgrade to 1.7.0 2021-04-04 20:44:24 +02:00
Luca Weiss 4fbe0923fd unity8/mir: upgrade to 1.6.0 2021-04-04 20:44:24 +02:00
Luca Weiss b6a1bd79df unity8/unity8: fix build with patch from xenial branch 2021-04-04 20:44:24 +02:00
Luca Weiss 9c711f4205 unity8/unity-system-compositor: remove
apparently not used on desktop
2021-04-04 20:44:24 +02:00
Luca Weiss 05bf94a7be unity8/trust-store: add -lang subpackage 2021-04-04 20:44:24 +02:00
Luca Weiss 5ac8e62fa0 unity8/qtmir: fix build 2021-04-04 20:44:24 +02:00
Luca Weiss 9eb16f4548 main/dbus-cpp & unity8/unity-api: fix build 2021-04-04 20:44:24 +02:00
Luca Weiss e207c77c98 unity8/mir: upgrade to 1.5.0 2021-04-04 20:44:24 +02:00
Luca Weiss 77b0cfff25 unity8/url-dispatcher: disable Werror 2021-04-04 20:44:24 +02:00
Luca Weiss 1311066db4 unity8/indicator-network: remove merged patch 2021-04-04 20:44:24 +02:00
Luca Weiss 1b248fc089 unity8/click: fix build with new abuild 2021-04-04 20:44:24 +02:00
Luca Weiss a319710978 unity8/mir: upgrade to 1.4.0 2021-04-04 20:44:24 +02:00
Luca Weiss b228af534a unity8/ubuntu-download-manager: add patch to fix build 2021-04-04 20:44:24 +02:00
Luca Weiss 08ecd6ae2c unity8/*: various upgrades 2021-04-04 20:44:24 +02:00
Luca Weiss 63af95f34f unity8/wlcs: new aport 2021-04-04 20:44:24 +02:00
Luca Weiss add9ae8460 unity8/*: update some packages 2021-04-04 20:44:24 +02:00
Luca Weiss 1d6beb0f19 main/process-cpp: Don't build tests 2021-04-04 20:44:24 +02:00
Luca Weiss 582ff3ef29 unity8/*: update some packages with patches merged 2021-04-04 20:44:23 +02:00
Luca Weiss 310372907c unity8/mir: add patch to force a drm device
Needed on the pinephone devkit
2021-04-04 20:44:23 +02:00
Luca Weiss 7de8d5c0b1 main/process-cpp: disable tests because they hangs in QEMU 2021-04-04 20:44:23 +02:00
Luca Weiss e009c7b611 unity8/system-settings: fix build with new NetworkManager version 2021-04-04 20:44:23 +02:00
Luca Weiss 3692e213d7 unity8/indicator-network: fix build with new NetworkManager version 2021-04-04 20:44:23 +02:00
Luca Weiss 9457c1f180 unity8/libqtdbusmock: fix build with new NetworkManager version 2021-04-04 20:44:23 +02:00
Luca Weiss 6680a29728 unity8/libqtdbustest: disable tests because of issues when being cross compiled 2021-04-04 20:44:23 +02:00
Luca Weiss 1030770548 unity8/mir: go back to GCC 2021-04-04 20:44:23 +02:00
Luca Weiss 63f857734e unity8: enable all arches again 2021-04-04 20:44:23 +02:00
Luca Weiss 6e279e927e Revert "main/dmz-cursor-theme: drop (!887)"
This reverts commit a6ad088e04.
2021-04-04 20:44:23 +02:00
Luca Weiss 94b260960c Revert "unity8: remove (mir does not build anymore)"
This reverts commit 7d005e693e.
2021-04-04 20:44:23 +02:00
Luca Weiss fafea543d6 Revert "main/cmake-extras: restore aport"
This reverts commit 68edbf1a8b.
2021-04-04 20:44:23 +02:00
Luca Weiss acb2d7e387 Revert "main/*: remove ubports leftovers"
This reverts commit 0d9b581c86.
2021-04-04 20:44:23 +02:00
72 changed files with 4263 additions and 38 deletions

No files matched your search

-38
View File
@@ -1,38 +0,0 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=libsignon-glib
pkgver=2.1
pkgrel=2
_spec_commit="67487954653006ebd0743188342df65342dc8f9b"
pkgdesc="GLib library to interface with the Signon Daemon"
url="https://gitlab.com/accounts-sso/libsignon-glib"
arch="x86_64"
license="LGPL-2.1-only"
makedepends="meson glib-dev check-dev gobject-introspection-dev vala py3-gobject3 gtk-doc"
subpackages="$pkgname-dev"
source="https://gitlab.com/accounts-sso/libsignon-glib/-/archive/VERSION_$pkgver/libsignon-glib-VERSION_$pkgver.tar.gz
https://gitlab.com/accounts-sso/signon-dbus-specification/-/archive/$_spec_commit/signon-dbus-specification-$_spec_commit.tar.gz
"
builddir="$srcdir/$pkgname-VERSION_$pkgver"
options="!check" # Tests hang
prepare() {
default_prepare
cp "$srcdir"/signon-dbus-specification-$_spec_commit/* \
"$builddir"/libsignon-glib/interfaces/
}
build() {
abuild-meson . output
meson compile ${JOBS:+-j ${JOBS}} -C output
}
check() {
meson test -C output
}
package() {
DESTDIR="$pkgdir" meson install -C output
}
sha512sums="45d8e26263a16b98517cda0fff8e46fb1ffcc4bb833a6364454f120eb9819b48ee04bdb338bf5e9f0b0fe344af5940f35ed56f0765ca3605dead5b3755657dcf libsignon-glib-VERSION_2.1.tar.gz
8b65019e2793dd58b2b60f8893ab999513a6aa2374f5d1053341fcdec6e2debb4d729abbbef17c8a2cb0b905893f06118649f17698bb91dc4e2681b2fe99e4b3 signon-dbus-specification-67487954653006ebd0743188342df65342dc8f9b.tar.gz"
@@ -0,0 +1,2 @@
[org.gnome.desktop.background]
picture-uri='file:///usr/share/wallpapers/postmarketos.jpg'
+24
View File
@@ -0,0 +1,24 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=postmarketos-ui-lomiri
pkgver=1
pkgrel=0
pkgdesc="(Wayland) Lomiri"
url="https://unity8.io/"
arch="noarch"
license="GPL-3.0-or-later"
depends="
unity8
postmarketos-artwork-wallpapers
system-settings
"
source="
000-gschema.override
"
options="!check"
package() {
install -Dm644 "$srcdir"/000-gschema.override \
"$pkgdir"/usr/share/glib-2.0/schemas/000-postmarketos.gschema.override
}
sha512sums="f44d4e2544d44119ed1ab9fb454a20d1fc050925a029ce10df4d7c20da3d1f461b018cdd6129272e38e50179d1e5ff71b72d3cc4dbce28113fe1b3561a2e84b5 000-gschema.override"
@@ -0,0 +1,378 @@
From 0e3381dc788670849751dcb01b4257b56095b334 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Thu, 27 Sep 2018 23:31:06 +0200
Subject: [PATCH 1/4] 0001-formats-locale-property.patch
---
data/org.freedesktop.Accounts.User.xml | 45 +++++++++++++++
src/libaccountsservice/act-user.c | 69 +++++++++++++++++++++++
src/libaccountsservice/act-user.h | 3 +
src/user.c | 76 ++++++++++++++++++++++++++
4 files changed, 193 insertions(+)
diff --git a/data/org.freedesktop.Accounts.User.xml b/data/org.freedesktop.Accounts.User.xml
index 4ab989a..0856974 100644
--- a/data/org.freedesktop.Accounts.User.xml
+++ b/data/org.freedesktop.Accounts.User.xml
@@ -150,6 +150,41 @@
</doc:doc>
</method>
+ <method name="SetFormatsLocale">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="formats_locale" direction="in" type="s">
+ <doc:doc>
+ <doc:summary>
+ The new regional formats, as a locale specification like "de_DE.UTF-8".
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Sets the users regional formats.
+ </doc:para>
+ </doc:description>
+ <doc:permission>
+ The caller needs one of the following PolicyKit authorizations:
+ <doc:list>
+ <doc:item>
+ <doc:term>org.freedesktop.accounts.change-own-user-data</doc:term>
+ <doc:definition>To change his own language</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>org.freedesktop.accounts.user-administration</doc:term>
+ <doc:definition>To change the language of another user</doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:permission>
+ <doc:errors>
+ <doc:error name="org.freedesktop.Accounts.Error.PermissionDenied">if the caller lacks the appropriate PolicyKit authorization</doc:error>
+ <doc:error name="org.freedesktop.Accounts.Error.Failed">if the operation failed</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
<method name="SetXSession">
<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="user_set_x_session"/>
@@ -668,6 +703,16 @@
</doc:doc>
</property>
+ <property name="FormatsLocale" type="s" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The users regional formats, as a locale specification like "de_DE.UTF-8".
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
<property name="XSession" type="s" access="read">
<doc:doc>
<doc:description>
diff --git a/src/libaccountsservice/act-user.c b/src/libaccountsservice/act-user.c
index dbb9b53..c0b52db 100644
--- a/src/libaccountsservice/act-user.c
+++ b/src/libaccountsservice/act-user.c
@@ -93,6 +93,7 @@ enum {
PROP_LOGIN_HISTORY,
PROP_ICON_FILE,
PROP_LANGUAGE,
+ PROP_FORMATS_LOCALE,
PROP_X_SESSION,
PROP_IS_LOADED
};
@@ -122,6 +123,7 @@ struct _ActUser {
char *location;
char *icon_file;
char *language;
+ char *formats_locale;
char *x_session;
GList *our_sessions;
GList *other_sessions;
@@ -308,6 +310,9 @@ act_user_get_property (GObject *object,
case PROP_LANGUAGE:
g_value_set_string (value, user->language);
break;
+ case PROP_FORMATS_LOCALE:
+ g_value_set_string (value, user->formats_locale);
+ break;
case PROP_X_SESSION:
g_value_set_string (value, user->x_session);
break;
@@ -463,6 +468,13 @@ act_user_class_init (ActUserClass *class)
"User's locale.",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class,
+ PROP_FORMATS_LOCALE,
+ g_param_spec_string ("formats_locale",
+ "Regional Formats",
+ "User's regional formats.",
+ NULL,
+ G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
PROP_X_SESSION,
g_param_spec_string ("x-session",
@@ -583,6 +595,7 @@ act_user_finalize (GObject *object)
g_free (user->location);
if (user->login_history)
g_variant_unref (user->login_history);
+ g_free (user->formats_locale);
if (user->accounts_proxy != NULL) {
g_object_unref (user->accounts_proxy);
@@ -1051,6 +1064,22 @@ act_user_get_language (ActUser *user)
return user->language;
}
+/**
+ * act_user_get_formats_locale:
+ * @user: a #ActUser
+ *
+ * Returns the path to the configured formats locale of @user.
+ *
+ * Returns: (transfer none): a path to an icon
+ */
+const char *
+act_user_get_formats_locale (ActUser *user)
+{
+ g_return_val_if_fail (ACT_IS_USER (user), NULL);
+
+ return user->formats_locale;
+}
+
/**
* act_user_get_x_session:
* @user: a #ActUser
@@ -1279,6 +1308,17 @@ collect_props (const gchar *key,
user->language = g_strdup (new_language);
g_object_notify (G_OBJECT (user), "language");
}
+
+ } else if (strcmp (key, "FormatsLocale") == 0) {
+ const char *new_formats_locale;
+
+ new_formats_locale = g_variant_get_string (value, NULL);
+ if (g_strcmp0 (user->formats_locale, new_formats_locale) != 0) {
+ g_free (user->formats_locale);
+ user->formats_locale = g_strdup (new_formats_locale);
+ g_object_notify (G_OBJECT (user), "formats_locale");
+ }
+
} else if (strcmp (key, "XSession") == 0) {
const char *new_x_session;
@@ -1618,6 +1658,35 @@ act_user_get_password_expiration_policy (ActUser *user,
}
}
+/**
+ * act_user_set_formats_locale:
+ * @user: the user object to alter.
+ * @formats_locale: a locale (e.g. en_US.utf8)
+ *
+ * Assigns a new formats locale for @user.
+ *
+ * Note this function is synchronous and ignores errors.
+ **/
+void
+act_user_set_formats_locale (ActUser *user,
+ const char *formats_locale)
+{
+ GError *error = NULL;
+
+ g_return_if_fail (ACT_IS_USER (user));
+ g_return_if_fail (formats_locale != NULL);
+ g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
+
+ if (!accounts_user_call_set_formats_locale_sync (user->accounts_proxy,
+ formats_locale,
+ NULL,
+ &error)) {
+ g_warning ("SetFormatsLocale call failed: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+}
+
/**
* act_user_set_email:
* @user: the user object to alter.
diff --git a/src/libaccountsservice/act-user.h b/src/libaccountsservice/act-user.h
index 76dceb6..e026ce2 100644
--- a/src/libaccountsservice/act-user.h
+++ b/src/libaccountsservice/act-user.h
@@ -77,6 +77,7 @@ gboolean act_user_is_local_account (ActUser *user);
gboolean act_user_is_nonexistent (ActUser *user);
const char *act_user_get_icon_file (ActUser *user);
const char *act_user_get_language (ActUser *user);
+const char *act_user_get_formats_locale (ActUser *user);
const char *act_user_get_x_session (ActUser *user);
const char *act_user_get_primary_session_id (ActUser *user);
@@ -96,6 +97,8 @@ void act_user_set_email (ActUser *user,
const char *email);
void act_user_set_language (ActUser *user,
const char *language);
+void act_user_set_formats_locale (ActUser *user,
+ const char *formats_locale);
void act_user_set_x_session (ActUser *user,
const char *x_session);
void act_user_set_location (ActUser *user,
diff --git a/src/user.c b/src/user.c
index 802d07a..e0dc56a 100644
--- a/src/user.c
+++ b/src/user.c
@@ -58,6 +58,7 @@ enum {
PROP_SHELL,
PROP_EMAIL,
PROP_LANGUAGE,
+ PROP_FORMATS_LOCALE,
PROP_X_SESSION,
PROP_LOCATION,
PROP_LOGIN_FREQUENCY,
@@ -93,6 +94,7 @@ struct User {
gchar *shell;
gchar *email;
gchar *language;
+ gchar *formats_locale;
gchar *x_session;
gchar *location;
guint64 login_frequency;
@@ -319,6 +321,13 @@ user_update_from_keyfile (User *user,
g_object_notify (G_OBJECT (user), "language");
}
+ s = g_key_file_get_string (keyfile, "User", "FormatsLocale", NULL);
+ if (s != NULL) {
+ g_free (user->formats_locale);
+ user->formats_locale = s;
+ g_object_notify (G_OBJECT (user), "formats-locale");
+ }
+
s = g_key_file_get_string (keyfile, "User", "XSession", NULL);
if (s != NULL) {
g_free (user->x_session);
@@ -402,6 +411,9 @@ user_save_to_keyfile (User *user,
if (user->language)
g_key_file_set_string (keyfile, "User", "Language", user->language);
+ if (user->formats_locale)
+ g_key_file_set_string (keyfile, "User", "FormatsLocale", user->formats_locale);
+
if (user->x_session)
g_key_file_set_string (keyfile, "User", "XSession", user->x_session);
@@ -1103,6 +1115,61 @@ user_set_language (AccountsUser *auser,
return TRUE;
}
+static void
+user_change_formats_locale_authorized_cb (Daemon *daemon,
+ User *user,
+ GDBusMethodInvocation *context,
+ gpointer data)
+
+{
+ gchar *formats_locale = data;
+
+ if (g_strcmp0 (user->formats_locale, formats_locale) != 0) {
+ g_free (user->formats_locale);
+ user->formats_locale = g_strdup (formats_locale);
+
+ save_extra_data (user);
+
+ accounts_user_emit_changed (ACCOUNTS_USER (user));
+
+ g_object_notify (G_OBJECT (user), "formats_locale");
+ }
+
+ accounts_user_complete_set_formats_locale (ACCOUNTS_USER (user), context);
+}
+
+gboolean
+user_set_formats_locale (AccountsUser *auser,
+ GDBusMethodInvocation *context,
+ const gchar *formats_locale)
+{
+ User *user = (User*)auser;
+
+ int uid;
+ const gchar *action_id;
+
+ if (!get_caller_uid (context, &uid)) {
+ throw_error (context, ERROR_FAILED, "identifying caller failed");
+ return FALSE;
+ }
+
+ if (user->uid == (uid_t) uid)
+ action_id = "org.freedesktop.accounts.change-own-user-data";
+ else
+ action_id = "org.freedesktop.accounts.user-administration";
+
+ daemon_local_check_auth (user->daemon,
+ user,
+ action_id,
+ TRUE,
+ user_change_formats_locale_authorized_cb,
+ context,
+ g_strdup (formats_locale),
+ (GDestroyNotify) g_free);
+
+ return TRUE;
+}
+
static void
user_change_x_session_authorized_cb (Daemon *daemon,
User *user,
@@ -2209,6 +2276,7 @@ user_finalize (GObject *object)
g_free (user->default_icon_file);
g_free (user->email);
g_free (user->language);
+ g_free (user->formats_locale);
g_free (user->x_session);
g_free (user->location);
g_free (user->password_hint);
@@ -2235,6 +2303,9 @@ user_set_property (GObject *object,
case PROP_LANGUAGE:
user->language = g_value_dup_string (value);
break;
+ case PROP_FORMATS_LOCALE:
+ user->formats_locale = g_value_dup_string (value);
+ break;
case PROP_X_SESSION:
user->x_session = g_value_dup_string (value);
break;
@@ -2303,6 +2374,9 @@ user_get_property (GObject *object,
case PROP_LANGUAGE:
g_value_set_string (value, user->language);
break;
+ case PROP_FORMATS_LOCALE:
+ g_value_set_string (value, user->formats_locale);
+ break;
case PROP_X_SESSION:
g_value_set_string (value, user->x_session);
break;
@@ -2366,6 +2440,7 @@ user_accounts_user_iface_init (AccountsUserIface *iface)
iface->handle_set_account_type = user_set_account_type;
iface->handle_set_automatic_login = user_set_automatic_login;
iface->handle_set_email = user_set_email;
+ iface->handle_set_formats_locale = user_set_formats_locale;
iface->handle_set_home_directory = user_set_home_directory;
iface->handle_set_icon_file = user_set_icon_file;
iface->handle_set_language = user_set_language;
@@ -2414,6 +2489,7 @@ user_init (User *user)
user->default_icon_file = NULL;
user->email = NULL;
user->language = NULL;
+ user->formats_locale = NULL;
user->x_session = NULL;
user->location = NULL;
user->password_mode = PASSWORD_MODE_REGULAR;
--
2.20.1
@@ -0,0 +1,190 @@
From 5f8f807b2a9a22d203d948127b24e5790b6b64b9 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Thu, 27 Sep 2018 23:31:06 +0200
Subject: [PATCH 2/4] 0007-add-lightdm-support.patch
---
src/daemon.c | 143 +++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 132 insertions(+), 11 deletions(-)
diff --git a/src/daemon.c b/src/daemon.c
index 312394a..ae59e50 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -1413,10 +1413,10 @@ daemon_local_check_auth (Daemon *daemon,
}
gboolean
-load_autologin (Daemon *daemon,
- gchar **name,
- gboolean *enabled,
- GError **error)
+load_autologin_gdm (Daemon *daemon,
+ gchar **name,
+ gboolean *enabled,
+ GError **error)
{
GKeyFile *keyfile;
GError *local_error;
@@ -1459,23 +1459,89 @@ load_autologin (Daemon *daemon,
return TRUE;
}
-static gboolean
-save_autologin (Daemon *daemon,
- const gchar *name,
- gboolean enabled,
+gboolean
+load_autologin_lightdm (Daemon *daemon,
+ gchar **name,
+ gboolean *enabled,
+ GError **error)
+{
+ GKeyFile *keyfile;
+ const gchar *filename;
+
+ filename = "/etc/lightdm/lightdm.conf";
+
+ keyfile = g_key_file_new ();
+ if (!g_key_file_load_from_file (keyfile,
+ filename,
+ G_KEY_FILE_KEEP_COMMENTS,
+ error)) {
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+
+ *name = g_key_file_get_string (keyfile, "SeatDefaults", "autologin-user", error);
+ *enabled = (*error == NULL && (*name) && (*name)[0] != 0);
+
+ g_key_file_free (keyfile);
+
+ return (*error == NULL);
+}
+
+gboolean
+load_autologin (Daemon *daemon,
+ gchar **name,
+ gboolean *enabled,
GError **error)
+{
+ GDBusProxy *proxy;
+
+ /* First, determine whether we should load GDM or LightDM values by
+ checking if GDM is running. */
+ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES|
+ G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS|
+ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
+ NULL,
+ "org.gnome.DisplayManager",
+ "/org/gnome/DisplayManager/Manager",
+ "org.gnome.DisplayManager.Manager",
+ NULL, /* GCancellable */
+ NULL); /* GError */
+
+ if (proxy != NULL) {
+ g_object_unref (proxy);
+ return load_autologin_gdm (daemon, name, enabled, error);
+ } else {
+ return load_autologin_lightdm (daemon, name, enabled, error);
+ }
+}
+
+static gboolean
+save_autologin_gdm (Daemon *daemon,
+ const gchar *name,
+ gboolean enabled,
+ GError **error)
{
GKeyFile *keyfile;
gchar *data;
gboolean result;
+ GError *local_error = NULL;
+
+ if (!g_file_test ("/etc/gdm3", G_FILE_TEST_EXISTS))
+ return TRUE; /* not an error, just not installed */
keyfile = g_key_file_new ();
if (!g_key_file_load_from_file (keyfile,
PATH_GDM_CUSTOM,
G_KEY_FILE_KEEP_COMMENTS,
- error)) {
- g_key_file_free (keyfile);
- return FALSE;
+ &local_error)) {
+ /* It's OK for custom.conf to not exist, we will make it */
+ if (!g_error_matches (local_error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
+ g_propagate_error (error, local_error);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+ g_error_free (local_error);
}
g_key_file_set_string (keyfile, "daemon", "AutomaticLoginEnable", enabled ? "True" : "False");
@@ -1490,6 +1556,61 @@ save_autologin (Daemon *daemon,
return result;
}
+static gboolean
+save_autologin_lightdm (Daemon *daemon,
+ const gchar *name,
+ gboolean enabled,
+ GError **error)
+{
+ GKeyFile *keyfile;
+ const gchar *filename;
+ gchar *data;
+ gboolean result;
+ GError *local_error = NULL;
+
+ if (!g_file_test ("/etc/lightdm", G_FILE_TEST_EXISTS))
+ return TRUE; /* not an error, just not installed */
+
+ filename = "/etc/lightdm/lightdm.conf";
+
+ keyfile = g_key_file_new ();
+ if (!g_key_file_load_from_file (keyfile,
+ filename,
+ G_KEY_FILE_KEEP_COMMENTS,
+ &local_error)) {
+ /* It's OK for custom.conf to not exist, we will make it */
+ if (!g_error_matches (local_error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
+ g_propagate_error (error, local_error);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+ g_error_free (local_error);
+ }
+
+ g_key_file_set_string (keyfile, "SeatDefaults", "autologin-user", enabled ? name : "");
+
+ data = g_key_file_to_data (keyfile, NULL, NULL);
+ result = g_file_set_contents (filename, data, -1, error);
+
+ g_key_file_free (keyfile);
+ g_free (data);
+
+ return result;
+}
+
+static gboolean
+save_autologin (Daemon *daemon,
+ const gchar *name,
+ gboolean enabled,
+ GError **error)
+{
+ if (!save_autologin_gdm (daemon, name, enabled, error))
+ return FALSE;
+ if (!save_autologin_lightdm (daemon, name, enabled, error))
+ return FALSE;
+ return TRUE;
+}
+
gboolean
daemon_local_set_automatic_login (Daemon *daemon,
User *user,
--
2.20.1
@@ -0,0 +1,369 @@
From bf5c35a6ffec43378f7a7483642e866b5efbcfdb Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Thu, 27 Sep 2018 23:31:07 +0200
Subject: [PATCH 3/4] 0011-add-background-file-support.patch
---
data/org.freedesktop.Accounts.User.xml | 45 ++++++++++++
src/libaccountsservice/act-user.c | 67 ++++++++++++++++++
src/user.c | 98 ++++++++++++++++++++++++++
3 files changed, 210 insertions(+)
diff --git a/data/org.freedesktop.Accounts.User.xml b/data/org.freedesktop.Accounts.User.xml
index 0856974..103661c 100644
--- a/data/org.freedesktop.Accounts.User.xml
+++ b/data/org.freedesktop.Accounts.User.xml
@@ -331,6 +331,41 @@
</doc:doc>
</method>
+ <method name="SetBackgroundFile">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="filename" direction="in" type="s">
+ <doc:doc>
+ <doc:summary>
+ The absolute filename of a png file to use as the users background.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Sets the users background.
+ </doc:para>
+ </doc:description>
+ <doc:permission>
+ The caller needs one of the following PolicyKit authorizations:
+ <doc:list>
+ <doc:item>
+ <doc:term>org.freedesktop.accounts.change-own-user-data</doc:term>
+ <doc:definition>To change his own background</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>org.freedesktop.accounts.user-administration</doc:term>
+ <doc:definition>To change the background of another user</doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:permission>
+ <doc:errors>
+ <doc:error name="org.freedesktop.Accounts.Error.PermissionDenied">if the caller lacks the appropriate PolicyKit authorization</doc:error>
+ <doc:error name="org.freedesktop.Accounts.Error.Failed">if the operation failed</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
<method name="SetIconFile">
<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
<arg name="filename" direction="in" type="s">
@@ -770,6 +805,16 @@
</doc:doc>
</property>
+ <property name="BackgroundFile" type="s" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The filename of a png file containing the users background.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
<property name="IconFile" type="s" access="read">
<doc:doc>
<doc:description>
diff --git a/src/libaccountsservice/act-user.c b/src/libaccountsservice/act-user.c
index c0b52db..36d1ade 100644
--- a/src/libaccountsservice/act-user.c
+++ b/src/libaccountsservice/act-user.c
@@ -91,6 +91,7 @@ enum {
PROP_LOGIN_FREQUENCY,
PROP_LOGIN_TIME,
PROP_LOGIN_HISTORY,
+ PROP_BACKGROUND_FILE,
PROP_ICON_FILE,
PROP_LANGUAGE,
PROP_FORMATS_LOCALE,
@@ -121,6 +122,7 @@ struct _ActUser {
char *shell;
char *email;
char *location;
+ char *background_file;
char *icon_file;
char *language;
char *formats_locale;
@@ -304,6 +306,9 @@ act_user_get_property (GObject *object,
case PROP_LOCATION:
g_value_set_string (value, user->location);
break;
+ case PROP_BACKGROUND_FILE:
+ g_value_set_string (value, user->background_file);
+ break;
case PROP_ICON_FILE:
g_value_set_string (value, user->icon_file);
break;
@@ -454,6 +459,13 @@ act_user_class_init (ActUserClass *class)
G_VARIANT_TYPE ("a(xxa{sv})"),
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class,
+ PROP_BACKGROUND_FILE,
+ g_param_spec_string ("background-file",
+ "Background File",
+ "The path to a background for this user.",
+ NULL,
+ G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
PROP_ICON_FILE,
g_param_spec_string ("icon-file",
@@ -585,6 +597,7 @@ act_user_finalize (GObject *object)
g_free (user->user_name);
g_free (user->real_name);
+ g_free (user->background_file);
g_free (user->icon_file);
g_free (user->language);
g_free (user->object_path);
@@ -1032,6 +1045,22 @@ act_user_is_nonexistent (ActUser *user)
return user->nonexistent;
}
+/**
+ * act_user_get_background_file:
+ * @user: a #ActUser
+ *
+ * Returns the path to the account background belonging to @user.
+ *
+ * Returns: (transfer none): a path to a background
+ */
+const char *
+act_user_get_background_file (ActUser *user)
+{
+ g_return_val_if_fail (ACT_IS_USER (user), NULL);
+
+ return user->background_file;
+}
+
/**
* act_user_get_icon_file:
* @user: a #ActUser
@@ -1290,6 +1319,15 @@ collect_props (const gchar *key,
user->login_history = g_variant_ref (new_login_history);
g_object_notify (G_OBJECT (user), "login-history");
}
+ } else if (strcmp (key, "BackgroundFile") == 0) {
+ const char *new_background_file;
+
+ new_background_file = g_variant_get_string (value, NULL);
+ if (g_strcmp0 (user->background_file, new_background_file) != 0) {
+ g_free (user->background_file);
+ user->background_file = g_strdup (new_background_file);
+ g_object_notify (G_OBJECT (user), "background-file");
+ }
} else if (strcmp (key, "IconFile") == 0) {
const char *new_icon_file;
@@ -1745,6 +1783,35 @@ act_user_set_language (ActUser *user,
}
}
+/**
+ * act_user_set_background_file:
+ * @user: the user object to alter.
+ * @background_file: path to an background
+ *
+ * Assigns a new background for @user.
+ *
+ * Note this function is synchronous and ignores errors.
+ **/
+void
+act_user_set_background_file (ActUser *user,
+ const char *background_file)
+{
+ GError *error = NULL;
+
+ g_return_if_fail (ACT_IS_USER (user));
+ g_return_if_fail (background_file != NULL);
+ g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
+
+ if (!accounts_user_call_set_background_file_sync (user->accounts_proxy,
+ background_file,
+ NULL,
+ &error)) {
+ g_warning ("SetBackgroundFile call failed: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+}
+
/**
* act_user_set_x_session:
* @user: the user object to alter.
diff --git a/src/user.c b/src/user.c
index e0dc56a..c32971e 100644
--- a/src/user.c
+++ b/src/user.c
@@ -64,6 +64,7 @@ enum {
PROP_LOGIN_FREQUENCY,
PROP_LOGIN_TIME,
PROP_LOGIN_HISTORY,
+ PROP_BACKGROUND_FILE,
PROP_ICON_FILE,
PROP_LOCKED,
PROP_PASSWORD_MODE,
@@ -98,6 +99,7 @@ struct User {
gchar *x_session;
gchar *location;
guint64 login_frequency;
+ gchar *background_file;
gint64 login_time;
gint64 expiration_time;
gint64 last_change_time;
@@ -356,6 +358,13 @@ user_update_from_keyfile (User *user,
g_object_notify (G_OBJECT (user), "password-hint");
}
+ s = g_key_file_get_string (keyfile, "User", "Background", NULL);
+ if (s != NULL) {
+ g_free (user->background_file);
+ user->background_file = s;
+ g_object_notify (G_OBJECT (user), "background-file");
+ }
+
s = g_key_file_get_string (keyfile, "User", "Icon", NULL);
if (s != NULL) {
g_free (user->icon_file);
@@ -423,6 +432,9 @@ user_save_to_keyfile (User *user,
if (user->password_hint)
g_key_file_set_string (keyfile, "User", "PasswordHint", user->password_hint);
+ if (user->background_file)
+ g_key_file_set_string (keyfile, "User", "Background", user->background_file);
+
if (user->icon_file)
g_key_file_set_string (keyfile, "User", "Icon", user->icon_file);
@@ -1460,6 +1472,86 @@ become_user (gpointer data)
}
}
+static void
+user_change_background_file_authorized_cb (Daemon *daemon,
+ User *user,
+ GDBusMethodInvocation *context,
+ gpointer data)
+{
+ gchar *filename;
+ GFile *file;
+ GFileInfo *info;
+ GFileType type;
+
+ filename = g_strdup (data);
+
+ if (filename == NULL ||
+ *filename == '\0') {
+ g_free (filename);
+ filename = NULL;
+
+ goto background_saved;
+ }
+
+ file = g_file_new_for_path (filename);
+ info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE,
+ 0, NULL, NULL);
+ type = g_file_info_get_file_type (info);
+
+ g_object_unref (info);
+ g_object_unref (file);
+
+ if (type != G_FILE_TYPE_REGULAR) {
+ g_debug ("not a regular file\n");
+ throw_error (context, ERROR_FAILED, "file '%s' is not a regular file", filename);
+ g_free (filename);
+ return;
+ }
+
+background_saved:
+ g_free (user->background_file);
+ user->background_file = filename;
+
+ save_extra_data (user);
+
+ accounts_user_emit_changed (ACCOUNTS_USER (user));
+
+ g_object_notify (G_OBJECT (user), "background-file");
+
+ accounts_user_complete_set_background_file (ACCOUNTS_USER (user), context);
+}
+
+gboolean
+user_set_background_file (AccountsUser *auser,
+ GDBusMethodInvocation *context,
+ const gchar *filename)
+{
+ User *user = (User*)auser;
+ int uid;
+ const gchar *action_id;
+
+ if (!get_caller_uid (context, &uid)) {
+ throw_error (context, ERROR_FAILED, "identifying caller failed");
+ return FALSE;
+ }
+
+ if (user->uid == (uid_t) uid)
+ action_id = "org.freedesktop.accounts.change-own-user-data";
+ else
+ action_id = "org.freedesktop.accounts.user-administration";
+
+ daemon_local_check_auth (user->daemon,
+ user,
+ action_id,
+ TRUE,
+ user_change_background_file_authorized_cb,
+ context,
+ g_strdup (filename),
+ (GDestroyNotify)g_free);
+
+ return TRUE;
+}
+
static void
user_change_icon_file_authorized_cb (Daemon *daemon,
User *user,
@@ -2274,6 +2366,7 @@ user_finalize (GObject *object)
g_free (user->shell);
g_free (user->icon_file);
g_free (user->default_icon_file);
+ g_free (user->background_file);
g_free (user->email);
g_free (user->language);
g_free (user->formats_locale);
@@ -2383,6 +2476,9 @@ user_get_property (GObject *object,
case PROP_LOCATION:
g_value_set_string (value, user->location);
break;
+ case PROP_BACKGROUND_FILE:
+ g_value_set_string (value, user->background_file);
+ break;
case PROP_ICON_FILE:
if (user->icon_file)
g_value_set_string (value, user->icon_file);
@@ -2439,6 +2535,7 @@ user_accounts_user_iface_init (AccountsUserIface *iface)
{
iface->handle_set_account_type = user_set_account_type;
iface->handle_set_automatic_login = user_set_automatic_login;
+ iface->handle_set_background_file = user_set_background_file;
iface->handle_set_email = user_set_email;
iface->handle_set_formats_locale = user_set_formats_locale;
iface->handle_set_home_directory = user_set_home_directory;
@@ -2485,6 +2582,7 @@ user_init (User *user)
user->account_type = ACCOUNT_TYPE_STANDARD;
user->home_dir = NULL;
user->shell = NULL;
+ user->background_file = NULL;
user->icon_file = NULL;
user->default_icon_file = NULL;
user->email = NULL;
--
2.20.1
@@ -0,0 +1,570 @@
From a1b09a0d0243ac3a7fbd26c176a274dd3716f391 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Thu, 27 Sep 2018 23:32:49 +0200
Subject: [PATCH 4/4] 0016-add-input-sources-support.patch
---
data/org.freedesktop.Accounts.User.xml | 45 ++++++
src/libaccountsservice/act-user.c | 82 ++++++++++
src/libaccountsservice/act-user.h | 3 +
src/user.c | 213 +++++++++++++++++++++++++
4 files changed, 343 insertions(+)
diff --git a/data/org.freedesktop.Accounts.User.xml b/data/org.freedesktop.Accounts.User.xml
index 103661c..ede2a19 100644
--- a/data/org.freedesktop.Accounts.User.xml
+++ b/data/org.freedesktop.Accounts.User.xml
@@ -185,6 +185,41 @@
</doc:doc>
</method>
+ <method name="SetInputSources">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg name="sources" direction="in" type="aa{ss}">
+ <doc:doc>
+ <doc:summary>
+ A list of input sources.
+ </doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ Sets the user's input sources.
+ </doc:para>
+ </doc:description>
+ <doc:permission>
+ The caller needs one of the following PolicyKit authorizations:
+ <doc:list>
+ <doc:item>
+ <doc:term>org.freedesktop.accounts.change-own-user-data</doc:term>
+ <doc:definition>To change his own input sources</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>org.freedesktop.accounts.user-administration</doc:term>
+ <doc:definition>To change the input sources of another user</doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:permission>
+ <doc:errors>
+ <doc:error name="org.freedesktop.Accounts.Error.PermissionDenied">if the caller lacks the appropriate PolicyKit authorization</doc:error>
+ <doc:error name="org.freedesktop.Accounts.Error.Failed">if the operation failed</doc:error>
+ </doc:errors>
+ </doc:doc>
+ </method>
+
<method name="SetXSession">
<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="user_set_x_session"/>
@@ -748,6 +783,16 @@
</doc:doc>
</property>
+ <property name="InputSources" type="aa{ss}" access="read">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The user's input sources.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+
<property name="XSession" type="s" access="read">
<doc:doc>
<doc:description>
diff --git a/src/libaccountsservice/act-user.c b/src/libaccountsservice/act-user.c
index 36d1ade..43fc0ff 100644
--- a/src/libaccountsservice/act-user.c
+++ b/src/libaccountsservice/act-user.c
@@ -95,6 +95,7 @@ enum {
PROP_ICON_FILE,
PROP_LANGUAGE,
PROP_FORMATS_LOCALE,
+ PROP_INPUT_SOURCES,
PROP_X_SESSION,
PROP_IS_LOADED
};
@@ -126,6 +127,7 @@ struct _ActUser {
char *icon_file;
char *language;
char *formats_locale;
+ GVariant *input_sources;
char *x_session;
GList *our_sessions;
GList *other_sessions;
@@ -318,6 +320,9 @@ act_user_get_property (GObject *object,
case PROP_FORMATS_LOCALE:
g_value_set_string (value, user->formats_locale);
break;
+ case PROP_INPUT_SOURCES:
+ g_value_set_variant (value, user->input_sources);
+ break;
case PROP_X_SESSION:
g_value_set_string (value, user->x_session);
break;
@@ -487,6 +492,14 @@ act_user_class_init (ActUserClass *class)
"User's regional formats.",
NULL,
G_PARAM_READABLE));
+ g_object_class_install_property (gobject_class,
+ PROP_INPUT_SOURCES,
+ g_param_spec_variant ("input-sources",
+ "Input sources",
+ "User's input sources.",
+ G_VARIANT_TYPE ("aa{ss}"),
+ NULL,
+ G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
PROP_X_SESSION,
g_param_spec_string ("x-session",
@@ -606,6 +619,8 @@ act_user_finalize (GObject *object)
g_free (user->shell);
g_free (user->email);
g_free (user->location);
+ if (user->input_sources)
+ g_variant_unref (user->input_sources);
if (user->login_history)
g_variant_unref (user->login_history);
g_free (user->formats_locale);
@@ -1109,6 +1124,22 @@ act_user_get_formats_locale (ActUser *user)
return user->formats_locale;
}
+/**
+ * act_user_get_input_sources:
+ * @user: a #ActUser
+ *
+ * Returns the input sources of @user.
+ *
+ * Returns: (transfer none): a list of input sources
+ */
+GVariant *
+act_user_get_input_sources (ActUser *user)
+{
+ g_return_val_if_fail (ACT_IS_USER (user), NULL);
+
+ return user->input_sources;
+}
+
/**
* act_user_get_x_session:
* @user: a #ActUser
@@ -1357,6 +1388,19 @@ collect_props (const gchar *key,
g_object_notify (G_OBJECT (user), "formats_locale");
}
+ } else if (strcmp (key, "InputSources") == 0) {
+ GVariant *sources;
+
+ g_variant_get (value, "@aa{ss}", &sources);
+
+ if (!user->input_sources || !g_variant_equal (sources, user->input_sources)) {
+ if (user->input_sources)
+ g_variant_unref (user->input_sources);
+ user->input_sources = g_variant_ref (sources);
+ g_object_notify (G_OBJECT (user), "input-sources");
+ }
+
+ g_variant_unref (sources);
} else if (strcmp (key, "XSession") == 0) {
const char *new_x_session;
@@ -1612,6 +1656,15 @@ _act_user_load_from_user (ActUser *user,
user->language = g_strdup (user_to_copy->language);
g_object_notify (G_OBJECT (user), "language");
+ if (user_to_copy->input_sources != user->input_sources) {
+ if (user->input_sources)
+ g_variant_unref (user->input_sources);
+ user->input_sources = user_to_copy->input_sources;
+ if (user->input_sources)
+ g_variant_ref (user->input_sources);
+ g_object_notify (G_OBJECT (user), "input-sources");
+ }
+
g_free (user->x_session);
user->x_session = g_strdup (user_to_copy->x_session);
g_object_notify (G_OBJECT (user), "x-session");
@@ -1812,6 +1865,35 @@ act_user_set_background_file (ActUser *user,
}
}
+/**
+ * act_user_set_input_sources:
+ * @user: the user object to alter.
+ * @sources: a list of input sources
+ *
+ * Assigns new input sources for @user.
+ *
+ * Note this function is synchronous and ignores errors.
+ **/
+void
+act_user_set_input_sources (ActUser *user,
+ GVariant *sources)
+{
+ GError *error = NULL;
+
+ g_return_if_fail (ACT_IS_USER (user));
+ g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
+ g_return_if_fail (g_variant_is_of_type (sources, G_VARIANT_TYPE ("aa{ss}")));
+
+ if (!accounts_user_call_set_input_sources_sync (user->accounts_proxy,
+ sources,
+ NULL,
+ &error)) {
+ g_warning ("SetInputSources call failed: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+}
+
/**
* act_user_set_x_session:
* @user: the user object to alter.
diff --git a/src/libaccountsservice/act-user.h b/src/libaccountsservice/act-user.h
index e026ce2..de9a5a9 100644
--- a/src/libaccountsservice/act-user.h
+++ b/src/libaccountsservice/act-user.h
@@ -78,6 +78,7 @@ gboolean act_user_is_nonexistent (ActUser *user);
const char *act_user_get_icon_file (ActUser *user);
const char *act_user_get_language (ActUser *user);
const char *act_user_get_formats_locale (ActUser *user);
+GVariant *act_user_get_input_sources (ActUser *user);
const char *act_user_get_x_session (ActUser *user);
const char *act_user_get_primary_session_id (ActUser *user);
@@ -99,6 +100,8 @@ void act_user_set_language (ActUser *user,
const char *language);
void act_user_set_formats_locale (ActUser *user,
const char *formats_locale);
+void act_user_set_input_sources (ActUser *user,
+ GVariant *sources);
void act_user_set_x_session (ActUser *user,
const char *x_session);
void act_user_set_location (ActUser *user,
diff --git a/src/user.c b/src/user.c
index c32971e..17772f8 100644
--- a/src/user.c
+++ b/src/user.c
@@ -59,6 +59,7 @@ enum {
PROP_EMAIL,
PROP_LANGUAGE,
PROP_FORMATS_LOCALE,
+ PROP_INPUT_SOURCES,
PROP_X_SESSION,
PROP_LOCATION,
PROP_LOGIN_FREQUENCY,
@@ -96,6 +97,7 @@ struct User {
gchar *email;
gchar *language;
gchar *formats_locale;
+ GVariant *input_sources;
gchar *x_session;
gchar *location;
guint64 login_frequency;
@@ -307,6 +309,75 @@ user_update_from_pwent (User *user,
accounts_user_emit_changed (ACCOUNTS_USER (user));
}
+static gint
+intcmp (gconstpointer a,
+ gconstpointer b,
+ gpointer user_data)
+{
+ return GPOINTER_TO_INT (a) - GPOINTER_TO_INT (b);
+}
+
+static GVariant *
+key_file_get_input_sources (GKeyFile *key_file)
+{
+ GVariantBuilder builder;
+ GSequence *indices;
+ GSequenceIter *indices_iter;
+ gchar **groups;
+ gchar **groups_iter;
+
+ indices = g_sequence_new (NULL);
+ groups = g_key_file_get_groups (key_file, NULL);
+
+ for (groups_iter = groups; *groups_iter; groups_iter++) {
+ if (g_str_has_prefix (*groups_iter, "InputSource") && (*groups_iter)[11]) {
+ gchar *end;
+ guint64 index;
+
+ index = g_ascii_strtoull (*groups_iter + 11, &end, 0);
+
+ if (!*end)
+ g_sequence_insert_sorted (indices, GINT_TO_POINTER (index), intcmp, NULL);
+ }
+ }
+
+ g_strfreev (groups);
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("aa{ss}"));
+
+ indices_iter = g_sequence_get_begin_iter (indices);
+
+ while (!g_sequence_iter_is_end (indices_iter)) {
+ guint index;
+ gchar *group;
+ gchar **keys;
+ gchar **keys_iter;
+
+ g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{ss}"));
+
+ index = GPOINTER_TO_UINT (g_sequence_get (indices_iter));
+ group = g_strdup_printf ("InputSource%u", index);
+ keys = g_key_file_get_keys (key_file, group, NULL, NULL);
+
+ for (keys_iter = keys; *keys_iter; keys_iter++) {
+ gchar *value = g_key_file_get_string (key_file, group, *keys_iter, NULL);
+ g_variant_builder_add (&builder, "{ss}", *keys_iter, value);
+ g_free (value);
+ }
+
+ g_strfreev (keys);
+ g_free (group);
+
+ g_variant_builder_close (&builder);
+
+ indices_iter = g_sequence_iter_next (indices_iter);
+ }
+
+ g_sequence_free (indices);
+
+ return g_variant_ref_sink (g_variant_builder_end (&builder));
+}
+
void
user_update_from_keyfile (User *user,
GKeyFile *keyfile)
@@ -330,6 +401,11 @@ user_update_from_keyfile (User *user,
g_object_notify (G_OBJECT (user), "formats-locale");
}
+ if (user->input_sources != NULL)
+ g_variant_unref (user->input_sources);
+ user->input_sources = key_file_get_input_sources (keyfile);
+ g_object_notify (G_OBJECT (user), "input-sources");
+
s = g_key_file_get_string (keyfile, "User", "XSession", NULL);
if (s != NULL) {
g_free (user->x_session);
@@ -408,6 +484,51 @@ user_update_system_account_property (User *user,
g_object_notify (G_OBJECT (user), "system-account");
}
+static void
+key_file_set_input_sources (GKeyFile *key_file,
+ GVariant *input_sources)
+{
+ gchar **groups;
+ gchar **groups_iter;
+ GVariantIter sources;
+ GVariantIter *source;
+ guint i;
+
+ /* Remove all groups matching regex "InputSource\d+". */
+
+ groups = g_key_file_get_groups (key_file, NULL);
+
+ for (groups_iter = groups; *groups_iter; groups_iter++) {
+ if (g_str_has_prefix (*groups_iter, "InputSource")) {
+ for (i = 11; g_ascii_isdigit ((*groups_iter)[i]); i++);
+
+ if (i > 11 && !(*groups_iter)[i])
+ g_key_file_remove_group (key_file, *groups_iter, NULL);
+ }
+ }
+
+ g_strfreev (groups);
+
+ /* Write all input sources to key file. */
+
+ g_variant_iter_init (&sources, input_sources);
+
+ for (i = 0; g_variant_iter_next (&sources, "a{ss}", &source); i++) {
+ gchar *group;
+ const gchar *key;
+ const gchar *value;
+
+ group = g_strdup_printf ("InputSource%u", i);
+
+ while (g_variant_iter_next (source, "{&s&s}", &key, &value))
+ g_key_file_set_string (key_file, group, key, value);
+
+ g_free (group);
+
+ g_variant_iter_free (source);
+ }
+}
+
static void
user_save_to_keyfile (User *user,
GKeyFile *keyfile)
@@ -423,6 +544,9 @@ user_save_to_keyfile (User *user,
if (user->formats_locale)
g_key_file_set_string (keyfile, "User", "FormatsLocale", user->formats_locale);
+ if (user->input_sources)
+ key_file_set_input_sources (keyfile, user->input_sources);
+
if (user->x_session)
g_key_file_set_string (keyfile, "User", "XSession", user->x_session);
@@ -1182,6 +1306,67 @@ user_set_formats_locale (AccountsUser *auser,
return TRUE;
}
+static void
+user_change_input_sources_authorized_cb (Daemon *daemon,
+ User *user,
+ GDBusMethodInvocation *context,
+ gpointer data)
+
+{
+ GVariant *sources = data;
+
+ if (sources != user->input_sources &&
+ (!sources || !user->input_sources ||
+ !g_variant_equal (sources, user->input_sources))) {
+ if (user->input_sources)
+ g_variant_unref (user->input_sources);
+
+ user->input_sources = sources;
+
+ if (user->input_sources)
+ g_variant_ref (user->input_sources);
+
+ save_extra_data (user);
+
+ accounts_user_emit_changed (ACCOUNTS_USER (user));
+
+ g_object_notify (G_OBJECT (user), "input-sources");
+ }
+
+ accounts_user_complete_set_input_sources (ACCOUNTS_USER (user), context);
+}
+
+static gboolean
+user_set_input_sources (AccountsUser *auser,
+ GDBusMethodInvocation *context,
+ GVariant *sources)
+{
+ User *user = (User*)auser;
+ int uid;
+ const gchar *action_id;
+
+ if (!get_caller_uid (context, &uid)) {
+ throw_error (context, ERROR_FAILED, "identifying caller failed");
+ return FALSE;
+ }
+
+ if (user->uid == (uid_t) uid)
+ action_id = "org.freedesktop.accounts.change-own-user-data";
+ else
+ action_id = "org.freedesktop.accounts.user-administration";
+
+ daemon_local_check_auth (user->daemon,
+ user,
+ action_id,
+ TRUE,
+ user_change_input_sources_authorized_cb,
+ context,
+ sources ? g_variant_ref (sources) : NULL,
+ sources ? (GDestroyNotify) g_variant_unref : NULL);
+
+ return TRUE;
+}
+
static void
user_change_x_session_authorized_cb (Daemon *daemon,
User *user,
@@ -2281,6 +2466,12 @@ user_real_get_language (AccountsUser *user)
return USER (user)->language;
}
+static GVariant *
+user_real_get_input_sources (AccountsUser *user)
+{
+ return USER (user)->input_sources;
+}
+
static const gchar *
user_real_get_xsession (AccountsUser *user)
{
@@ -2377,6 +2568,9 @@ user_finalize (GObject *object)
if (user->login_history)
g_variant_unref (user->login_history);
+ if (user->input_sources)
+ g_variant_unref (user->input_sources);
+
if (G_OBJECT_CLASS (user_parent_class)->finalize)
(*G_OBJECT_CLASS (user_parent_class)->finalize) (object);
}
@@ -2388,6 +2582,7 @@ user_set_property (GObject *object,
GParamSpec *pspec)
{
User *user = USER (object);
+ GVariant *variant;
switch (param_id) {
case PROP_ACCOUNT_TYPE:
@@ -2398,6 +2593,18 @@ user_set_property (GObject *object,
break;
case PROP_FORMATS_LOCALE:
user->formats_locale = g_value_dup_string (value);
+ break;
+ case PROP_INPUT_SOURCES:
+ variant = g_value_get_variant (value);
+
+ if (variant != user->input_sources) {
+ if (user->input_sources)
+ g_variant_unref (user->input_sources);
+ user->input_sources = variant;
+ if (user->input_sources)
+ g_variant_ref (user->input_sources);
+ }
+
break;
case PROP_X_SESSION:
user->x_session = g_value_dup_string (value);
@@ -2470,6 +2677,9 @@ user_get_property (GObject *object,
case PROP_FORMATS_LOCALE:
g_value_set_string (value, user->formats_locale);
break;
+ case PROP_INPUT_SOURCES:
+ g_value_set_variant (value, user->input_sources);
+ break;
case PROP_X_SESSION:
g_value_set_string (value, user->x_session);
break;
@@ -2541,6 +2751,7 @@ user_accounts_user_iface_init (AccountsUserIface *iface)
iface->handle_set_home_directory = user_set_home_directory;
iface->handle_set_icon_file = user_set_icon_file;
iface->handle_set_language = user_set_language;
+ iface->handle_set_input_sources = user_set_input_sources;
iface->handle_set_location = user_set_location;
iface->handle_set_locked = user_set_locked;
iface->handle_set_password = user_set_password;
@@ -2559,6 +2770,7 @@ user_accounts_user_iface_init (AccountsUserIface *iface)
iface->get_shell = user_real_get_shell;
iface->get_email = user_real_get_email;
iface->get_language = user_real_get_language;
+ iface->get_input_sources = user_real_get_input_sources;
iface->get_xsession = user_real_get_xsession;
iface->get_location = user_real_get_location;
iface->get_login_frequency = user_real_get_login_frequency;
@@ -2588,6 +2800,7 @@ user_init (User *user)
user->email = NULL;
user->language = NULL;
user->formats_locale = NULL;
+ user->input_sources = NULL;
user->x_session = NULL;
user->location = NULL;
user->password_mode = PASSWORD_MODE_REGULAR;
--
2.20.1
+59
View File
@@ -0,0 +1,59 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
# Needed because of https://github.com/ubports/system-settings/issues/65
pkgname=accountsservice-ubuntu
_pkgname=accountsservice
pkgver=0.6.45
pkgrel=1
pkgdesc="D-Bus interface for user account query and manipulation"
url="http://www.freedesktop.org/software/accountsservice/"
arch="all"
license="GPL-3.0-or-later"
depends=""
depends_dev="glib-dev gobject-introspection-dev polkit-dev"
makedepends="$depends_dev intltool gnome-doc-utils"
provides="$_pkgname=$pkgver lib$_pkgname=$pkgver"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
# Issues about "Ubuntu-specific" patches:
# https://gitlab.freedesktop.org/accountsservice/accountsservice/issues/22
# https://gitlab.freedesktop.org/accountsservice/accountsservice/issues/52
source="http://www.freedesktop.org/software/accountsservice/accountsservice-$pkgver.tar.xz
musl-fgetspent_r.patch
0001-0001-formats-locale-property.patch.patch
0002-0007-add-lightdm-support.patch.patch
0003-0011-add-background-file-support.patch.patch
0004-0016-add-input-sources-support.patch.patch"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
cd "$builddir"
# Hack to check for /var/log/wtmp instead of /var/log/utx.log
sed -i configure -e "s;utx\.log;wtmp;g"
ac_cv_file__var_log_utx_log=yes ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
--disable-systemd \
--enable-introspection=yes
make
}
check() {
cd "$builddir"
make check
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
}
sha512sums="09975f9fa03a3177d923de6d6f6e6acfffeb2ff4924c45eaac78c994c16974427c8e936a87034747ba494d2bb3df6e8a92ff44db387761b06e06e311d7cf105a accountsservice-0.6.45.tar.xz
469392beca8f5941eafaa193c4fcb0472770ee4183ce520416a1b5d6abafe0e201990eb74d06bfbd9e20af08e55aff5f0031f267083f6c6879f0fe4e5028103c musl-fgetspent_r.patch
ad924e29432c92fbf8cdfab7e1d023f67502003f54ab1f0db3d264a7e71a9aececa65ef4c4de110df3f9892f8f90bb50018115b61513e883ac6797ad8c6dd4f4 0001-0001-formats-locale-property.patch.patch
3d91eebc4e877a73dd9fad802d8473a8f4275b82d2ac79fc1d0191262794b95cdf50edd6ea76e9bfc946c523b9d88e8cabc90a3b00211b404565c8884cd62653 0002-0007-add-lightdm-support.patch.patch
8baf966e83e74efb3b5fe75722320953c481bb2e7803bbece539e3ffb82ce2879fcebfa4512f59978f852dbf7e62a21fca5a8cd668fd94549d39796730b61518 0003-0011-add-background-file-support.patch.patch
9cfe41e017e0025d3f474b07b6f7599728b7ff8a0eecbbf629d035b6542f9af1b61469eb38f1ca295999a5baeb69424ed39b56703ac5919c9946eab6135a9eb4 0004-0016-add-input-sources-support.patch.patch"
@@ -0,0 +1,34 @@
diff --git a/src/daemon.c b/src/daemon.c
index 312394a..e7b3c58 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -140,6 +140,28 @@ error_get_type (void)
#define MAX_LOCAL_USERS 50
#endif
+#ifndef __GLIBC__
+ /* Musl libc does not support fgetspent_r(), write own
+ * wrapper
+ */
+static int fgetspent_r(FILE *fp, struct spwd *spbuf, char *buf, size_t buflen, struct spwd **spbufp) {
+ struct spwd *shadow_entry = fgetspent(fp);
+ if(!shadow_entry)
+ return -1;
+ size_t namplen = strlen(shadow_entry->sp_namp);
+ size_t pwdplen = strlen(shadow_entry->sp_pwdp);
+
+ if(namplen + pwdplen + 2 > buflen)
+ return -1;
+
+ *spbufp = memcpy(spbuf, shadow_entry, sizeof(struct spwd));
+ spbuf->sp_namp = strncpy(buf, shadow_entry->sp_namp, namplen + 1);
+ spbuf->sp_pwdp = strncpy(buf + namplen + 1, shadow_entry->sp_pwdp, pwdplen + 1);
+
+ return 0;
+}
+#endif
+
static struct passwd *
entry_generator_fgetpwent (Daemon *daemon,
GHashTable *users,
+39
View File
@@ -0,0 +1,39 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=click
pkgver=0_git20200517
_commit="06912463aa63b407fcaf895bce6c9cd537bf6914"
pkgrel=0
pkgdesc="Click is a simplified packaging format"
url="https://github.com/ubports/click"
arch="all"
license="GPL-3.0-only"
depends_dev="libgee-dev gobject-introspection-dev"
makedepends="$depends_dev cmake intltool vala gobject-introspection autoconf libtool automake json-glib-dev py3-setuptools"
subpackages="$pkgname-dev $pkgname-doc"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/click/archive/$_commit.tar.gz"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # Needs dpkg
build() {
./autogen.sh
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--disable-packagekit \
--disable-systemd
make
}
check() {
make check
}
package() {
make DESTDIR="$pkgdir/" PYTHON_INSTALL_FLAGS="--root=$pkgdir/" install
# Make abuild's version check happy (#386)
sed -i s/+ubports//g "$pkgdir"/usr/lib/pkgconfig/*.pc
}
sha512sums="a93da86606f13227b7cacaf1227d6fb3999dffc523a3500d71ce011c0cf7b685aef9a2a14501cd3d7af3699d165c8053f901725e3ea77a8afe4d1d5c7af8c2dc click-06912463aa63b407fcaf895bce6c9cd537bf6914.tar.gz"
@@ -0,0 +1,26 @@
From 96d2928d15ee0506573866f367762c9deea75542 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Sun, 30 Dec 2018 23:59:16 +0100
Subject: [PATCH] Use qmlplugindump-qt5
Fixes #4
---
import/Ubuntu/Content/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/import/Ubuntu/Content/CMakeLists.txt b/import/Ubuntu/Content/CMakeLists.txt
index 1322309..5cd18bf 100644
--- a/import/Ubuntu/Content/CMakeLists.txt
+++ b/import/Ubuntu/Content/CMakeLists.txt
@@ -95,7 +95,7 @@ endif()
if(NOT CMAKE_CROSSCOMPILING)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
- COMMAND qmlplugindump -qt=qt5 -noinstantiate -notrelocatable Ubuntu.Content 1.1 ../../ > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+ COMMAND qmlplugindump-qt5 -noinstantiate -notrelocatable Ubuntu.Content 1.1 ../../ > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
DEPENDS ${PLUGIN}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
--
2.20.1
+40
View File
@@ -0,0 +1,40 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=content-hub
pkgver=0_git20190129
_commit="3f046207beec0441a5e2cd567e63becaafd181eb"
pkgrel=0
pkgdesc="Content sharing/picking infrastructure and service, designed to allow apps to securely and efficiently exchange content"
url="https://github.com/ubports/content-hub"
arch="all"
license="GPL-3.0 LGPL-3.0"
depends_dev="qt5-qtdeclarative-dev ubuntu-app-launch-dev gsettings-qt-dev libnih-dev ubuntu-download-manager-dev libnotify-dev libapparmor-dev ubuntu-ui-toolkit-dev"
makedepends="$depends_dev cmake cmake-extras libapparmor gtest-dev pthread-cancel-noop"
checkdepends="gmock dbus-test-runner xvfb-run"
# Build without crossdirect as long as we need the LD_PRELOAD
options="!check !pmb:crossdirect" # 92% tests passed, 1 tests failed out of 12
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/$pkgname/archive/$_commit.tar.gz
0001-Use-qmlplugindump-qt5.patch"
subpackages="$pkgname-dev $pkgname-lang"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
# Work around QEMU issue with pthread_cancel
# See https://gitlab.com/postmarketOS/pmaports/issues/190
LD_PRELOAD=/usr/lib/preload/pthread_cancel_noop.so \
make -C build
}
check() {
cd build/tests
xvfb-run env CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="b0d7b0c7d47941f88e4aa6ce5e57f900419c16d1cbd8efa07dcdd8f50194f4961e6263e59ca37ddb671e4ce6c5aa55d292887765a3f98ea20d40a5c71602d19b content-hub-3f046207beec0441a5e2cd567e63becaafd181eb.tar.gz
f5a13fbbf2a26342a043474b5911ad4949e6b61f36116197e9c614d2e399f4dcb6adbab08376764756d68d45cfd55215dd49aa5cdfe5926b61d928a8424ba767 0001-Use-qmlplugindump-qt5.patch"
+37
View File
@@ -0,0 +1,37 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=geonames
pkgver=0_git20180310
pkgrel=0
_commit="5d77e827cd8800e9738f0e8ac2f865a59a9f68b2"
pkgdesc="Geonames"
arch="all"
url="https://github.com/ubports/geonames"
license="GPL-3.0-only"
makedepends="gtk-doc autoconf automake libtool"
# See https://github.com/ubports/geonames/issues/1
source="$pkgname-$_commit.tar.gz::http://repo.ubports.com/pool/xenial/main/g/geonames/geonames_0.3+ubports1+0~20180310073020.3~1.gbp5d77e8.tar.gz"
subpackages="$pkgname-dev $pkgname-lang"
options="!check" # Tests fail
builddir="$srcdir/source"
prepare() {
./autogen.sh \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr
}
build() {
make
}
check() {
make check
}
package() {
make DESTDIR="$pkgdir" install
}
sha512sums="347976e251fa4a48760bae96f3f6326bee06fc799cd989237898a23fb72e49929b202dcd0fd33eaf06dc9a8966f47deedcf105ec402a3125bffdbfd14a4dc5b6 geonames-5d77e827cd8800e9738f0e8ac2f865a59a9f68b2.tar.gz"
@@ -0,0 +1,38 @@
From 32d7af4f22bbd99b3bd7775290300dc920f275ac Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Mon, 31 Dec 2018 18:15:02 +0100
Subject: [PATCH] Add missing header include
---
src/MatchUtils.cpp | 2 ++
tests/functional/menus/MenuMain.cpp | 1 +
2 files changed, 3 insertions(+)
diff --git a/src/MatchUtils.cpp b/src/MatchUtils.cpp
index 19f458a..7f2c98e 100644
--- a/src/MatchUtils.cpp
+++ b/src/MatchUtils.cpp
@@ -20,6 +20,8 @@
#include <unity/util/ResourcePtr.h>
+#include <functional>
+
using namespace std;
namespace util = unity::util;
diff --git a/tests/functional/menus/MenuMain.cpp b/tests/functional/menus/MenuMain.cpp
index 5123177..cbc7cbe 100644
--- a/tests/functional/menus/MenuMain.cpp
+++ b/tests/functional/menus/MenuMain.cpp
@@ -25,6 +25,7 @@
#include <iostream>
#include <memory>
+#include <functional>
using namespace std;
using namespace unity::util;
--
2.20.1
+33
View File
@@ -0,0 +1,33 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=gmenuharness
pkgver=0_git20200517
_commit="c7242648fa0a85b6ff810db8676deb7e51974182"
pkgrel=0
pkgdesc="Library to test GMenuModel structures."
url="https://github.com/ubports/gmenuharness"
arch="all"
license="LGPL-3.0-only"
makedepends="cmake cmake-extras qt5-qtbase-dev unity-api-dev glib-dev gtest-dev gmock libqtdbustest"
checkdepends="dbus"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/gmenuharness/archive/$_commit.tar.gz"
subpackages="$pkgname-dev"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # Tests fail under QEMU
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build/tests
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="f1602f4f7a4b18c93dfb03f6ada85ccaea1c839b2ee6fd881780ec7e261d778bddb39e1d6911f795e7e066930b414f28f2f947e3912e81e7625fed73865e4c0a gmenuharness-c7242648fa0a85b6ff810db8676deb7e51974182.tar.gz"
+30
View File
@@ -0,0 +1,30 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=gsettings-qt
pkgver=0_git20200715
_commit="e12a1df31013eb940b035602951af11cee16a758"
pkgrel=0
pkgdesc="Library to access GSettings from Qt"
url="https://github.com/ubports/gsettings-qt"
arch="all"
license="LGPL-3.0-only"
depends_dev="qt5-qtdeclarative-dev"
makedepends="$depends_dev qt5-qtbase-dev"
checkdepends="xvfb-run"
subpackages="$pkgname-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/gsettings-qt/archive/$_commit.tar.gz"
builddir="$srcdir/$pkgname-$_commit"
build() {
qmake-qt5
make
}
check() {
LD_LIBRARY_PATH=../src GSETTINGS_BACKEND=memory GSETTINGS_SCHEMA_DIR=. xvfb-run make check
}
package() {
make INSTALL_ROOT="$pkgdir" install
}
sha512sums="6dd6d2290c29afd3404a82249c7429c6932b1e2eb33c37bad1440f04f6715a9dc7264fd0348c11d0dc8be4c78d7f1cc59f547cbcbf219f954e29cb5c58833d28 gsettings-qt-e12a1df31013eb940b035602951af11cee16a758.tar.gz"
@@ -0,0 +1,29 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=gsettings-ubuntu-touch-schemas
pkgver=0_git20181006
pkgrel=0
_commit="b3bdf178e4226c91c567b84f1adf9202b2492ca2"
pkgdesc='Collection of GSettings schemas for settings shared by various components of an Ubuntu environment'
arch="noarch"
url="https://github.com/ubports/gsettings-ubuntu-touch-schemas"
license="LGPL-2.1"
makedepends="gnome-common automake autoconf glib-dev intltool"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/gsettings-ubuntu-touch-schemas/archive/$_commit.tar.gz"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # No tests
build() {
./autogen.sh \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--localstatedir=/var
make
}
package() {
make DESTDIR="$pkgdir" install
}
sha512sums="9cb68efeda62d4802345292b75593658eed28e8068aa0361bafdc3c9fd1d4212cf1f0ad8cf9350aa438ecc3c937e1952ea9f89c85be418594e01febe6c8a70c8 gsettings-ubuntu-touch-schemas-b3bdf178e4226c91c567b84f1adf9202b2492ca2.tar.gz"
+36
View File
@@ -0,0 +1,36 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=indicator-network
pkgver=0_git20190907
_commit="2539978c51684822733fbbd7ebb6971d671492a0"
pkgrel=0
pkgdesc="The 'Network' indicator for Ubuntu Touch"
arch="all"
url="https://github.com/ubports/indicator-network"
license="GPL-3.0"
depends_dev="glib-dev unity-api-dev ofono-dev networkmanager-dev libsecret-dev url-dispatcher-dev qt5-qtdeclarative-dev libqofono-dev"
makedepends="$depends_dev cmake-extras gtest-dev gmock libqtdbustest libqtdbusmock gmenuharness-dev intltool"
checkdepends="py3-dbusmock"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/indicator-network/archive/$_commit.tar.gz"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # Tests are broken in general at the moment
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="4312e5a6b226cbc003484213b892b197982ec57fd0ae7c57609cd3533a159673782aeb49a40c4e1e0d2b9e5addace9b2a79b455ebc9d39694b283ce7f4d114cf indicator-network-2539978c51684822733fbbd7ebb6971d671492a0.tar.gz"
+31
View File
@@ -0,0 +1,31 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=libqtdbusmock
pkgver=0_git20190909
_commit="1e9fd84aa31c7b858b90e2bbbdcadf081549fa65"
pkgrel=0
pkgdesc="Library for mocking DBus interactions using Qt"
url="https://github.com/ubports/libqtdbusmock"
arch="all"
license="LGPL-3.0-only"
makedepends="cmake cmake-extras libqtdbustest networkmanager-dev qt5-qtbase-dev gtest-dev gmock"
checkdepends="py3-dbusmock procps"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/libqtdbusmock/archive/$_commit.tar.gz"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="5726b78bee6fbc0b7dd3feecdcc0ac1611e4b73610ad55fc351a8b3a75d1df998854b6ecaacd8a25a632ebc3b2daf8053a607a00ddd4821d8dcf1ac01c971bea libqtdbusmock-1e9fd84aa31c7b858b90e2bbbdcadf081549fa65.tar.gz"
+35
View File
@@ -0,0 +1,35 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=libqtdbustest
pkgver=0_git20180611
_commit="24e410ea77c9fa08894365c60bf08811a3b60bc0"
pkgrel=0
pkgdesc='Library for testing DBus interactions using Qt'
url='https://github.com/ubports/libqtdbustest'
arch="all"
license="LGPL-3.0-only"
makedepends="cmake cmake-extras gmock gtest-dev qt5-qtbase-dev"
checkdepends="procps py3-dbusmock dbus-x11"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/libqtdbustest/archive/$_commit.tar.gz
SuicidalSleep.patch"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # Checks fail when being cross-compiled with QEMU
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_LIBEXECDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="e587a3342879cf11543529cf2e6ad9f6266963afdad29f91bcf2742086cb9f889eca36f335280a658ecbf9a5e5319154e0b7ea842a008b3d2fb7740488ed442e libqtdbustest-24e410ea77c9fa08894365c60bf08811a3b60bc0.tar.gz
4ce1c9a23784412b7e171129db2dc13e39a515249edc73bdbd835996d76670eeafead55dbaa197ec8614d560038f6bf9fa999be3e5989d4d7134172e9dcf25bb SuicidalSleep.patch"
+13
View File
@@ -0,0 +1,13 @@
diff --git a/tests/libqtdbustest/TestSuicidalProcess.cpp b/tests/libqtdbustest/TestSuicidalProcess.cpp
index 3bdaeea..fa1e4eb 100644
--- a/tests/libqtdbustest/TestSuicidalProcess.cpp
+++ b/tests/libqtdbustest/TestSuicidalProcess.cpp
@@ -51,7 +51,7 @@ TEST_F(TestSuicidalProcess, BehavesLikeNormalQProcess) {
pgrep.waitForFinished();
pgrep.waitForReadyRead();
- EXPECT_EQ("sleep 5",
+ EXPECT_EQ("/bin/sleep 5",
QString::fromUtf8(pgrep.readAll().trimmed()).toStdString());
}
+35
View File
@@ -0,0 +1,35 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=libusermetrics
pkgver=0_git20200517
_commit="9288e37e18fafb2d2af918f6b644639af9661273"
pkgrel=0
pkgdesc='Library for exporting anonymous metrics about users'
arch="all"
url="https://github.com/ubports/libusermetrics"
license="GPL-3.0 LGPL-3.0 LGPL-2.1"
depends_dev="qt5-qtxmlpatterns-dev libapparmor-dev gsettings-qt-dev qt5-qtdeclarative-dev click-dev qdjango-dev"
makedepends="$depends_dev cmake-extras qt5-qtbase-dev libapparmor libqtdbustest intltool gtest-dev gmock"
checkdepends="dbus"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/libusermetrics/archive/$_commit.tar.gz"
subpackages="$pkgname-dev $pkgname-lang"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="3974f26ebdcd93b452ad663a3c4dd64a4acbc51c80e78464ce4719c02057fad3f5909f1067380ab9097297053fcd21c130daf41c0788a153da78020385820265 libusermetrics-9288e37e18fafb2d2af918f6b644639af9661273.tar.gz"
+37
View File
@@ -0,0 +1,37 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=location-service
pkgver=0_git20200818
pkgrel=0
_commit="7dc0ae2c146ed5887405bd63ded75da4e5a2f0ea"
pkgdesc="Location service aggregating position/velocity/heading updates and exporting them over dbus"
arch="all"
url="https://github.com/ubports/location-service"
license="GPL-3.0 LGPL-3.0"
depends_dev="boost-dev dbus-dev net-cpp-dev process-cpp-dev properties-cpp-dev json-c-dev libapparmor-dev gflags-dev glog-dev trust-store-dev"
makedepends="$depends_dev cmake-extras gettext gtest-dev gmock dbus-cpp-dev"
checkdepends="coreutils"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/location-service/archive/$_commit.tar.gz"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # Several failures
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DLOCATION_SERVICE_ENABLE_GPS_PROVIDER=OFF
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="a3c6688a922e65ed35d5641f8ef9b27ed7423cbbc82382b822cd0490a5f2258918889869f56f17d86b1a28681599f62c18da438d457e793c74696071b71c8a2c location-service-7dc0ae2c146ed5887405bd63ded75da4e5a2f0ea.tar.gz"
@@ -0,0 +1,29 @@
From 2c312bffea50b52ec16eefababe297487b13890f Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Wed, 16 Sep 2020 19:24:08 +0200
Subject: [PATCH] Allow changing of CONFIG_PATH during compile-time
This allows for e.g. a distribution to change the config path to a
different directory.
cmake -B build -DCONFIG_PATH=/etc/lomiri-deviceinfo
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a9c05e..d5b4234 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,7 +17,7 @@ set(TARGET deviceinfo)
include_directories(headers)
-set(CONFIG_PATH ${CMAKE_INSTALL_FULL_SYSCONFDIR}/deviceinfo)
+set(CONFIG_PATH CACHE STRING ${CMAKE_INSTALL_FULL_SYSCONFDIR}/deviceinfo)
install(DIRECTORY configs/ DESTINATION ${CONFIG_PATH})
add_subdirectory(headers)
--
2.28.0
+35
View File
@@ -0,0 +1,35 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=lomiri-deviceinfo
pkgver=0_git20200904
_commit="a830f334a7cfe97723a2ba2811771ce39d381398"
pkgrel=0
pkgdesc="Library to detect and configure devices"
arch="all"
url="https://github.com/ubports/deviceinfo"
license="GPL-3.0-only"
makedepends="cmake cmake-extras gtest-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/deviceinfo/archive/$_commit.tar.gz
0001-Allow-changing-of-CONFIG_PATH-during-compile-time.patch"
subpackages="$pkgname-dev"
builddir="$srcdir/deviceinfo-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCONFIG_PATH=/etc/lomiri-deviceinfo
cmake --build build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
DESTDIR="$pkgdir" cmake --build build --target install
}
sha512sums="1afe0767156d843143d8ef0a75de0e99cbefc2ff44deaf2210826b91b44d72d483040ed52c731b8888811244ea691bf8afb419fde8b238e42a8778c19f09f90d lomiri-deviceinfo-a830f334a7cfe97723a2ba2811771ce39d381398.tar.gz
6c1b7f1c03a0d522aaa86bf22753a897316d488ea5226df6f87f9c53b5345e2f3f61b97b4d4754aa5c1ea9b05e411bbf65bdd72dfcd9e90b179c1941abd1a8ac 0001-Allow-changing-of-CONFIG_PATH-during-compile-time.patch"
+25
View File
@@ -0,0 +1,25 @@
From c457acd78a73e19d4f9129e7a18a9a59db2ed46c Mon Sep 17 00:00:00 2001
From: Alan Griffiths <alan@octopull.co.uk>
Date: Mon, 8 Jun 2020 14:32:35 +0100
Subject: [PATCH] Add missing include
---
src/miral/cursor_theme.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/miral/cursor_theme.cpp b/src/miral/cursor_theme.cpp
index 7dfa6d05d0..5e3fbe75aa 100644
--- a/src/miral/cursor_theme.cpp
+++ b/src/miral/cursor_theme.cpp
@@ -25,6 +25,8 @@
#include <boost/throw_exception.hpp>
+#include <algorithm>
+
#define MIR_LOG_COMPONENT "miral"
#include <mir/log.h>
--
2.30.1
+51
View File
@@ -0,0 +1,51 @@
From 0f06a760676b9e5aa8320d0cb8e9c23a3419286d Mon Sep 17 00:00:00 2001
From: Alan Griffiths <alan@octopull.co.uk>
Date: Mon, 22 Jun 2020 17:20:22 +0100
Subject: [PATCH] Fix compiler errors
---
src/miral/display_configuration_option.cpp | 2 ++
src/miral/external_client.cpp | 1 +
src/miral/runner.cpp | 1 +
3 files changed, 4 insertions(+)
diff --git a/src/miral/display_configuration_option.cpp b/src/miral/display_configuration_option.cpp
index 864b4e7122..0ca6a1b1e0 100644
--- a/src/miral/display_configuration_option.cpp
+++ b/src/miral/display_configuration_option.cpp
@@ -24,6 +24,8 @@
#include <mir/options/option.h>
#include <mir/server.h>
+#include <algorithm>
+
namespace mg = mir::graphics;
namespace
diff --git a/src/miral/external_client.cpp b/src/miral/external_client.cpp
index af628fbe99..68200c253a 100644
--- a/src/miral/external_client.cpp
+++ b/src/miral/external_client.cpp
@@ -23,6 +23,7 @@
#include <mir/options/option.h>
#include <mir/server.h>
+#include <algorithm>
#include <map>
#include <stdexcept>
diff --git a/src/miral/runner.cpp b/src/miral/runner.cpp
index 7bad02f808..389a53cf69 100644
--- a/src/miral/runner.cpp
+++ b/src/miral/runner.cpp
@@ -26,6 +26,7 @@
#include <mir/options/option.h>
#include <mir/options/configuration.h>
+#include <algorithm>
#include <chrono>
#include <mutex>
#include <thread>
--
2.30.1
+47
View File
@@ -0,0 +1,47 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=mir
pkgver=1.8.1
pkgrel=0
pkgdesc="Canonical's display server"
url="https://mir-server.io"
arch="all"
license="GPL-2.0-or-later AND LGPL-2.0-or-later"
depends="xkeyboard-config ttf-freefont"
depends_dev="boost-dev mesa-dev glm-dev glog-dev gflags-dev eudev-dev glib-dev wayland-dev libepoxy-dev nettle-dev libinput-dev
capnproto-dev libxml++-2.6-dev py3-pillow freetype-dev libevdev-dev umockdev-dev lttng-ust-dev yaml-cpp-dev libxcursor-dev"
makedepends="$depends_dev cmake lttng-ust-tools libxkbcommon-dev gtest-dev gmock wlcs-dev protobuf-dev"
checkdepends="wlcs grep bash"
source="
$pkgname-$pkgver.tar.gz::https://github.com/MirServer/mir/archive/v$pkgver.tar.gz
0001-Add-missing-include.patch
0001-Fix-compiler-errors.patch
lttng_no_sdt.patch
temp.patch
"
subpackages="$pkgname-dev"
options="!check" # Some tests fail
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DMIR_FATAL_COMPILE_WARNINGS=OFF \
-DMIR_USE_LD=ld
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="1e205afa1495b28189ca72e5e573b410df6f7e01476764e1981ae93bb3a88172272727e74701787b6ea4b7b1797db4ba45ec803c7c0198f3bbe9788eb7b4fd79 mir-1.8.1.tar.gz
695ac584f9b6453e1220ad43dfc5a2da17a63f15258692bc85558f3d4031ea1c9cbc1990371c40056bd32ff403c2747146e81e32cf3f6c2614545de679d5545d 0001-Add-missing-include.patch
0c67ef5e45e3a5f2be4280f746509439555595b4c3020889d33b527e36d0268162c15da499fadb0cc6622c1606a30265e6d588cdcaa118b399c0756dcc81fd81 0001-Fix-compiler-errors.patch
c27e7b43f19044f2aac6d85d0403e2d9bae8e7c11b47b9964940c4e194dc49bc88a4b3828c7227358d90a9ef24e2d2fca94ea66ce9fb659cd9b5ec5fcefd522d lttng_no_sdt.patch
dbaa27da5a0d85ba0839f8cb57555c93bde28e210332eceae1a14d5f9f86ae3923133def710e9af8b8626ba233a82c0d2179dc9472e3175275c272d31fae3ce7 temp.patch"
+17
View File
@@ -0,0 +1,17 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c897b20056..7e28adf3e8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -300,9 +300,9 @@ check_cxx_symbol_exists("drmIsMaster" "xf86drm.h" MIR_LIBDRM_HAS_IS_MASTER)
# USDT integration. The integration only involves #include-ing a
# SystemTap header and calling a macro from it in the LTTNG macro,
# but there aren't guarantees this won't change in future.
-add_definitions( # Drop in favour of add_compile_definitions when we drop 16.04
- -DLTTNG_UST_HAVE_SDT_INTEGRATION
-)
+#add_definitions( # Drop in favour of add_compile_definitions when we drop 16.04
+# -DLTTNG_UST_HAVE_SDT_INTEGRATION
+#)
#
# Full OpenGL support is possibly complete but not yet perfect. So is
+21
View File
@@ -0,0 +1,21 @@
diff --git a/src/platforms/mesa/server/display_helpers.cpp b/src/platforms/mesa/server/display_helpers.cpp
index 502441e0b8..7cef8af0f9 100644
--- a/src/platforms/mesa/server/display_helpers.cpp
+++ b/src/platforms/mesa/server/display_helpers.cpp
@@ -57,9 +57,15 @@ mgmh::DRMHelper::open_all_devices(
{
int error = ENODEV; //Default error is "there are no DRM devices"
+ char* card_to_use = getenv("MIR_MESA_KMS_USE_DRM_DEVICE");
+
mir::udev::Enumerator devices(udev);
devices.match_subsystem("drm");
- devices.match_sysname("card[0-9]");
+ if(card_to_use == nullptr) {
+ devices.match_sysname("card[0-9]");
+ } else {
+ devices.match_sysname(card_to_use);
+ }
devices.scan_devices();
@@ -0,0 +1,38 @@
From 299564aaa9eda5062d81ac12cd6e32e7b6ec7f17 Mon Sep 17 00:00:00 2001
From: Ivan Semkin <ivan@semkin.ru>
Date: Wed, 20 Jun 2018 00:20:25 +0300
Subject: [PATCH] Only use Hybris when available
---
src/ubuntu/CMakeLists.txt | 4 +++-
src/ubuntu/application/CMakeLists.txt | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/ubuntu/CMakeLists.txt b/src/ubuntu/CMakeLists.txt
index ad988cd..c74b722 100644
--- a/src/ubuntu/CMakeLists.txt
+++ b/src/ubuntu/CMakeLists.txt
@@ -1,2 +1,4 @@
add_subdirectory(application)
-add_subdirectory(hardware)
+if(Hybris)
+ add_subdirectory(hardware)
+endif()
diff --git a/src/ubuntu/application/CMakeLists.txt b/src/ubuntu/application/CMakeLists.txt
index 211d476..6db0633 100644
--- a/src/ubuntu/application/CMakeLists.txt
+++ b/src/ubuntu/application/CMakeLists.txt
@@ -14,7 +14,9 @@ include_directories(../../bridge)
add_subdirectory(common)
add_subdirectory(desktop)
-add_subdirectory(touch)
+if(Hybris)
+ add_subdirectory(touch)
+endif()
add_subdirectory(testbackend)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -fPIC")
--
2.27.0
+35
View File
@@ -0,0 +1,35 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=platform-api
pkgver=0_git20200720
pkgrel=0
_commit="dec173823d718ec8ffe9e8d21714819ea928c3e2"
pkgdesc="Platform API for system level capabilities"
arch="all"
url='https://github.com/ubports/platform-api'
license="GPL-3.0-only AND LGPL-3.0-only"
depends_dev="process-cpp-dev url-dispatcher-dev location-service-dev"
makedepends="$depends_dev cmake cmake-extras dbus-cpp-dev gtest-dev gmock"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/$pkgname/archive/$_commit.tar.gz
0002-Only-use-Hybris-when-available.patch"
subpackages="$pkgname-dev"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="514287324d90acda84537a277f8e5b4158d3cf034fe18edefe1e1838dcbaab350bde09467e717e8a607f3655f1dc4ca021047e6f1202d5e776feeaf472cf1b6f platform-api-dec173823d718ec8ffe9e8d21714819ea928c3e2.tar.gz
1dceef13de9321c1aaa2f8530ff90c8cdf4359788453575b8e81eca12246f015ca03cc8e0721936b0762e6f087f55bb274049d4213e64b607c9977a69fac3042 0002-Only-use-Hybris-when-available.patch"
+19
View File
@@ -0,0 +1,19 @@
pkgname=pthread-cancel-noop
pkgver=1
pkgrel=0
pkgdesc="no-op for pthread_cancel(3)"
url="https://postmarketos.org"
arch="all"
license="MIT"
source="inject.c"
builddir="$srcdir"
build() {
gcc -shared -fPIC -o inject.so inject.c
}
package() {
install -Dm644 inject.so \
"$pkgdir"/usr/lib/preload/pthread_cancel_noop.so
}
sha512sums="582da818005b0b4e70d1095caeff0e6883230e85619a7f8972e4fb7bde3ac46007e516112e6436b5e2c71a16a91c9aaa460bdbcba51b94ec077548be9bb2037d inject.c"
+7
View File
@@ -0,0 +1,7 @@
#include <pthread.h>
#include <stdio.h>
int pthread_cancel(pthread_t thread) {
printf("NO-OP pthread_cancel!\n");
return 0;
}
+29
View File
@@ -0,0 +1,29 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=qdjango
pkgver=0.6.2
pkgrel=0
pkgdesc="A Qt-based C++ web framework"
url="https://github.com/jlaine/qdjango"
arch="all"
license="LGPL-2.1-or-later"
depends_dev="qt5-qtdeclarative-dev"
makedepends="$depends_dev doxygen"
source="$pkgname-$pkgver.tar.gz::https://github.com/jlaine/qdjango/archive/v$pkgver.tar.gz
no_docs_tests.patch"
subpackages="$pkgname-dev"
build() {
qmake-qt5 PREFIX=/usr
make
}
check() {
make check
}
package() {
make INSTALL_ROOT="$pkgdir" install
}
sha512sums="0280b09f0740ca7e70f62e36ea9e5bb648fe6d3ba1492e59f8c956df163c6db2338ea735e0b7937ee6e417f503a510eedf983ec6dc9744021a0c83a9432aa33f qdjango-0.6.2.tar.gz
4c18534ded97db3793679f46828ad212105db4fa4018def98157ce12579245a9feecd7570ef3c958c59dd4bd9e9dc6d5b09070bd8ce4f5872784cb7f60b402e5 no_docs_tests.patch"
+14
View File
@@ -0,0 +1,14 @@
diff --git a/qdjango.pro b/qdjango.pro
index e9b6a08..d00c3c2 100644
--- a/qdjango.pro
+++ b/qdjango.pro
@@ -6,8 +6,7 @@ SUBDIRS = src
android {
} else {
- SUBDIRS += tests examples
- INSTALLS += htmldocs
+ SUBDIRS += examples
}
CONFIG += ordered
@@ -0,0 +1,238 @@
From dc122c0c4d4bf4de93110e8c244772edfd09ebea Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Sun, 4 Apr 2021 13:13:24 +0200
Subject: [PATCH] Move glib includes outside of extern "C"
Recent glib versions throw this error otherwise:
In file included from /usr/include/glib-2.0/glib/gatomic.h:31,
from /usr/include/glib-2.0/glib/gthread.h:32,
from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
from /usr/include/glib-2.0/glib.h:32,
from /home/pmos/build/src/qmenumodel-0.8.0/libqmenumodel/src/converter.cpp:22:
/usr/include/c++/10.2.1/type_traits:56:3: error: template with C linkage
56 | template<typename _Tp, _Tp __v>
| ^~~~~~~~
/home/pmos/build/src/qmenumodel-0.8.0/libqmenumodel/src/converter.cpp:21:1: note: 'extern "C"' linkage started here
21 | extern "C" {
| ^~~~~~~~~~
---
libqmenumodel/src/converter.cpp | 2 --
libqmenumodel/src/menunode.h | 2 --
libqmenumodel/src/qdbusactiongroup.cpp | 2 --
libqmenumodel/src/qdbusmenumodel.cpp | 2 --
libqmenumodel/src/qdbusobject.cpp | 2 --
libqmenumodel/src/qmenumodel.cpp | 2 --
libqmenumodel/src/qmenumodelevents.cpp | 2 --
libqmenumodel/src/unitymenumodelevents.cpp | 2 --
tests/client/cachetest.cpp | 2 --
tests/client/convertertest.cpp | 2 --
tests/client/modelsignalstest.cpp | 2 --
tests/client/modeltest.cpp | 2 --
tests/client/qmltest.cpp | 2 --
tests/client/treetest.cpp | 2 --
14 files changed, 28 deletions(-)
diff --git a/libqmenumodel/src/converter.cpp b/libqmenumodel/src/converter.cpp
index 459e77f..49ced63 100644
--- a/libqmenumodel/src/converter.cpp
+++ b/libqmenumodel/src/converter.cpp
@@ -18,9 +18,7 @@
* Marco Trevisan <marco.trevisan@canonical.com>
*/
-extern "C" {
#include <glib.h>
-}
#include "converter.h"
diff --git a/libqmenumodel/src/menunode.h b/libqmenumodel/src/menunode.h
index e647a37..8c27111 100644
--- a/libqmenumodel/src/menunode.h
+++ b/libqmenumodel/src/menunode.h
@@ -25,9 +25,7 @@
#include <QMap>
#include <QVariant>
-extern "C" {
#include <gio/gio.h>
-}
class MenuNode
{
diff --git a/libqmenumodel/src/qdbusactiongroup.cpp b/libqmenumodel/src/qdbusactiongroup.cpp
index 76e28ed..edbb073 100644
--- a/libqmenumodel/src/qdbusactiongroup.cpp
+++ b/libqmenumodel/src/qdbusactiongroup.cpp
@@ -26,10 +26,8 @@
// Qt
#include <QCoreApplication>
-extern "C" {
#include <glib.h>
#include <gio/gio.h>
-}
/*!
\qmltype QDBusActionGroup
diff --git a/libqmenumodel/src/qdbusmenumodel.cpp b/libqmenumodel/src/qdbusmenumodel.cpp
index f8b4a51..207584e 100644
--- a/libqmenumodel/src/qdbusmenumodel.cpp
+++ b/libqmenumodel/src/qdbusmenumodel.cpp
@@ -17,9 +17,7 @@
* Renato Araujo Oliveira Filho <renato@canonical.com>
*/
-extern "C" {
#include <gio/gio.h>
-}
#include "qdbusmenumodel.h"
#include "qmenumodelevents.h"
diff --git a/libqmenumodel/src/qdbusobject.cpp b/libqmenumodel/src/qdbusobject.cpp
index fab2df7..c440009 100644
--- a/libqmenumodel/src/qdbusobject.cpp
+++ b/libqmenumodel/src/qdbusobject.cpp
@@ -17,10 +17,8 @@
* Renato Araujo Oliveira Filho <renato@canonical.com>
*/
-extern "C" {
#include <glib-object.h>
#include <gio/gio.h>
-}
#include "qdbusobject.h"
#include "qmenumodelevents.h"
diff --git a/libqmenumodel/src/qmenumodel.cpp b/libqmenumodel/src/qmenumodel.cpp
index e77419f..7b720ae 100644
--- a/libqmenumodel/src/qmenumodel.cpp
+++ b/libqmenumodel/src/qmenumodel.cpp
@@ -18,9 +18,7 @@
* Olivier Tilloy <olivier.tilloy@canonical.com>
*/
-extern "C" {
#include <gio/gio.h>
-}
#include "qmenumodel.h"
#include "menunode.h"
diff --git a/libqmenumodel/src/qmenumodelevents.cpp b/libqmenumodel/src/qmenumodelevents.cpp
index c705d5c..f5c6485 100644
--- a/libqmenumodel/src/qmenumodelevents.cpp
+++ b/libqmenumodel/src/qmenumodelevents.cpp
@@ -17,10 +17,8 @@
* Nicholas Dedekind <nick.dedekind@canonical.com
*/
-extern "C" {
#include <glib-object.h>
#include <gio/gio.h>
-}
#include "qmenumodelevents.h"
diff --git a/libqmenumodel/src/unitymenumodelevents.cpp b/libqmenumodel/src/unitymenumodelevents.cpp
index 68dacde..46a9517 100644
--- a/libqmenumodel/src/unitymenumodelevents.cpp
+++ b/libqmenumodel/src/unitymenumodelevents.cpp
@@ -17,10 +17,8 @@
* Nicholas Dedekind <nick.dedekind@canonical.com
*/
-extern "C" {
#include <glib-object.h>
#include <gio/gio.h>
-}
#include "unitymenumodelevents.h"
#include "unitymenumodel.h"
diff --git a/tests/client/cachetest.cpp b/tests/client/cachetest.cpp
index 8ad65af..188020a 100644
--- a/tests/client/cachetest.cpp
+++ b/tests/client/cachetest.cpp
@@ -20,9 +20,7 @@
#include "qmenumodel.h"
-extern "C" {
#include <gio/gio.h>
-}
#include <QtTest>
diff --git a/tests/client/convertertest.cpp b/tests/client/convertertest.cpp
index 43127a7..095a022 100644
--- a/tests/client/convertertest.cpp
+++ b/tests/client/convertertest.cpp
@@ -18,9 +18,7 @@
* Marco Trevisan <marco.trevisan@canonical.com>
*/
-extern "C" {
#include <glib.h>
-}
#include "converter.h"
diff --git a/tests/client/modelsignalstest.cpp b/tests/client/modelsignalstest.cpp
index 3064778..fe28932 100644
--- a/tests/client/modelsignalstest.cpp
+++ b/tests/client/modelsignalstest.cpp
@@ -23,9 +23,7 @@
#include <QtTest>
#include <QDebug>
-extern "C" {
#include <gio/gio.h>
-}
class MenuModelTestClass : public QMenuModel
diff --git a/tests/client/modeltest.cpp b/tests/client/modeltest.cpp
index 7bc9706..e6ae82d 100644
--- a/tests/client/modeltest.cpp
+++ b/tests/client/modeltest.cpp
@@ -25,9 +25,7 @@
#include <QtTest>
#include <QDebug>
-extern "C" {
#include <gio/gio.h>
-}
class ModelTest : public QObject
{
diff --git a/tests/client/qmltest.cpp b/tests/client/qmltest.cpp
index 1f1e494..94080df 100644
--- a/tests/client/qmltest.cpp
+++ b/tests/client/qmltest.cpp
@@ -17,9 +17,7 @@
* Renato Araujo Oliveira Filho <renato@canonical.com>
*/
-extern "C" {
#include <glib-object.h>
-}
#include "qdbusmenumodel.h"
#include "dbusmenuscript.h"
diff --git a/tests/client/treetest.cpp b/tests/client/treetest.cpp
index 3c2827b..baa1554 100644
--- a/tests/client/treetest.cpp
+++ b/tests/client/treetest.cpp
@@ -20,9 +20,7 @@
#include "qmenumodel.h"
-extern "C" {
#include <gio/gio.h>
-}
#include <QtTest>
--
2.31.1
+37
View File
@@ -0,0 +1,37 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=qmenumodel
pkgver=0_git20201008
pkgrel=0
_commit="a9f44cb712a3ce39e377341fe2b52c05a4b37e68"
pkgdesc='qmenumodel'
arch="all"
url="https://github.com/ubports/qmenumodel"
license="LGPL-3.0-only"
depends_dev="qt5-qtdeclarative-dev"
makedepends="$depends_dev cmake qt5-qtbase-dev"
checkdepends="dbus-test-runner py3-dbus py3-gobject3"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/qmenumodel/archive/$_commit.tar.gz
0001-Move-glib-includes-outside-of-extern-C.patch"
subpackages="$pkgname-dev"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="c998ef8ca4168ed45b45f7c7cdc14104cf1678769bcb303c112b76fb5715092d340197d622b82c38f2d18be9b188ad573bc559a6ddd593c071e512222067cbcc qmenumodel-a9f44cb712a3ce39e377341fe2b52c05a4b37e68.tar.gz
b5bf67e189eba37c72911f23623d2daf1e29f3defa64e28e215fa1fbc283b603ec73f6b7967b55fecdaf9435de449629c1cef34a690819cb67337db80c024ed8 0001-Move-glib-includes-outside-of-extern-C.patch"
@@ -0,0 +1,26 @@
From 7b780210eb025d06cce6585f7bd14987ed0049c9 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Mon, 18 Nov 2019 20:16:54 +0100
Subject: [PATCH 1/3] Revert "Use app-launch-2"
This reverts commit dec18c92d7d7dcf84aa3da3f592e3b01c2f8b955.
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c8bff409..0970c756 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -83,7 +83,7 @@ pkg_check_modules(MIRAL miral>=1.1.0 REQUIRED)
pkg_check_modules(XKBCOMMON xkbcommon REQUIRED)
pkg_check_modules(GLIB glib-2.0 REQUIRED)
pkg_check_modules(PROCESS_CPP process-cpp REQUIRED)
-pkg_check_modules(UBUNTU_APP_LAUNCH ubuntu-app-launch-2 REQUIRED)
+pkg_check_modules(UBUNTU_APP_LAUNCH ubuntu-app-launch-3 REQUIRED)
pkg_check_modules(URL_DISPATCHER url-dispatcher-1)
pkg_check_modules(EGL egl)
pkg_check_modules(GIO gio-2.0)
--
2.26.1
+43
View File
@@ -0,0 +1,43 @@
From 235cc22d1e31f507c63cc43f8dfcfc95364ca477 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Fri, 20 Mar 2020 22:35:05 +0100
Subject: [PATCH 2/3] Disable Werror
---
CMakeLists.txt | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0970c756..816d9f4f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,8 +26,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra -Werror")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -fno-strict-aliasing -Werror -Wextra")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -fno-strict-aliasing -Wextra")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
set (CMAKE_CXX_STANDARD 14)
@@ -164,15 +164,6 @@ string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower)
if(cmake_build_type_lower MATCHES relwithdebinfo) # workaround for http://public.kitware.com/Bug/view.php?id=14696
add_definitions(-DQT_NO_DEBUG)
endif()
-if ("${CMAKE_BUILD_TYPE}" STREQUAL "release" OR "${CMAKE_BUILD_TYPE}" STREQUAL "relwithdebinfo")
- option(Werror "Treat warnings as errors" ON)
-else()
- option(Werror "Treat warnings as errors" OFF)
-endif()
-
-if (Werror)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
-endif()
# Mir uses boost, which does not like Qt defining macros named "signals" and "slots"
--
2.26.1
@@ -0,0 +1,41 @@
From 3cef6cf088f8f271784154828f213d5109c03722 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Fri, 17 Apr 2020 19:30:54 +0200
Subject: [PATCH 3/3] Fix compilation with Qt 5.14
Fixes #52
---
src/modules/Unity/Application/mirsurfaceitem.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/modules/Unity/Application/mirsurfaceitem.cpp b/src/modules/Unity/Application/mirsurfaceitem.cpp
index 556afb83..1d7a9588 100644
--- a/src/modules/Unity/Application/mirsurfaceitem.cpp
+++ b/src/modules/Unity/Application/mirsurfaceitem.cpp
@@ -32,6 +32,10 @@
#include <QQmlEngine>
#include <QQuickWindow>
#include <QScreen>
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+#include <private/qquickwindow_p.h>
+#include <private/qsgdefaultrendercontext_p.h>
+#endif
#include <private/qsgdefaultinternalimagenode_p.h>
#include <QTimer>
#include <QSGTextureProvider>
@@ -234,7 +238,12 @@ QSGNode *MirSurfaceItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *
m_textureProvider->smooth = smooth();
QSGDefaultInternalImageNode *node = static_cast<QSGDefaultInternalImageNode*>(oldNode);
if (!node) {
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+ QSGRenderContext *rc = QQuickWindowPrivate::get(window())->context;
+ node = new QSGDefaultInternalImageNode(static_cast<QSGDefaultRenderContext *>(rc));
+#else
node = new QSGDefaultInternalImageNode;
+#endif
node->setMipmapFiltering(QSGTexture::None);
node->setHorizontalWrapMode(QSGTexture::ClampToEdge);
node->setVerticalWrapMode(QSGTexture::ClampToEdge);
--
2.26.1
+42
View File
@@ -0,0 +1,42 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=qtmir
pkgver=0_git20200610
# branch xenial_-_edge_-_wayland
_commit="26e772fce520a2a7013039a14ed93679ee44af31"
pkgrel=0
pkgdesc="QPA plugin to make Qt a Mir server"
arch="all"
url="https://github.com/ubports/qtmir"
license="LGPL-3.0-only"
makedepends="cmake cmake-extras gtest-dev mir-dev process-cpp-dev qt5-qtdeclarative-dev qt5-qtsensors-dev ubuntu-app-launch-dev gsettings-qt-dev libqtdbustest libqtdbusmock content-hub-dev valgrind-dev url-dispatcher-dev cgmanager-dev lttng-ust-tools"
checkdepends="py3-dbusmock dbus"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/qtmir/archive/$_commit.tar.gz
0001-Revert-Use-app-launch-2.patch
0002-Disable-Werror.patch
0003-Fix-compilation-with-Qt-5.14.patch
gmock.patch"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="014b79967bc0b45180ebc6d067016b059b535c8c22b3278ccfbb3f761fcbb7daa93a4bda3fd5a264e3b1054e3fe625e8fa81822a986df5ccf640c6841a1bbe03 qtmir-26e772fce520a2a7013039a14ed93679ee44af31.tar.gz
ac86979c4ed44076ed28c60b8a7f34359370b6e635c10e13ae54a6f3f04fa26256b6fbf234cf0fbc86aa4895652c7b19da011e14f560e39f6fc1b0de0ac1db65 0001-Revert-Use-app-launch-2.patch
9b96da0d68fae98b0cd328ca469ea5d2fdd7cf7ed44cec793064b2649cd6fd14004583c7eb3251581e7cfaba5a0517341670410d9ae6aa6a8ef133696d232b52 0002-Disable-Werror.patch
68216e7e954e8b83b547b0c37f6daf9fd4b148cd4e173b1d8eb786c7062aeb937de245cdd9c9bcfd871be16b65e56b43e613a16c0cdee3b9758a1a5188148e1b 0003-Fix-compilation-with-Qt-5.14.patch
81ed47a62e04dc522b58a03f7e6e7f919c5fedf874cccd3df3e61e4e31cc09e812cd88617f7e1a74b4ad3ff824690d77ea0de80da5c46d7a0d27d877c2c5c30f gmock.patch"
+102
View File
@@ -0,0 +1,102 @@
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index e43816b3..e7851d95 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,5 +1,33 @@
find_package(GMock)
+pkg_check_modules(GTEST gtest)
+if(NOT GTEST_FOUND)
+ message(WARNING "'gtest' not found with pkg-config, assuming v1.7.0")
+ set(GTEST_VERSION "1.7.0")
+endif()
+string(REGEX MATCH
+ "([0-9])\\.([0-9]+)\\.([0-9])" GTEST_VERSION_PARSED
+ ${GTEST_VERSION})
+if (GTEST_VERSION_PARSED)
+ set(GTEST_VERSION_MAJOR ${CMAKE_MATCH_1})
+ set(GTEST_VERSION_MINOR ${CMAKE_MATCH_2})
+ set(GTEST_VERSION_PATCH ${CMAKE_MATCH_3})
+ message("Using GTest v${GTEST_VERSION_MAJOR}.${GTEST_VERSION_MINOR}.${GTEST_VERSION_PATCH}")
+else()
+ set(GTEST_VERSION_MAJOR 1)
+ set(GTEST_VERSION_MINOR 8)
+ set(GTEST_VERSION_PATCH 0)
+ message(WARNING "Could not parse GTest version: ${GTEST_VERSION}, assuming v1.8.0 (or compatible) and hoping for the best")
+endif()
+
+add_definitions(-DGTEST_VERSION_MAJOR=${GTEST_VERSION_MAJOR})
+add_definitions(-DGTEST_VERSION_MINOR=${GTEST_VERSION_MINOR})
+add_definitions(-DGTEST_VERSION_PATCH=${GTEST_VERSION_PATCH})
+
+include_directories(
+ include
+)
+
pkg_check_modules(MIRTEST mirtest>=0.26 REQUIRED)
add_subdirectory(framework)
diff --git a/tests/framework/gmock_fixes.h b/tests/framework/gmock_fixes.h
index e07af3df..b112e8bd 100644
--- a/tests/framework/gmock_fixes.h
+++ b/tests/framework/gmock_fixes.h
@@ -38,6 +38,8 @@
#include <memory>
#include <gmock/gmock.h>
+#include "check_gtest_version.h"
+
namespace testing
{
namespace internal
@@ -75,9 +77,13 @@ class ActionResultHolder<std::unique_ptr<T>>
// result in a new-ed ActionResultHolder.
template <typename F>
static ActionResultHolder* PerformDefaultAction(
+#if GTEST_AT_LEAST(1, 10, 0)
+ const FunctionMocker<F>* func_mocker,
+#else
const FunctionMockerBase<F>* func_mocker,
+#endif
typename Function<F>::ArgumentTuple args,
- const string& call_description) {
+ const std::string& call_description) {
return new ActionResultHolder(
func_mocker->PerformDefaultAction(std::move(args), call_description));
}
diff --git a/tests/include/check_gtest_version.h b/tests/include/check_gtest_version.h
new file mode 100644
index 00000000..aac2d1ca
--- /dev/null
+++ b/tests/include/check_gtest_version.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright © 2018 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 or 3,
+ * as published by the Free Software Foundation.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ *
+ * Authored by: William Wold <william.wold@canonical.com>
+ */
+
+#ifndef GMOCK_CHECK_VERSION_H_
+#define GMOCK_CHECK_VERSION_H_
+
+// NOTE: GTEST_VERSION_* macros are pulled out of the gtest-config utility in cmake, they are NOT provided by any GTest headers.
+
+#if !defined(GTEST_VERSION_MAJOR) || !defined(GTEST_VERSION_MINOR) || !defined(GTEST_VERSION_PATCH)
+#error GTest version macro(s) (GTEST_VERSION_MAJOR, GTEST_VERSION_MINOR or GTEST_VERSION_PATCH) not defined, They should have been defined in tests/CMakeLists.txt
+#endif
+
+#define GTEST_AT_LEAST(x, y, z) (GTEST_VERSION_MAJOR > x || (GTEST_VERSION_MAJOR == x && (GTEST_VERSION_MINOR > y || (GTEST_VERSION_MINOR == y && (GTEST_VERSION_PATCH >= z)))))
+
+#endif // GMOCK_CHECK_VERSION_H_
+35
View File
@@ -0,0 +1,35 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=settings-components
pkgver=0_git20201125
pkgrel=0
_commit="2d304cd2f6918645096a6240668f0483bed513fa"
pkgdesc="Ubuntu settings components for Unity8"
arch="all"
url="https://github.com/ubports/settings-components"
license="GPL-3.0-only AND LGPL-3.0-only"
makedepends="cmake cmake-extras qt5-qtdeclarative-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/settings-components/archive/$_commit.tar.gz
qmltestrunner.patch"
subpackages="$pkgname-lang"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="1cd2774bbe1b14eb9907013fae1cb0ab1dfe510983301593ed5eb3be3e39c5cb0550c3151208e6256ca98b8e504ce7d8f8245945f2c00481537a8d6e3dbfe178 settings-components-2d304cd2f6918645096a6240668f0483bed513fa.tar.gz
0cbe24ba24468ccfae80b6d6b49c68b55e44561ac7914645746af15ee252c12341f2b401390cffbed520963d1cb7da6980f99520ee820528de964b8a714b87b4 qmltestrunner.patch"
@@ -0,0 +1,29 @@
diff --git a/cmake/modules/QmlTest.cmake b/cmake/modules/QmlTest.cmake
index 42d5c49..3ccd6ac 100644
--- a/cmake/modules/QmlTest.cmake
+++ b/cmake/modules/QmlTest.cmake
@@ -65,9 +65,9 @@ endfunction()
# This function wraps add_executable_test, see below for available arguments.
function(add_qml_unittest PATH COMPONENT_NAME)
- import_executables(qmltestrunner)
+ import_executables(qmltestrunner-qt5)
- add_executable_test(${COMPONENT_NAME} qmltestrunner
+ add_executable_test(${COMPONENT_NAME} qmltestrunner-qt5
${ARGN}
ARGS -input ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
)
@@ -84,10 +84,10 @@ endfunction()
# This function wraps add_manual_test, see below for available arguments.
function(add_manual_qml_test PATH COMPONENT_NAME)
- import_executables(qmlscene)
+ import_executables(qmlscene-qt5)
cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
- add_manual_test(${COMPONENT_NAME} qmlscene
+ add_manual_test(${COMPONENT_NAME} qmlscene-qt5
${ARGN}
ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
)
@@ -0,0 +1,121 @@
From 88081e739645727c55310494a20fd5cf6191ff35 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Mon, 18 May 2020 21:34:37 +0200
Subject: [PATCH 2/3] Don't build update components
---
plugins/system-update/CMakeLists.txt | 3 --
.../SystemSettings/Update/CMakeLists.txt | 2 -
tests/plugins/CMakeLists.txt | 42 +++++++++----------
3 files changed, 21 insertions(+), 26 deletions(-)
diff --git a/plugins/system-update/CMakeLists.txt b/plugins/system-update/CMakeLists.txt
index 57488cc5..e2b6bc0f 100644
--- a/plugins/system-update/CMakeLists.txt
+++ b/plugins/system-update/CMakeLists.txt
@@ -17,7 +17,6 @@ set(QML_SOURCES
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
- /usr/include/apt-pkg/
)
add_library(UpdatePlugin SHARED
@@ -36,7 +35,6 @@ add_library(UpdatePlugin SHARED
network/accessmanager_impl.cpp
helpers.cpp
- update.cpp
updatedb.cpp
updatemodel.cpp
updatemanager.cpp
@@ -49,7 +47,6 @@ target_link_libraries(UpdatePlugin
Qt5::Quick
Qt5::Sql
- apt-pkg
uss-systemimage
)
diff --git a/tests/mocks/Ubuntu/SystemSettings/Update/CMakeLists.txt b/tests/mocks/Ubuntu/SystemSettings/Update/CMakeLists.txt
index 373dfaf4..13d372a6 100644
--- a/tests/mocks/Ubuntu/SystemSettings/Update/CMakeLists.txt
+++ b/tests/mocks/Ubuntu/SystemSettings/Update/CMakeLists.txt
@@ -3,12 +3,10 @@ include_directories(
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/plugins/system-update
${CMAKE_SOURCE_DIR}/tests/mocks/plugins/system-update
- /usr/include/apt-pkg/
)
set(PLUGIN_LIBS
UpdatePlugin
- apt-pkg
)
set(MOCK_SYSTEMUPDATE_SRCS
diff --git a/tests/plugins/CMakeLists.txt b/tests/plugins/CMakeLists.txt
index 538f6d90..42231449 100644
--- a/tests/plugins/CMakeLists.txt
+++ b/tests/plugins/CMakeLists.txt
@@ -2,7 +2,7 @@
include(QmlTest)
add_subdirectory(security-privacy)
-add_subdirectory(system-update)
+#add_subdirectory(system-update)
add_subdirectory(bluetooth)
add_subdirectory(wifi)
add_subdirectory(notifications)
@@ -29,28 +29,28 @@ set(SYSTEMUPDATE_IMPORT_PATHS
${CMAKE_SOURCE_DIR}/src
${CMAKE_BINARY_DIR}/tests/utils/modules
${CMAKE_BINARY_DIR}/tests/mocks/
- ${CMAKE_SOURCE_DIR}/tests/plugins/system-update
+# ${CMAKE_SOURCE_DIR}/tests/plugins/system-update
)
-add_qml_test(system-update systemupdate_update
- IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
-)
-
-add_qml_test(system-update systemupdate_global
- IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
-)
-
-add_qml_test(system-update systemupdate_pagecomponent
- IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
-)
-
-add_qml_test(system-update systemupdate_entrycomponent
- IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
-)
-
-add_qml_test(system-update systemupdate_download_handler
- IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
-)
+#add_qml_test(system-update systemupdate_update
+# IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
+#)
+#
+#add_qml_test(system-update systemupdate_global
+# IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
+#)
+#
+#add_qml_test(system-update systemupdate_pagecomponent
+# IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
+#)
+#
+#add_qml_test(system-update systemupdate_entrycomponent
+# IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
+#)
+#
+#add_qml_test(system-update systemupdate_download_handler
+# IMPORT_PATHS ${SYSTEMUPDATE_IMPORT_PATHS}
+#)
add_qml_test(main MainWindow
IMPORT_PATHS
--
2.26.2
@@ -0,0 +1,25 @@
From adbf2dd3658bbfb00b2962c6edf76e52522118bf Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Mon, 18 May 2020 21:37:40 +0200
Subject: [PATCH 3/3] Use qmltestrunner-qt5
---
cmake/QmlTest.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmake/QmlTest.cmake b/cmake/QmlTest.cmake
index 253b1206..dbdf6668 100644
--- a/cmake/QmlTest.cmake
+++ b/cmake/QmlTest.cmake
@@ -19,7 +19,7 @@
# qmltest_DEFAULT_IMPORT_PATHS
# qmltest_DEFAULT_PROPERTIES
-find_program(qmltestrunner_exe qmltestrunner)
+find_program(qmltestrunner_exe qmltestrunner-qt5)
find_program(qmlscene_exe qmlscene)
find_program(gcc_exe gcc)
--
2.26.2
+38
View File
@@ -0,0 +1,38 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=system-settings
pkgver=0_git20201218
_commit="e96000c97a54a305c9eef35bf7eedb017d31c44f"
pkgrel=0
pkgdesc="System Settings application for Unity8"
url="https://github.com/ubports/system-settings"
arch="all"
license="GPL-3.0-only"
depends="ubuntu-ui-toolkit settings-components"
makedepends="cmake qt5-qtbase-dev upower-dev networkmanager-dev accountsservice-ubuntu-dev geonames-dev icu-dev libqtdbusmock gsettings-qt-dev click-dev gnome-desktop-dev trust-store-dev qt5-qtdeclarative-dev qt5-qtdeclarative intltool"
checkdepends="xvfb-run py3-xdg py3-dbusmock"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/system-settings/archive/$_commit.tar.gz
0002-Don-t-build-update-components.patch
0003-Use-qmltestrunner-qt5.patch"
builddir="$srcdir/$pkgname-$_commit"
options="pmb:strict !check" # 67% tests passed, 5 tests failed out of 15
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="48e34aa6f7a96e10841db83843f7a281022e004b268e6172052e76c6c3ccafa6096aaf82da6036defdb3d69868e6a80c706485cb0e01b3d9cb439c21744bf474 system-settings-e96000c97a54a305c9eef35bf7eedb017d31c44f.tar.gz
33ca29fd7f34e5f44aa9245ed4a303d8d8b2d0fdcf0b433e36787be1a1122f63d8fbfcb15ece2a49d853c4aee48ec48b954d5f2c16e72e125f3a90a5875e71be 0002-Don-t-build-update-components.patch
11a1003ac08ba5b8739c371b8d2d953f31c666c7a9f6926420f7aab94665298ce8ca0782979a3ea48bc67d800b48b4eeba030f2fc86e422b0cafae7319b7db98 0003-Use-qmltestrunner-qt5.patch"
+35
View File
@@ -0,0 +1,35 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=trust-store
pkgver=0_git20201008
_commit="ad94b8bcdfeafc7ff7c80bc3693f8fecb4b9b70e"
pkgrel=0
pkgdesc="An API for creating, reading, updating and deleting trust requests answered by users."
url="https://github.com/ubports/trust-store"
arch="all"
license="LGPL-3.0-only"
makedepends="cmake cmake-extras mir-dev boost-dev process-cpp-dev dbus-cpp-dev properties-cpp-dev libapparmor-dev libapparmor qt5-qtdeclarative-dev gtest-dev gmock"
checkdepends="coreutils"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/$pkgname/archive/$_commit.tar.gz
no_werror.patch"
subpackages="$pkgname-dev $pkgname-lang"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # 62% tests passed, 5 tests failed out of 13
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="7726f163630351a3595bf1ba00eca187150aef1c1ca6b097c8c284e99a92f3774866db817d3ae118359470439e2dfaf7efff0d0d7ddadb3a88eab87043cf4668 trust-store-ad94b8bcdfeafc7ff7c80bc3693f8fecb4b9b70e.tar.gz
b839985eaedbab84240a619f5775b4b1d4a22cb38aec3314d125665550889cde845ba86f065346dc83aac8a03900feae62c69db69e4cb2983b9f20128c373ffb no_werror.patch"
+15
View File
@@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0e86292..a68687e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,8 +39,8 @@ include(cmake/EnableCoverageReport.cmake)
include(cmake/PrePush.cmake)
include(GNUInstallDirs)
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wall -pedantic -Wextra -fPIC -fvisibility=hidden -pthread")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror -Wall -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -pedantic -Wextra -fPIC -pthread")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wextra -fPIC -fvisibility=hidden -pthread")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -pedantic -Wextra -fPIC -pthread")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
#####################################################################
@@ -0,0 +1,59 @@
From cab2be96b58a9cbcd84ff1945d406d24a702a211 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Sun, 4 Apr 2021 16:08:50 +0200
Subject: [PATCH] Fix compile error with new glib versions
glib.h doesn't like being included under extern "C" anymore
/home/pmos/build/src/lomiri-app-launch-6db9025235d4e8517c970c39505d137d2a6f470a/liblomiri-app-launch/lomiri-app-launch.cpp:20:1: note: 'extern "C"' linkage started here
20 | extern "C" {
| ^~~~~~~~~~
In file included from /usr/include/glib-2.0/glib/gatomic.h:31,
from /usr/include/glib-2.0/glib/gthread.h:32,
from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
from /usr/include/glib-2.0/glib.h:32,
from /home/pmos/build/src/lomiri-app-launch-6db9025235d4e8517c970c39505d137d2a6f470a/liblomiri-app-launch/lomiri-app-launch.h:20,
from /home/pmos/build/src/lomiri-app-launch-6db9025235d4e8517c970c39505d137d2a6f470a/liblomiri-app-launch/lomiri-app-launch.cpp:21:
/usr/include/c++/10.2.1/type_traits:2930:3: error: template with C linkage
2930 | template<typename _Fn, typename... _Args>
| ^~~~~~~~
/home/pmos/build/src/lomiri-app-launch-6db9025235d4e8517c970c39505d137d2a6f470a/liblomiri-app-launch/lomiri-app-launch.cpp:20:1: note: 'extern "C"' linkage started here
20 | extern "C" {
| ^~~~~~~~~~
---
libubuntu-app-launch/application.cpp | 2 --
libubuntu-app-launch/ubuntu-app-launch.cpp | 3 ++-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/libubuntu-app-launch/application.cpp b/libubuntu-app-launch/application.cpp
index 29ebf69..a89300a 100644
--- a/libubuntu-app-launch/application.cpp
+++ b/libubuntu-app-launch/application.cpp
@@ -17,9 +17,7 @@
* Ted Gould <ted.gould@canonical.com>
*/
-extern "C" {
#include "ubuntu-app-launch.h"
-}
#include "application.h"
#include "info-watcher.h"
diff --git a/libubuntu-app-launch/ubuntu-app-launch.cpp b/libubuntu-app-launch/ubuntu-app-launch.cpp
index ad74fdd..cc1edbf 100644
--- a/libubuntu-app-launch/ubuntu-app-launch.cpp
+++ b/libubuntu-app-launch/ubuntu-app-launch.cpp
@@ -17,8 +17,9 @@
* Ted Gould <ted.gould@canonical.com>
*/
-extern "C" {
#include "ubuntu-app-launch.h"
+
+extern "C" {
#include <gio/gio.h>
#include <gio/gunixfdlist.h>
#include <string.h>
--
2.31.1
+45
View File
@@ -0,0 +1,45 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=ubuntu-app-launch
pkgver=0_git20181230
pkgrel=0
_commit="55c0338a110a10994de4efc220d36293080770e2"
pkgdesc="Session init system job for Launching Applications"
arch="all"
url="https://github.com/ubports/ubuntu-app-launch"
license="GPL-3.0"
depends_dev="gobject-introspection-dev lttng-ust-dev json-glib-dev zeitgeist-dev unity-api-dev curl-dev properties-cpp-dev"
makedepends="$depends_dev cmake cmake-extras dbus-test-runner qt5-qtdeclarative gtest-dev glib-dev mir-dev dbus-test-runner-dev lttng-ust-tools pthread-cancel-noop"
checkdepends="gtest-dev gmock py3-dbusmock"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/ubuntu-app-launch/archive/$_commit.tar.gz
libual-test_libertine.patch
0001-Fix-compile-error-with-new-glib-versions.patch"
subpackages="$pkgname-dev"
builddir="$srcdir/$pkgname-$_commit"
# 23% tests passed, 10 tests failed out of 13
# Build without crossdirect as long as we need the LD_PRELOAD
options="!check !pmb:crossdirect"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
# Work around QEMU issue with pthread_cancel
# See https://gitlab.com/postmarketOS/pmaports/issues/190
LD_PRELOAD=/usr/lib/preload/pthread_cancel_noop.so \
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="0834277bd0cf14255bbf67a558933044a3daa04b62de4df1bf540dad63f2a03411ec3b1833c1ef7b97a26051064a37e9b1c9a2078caad8bd4d389425f0fd091e ubuntu-app-launch-55c0338a110a10994de4efc220d36293080770e2.tar.gz
adfeaacb334159dfb322766b2973b2be2705db65dff957b9c000ccbad76ae596e9f3dbfcab0103b482757113d0c4a740e7dd3b7231841595cd364d6c4f7cd0d6 libual-test_libertine.patch
7cbb992032ba15d70bb10edc61220e77be515ce6cc64a5809cc50c6045c73feb3d42e41012bcc19dcee5f432e904f8f78a163c8173ca5b1d5d407759b5693ee3 0001-Fix-compile-error-with-new-glib-versions.patch"
@@ -0,0 +1,53 @@
Remove libertine dependency from tests
diff --git a/tests/libual-test.cc b/tests/libual-test.cc
index 623911a..7e11034 100644
--- a/tests/libual-test.cc
+++ b/tests/libual-test.cc
@@ -32,7 +32,7 @@
#include "ubuntu-app-launch.h"
#include "eventually-fixture.h"
-#include "libertine-service.h"
+//#include "libertine-service.h"
#include "mir-mock.h"
#include "snapd-mock.h"
#include "systemd-mock.h"
@@ -46,7 +46,7 @@ protected:
DbusTestService *service = NULL;
DbusTestDbusMock *mock = NULL;
DbusTestDbusMock *cgmock = NULL;
- std::shared_ptr<LibertineService> libertine;
+ //std::shared_ptr<LibertineService> libertine;
std::shared_ptr<SystemdMock> systemd;
GDBusConnection *bus = NULL;
std::string last_focus_appid;
@@ -122,8 +122,8 @@ protected:
dbus_test_service_add_task(service, *systemd);
/* Add in Libertine */
- libertine = std::make_shared<LibertineService>();
- dbus_test_service_add_task(service, *libertine);
+ //libertine = std::make_shared<LibertineService>();
+ //dbus_test_service_add_task(service, *libertine);
dbus_test_service_start_tasks(service);
@@ -131,7 +131,7 @@ protected:
g_dbus_connection_set_exit_on_close(bus, FALSE);
g_object_add_weak_pointer(G_OBJECT(bus), (gpointer *)&bus);
- ASSERT_EVENTUALLY_FUNC_EQ(false, std::function<bool()>{[&] { return libertine->getUniqueName().empty(); }});
+ //ASSERT_EVENTUALLY_FUNC_EQ(false, std::function<bool()>{[&] { return libertine->getUniqueName().empty(); }});
ASSERT_TRUE(ubuntu_app_launch_observer_add_app_focus(focus_cb, this));
ASSERT_TRUE(ubuntu_app_launch_observer_add_app_resume(resume_cb, this));
@@ -145,7 +145,7 @@ protected:
ubuntu::app_launch::Registry::clearDefault();
systemd.reset();
- libertine.reset();
+ //libertine.reset();
g_clear_object(&service);
g_object_unref(bus);
@@ -0,0 +1,25 @@
From c5c9aebcdba5186157ccd62f37f39690dcbcd4f3 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Tue, 15 Sep 2020 19:01:13 +0200
Subject: [PATCH] Disable Werror
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8e0e7525..0a4c4f37 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,7 +56,7 @@ pkg_check_modules(GLOG REQUIRED libglog)
pkg_check_modules(GLOG libglog)
enable_testing()
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -std=c++11 -Werror -O2 -Wall -W -D_REENTRANT -fPIC -pedantic -Wextra")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -std=c++11 -O2 -Wall -W -D_REENTRANT -fPIC -pedantic -Wextra")
add_definitions("-DNDEBUG")
if(NOT CMAKE_BUILD_TYPE)
--
2.28.0
+39
View File
@@ -0,0 +1,39 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=ubuntu-download-manager
pkgver=0_git20201109
_commit="e955a151cd872d1cd42cabb65a14b5b62e19780f"
pkgrel=0
pkgdesc="Provides a service for downloading files while an application is suspended"
arch="all"
url="https://github.com/ubports/ubuntu-download-manager"
license="LGPL-3.0-only"
depends_dev="qt5-qtdeclarative-dev boost-dev glog-dev libnih-dev"
makedepends="$depends_dev cmake cmake-extras gtest-dev gmock"
checkdepends="dbus-test-runner xvfb-run"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/ubuntu-download-manager/archive/$_commit.tar.gz
0001-Disable-Werror.patch"
subpackages="$pkgname-dev"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
# client_test_* tests time out under QEMU
CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E "client_test_*"
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="8576dc6b5b8e52740c7af49ab7e2ae81f80b51710a715169ff8f9e0c394d51785cbb0454f1aabfb97d092ce2e5a540ed7b9cc3ed286bba0a770a05af543a9fbc ubuntu-download-manager-e955a151cd872d1cd42cabb65a14b5b62e19780f.tar.gz
2f7465955e0aeb583a2b1c13b4faa34f1dbeb251d87a476639f36198218ace071239447ee3e137c023bb1a9ea304f6c9331eff5aeb54e0d5e660a50a5326cbc4 0001-Disable-Werror.patch"
+54
View File
@@ -0,0 +1,54 @@
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=ubuntu-themes
pkgver=0_git20200211
_commit="2992fa55a80f214b72c4cb01703191258a19fddb"
pkgrel=0
pkgdesc="Theme files for Unity 8"
arch="noarch"
url="https://github.com/ubports/ubuntu-themes"
license="GPL-3.0-only"
subpackages="light-themes:light_themes suru-icon-theme:suru_icon_theme ubuntu-mono:ubuntu_mono ubuntu-artwork:ubuntu_artwork ubuntu-mobile-icons:ubuntu_mobile_icons"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/ubuntu-themes/archive/$_commit.tar.gz"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # No tests
package() {
mkdir -p "$pkgdir"
}
light_themes() {
depends="gtk-murrine-engine ubuntu-mono" # humanity-icon-theme
cd "$builddir"
mkdir -p "$subpkgdir"/usr/share/themes
cp -r Ambiance Radiance "$subpkgdir"/usr/share/themes
}
suru_icon_theme() {
depends="ubuntu-mobile-icons hicolor-icon-theme"
cd "$builddir"
mkdir -p "$subpkgdir"/usr/share/icons
cp -r suru-icons "$subpkgdir"/usr/share/icons/suru
}
ubuntu_artwork() {
depends="light-themes ubuntu-mono" # adium-theme-ubuntu ubports-wallpaper
cd "$builddir"
mkdir -p "$subpkgdir"/usr/share/icons/hicolor/48x48/apps
cp distributor-logo.png "$subpkgdir"/usr/share/icons/hicolor/48x48/apps
}
ubuntu_mobile_icons() {
depends="hicolor-icon-theme"
cd "$builddir"
mkdir -p "$subpkgdir"/usr/share/icons
cp -r ubuntu-mobile "$subpkgdir"/usr/share/icons
}
ubuntu_mono() {
depends="adwaita-icon-theme hicolor-icon-theme" # humanity-icon-theme
cd "$builddir"
mkdir -p "$subpkgdir"/usr/share/icons
cp -r ubuntu-mono-dark ubuntu-mono-light LoginIcons "$subpkgdir"/usr/share/icons
}
sha512sums="577aa02fe72e0862d7eeb25c4f301b1d3e2d47e191761f4890ad572726ab6afde0adfd1a6de9a6f865412cf2cb738aa9cf90595aff401962c32de8b86951efe3 ubuntu-themes-2992fa55a80f214b72c4cb01703191258a19fddb.tar.gz"
@@ -0,0 +1,31 @@
From 09d6f4295e6c1cda434bd60b4e66730b0b5a45dc Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Sun, 23 Aug 2020 14:09:54 +0200
Subject: [PATCH 2/7] Remove debian-isms from test runner
---
tests/unit/runtest.sh | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/tests/unit/runtest.sh b/tests/unit/runtest.sh
index c1c041435..bd72a0d6d 100755
--- a/tests/unit/runtest.sh
+++ b/tests/unit/runtest.sh
@@ -88,13 +88,7 @@ function create_test_cmd {
EXE=$(abspath $_TARGETPATH)
_CMD="-n $_TESTFILE -m 500"
- DEB_HOST_ARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
- if [[ ${DEB_HOST_ARCH} =~ 'arm' ]]; then
- _CMD="dbus-test-runner --task $EXE $_CMD"
- else
- _CMD="dbus-test-runner --task gdb -p --quiet $_CMD"
- _CMD="$_CMD -p --batch -p -ex -p 'set print thread-events off' -p -ex -p run -p -ex -p bt -p --return-child-result -p --args -p $EXE"
- fi
+ _CMD="dbus-test-runner --task $EXE $_CMD"
if [[ 'minimal custom' == *$_MINIMAL* ]]; then
_CMD="$_CMD -p -platform -p $_MINIMAL"
--
2.28.0
@@ -0,0 +1,82 @@
From 8719b42fdc4841977a5f0223a12c9353afd00bc4 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Sun, 23 Aug 2020 13:57:13 +0200
Subject: [PATCH 3/7] Disable Werror
---
features/ubuntu_common.prf | 2 +-
features/ubuntu_qml_plugin.prf | 2 +-
features/ubuntu_qt_module.prf | 2 +-
src/UbuntuToolkit/tools/privates/privates.pro | 2 +-
src/UbuntuToolkit/tools/tools.pro | 2 +-
tests/unit/plugin_dependency.pri | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/features/ubuntu_common.prf b/features/ubuntu_common.prf
index 8855c0cfc..35c4d4119 100644
--- a/features/ubuntu_common.prf
+++ b/features/ubuntu_common.prf
@@ -50,4 +50,4 @@ greaterThan(QT_MAJOR_VERSION, 5)| \
CONFIG += no_keywords
# Make all warnings into errors.
-CONFIG += warnings_are_errors
+#CONFIG += warnings_are_errors
diff --git a/features/ubuntu_qml_plugin.prf b/features/ubuntu_qml_plugin.prf
index 4d165fc51..ae787dd6e 100644
--- a/features/ubuntu_qml_plugin.prf
+++ b/features/ubuntu_qml_plugin.prf
@@ -75,4 +75,4 @@ load(ubuntu_enable_testing)
# warnings_are_errors depending on the compiler version, sometimes it doesn't
# add the required flags (for instance for recent clang version on old Qt).
-!contains(QMAKE_CXXFLAGS_WARN_ON, -Werror): QMAKE_CXXFLAGS_WARN_ON += -Werror
+#!contains(QMAKE_CXXFLAGS_WARN_ON, -Werror): QMAKE_CXXFLAGS_WARN_ON += -Werror
diff --git a/features/ubuntu_qt_module.prf b/features/ubuntu_qt_module.prf
index 09b2c1f90..d799b4536 100644
--- a/features/ubuntu_qt_module.prf
+++ b/features/ubuntu_qt_module.prf
@@ -20,4 +20,4 @@ CONFIG += dll
# warnings_are_errors depending on the compiler version, sometimes it doesn't
# add the required flags (for instance for recent clang version on old Qt).
-!contains(QMAKE_CXXFLAGS_WARN_ON, -Werror): QMAKE_CXXFLAGS_WARN_ON += -Werror
+#!contains(QMAKE_CXXFLAGS_WARN_ON, -Werror): QMAKE_CXXFLAGS_WARN_ON += -Werror
diff --git a/src/UbuntuToolkit/tools/privates/privates.pro b/src/UbuntuToolkit/tools/privates/privates.pro
index b4b37b7f5..5f43b3c7c 100644
--- a/src/UbuntuToolkit/tools/privates/privates.pro
+++ b/src/UbuntuToolkit/tools/privates/privates.pro
@@ -1,5 +1,5 @@
TEMPLATE = app
TARGET = createprivateshapetextures
QT += gui svg
-QMAKE_CXXFLAGS += -Werror -Wno-unused-variable
+QMAKE_CXXFLAGS += -Wno-unused-variable
SOURCES += createprivateshapetextures.cpp
diff --git a/src/UbuntuToolkit/tools/tools.pro b/src/UbuntuToolkit/tools/tools.pro
index f8e90f4d9..8a2c7c017 100644
--- a/src/UbuntuToolkit/tools/tools.pro
+++ b/src/UbuntuToolkit/tools/tools.pro
@@ -1,5 +1,5 @@
TEMPLATE = app
TARGET = createshapetextures
QT += gui svg
-QMAKE_CXXFLAGS += -Werror -Wno-unused-variable
+QMAKE_CXXFLAGS += -Wno-unused-variable
SOURCES += createshapetextures.cpp
diff --git a/tests/unit/plugin_dependency.pri b/tests/unit/plugin_dependency.pri
index 42138ce74..adce6305e 100644
--- a/tests/unit/plugin_dependency.pri
+++ b/tests/unit/plugin_dependency.pri
@@ -12,7 +12,7 @@ LIBS += -L$$PLUGIN_BLD/Test -lUbuntuTest
LIBS += -L$${ROOT_BUILD_DIR}/lib -lUbuntuGestures
LIBS += -L$$PLUGIN_BLD/UbuntuToolkit -lUbuntuToolkit
DEFINES += QUICK_TEST_SOURCE_DIR=\"\\\"$$_PRO_FILE_PWD_\\\"\"
-QMAKE_CXXFLAGS += -Werror
+#QMAKE_CXXFLAGS += -Werror
DEFINES+=UBUNTU_COMPONENT_PATH='\\"$${ROOT_BUILD_DIR}/qml/Ubuntu/Components\\"'
DEFINES+=UBUNTU_QML_IMPORT_PATH='\\"$${ROOT_BUILD_DIR}/qml\\"'
--
2.28.0
@@ -0,0 +1,25 @@
From 7f431fa134dd757d6d238a2d3c124051e52258e8 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Tue, 15 Sep 2020 17:48:47 +0200
Subject: [PATCH 4/7] Don't build app-launch-profiler
---
ubuntu-sdk.pro | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ubuntu-sdk.pro b/ubuntu-sdk.pro
index 716c3055e..647b53ad1 100644
--- a/ubuntu-sdk.pro
+++ b/ubuntu-sdk.pro
@@ -11,7 +11,7 @@ load(qt_parts)
src_uitk_launcher.subdir = ubuntu-ui-toolkit-launcher
src_uitk_launcher.depends = sub-src
-SUBDIRS += po app-launch-profiler src_uitk_launcher apicheck
+SUBDIRS += po src_uitk_launcher apicheck
!CONFIG(no_docs) {
SUBDIRS += documentation
}
--
2.28.0
+40
View File
@@ -0,0 +1,40 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=ubuntu-ui-toolkit
pkgver=0_git20201106
_commit="201d27b3efcdcb10d14f8aedada7b28a463b3eac"
pkgrel=0
pkgdesc='The Ubuntu UI toolkit used in Ubuntu Touch'
arch="all"
url="https://unity8.io"
license="LGPL-3.0-only"
depends="qt5-qtfeedback qt5-qtgraphicaleffects"
depends_dev="libnih-dev qt5-qtsvg-dev qt5-qtpim-dev qt5-qtsystems-dev lttng-ust-dev libxi-dev eudev-dev mir-dev libevdev-dev qt5-qtgraphicaleffects qt5-qtfeedback-dev"
makedepends="$depends_dev qt5-qttools-dev qt5-qtdeclarative-dev"
checkdepends="diffutils bash grep xvfb-run dbus-test-runner"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/ubuntu-ui-toolkit/archive/$_commit.tar.gz
0002-Remove-debian-isms-from-test-runner.patch
0003-Disable-Werror.patch
0004-Don-t-build-app-launch-profiler.patch
"
subpackages="$pkgname-dev $pkgname-lang"
options="!check" # several tests fail
builddir="$srcdir/$pkgname-$_commit"
build() {
qmake-qt5 CONFIG+=no_docs
make
}
check() {
xvfb-run make check
}
package() {
make INSTALL_ROOT="$pkgdir" install
}
sha512sums="6494739cf890fb3a5df2db177d3363e6fe197e7f307d6c6ddedd964285af7cee7668ae59f09923be4f4640fbfc0ebb8967e2a6fc4ac653ba694108d85297ab2b ubuntu-ui-toolkit-201d27b3efcdcb10d14f8aedada7b28a463b3eac.tar.gz
007bfc051e6560b85e692b79dea7cd875cfdf6f3c9402a9ed3fa4bea39f3521fdb721d152aea62eb01a848af51509800f7cf34c51528689972365e3aa2493821 0002-Remove-debian-isms-from-test-runner.patch
dd78d8f97f73de710a3b7665456f755ed5da327c9173b0d99fc252c6efa38ce0f68161ba0e6c94299f403ed0d47c3162c9c4a07006d1525a0614dc0254291de3 0003-Disable-Werror.patch
dd294f3019d25b4c2cec0494e9dcb3ccbdd180e420f2cb774a3a6c722bf0678a1348c829c927760d6d204c0402129dc65b0a5ae900da664dad791154de24f6fa 0004-Don-t-build-app-launch-profiler.patch"
+37
View File
@@ -0,0 +1,37 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=unity-api
pkgver=0_git20201016
_commit="6cddff437ebc802d18672e70936d45125e181e4a"
pkgrel=0
pkgdesc="API for Unity shell integration"
url="https://github.com/ubports/unity-api"
arch="all"
license="LGPL-3.0"
makedepends="$depends_dev cmake cmake-extras qt5-qtdeclarative-dev libqtdbustest gtest-dev gmock"
checkdepends="dbus"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/unity-api/archive/$_commit.tar.gz
qmltestrunner.patch"
subpackages="$pkgname-dev"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
# GioMemory_test fails under QEMU for aarch64
# Error connecting to D-Bus address unix:abstract=/tmp/dbus-IRpDQKgJCX,guid=daa250871edc3ad426e54ceb5e9b5bde: Error sending credentials: Error sending message: No buffer space available
env CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E "GioMemory_test"
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="78616dcfb798ff24c531413707cf3cf96d4ca53e9f08d6acbcd04bbd9d96a0d2f7a1870b281e4b695e4f20fcb3aae1e207942ea8c167febfeacb0ad5edba8e3f unity-api-6cddff437ebc802d18672e70936d45125e181e4a.tar.gz
04c316667ed5892c55278b01377d4d9c1a6ae14a330bfa594e5e54371d37441747684ab553799cb5e7804f4c68d181e78caeb8279491b9f5302a4e70095c74af qmltestrunner.patch"
+15
View File
@@ -0,0 +1,15 @@
Alpine uses versioned Qt binaries
diff --git a/cmake/modules/QmlTest.cmake b/cmake/modules/QmlTest.cmake
index 8241703..d209b55 100644
--- a/cmake/modules/QmlTest.cmake
+++ b/cmake/modules/QmlTest.cmake
@@ -15,7 +15,7 @@
# qmltest_DEFAULT_IMPORT_PATHS
# qmltest_DEFAULT_PROPERTIES
-find_program(qmltestrunner_exe qmltestrunner)
+find_program(qmltestrunner_exe qmltestrunner-qt5)
if(NOT qmltestrunner_exe)
message(FATAL_ERROR "Could not locate qmltestrunner.")
@@ -0,0 +1,51 @@
From 2b27267464f0965aa4376f56da8a04d28904b652 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Tue, 15 Sep 2020 20:00:46 +0200
Subject: [PATCH] Add missing <stdexcept> header
---
spinner/mir/eglapp.cpp | 2 ++
spinner/mir/miregl.cpp | 1 +
spinner/wayland/waylandegl.cpp | 1 +
3 files changed, 4 insertions(+)
diff --git a/spinner/mir/eglapp.cpp b/spinner/mir/eglapp.cpp
index 92e2c8d..40e8e23 100644
--- a/spinner/mir/eglapp.cpp
+++ b/spinner/mir/eglapp.cpp
@@ -16,6 +16,8 @@
#include "eglapp.h"
+#include <stdexcept>
+
#include "miregl.h"
diff --git a/spinner/mir/miregl.cpp b/spinner/mir/miregl.cpp
index d0ea356..d1c4e08 100644
--- a/spinner/mir/miregl.cpp
+++ b/spinner/mir/miregl.cpp
@@ -17,6 +17,7 @@
#include "miregl.h"
#include <cstring>
+#include <stdexcept>
#include <GLES2/gl2.h>
diff --git a/spinner/wayland/waylandegl.cpp b/spinner/wayland/waylandegl.cpp
index 1385500..dfc4ac2 100644
--- a/spinner/wayland/waylandegl.cpp
+++ b/spinner/wayland/waylandegl.cpp
@@ -19,6 +19,7 @@
#include <wayland-client.h>
#include <cstring>
+#include <stdexcept>
#include <GLES2/gl2.h>
--
2.28.0
+38
View File
@@ -0,0 +1,38 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=unity-system-compositor
pkgver=0_git20200813
_commit="783ddfb220ddb4633d3f3978ad6c42fa94cbf7d0"
pkgrel=0
pkgdesc="System compositor using the Mir display server"
arch="all"
url="https://github.com/ubports/unity-system-compositor"
license="GPL-3.0-only"
makedepends="$depends_dev cmake cmake-extras gtest-dev gmock gdk-pixbuf-dev mir-dev dbus-dev lomiri-deviceinfo-dev"
checkdepends="dbus"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/unity-system-compositor/archive/$_commit.tar.gz
0001-Add-missing-stdexcept-header.patch"
builddir="$srcdir/$pkgname-$_commit"
build() {
# fails to build with fortify headers enabled
export CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE"
cmake -B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="5ea7784a106290d0e6ec72df56d2cb93356a127c6913519aafca038d3ee090162d18cebf90686ec41786e7d32370cf6e42933d85c69d0b1a78366424ffbc94d4 unity-system-compositor-783ddfb220ddb4633d3f3978ad6c42fa94cbf7d0.tar.gz
4f2a78f62ff242118f86e7ad25b680521a6faa1f86f7840ac20786dd075499409ff6501d3b691c14b465c62941d646fcbd5ecd907c4749f7e5694ce8baedba0b 0001-Add-missing-stdexcept-header.patch"
+27
View File
@@ -0,0 +1,27 @@
From 96875eaa99913eda4419a82e62307f26f93dbf40 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Tue, 29 Jan 2019 19:23:11 +0100
Subject: [PATCH 1/5] NoDpkgParse
---
data/CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index 2cb8c2d5a..ec10a81ea 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -20,8 +20,8 @@ install(FILES
DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/lightdm.conf.d
)
-add_custom_target(pkgversion ALL COMMAND dpkg-parsechangelog -l${CMAKE_SOURCE_DIR}/debian/changelog --show-field version > ${CMAKE_CURRENT_BINARY_DIR}/version)
+#add_custom_target(pkgversion ALL COMMAND dpkg-parsechangelog -l${CMAKE_SOURCE_DIR}/debian/changelog --show-field version > ${CMAKE_CURRENT_BINARY_DIR}/version)
install(FILES com.canonical.Unity8.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas)
install(FILES com.canonical.Unity.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}/lib/unity8)
+#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}/lib/unity8)
--
2.28.0
+25
View File
@@ -0,0 +1,25 @@
From 238262602e9e9be6b460c1f29ae4ed6e6c628cb7 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Wed, 6 May 2020 20:06:06 +0200
Subject: [PATCH 2/5] UAL3
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8edac8d70..8af96af1c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -82,7 +82,7 @@ pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=13)
pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
pkg_check_modules(GD3 REQUIRED gnome-desktop-3.0)
-pkg_check_modules(UAL REQUIRED ubuntu-app-launch-2)
+pkg_check_modules(UAL REQUIRED ubuntu-app-launch-3)
pkg_check_modules(UBUNTUGESTURES REQUIRED UbuntuGestures)
pkg_check_modules(QTDBUSTEST REQUIRED
libqtdbustest-1
--
2.28.0
@@ -0,0 +1,39 @@
From efb993d61ad27628c5b7738b2dd16c330aacec04 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Tue, 29 Jan 2019 19:24:14 +0100
Subject: [PATCH 3/5] Add missing includes
---
.../LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h | 2 ++
tests/mocks/liblightdm/MockUsersModel.cpp | 2 ++
2 files changed, 4 insertions(+)
diff --git a/plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h b/plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h
index d072228dd..3dcf4c4db 100644
--- a/plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h
+++ b/plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h
@@ -23,6 +23,8 @@
#include <QObject>
#include <QString>
+#include <sys/types.h>
+
class AccountsServiceDBusAdaptor;
namespace QLightDM
diff --git a/tests/mocks/liblightdm/MockUsersModel.cpp b/tests/mocks/liblightdm/MockUsersModel.cpp
index cbf8354a5..4fbb9435b 100644
--- a/tests/mocks/liblightdm/MockUsersModel.cpp
+++ b/tests/mocks/liblightdm/MockUsersModel.cpp
@@ -26,6 +26,8 @@
#include <QDir>
#include <QIcon>
+#include <sys/types.h>
+
namespace QLightDM
{
--
2.28.0
@@ -0,0 +1,47 @@
From b604dcdf339cc3fcfad447abc0b021643b3abe8a Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Tue, 29 Jan 2019 19:25:24 +0100
Subject: [PATCH 4/5] Add -qt5 suffix to search for Qt tools
---
cmake/modules/QmlTest.cmake | 4 ++--
tests/CMakeLists.txt | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/cmake/modules/QmlTest.cmake b/cmake/modules/QmlTest.cmake
index bfa27134f..7faf06668 100644
--- a/cmake/modules/QmlTest.cmake
+++ b/cmake/modules/QmlTest.cmake
@@ -114,9 +114,9 @@ endfunction()
# This function wraps add_executable_test, see below for available arguments.
function(add_qml_unittest PATH COMPONENT_NAME)
- import_executables(qmltestrunner)
+ import_executables(qmltestrunner-qt5)
- add_executable_test(${COMPONENT_NAME} qmltestrunner
+ add_executable_test(${COMPONENT_NAME} qmltestrunner-qt5
${ARGN}
ARGS -input ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 899747cce..707c4a3d6 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -134,11 +134,11 @@ endfunction()
if(DEFINED ENV{DEB_BUILD_MULTIARCH})
set(QDBUSXML2CPP_EXECUTABLE "/usr/lib/$ENV{DEB_BUILD_MULTIARCH}/qt5/bin/qdbusxml2cpp")
else()
- FIND_PROGRAM(QDBUSXML2CPP_EXECUTABLE qdbusxml2cpp)
+ FIND_PROGRAM(QDBUSXML2CPP_EXECUTABLE qdbusxml2cpp-qt5)
endif()
if(NOT QDBUSXML2CPP_EXECUTABLE)
- message(FATAL_ERROR "qdbusxml2cpp not found")
+ message(FATAL_ERROR "qdbusxml2cpp-qt5 not found")
endif()
install(DIRECTORY data graphics
--
2.28.0
@@ -0,0 +1,79 @@
From 99760a9903e405b6e0508f5cae6122cf8c4b1320 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Tue, 29 Jan 2019 22:19:51 +0100
Subject: [PATCH 5/5] Link against libintl
---
plugins/LightDM/FullLightDM/CMakeLists.txt | 1 +
src/CMakeLists.txt | 1 +
tests/mocks/AccountsService/CMakeLists.txt | 1 +
tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt | 3 +++
4 files changed, 6 insertions(+)
diff --git a/plugins/LightDM/FullLightDM/CMakeLists.txt b/plugins/LightDM/FullLightDM/CMakeLists.txt
index 0d0154172..e9c804bff 100644
--- a/plugins/LightDM/FullLightDM/CMakeLists.txt
+++ b/plugins/LightDM/FullLightDM/CMakeLists.txt
@@ -27,6 +27,7 @@ target_link_libraries(FullLightDM-qml
${LIBLIGHTDM_LDFLAGS}
${LIBUSERMETRICSOUTPUT_LDFLAGS}
Qt5::DBus Qt5::Gui Qt5::Qml
+ intl
)
add_unity8_plugin(FullLightDM 0.1 LightDM/FullLightDM TARGETS FullLightDM-qml)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b35d99f91..940909e6a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -48,6 +48,7 @@ target_link_libraries(${SHELL_APP}
Qt5::DBus Qt5::Gui Qt5::Qml Qt5::Quick Qt5::Test
${GSETTINGS_QT_LDFLAGS}
UbuntuGestures connectivity-qt1 unity8-private
+ intl
)
if (ENABLE_TOUCH_EMULATION)
diff --git a/tests/mocks/AccountsService/CMakeLists.txt b/tests/mocks/AccountsService/CMakeLists.txt
index c10e2dab8..b6a3a4563 100644
--- a/tests/mocks/AccountsService/CMakeLists.txt
+++ b/tests/mocks/AccountsService/CMakeLists.txt
@@ -17,6 +17,7 @@ add_library(MockAccountsService-qml MODULE
target_link_libraries(MockAccountsService-qml
Qt5::DBus Qt5::Qml
MockLightDM
+ intl
)
add_unity8_mock(AccountsService 0.1 AccountsService
diff --git a/tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt b/tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt
index c35cbff8f..67918cfc8 100644
--- a/tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt
+++ b/tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt
@@ -15,6 +15,7 @@ add_dependencies(GreeterDBusTestExec MockLightDM)
target_link_libraries(GreeterDBusTestExec
Qt5::Core Qt5::DBus Qt5::Quick Qt5::Test
MockLightDM
+ intl
)
target_include_directories(GreeterDBusTestExec PUBLIC
${CMAKE_SOURCE_DIR}/plugins/LightDM
@@ -87,6 +88,7 @@ add_dependencies(GreeterUsersModelTestExec MockLightDM)
target_link_libraries(GreeterUsersModelTestExec
Qt5::Core Qt5::Test
MockLightDM
+ intl
)
target_include_directories(GreeterUsersModelTestExec PUBLIC
${CMAKE_SOURCE_DIR}/plugins/LightDM
@@ -114,6 +116,7 @@ add_dependencies(GreeterPromptsModelTestExec MockLightDM)
target_link_libraries(GreeterPromptsModelTestExec
Qt5::Core Qt5::Test
MockLightDM
+ intl
)
target_include_directories(GreeterPromptsModelTestExec PUBLIC
${CMAKE_SOURCE_DIR}/plugins/LightDM
--
2.28.0
+53
View File
@@ -0,0 +1,53 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=unity8
pkgver=0_git20201130
_commit="39876885449df890f936edcb5b7bc6a63e80f0a0"
pkgrel=0
pkgdesc="A convergent desktop environment"
arch="all"
url="https://github.com/ubports/unity8"
license="GPL-3.0 LGPL-2.1"
depends="qt5-qtgraphicaleffects qt5-qtbase-sqlite settings-components gsettings-ubuntu-touch-schemas qtmir suru-icon-theme gsettings-desktop-schemas unity-system-compositor"
depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev unity-api-dev geonames-dev qmenumodel-dev qmenumodel gnome-desktop-dev ubuntu-app-launch-dev ubuntu-ui-toolkit-dev libqtdbustest libqtdbusmock indicator-network-dev gsettings-qt-dev libusermetrics-dev lightdm-qt5 lightdm-qt5-dev ubuntu-download-manager-dev linux-pam-dev"
makedepends="$depends_dev cmake cmake-extras dbus-test-runner doxygen graphviz system-settings lomiri-deviceinfo-dev"
checkdepends="py3-dbusmock"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/unity8/archive/$_commit.tar.gz
0001-NoDpkgParse.patch
0002-UAL3.patch
0003-Add-missing-includes.patch
0004-Add-qt5-suffix-to-search-for-Qt-tools.patch
0005-Link-against-libintl.patch
"
subpackages="$pkgname-lang"
builddir="$srcdir/$pkgname-$_commit"
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_LOCALSTATEDIR=/var
make -C build
}
check() {
cd build
# testRootActionState: RootActionStateTest::testToQVariantIcons() 'serializedIcons[0] == "image://theme/testIcon0"' returned FALSE.
# testWindowStateStorage: https://github.com/ubports/unity8/issues/316
CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E "testRootActionState|testWindowStateStorage"
}
package() {
make -C build DESTDIR="$pkgdir" install
# Remove this mock as apk thinks, it conflicts with the qmenumodel package
# conflicts: qmenumodel-0_git20180727-r0[so:libqmenumodel.so.0=0]
rm -r "$pkgdir"/usr/lib/unity8/qml/mocks/QMenuModel/
}
sha512sums="5411f37375e52c63c6b7259cd3101e4ae020d17c84088c8168d3b36067fdd1eb45dbaf82e4908a1c42ba2c2fefb782acfe0a99ac3f140c7283b5be238f387db4 unity8-39876885449df890f936edcb5b7bc6a63e80f0a0.tar.gz
29a1b21f000eeae61b2281b3da6a0a1c6f8ac9cfb16dd72cfd4217ae69b83c71f0f418b11b45edc8fbf829e67a764687c9b0dae256abfd6eed9ed0b68af7248c 0001-NoDpkgParse.patch
01fd6536ad8efb9a5ee8db489cdc84fe406bbeadfaccd82a32dc063272a83f119618477e3e8365356c101e3f02eb304abae063dce9b0788280297f950638afdc 0002-UAL3.patch
2b04226993fd0a0540f33b49bf39b57dc2acf6869d47da74e01a675e9aa9e41ec598a52873a1b3f898d442f7c0b13c79abb7405677bc63cc387ceaa8129a67cf 0003-Add-missing-includes.patch
fa1e937a464ccc1bea1a2f29599cb325f3ea76d0848aeb7816142af3f350c8ac0bea8a534b0e13bfb02875849004fa3e71f8c331504976c060177e6dec071b0f 0004-Add-qt5-suffix-to-search-for-Qt-tools.patch
9773246b5d946c7dc62ebb75d88016c70348fce2ceb0991436863e810ab5eab96d4405253cef3897fd1bc211ecf81824d3c938ed85fb74b2cc6911012ff8a109 0005-Link-against-libintl.patch"
@@ -0,0 +1,81 @@
From 58cefd4e18391ae6492a3ff8797f8dad86b22bae Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@z3ntu.xyz>
Date: Sun, 4 Apr 2021 16:13:22 +0200
Subject: [PATCH] Fix compile error with new glib versions
Glib doesn't like being included under extern "C" anymore
In file included from /usr/include/glib-2.0/glib/gatomic.h:31,
from /usr/include/glib-2.0/glib/gthread.h:32,
from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
from /usr/include/glib-2.0/glib.h:32,
from /usr/include/glib-2.0/gobject/gbinding.h:28,
from /usr/include/glib-2.0/glib-object.h:22,
from /usr/include/glib-2.0/gio/gioenums.h:28,
from /usr/include/glib-2.0/gio/giotypes.h:28,
from /usr/include/glib-2.0/gio/gio.h:26,
from /home/pmos/build/src/lomiri-url-dispatcher-ef11846cacf67e42cc35533d7d115e59b371e8c7/service/dispatcher.h:23,
from /home/pmos/build/src/lomiri-url-dispatcher-ef11846cacf67e42cc35533d7d115e59b371e8c7/service/service.cpp:19:
/usr/include/c++/10.2.1/type_traits:2925:3: error: template with C linkage
2925 | template<typename _Fn, typename... _Args>
| ^~~~~~~~
/home/pmos/build/src/lomiri-url-dispatcher-ef11846cacf67e42cc35533d7d115e59b371e8c7/service/service.cpp:18:1: note: 'extern "C"' linkage started here
18 | extern "C" {
| ^~~~~~~~~~
---
service/overlay-tracker.cpp | 2 --
service/overlay-tracker.h | 7 +++++++
service/service.cpp | 2 --
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/service/overlay-tracker.cpp b/service/overlay-tracker.cpp
index e34cad4..8f828ea 100644
--- a/service/overlay-tracker.cpp
+++ b/service/overlay-tracker.cpp
@@ -17,9 +17,7 @@
* Ted Gould <ted.gould@canonical.com>
*/
-extern "C" {
#include "overlay-tracker.h"
-}
#include "overlay-tracker-iface.h"
#include "overlay-tracker-mir.h"
diff --git a/service/overlay-tracker.h b/service/overlay-tracker.h
index a7d4e29..38ef4a8 100644
--- a/service/overlay-tracker.h
+++ b/service/overlay-tracker.h
@@ -22,8 +22,15 @@
typedef struct _OverlayTracker OverlayTracker;
+#ifdef __cplusplus
+extern "C" {
+#endif
+
OverlayTracker * overlay_tracker_new ();
void overlay_tracker_delete (OverlayTracker * tracker);
gboolean overlay_tracker_add (OverlayTracker * tracker, const char * appid, unsigned long pid, const char * url);
gboolean overlay_tracker_badurl (OverlayTracker * tracker, unsigned long pid, const char * url);
+#ifdef __cplusplus
+}
+#endif
diff --git a/service/service.cpp b/service/service.cpp
index 69e1fe3..3cb1285 100644
--- a/service/service.cpp
+++ b/service/service.cpp
@@ -15,9 +15,7 @@
*
*/
-extern "C" {
#include "dispatcher.h"
-}
#include <glib.h>
#include <glib-unix.h>
--
2.31.1
+39
View File
@@ -0,0 +1,39 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
pkgname=url-dispatcher
pkgver=0_git20200925
_commit="58a498dbd19e46f3baa17629bb8b56be860cb738"
pkgrel=0
pkgdesc="Service to allow sending of URLs and get handlers started"
arch="all"
url="https://github.com/ubports/url-dispatcher"
license="LGPL-3.0-only"
depends_dev="ubuntu-app-launch-dev json-glib-dev click-dev libapparmor-dev"
makedepends="$depends_dev cmake dbus-test-runner cmake-extras glib-dev gtest-dev gmock intltool dbus-test-runner-dev"
checkdepends="py3-dbusmock"
source="$pkgname-$_commit.tar.gz::https://github.com/ubports/url-dispatcher/archive/$_commit.tar.gz
0001-Fix-compile-error-with-new-glib-versions.patch"
subpackages="$pkgname-dev"
builddir="$srcdir/$pkgname-$_commit"
options="!check" # several tests hang
build() {
cmake -B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-Dwerror=FALSE
make -C build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
make -C build DESTDIR="$pkgdir" install
}
sha512sums="208e7c2f233f67dd05489b9dd46499b71a364387a154cee0fd630c23224a2416fd133f3022d8890ae13156f7f4c0c3ca37c8c6e39d9552b35d4f02395cb120cc url-dispatcher-58a498dbd19e46f3baa17629bb8b56be860cb738.tar.gz
04e1f9166b8bd357224edef8b35bf56008ff1ad5f6f3c00b952bbbca7da2ffabfb8e0b760531532c91158a14713d19654fc2578863e57d7e7a0bfe6d549ad2f6 0001-Fix-compile-error-with-new-glib-versions.patch"