From eeab25adc57a68c23d34061ceac48c1c77be05c9 Mon Sep 17 00:00:00 2001 From: madomado Date: Sat, 10 Feb 2024 11:26:56 +0800 Subject: [PATCH] chore(sync): 39 -> 37 (part 2) --- .../budgie/budgie-extras/budgie-extras.spec | 12 + .../elementary-files/elementary-files.spec | 2 +- .../elementary-greeter.spec | 10 +- .../elementary-icon-theme.spec | 6 +- .../elementary-onboarding.spec | 2 +- .../elementary-photos/elementary-photos.spec | 15 +- anda/desktops/elementary/gala/gala.spec | 6 +- .../pantheon-session-settings.spec | 9 +- .../switchboard-plug-pantheon-shell.spec | 1 - .../elementary/wingpanel/wingpanel.spec | 9 +- .../latte-dock-nightly.spec | 2 +- ...both-older-qtmir-and-newer-qtmir-wit.patch | 196 +++++++ anda/desktops/lomiri/anda.hcl | 5 + anda/desktops/lomiri/lomiri.spec | 188 ++++++ anda/desktops/lomiri/update.rhai | 3 + anda/desktops/mate/tweak/mate-tweak.spec | 8 +- .../0001-Remove-xpathselect-dependency.patch | 544 ++++++++++++++++++ .../0002-Remove-ido-dependency.patch | 32 ++ .../0003-Remove-social-scope.patch | 13 + anda/desktops/unity-shell/anda.hcl | 5 + anda/desktops/unity-shell/unity-shell.spec | 229 ++++++++ anda/desktops/unity-shell/update.rhai | 4 + .../0001-Remove-social-scope.patch | 13 + anda/desktops/unityx-shell/anda.hcl | 5 + anda/desktops/unityx-shell/unityx-shell.spec | 215 +++++++ anda/lib/openh264/hardcode-openh264-dep.patch | 14 + 26 files changed, 1508 insertions(+), 40 deletions(-) create mode 100644 anda/desktops/lomiri/0001-Add-support-for-both-older-qtmir-and-newer-qtmir-wit.patch create mode 100644 anda/desktops/lomiri/anda.hcl create mode 100644 anda/desktops/lomiri/lomiri.spec create mode 100644 anda/desktops/lomiri/update.rhai create mode 100644 anda/desktops/unity-shell/0001-Remove-xpathselect-dependency.patch create mode 100644 anda/desktops/unity-shell/0002-Remove-ido-dependency.patch create mode 100644 anda/desktops/unity-shell/0003-Remove-social-scope.patch create mode 100644 anda/desktops/unity-shell/anda.hcl create mode 100644 anda/desktops/unity-shell/unity-shell.spec create mode 100644 anda/desktops/unity-shell/update.rhai create mode 100644 anda/desktops/unityx-shell/0001-Remove-social-scope.patch create mode 100644 anda/desktops/unityx-shell/anda.hcl create mode 100644 anda/desktops/unityx-shell/unityx-shell.spec create mode 100644 anda/lib/openh264/hardcode-openh264-dep.patch diff --git a/anda/desktops/budgie/budgie-extras/budgie-extras.spec b/anda/desktops/budgie/budgie-extras/budgie-extras.spec index b967a86d9f..29668a6415 100644 --- a/anda/desktops/budgie/budgie-extras/budgie-extras.spec +++ b/anda/desktops/budgie/budgie-extras/budgie-extras.spec @@ -51,6 +51,7 @@ Requires: budgie-applet-recentlyused Requires: budgie-applet-rotation-lock Requires: budgie-applet-showtime Requires: budgie-applet-takeabreak +Requires: budgie-applet-trash Requires: budgie-applet-visualspace Requires: budgie-applet-wallstreet Requires: budgie-applet-window-shuffler @@ -207,6 +208,14 @@ upside down, dim the screen, lock screen or show a countdown message on break time. The applet can be accessed quickly from the panel to temporarily switch it off. +%package -n budgie-applet-trash +Requires: budgie-extras-common +Summary: Applet allows access to trash capabilities for the Budgie Desktop +%description -n budgie-applet-trash +The trash applet allows the user access the desktop trash capabilities +from the panel including the ability to delete and restore files stored +in the trash folder. + %package -n budgie-applet-visualspace Requires: budgie-extras-common Summary: Shows the current workspace(s), as bullet(s) @@ -384,6 +393,9 @@ rm -f %{buildroot}%{_bindir}/quickchar %{_datadir}/glib-2.0/schemas/org.ubuntubudgie.plugins.takeabreak.gschema.xml %{_datadir}/pixmaps/takeabreak*.svg +%files -n budgie-applet-trash +%{_libdir}/budgie-desktop/plugins/budgie-trash + %files -n budgie-applet-visualspace %config %{_sysconfdir}/xdg/autostart/visualspace-autostart.desktop %{_libdir}/budgie-desktop/plugins/budgie-visualspace diff --git a/anda/desktops/elementary/elementary-files/elementary-files.spec b/anda/desktops/elementary/elementary-files/elementary-files.spec index aa00286e73..f834e23e2d 100644 --- a/anda/desktops/elementary/elementary-files/elementary-files.spec +++ b/anda/desktops/elementary/elementary-files/elementary-files.spec @@ -5,7 +5,7 @@ Name: elementary-files Summary: File manager from elementary -Version: 6.5.3 +Version: 6.5.2 Release: 1%{?dist} License: GPL-3.0 diff --git a/anda/desktops/elementary/elementary-greeter/elementary-greeter.spec b/anda/desktops/elementary/elementary-greeter/elementary-greeter.spec index 7883426b40..f439a76a57 100644 --- a/anda/desktops/elementary/elementary-greeter/elementary-greeter.spec +++ b/anda/desktops/elementary/elementary-greeter/elementary-greeter.spec @@ -11,8 +11,6 @@ URL: https://github.com/elementary/greeter Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz Source1: 40-%{appname}.conf -Patch0: https://github.com/elementary/greeter/commit/dbd9b6f9701f5992c3b3257c025b9cd80d041cc8.patch - BuildRequires: desktop-file-utils BuildRequires: gettext BuildRequires: libappstream-glib @@ -36,9 +34,9 @@ BuildRequires: pkgconfig(granite) >= 5.0 BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(libhandy-1) BuildRequires: pkgconfig(liblightdm-gobject-1) -BuildRequires: pkgconfig(mutter-clutter-13) -BuildRequires: pkgconfig(mutter-cogl-13) -BuildRequires: pkgconfig(mutter-cogl-pango-13) +BuildRequires: pkgconfig(mutter-clutter-12) +BuildRequires: pkgconfig(mutter-cogl-12) +BuildRequires: pkgconfig(mutter-cogl-pango-12) BuildRequires: pkgconfig(x11) Provides: pantheon-greeter = %{version}-%{release} @@ -70,7 +68,7 @@ The elementary Greeter is a styled Login Screen for LightDM. %prep -%autosetup -p1 -n %{srcname}-%{version} +%autosetup -n %{srcname}-%{version} %build diff --git a/anda/desktops/elementary/elementary-icon-theme/elementary-icon-theme.spec b/anda/desktops/elementary/elementary-icon-theme/elementary-icon-theme.spec index 7a3bbb3242..5a6d6ff03f 100644 --- a/anda/desktops/elementary/elementary-icon-theme/elementary-icon-theme.spec +++ b/anda/desktops/elementary/elementary-icon-theme/elementary-icon-theme.spec @@ -4,7 +4,7 @@ Name: elementary-icon-theme Summary: Icons from the Elementary Project Version: 7.3.1 -Release: 2%{?dist} +Release: 1%{?dist} License: GPL-3.0-or-later URL: https://github.com/elementary/icons @@ -89,7 +89,9 @@ gtk-update-icon-cache --force %{_datadir}/icons/elementary &>/dev/null || : %dir %{_datadir}/icons/elementary %ghost %{_datadir}/icons/elementary/icon-theme.cache -%{_datadir}/icons/elementary/* +%{_datadir}/icons/elementary/*/ +%{_datadir}/icons/elementary/*@2x +%{_datadir}/icons/elementary/*@3x %{_datadir}/icons/elementary/cursor.theme %{_datadir}/icons/elementary/index.theme diff --git a/anda/desktops/elementary/elementary-onboarding/elementary-onboarding.spec b/anda/desktops/elementary/elementary-onboarding/elementary-onboarding.spec index 90fe9558d5..1c8b0cd882 100644 --- a/anda/desktops/elementary/elementary-onboarding/elementary-onboarding.spec +++ b/anda/desktops/elementary/elementary-onboarding/elementary-onboarding.spec @@ -4,7 +4,7 @@ Name: elementary-onboarding Summary: Onboarding app for new users Version: 7.2.0 -Release: 2%{?dist} +Release: 1%{?dist} License: GPL-3.0-or-later URL: https://github.com/elementary/onboarding diff --git a/anda/desktops/elementary/elementary-photos/elementary-photos.spec b/anda/desktops/elementary/elementary-photos/elementary-photos.spec index 8d533c0138..705849d3b3 100644 --- a/anda/desktops/elementary/elementary-photos/elementary-photos.spec +++ b/anda/desktops/elementary/elementary-photos/elementary-photos.spec @@ -12,19 +12,15 @@ License: LGPL-2.0-or-later URL: https://github.com/elementary/photos Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz -# RIP the publishing plugins (sorry for the "wide" patch, having issues with just the relevant commits) -Patch0: https://github.com/elementary/photos/compare/7261606a05d1f41116aba5c86b62d1f739419ed1..09e55943b266bc2861b913251cb834169d81743e.patch - BuildRequires: desktop-file-utils BuildRequires: gettext BuildRequires: libappstream-glib BuildRequires: meson >= 0.46.0 BuildRequires: vala BuildRequires: fdupes -BuildRequires: git-core BuildRequires: pkgconfig(gee-0.8) >= 0.8.5 -BuildRequires: pkgconfig(geocode-glib-2.0) +BuildRequires: pkgconfig(geocode-glib-1.0) BuildRequires: pkgconfig(gexiv2) >= 0.4.90 BuildRequires: pkgconfig(gio-2.0) >= 2.20 BuildRequires: pkgconfig(gio-unix-2.0) >= 2.20 @@ -37,12 +33,17 @@ BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) >= 1.0.0 BuildRequires: pkgconfig(gstreamer-pbutils-1.0) >= 1.0.0 BuildRequires: pkgconfig(gtk+-3.0) >= 3.6.0 BuildRequires: pkgconfig(gudev-1.0) >= 145 +BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(libexif) >= 0.6.16 BuildRequires: pkgconfig(libgphoto2) >= 2.4.2 BuildRequires: pkgconfig(libhandy-1) BuildRequires: pkgconfig(libraw) >= 0.13.2 +BuildRequires: pkgconfig(libsoup-2.4) >= 2.26.0 BuildRequires: pkgconfig(libwebp) >= 0.4.4 +BuildRequires: pkgconfig(libxml-2.0) >= 2.6.32 +BuildRequires: pkgconfig(rest-0.7) >= 0.7 BuildRequires: pkgconfig(sqlite3) >= 3.5.9 +BuildRequires: pkgconfig(webkit2gtk-4.0) >= 2.0.0 Requires: hicolor-icon-theme @@ -52,8 +53,7 @@ Foundation. %prep -%autosetup -n %{srcname}-%{version} -N -git apply %PATCH0 # The .patch file has Git binary patches, so we need to apply it manually with Git +%autosetup -n %{srcname}-%{version} -p1 %build @@ -94,6 +94,7 @@ appstream-util validate-relax --nonet \ %{_datadir}/applications/%{appname}.desktop %{_datadir}/applications/%{appname}-viewer.desktop %{_datadir}/glib-2.0/schemas/%{appname}.gschema.xml +%{_datadir}/glib-2.0/schemas/%{appname}-extras.gschema.xml %{_datadir}/icons/hicolor/*/apps/%{appname}.svg %{_datadir}/icons/hicolor/*/apps/%{appname}-viewer.svg %{_datadir}/metainfo/%{appname}.appdata.xml diff --git a/anda/desktops/elementary/gala/gala.spec b/anda/desktops/elementary/gala/gala.spec index 5e0b61dabd..3c7211c469 100644 --- a/anda/desktops/elementary/gala/gala.spec +++ b/anda/desktops/elementary/gala/gala.spec @@ -31,9 +31,9 @@ BuildRequires: pkgconfig(granite) >= 5.4.0 BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(libbamf3) BuildRequires: pkgconfig(libcanberra) -BuildRequires: pkgconfig(mutter-clutter-13) -BuildRequires: pkgconfig(mutter-cogl-13) -BuildRequires: pkgconfig(mutter-cogl-pango-13) +BuildRequires: pkgconfig(mutter-clutter-12) +BuildRequires: pkgconfig(mutter-cogl-12) +BuildRequires: pkgconfig(mutter-cogl-pango-12) Requires: %{name}-libs%{?_isa} = %{version}-%{release} diff --git a/anda/desktops/elementary/pantheon-session-settings/pantheon-session-settings.spec b/anda/desktops/elementary/pantheon-session-settings/pantheon-session-settings.spec index 251119d0fb..de173d65ad 100644 --- a/anda/desktops/elementary/pantheon-session-settings/pantheon-session-settings.spec +++ b/anda/desktops/elementary/pantheon-session-settings/pantheon-session-settings.spec @@ -13,11 +13,10 @@ BuildArch: noarch Requires: elementary-settings-daemon Requires: gala -# Gala has a hard runtime dependency on... GNOME Disks' DBus service!?! Requires: gnome-disk-utility Requires: gnome-keyring Requires: gnome-session -#Requires: gnome-session-xsession # this pulls in gnome-shell +Requires: gnome-session-xsession Requires: gnome-settings-daemon Requires: orca Requires: pantheon-agent-geoclue2 @@ -42,8 +41,6 @@ Requires: elementary-sound-theme Requires: elementary-theme Requires: open-sans-fonts -Source1: https://github.com/elementary/default-settings/raw/master/xdg-desktop-portal/pantheon-portals.conf - %description Configuration files and settings overrides for the Pantheon desktop session. @@ -87,9 +84,6 @@ mkdir -p %{buildroot}/%{_datadir}/accountsservice/interfaces ln -s ../../dbus-1/interfaces/io.elementary.pantheon.AccountsService.xml \ %{buildroot}/%{_datadir}/accountsservice/interfaces/io.elementary.pantheon.AccountsService.xml -mkdir -p %{buildroot}/%{_datadir}/xdg-desktop-portal -install -m 644 %{SOURCE1} %{buildroot}/%{_datadir}/xdg-desktop-portal/ - # these scriptlets are apparently still necessary, because # .override files don't seem to trigger schema recompilation @@ -115,7 +109,6 @@ fi %{_datadir}/gnome-session/sessions/pantheon.session %{_datadir}/polkit-1/actions/io.elementary.pantheon.AccountsService.policy %{_datadir}/xsessions/pantheon.desktop -%{_datadir}/xdg-desktop-portal/pantheon-portals.conf %changelog diff --git a/anda/desktops/elementary/switchboard-plug-pantheon-shell/switchboard-plug-pantheon-shell.spec b/anda/desktops/elementary/switchboard-plug-pantheon-shell/switchboard-plug-pantheon-shell.spec index dbafb315db..eadfa19306 100644 --- a/anda/desktops/elementary/switchboard-plug-pantheon-shell/switchboard-plug-pantheon-shell.spec +++ b/anda/desktops/elementary/switchboard-plug-pantheon-shell/switchboard-plug-pantheon-shell.spec @@ -14,7 +14,6 @@ License: GPL-3.0 URL: https://github.com/elementary/switchboard-plug-pantheon-shell Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz -Patch0: dark-theme-wallpaper.patch BuildRequires: gettext BuildRequires: libappstream-glib diff --git a/anda/desktops/elementary/wingpanel/wingpanel.spec b/anda/desktops/elementary/wingpanel/wingpanel.spec index d1f79f6b77..59ef67a72d 100644 --- a/anda/desktops/elementary/wingpanel/wingpanel.spec +++ b/anda/desktops/elementary/wingpanel/wingpanel.spec @@ -12,7 +12,6 @@ License: GPL-2.0-or-later URL: https://github.com/elementary/wingpanel Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -Patch0: https://github.com/elementary/wingpanel/commit/d6009d9f0d5c7479172093447ccceccba86ff1f3.patch BuildRequires: desktop-file-utils BuildRequires: gettext @@ -28,9 +27,9 @@ BuildRequires: pkgconfig(gee-0.8) BuildRequires: pkgconfig(glib-2.0) >= 2.32 BuildRequires: pkgconfig(granite) >= 5.4.0 BuildRequires: pkgconfig(gtk+-3.0) >= 3.10 -BuildRequires: pkgconfig(mutter-clutter-13) -BuildRequires: pkgconfig(mutter-cogl-13) -BuildRequires: pkgconfig(mutter-cogl-pango-13) +BuildRequires: pkgconfig(mutter-clutter-12) +BuildRequires: pkgconfig(mutter-cogl-12) +BuildRequires: pkgconfig(mutter-cogl-pango-12) Requires: %{name}-libs%{?_isa} = %{version}-%{release} @@ -43,8 +42,6 @@ Obsoletes: wingpanel-indicator-ayatana < 2.0.3-11 %package libs Summary: Stylish top panel (shared library) -Enhances: %{name} = %{version}-%{release} -Enhances: %{name}-devel = %{version}-%{release} %description libs %{common_description} diff --git a/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec b/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec index 90fa3d265e..e0b18068c2 100644 --- a/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec +++ b/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec @@ -1,6 +1,6 @@ %global forgeurl https://github.com/KDE/latte-dock/ -%global commit 0c95dd84aaa0f7008e30c0e781683ed37ef641e5 +%global commit c6882e79c4a84bedb6d2cbaa76d835732bbc426e %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global commit_date %(date '+%Y%m%d') %global snapshot_info %{commit_date}.%{shortcommit} diff --git a/anda/desktops/lomiri/0001-Add-support-for-both-older-qtmir-and-newer-qtmir-wit.patch b/anda/desktops/lomiri/0001-Add-support-for-both-older-qtmir-and-newer-qtmir-wit.patch new file mode 100644 index 0000000000..5192b8988e --- /dev/null +++ b/anda/desktops/lomiri/0001-Add-support-for-both-older-qtmir-and-newer-qtmir-wit.patch @@ -0,0 +1,196 @@ +From f97954332706aad8b615637a8ccfa63f3683e16c Mon Sep 17 00:00:00 2001 +From: cat-master21 <96554164+cat-master21@users.noreply.github.com> +Date: Wed, 29 Mar 2023 17:01:45 -0700 +Subject: [PATCH] Add support for both older qtmir and newer qtmir with miroil + +Signed-off-by: cat-master21 <96554164+cat-master21@users.noreply.github.com> +--- + CMakeLists.txt | 8 ++++++++ + plugins/WindowManager/CMakeLists.txt | 1 + + src/CMakeLists.txt | 2 ++ + src/DisplayConfigurationStorage.cpp | 12 ++++++++---- + src/DisplayConfigurationStorage.h | 11 ++++++++--- + tests/mocks/WindowManager/CMakeLists.txt | 1 + + tests/mocks/WindowManager/MockScreens.cpp | 10 +++++++--- + 7 files changed, 35 insertions(+), 10 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 16243ffcf..2546dda37 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -97,6 +97,14 @@ pkg_check_modules(MIRAL REQUIRED miral) + pkg_check_modules(DEVICEINFO REQUIRED deviceinfo) + pkg_check_modules(LOMIRISCHEMA REQUIRED lomiri-schemas>=0.1.3) + ++if (QTMIRSERVER_VERSION VERSION_GREATER_EQUAL 0.8.0) ++ message("Bulding with miroil") ++ pkg_check_modules(MIROIL REQUIRED miroil) ++ add_definitions(-DUSE_MIROIL=1) ++else() ++ message("Bulding without miroil") ++endif() ++ + ### Check LomiriGestures private headers. No pkg-config (.pc) file is provided for them + find_path(LOMIRIGESTUREPRIV + NAMES LomiriGestures/private/damper_p.h LomiriGestures/private/ucswipearea_p.h LomiriGestures/private/ucswipearea_p_p.h +diff --git a/plugins/WindowManager/CMakeLists.txt b/plugins/WindowManager/CMakeLists.txt +index 4519fd789..02a504891 100644 +--- a/plugins/WindowManager/CMakeLists.txt ++++ b/plugins/WindowManager/CMakeLists.txt +@@ -2,6 +2,7 @@ include_directories( + SYSTEM + ${QTMIRSERVER_INCLUDE_DIRS} + ${Qt5Gui_PRIVATE_INCLUDE_DIRS} ++ ${MIROIL_INCLUDE_DIRS} + ) + + include_directories( +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index ac03204b6..2f64d64cc 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -10,6 +10,7 @@ include_directories( + ${GSETTINGS_QT_INCLUDE_DIRS} + ${CONNECTIVITY_INCLUDE_DIRS} + ${QTMIRSERVER_INCLUDE_DIRS} ++ ${MIROIL_INCLUDE_DIRS} + ) + + include_directories( +@@ -56,6 +57,7 @@ target_link_libraries(${SHELL_APP} + ${GSETTINGS_QT_LDFLAGS} + ${QTMIRSERVER_LDFLAGS} + ${SYSTEMD_LDFLAGS} ++ ${MIROIL_LDFLAGS} + LomiriGestures + lomiri-connectivity-qt1 + lomiri-private +diff --git a/src/DisplayConfigurationStorage.cpp b/src/DisplayConfigurationStorage.cpp +index 6cfc478a3..69f73bad1 100644 +--- a/src/DisplayConfigurationStorage.cpp ++++ b/src/DisplayConfigurationStorage.cpp +@@ -23,7 +23,11 @@ + + namespace { + +-inline QString stringFromEdid(const miral::Edid& edid) ++#ifndef USE_MIROIL ++namespace miroil = miral; ++#endif ++ ++inline QString stringFromEdid(const miroil::Edid& edid) + { + QString str; + str += QString::fromStdString(edid.vendor); +@@ -41,7 +45,7 @@ DisplayConfigurationStorage::DisplayConfigurationStorage() + { + } + +-void DisplayConfigurationStorage::save(const miral::DisplayId &displayId, const miral::DisplayConfigurationOptions &options) ++void DisplayConfigurationStorage::save(const miroil::DisplayId &displayId, const miroil::DisplayConfigurationOptions &options) + { + const QString dbPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + QStringLiteral("/lomiri/"); + QFile f(dbPath + stringFromEdid(displayId.edid) + ".edid"); +@@ -69,7 +73,7 @@ void DisplayConfigurationStorage::save(const miral::DisplayId &displayId, const + } + } + +-bool DisplayConfigurationStorage::load(const miral::DisplayId &displayId, miral::DisplayConfigurationOptions &options) const ++bool DisplayConfigurationStorage::load(const miroil::DisplayId &displayId, miroil::DisplayConfigurationOptions &options) const + { + const QString dbPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + QStringLiteral("/lomiri/"); + QFile f(dbPath + stringFromEdid(displayId.edid) + ".edid"); +@@ -92,7 +96,7 @@ bool DisplayConfigurationStorage::load(const miral::DisplayId &displayId, miral: + QStringList geo = sz.split("x", QString::SkipEmptyParts); + #endif + if (geo.count() == 2) { +- miral::DisplayConfigurationOptions::DisplayMode mode; ++ miroil::DisplayConfigurationOptions::DisplayMode mode; + mode.size = mir::geometry::Size(geo[0].toInt(), geo[1].toInt()); + mode.refresh_rate = jsonMode["refresh_rate"].toDouble(); + options.mode = mode; +diff --git a/src/DisplayConfigurationStorage.h b/src/DisplayConfigurationStorage.h +index bd6a9e479..ab91b372f 100644 +--- a/src/DisplayConfigurationStorage.h ++++ b/src/DisplayConfigurationStorage.h +@@ -17,15 +17,20 @@ + #ifndef LOMIRI_DISPLAYCONFIGURATIONSTORAGE_H + #define LOMIRI_DISPLAYCONFIGURATIONSTORAGE_H + ++#ifndef USE_MIROIL + #include ++namespace miroil = miral; ++#else ++#include ++#endif + +-class DisplayConfigurationStorage : public miral::DisplayConfigurationStorage ++class DisplayConfigurationStorage : public miroil::DisplayConfigurationStorage + { + public: + DisplayConfigurationStorage(); + +- void save(const miral::DisplayId& displayId, const miral::DisplayConfigurationOptions& options) override; +- bool load(const miral::DisplayId& displayId, miral::DisplayConfigurationOptions& options) const override; ++ void save(const miroil::DisplayId& displayId, const miroil::DisplayConfigurationOptions& options) override; ++ bool load(const miroil::DisplayId& displayId, miroil::DisplayConfigurationOptions& options) const override; + }; + + #endif // LOMIRI_DISPLAYCONFIGURATIONSTORAGE_H +diff --git a/tests/mocks/WindowManager/CMakeLists.txt b/tests/mocks/WindowManager/CMakeLists.txt +index 419f7c3d8..6d48450d3 100644 +--- a/tests/mocks/WindowManager/CMakeLists.txt ++++ b/tests/mocks/WindowManager/CMakeLists.txt +@@ -9,6 +9,7 @@ include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/plugins/WindowManager + ${liblomiri-private_SOURCE_DIR} ++ ${MIROIL_INCLUDE_DIRS} + ) + + add_library(mockwindowmanagmentpolicy SHARED +diff --git a/tests/mocks/WindowManager/MockScreens.cpp b/tests/mocks/WindowManager/MockScreens.cpp +index 35ab3f9df..e96b604e8 100644 +--- a/tests/mocks/WindowManager/MockScreens.cpp ++++ b/tests/mocks/WindowManager/MockScreens.cpp +@@ -26,6 +26,10 @@ + + namespace { + ++#ifndef USE_MIROIL ++namespace miroil = miral; ++#endif ++ + QWeakPointer m_screens; + + class MockScreen : public qtmir::Screen +@@ -82,7 +86,7 @@ public: + } + } + +- miral::DisplayId displayId() const override { return m_id; } ++ miroil::DisplayId displayId() const override { return m_id; } + bool used() const override { return m_used; } + QString name() const override { return m_name; } + float scale() const override { return m_scale; } +@@ -141,7 +145,7 @@ Q_SIGNALS: + void outputTypeNameChanged(); + + public: +- miral::DisplayId m_id; ++ miroil::DisplayId m_id; + bool m_active{false}; + bool m_used{true}; + QString m_name; +@@ -167,7 +171,7 @@ MockScreens::MockScreens() + QPoint lastPoint(0,0); + for (int i = 0; i < screenCount; ++i) { + auto screen = new MockScreen(); +- screen->m_id.output_id = miral::OutputId{i}; ++ screen->m_id.output_id = miroil::OutputId{i}; + screen->m_active = i == 0; + screen->m_name = QString("Monitor %1").arg(i); + screen->m_position = QPoint(lastPoint.x(), lastPoint.y()); +-- +2.39.2 + diff --git a/anda/desktops/lomiri/anda.hcl b/anda/desktops/lomiri/anda.hcl new file mode 100644 index 0000000000..1d7cf8f82d --- /dev/null +++ b/anda/desktops/lomiri/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "lomiri.spec" + } +} diff --git a/anda/desktops/lomiri/lomiri.spec b/anda/desktops/lomiri/lomiri.spec new file mode 100644 index 0000000000..0385bc0161 --- /dev/null +++ b/anda/desktops/lomiri/lomiri.spec @@ -0,0 +1,188 @@ +%global forgeurl https://gitlab.com/ubports/development/core/lomiri +%global commit de472d04a682e1dc3d317c94b08a14facdf673e7 +%forgemeta + +Name: lomiri +Version: 0.1.4 +Release: 1%{?dist} +Summary: A convergent desktop environment by Ubports + +License: GPLv3 AND LGPLv3 +URL: https://gitlab.com/ubports/development/core/lomiri +Source0: %{url}/-/archive/%commit/lomiri-%commit.tar.gz +Patch0: https://sources.debian.org/data/main/l/lomiri/0.1.2-3/debian/patches/disable-broken-test-mir2.patch +Patch1: 0001-Add-support-for-both-older-qtmir-and-newer-qtmir-wit.patch +BuildRequires: cmake +BuildRequires: cmake-extras +BuildRequires: pkgconfig +BuildRequires: g++ +BuildRequires: gcc +#BuildRequires: doxygen +#BuildRequires: doxyqml +BuildRequires: pkgconfig(lomiri-schemas) +BuildRequires: pkgconfig(Qt5Qml) +BuildRequires: pkgconfig(Qt5Svg) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(lomiri-shell-application) +BuildRequires: pkgconfig(qtmirserver) +BuildRequires: pkgconfig(geonames) +BuildRequires: pkgconfig(lomiri-shell-launcher) +BuildRequires: pkgconfig(qmenumodel) +BuildRequires: pkgconfig(gnome-desktop-3.0) +BuildRequires: pkgconfig(lomiri-app-launch-0) +BuildRequires: pkgconfig(LomiriGestures) +BuildRequires: pkgconfig(miral) +BuildRequires: pkgconfig(miroil) +BuildRequires: pkgconfig(deviceinfo) +BuildRequires: pkgconfig(gsettings-qt) +BuildRequires: pkgconfig(libqtdbustest-1) +BuildRequires: pkgconfig(libqtdbusmock-1) +BuildRequires: pkgconfig(LomiriSystemSettings) +BuildRequires: pkgconfig(liblightdm-qt5-3) +BuildRequires: pkgconfig(lomiri-connectivity-qt1) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(libusermetricsoutput-1) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(ldm-common) +BuildRequires: pkgconfig(libevdev) +BuildRequires: dbus-test-runner-devel +BuildRequires: dpkg-dev +BuildRequires: pam-devel +BuildRequires: properties-cpp-devel +BuildRequires: qt-devel +BuildRequires: qt5-qtbase-private-devel +BuildRequires: qt5-qtdeclarative-devel +BuildRequires: systemd-rpm-macros +Recommends: lomiri-session +# Most of these are for other libs that rpm doesn't find +Requires: libusermetrics +Requires: deviceinfo +Requires: lomiri-system-settings +Requires: qmenumodel +Requires: xorg-x11-server-Xwayland +Requires: ayatana-indicator-sound +Requires: ayatana-indicator-messages +Requires: ayatana-indicator-datetime +Requires: ayatana-indicator-notifications +Requires: ayatana-indicator-session +Requires: lomiri-sounds +Requires: lomiri-ui-toolkit +Requires: lomiri-download-manager +Requires: suru-icon-theme +Requires: lomiri-schemas +# For some reason Lomiri `/usr/bin/lomiri` requires it for testability +Requires: %{name}-tests%{?_isa} = %{version}-%{release} + +%description +Lomiri, Previously Unity8 is a convergent desktop environment built with Qt. + +# Documentation needs doxyqml +#package doc +#Summary: Documentation files for {name} +#BuildArch: noarch + +#description doc +#The {name}-doc package contains documenation files for {name}. + +%package tests +Summary: Test files for %{name} +Requires: dbus-test-runner +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description tests +The %{name}-tests package contains test files for %{name}. + +%prep +%autosetup -n lomiri-%commit -p1 +# Ubuntu specific, may have to be updated every background image change on Gnome or Ubuntu +for i in $(grep -rl warty-final-ubuntu); do +sed -i 's!warty-final-ubuntu.png!f38/default/f38-01-day.png!' $i +done + +%build +%cmake -DWerror=OFF -DDEB_HOST_MULTIARCH=%{_arch} -DCMAKE_INSTALL_LOCALSTATEDIR="%{_localstatedir}" -DDISPLAYED_DISTRO_NAME="Fedora" -DUSE_MIROIL=1 +%cmake_build + +%install +%cmake_install +#cd tests/autopilot && python setup.py install +%find_lang %{name} + +mkdir -m 0755 -p %{buildroot}%{_sysconfdir}/lomiri %{buildroot}%{_sysconfdir}/lomirisensors +install -Dm644 data/devices.conf %{buildroot}%{_sysconfdir}/lomiri +install -Dm644 data/test.sensors %{buildroot}%{_sysconfdir}/lomirisensors + +%ldconfig_scriptlets + +%files -f %{name}.lang +%doc README.md +%license COPYING COPYING.LGPL +%dir %{_sysconfdir}/lomiri +%config %{_sysconfdir}/lomiri/devices.conf +%dir %{_sysconfdir}/lomirisensors +%config %{_sysconfdir}/lomirisensors/test.sensors +%{_bindir}/indicators-client +%{_bindir}/lomiri +%{_userunitdir}/*.service +%{_libdir}/liblomiri-private.so* +%dir %{_libdir}/lomiri +%dir %{_libdir}/lomiri/qml +%{_libdir}/lomiri/qml/AccountsService/ +%{_libdir}/lomiri/qml/Cursor/ +%{_libdir}/lomiri/qml/GlobalShortcut/ +%{_libdir}/lomiri/qml/Greeter/ +%{_libdir}/lomiri/qml/LightDM/ +%{_libdir}/lomiri/qml/Lomiri/ +%{_libdir}/lomiri/qml/Powerd/ +%{_libdir}/lomiri/qml/ProcessControl/libProcessControl-qml.so +%{_libdir}/lomiri/qml/ProcessControl/qmldir +%{_libdir}/lomiri/qml/ScreenshotDirectory/ +%{_libdir}/lomiri/qml/SessionBroadcast/ +%{_libdir}/lomiri/qml/UInput/ +%{_libdir}/lomiri/qml/Utils/ +%{_libdir}/lomiri/qml/WindowManager/ +%{_libdir}/lomiri/qml/Wizard/ +%{_libexecdir}/lomiri-systemd-wrapper +%{_libexecdir}/Xwayland.lomiri +%{_datadir}/accountsservice/interfaces/com.lomiri.shell.AccountsService.xml +%{_datadir}/applications/*.desktop +%{_datadir}/dbus-1/interfaces/com.lomiri.shell.AccountsService.xml +%{_datadir}/dbus-1/interfaces/com.lomiri.ProcessControl.xml +%{_datadir}/lightdm/greeters/lomiri-greeter.desktop +%{_datadir}/lightdm/lightdm.conf.d/51-lomiri-greeter.conf +%dir %{_datadir}/lomiri +%{_datadir}/lomiri/unlock-device +%{_datadir}/lomiri/qmldir +%{_datadir}/lomiri/*.qml +%{_datadir}/lomiri/ApplicationMenus/ +%{_datadir}/lomiri/Components/ +%{_datadir}/lomiri/Notifications/ +%{_datadir}/lomiri/Stage/ +%{_datadir}/lomiri/Panel/ +%{_datadir}/lomiri/Tutorial/ +%{_datadir}/lomiri/graphics/ +%{_datadir}/lomiri/Rotation/ +%{_datadir}/lomiri/Greeter/ +%{_datadir}/lomiri/Wizard/ +%{_datadir}/lomiri/Launcher/ +%dir %{_sharedstatedir}/lomiri +%{_sharedstatedir}/lomiri/version +%{_sharedstatedir}/polkit-1/localauthority/10-vendor.d/50-com.lomiri.wizard.pkla + + +%files tests +%{_bindir}/lomiri-mock-indicator-service +%{_libdir}/lomiri/qml/mocks/ +%{_libdir}/lomiri/qml/utils/ +%dir %{_libexecdir}/lomiri +%{_libexecdir}/lomiri/uqmlscene +%dir %{_libexecdir}/lomiri/tests +%{_libexecdir}/lomiri/tests/plugins/ +%{_libexecdir}/lomiri/tests/qmltests/ +%{_libexecdir}/lomiri/tests/scripts/ +%{_datadir}/lomiri/mocks/ +%{_datadir}/lomiri/tests/ + +%changelog +%autochangelog diff --git a/anda/desktops/lomiri/update.rhai b/anda/desktops/lomiri/update.rhai new file mode 100644 index 0000000000..bf40ea8d35 --- /dev/null +++ b/anda/desktops/lomiri/update.rhai @@ -0,0 +1,3 @@ +let o = get("https://gitlab.com/api/v4/projects/25716028/repository/tags").json_arr()[0]; +rpm.version(o.name); +rpm.global("commit", get("https://gitlab.com/api/v4/projects/25716028/repository/commits").json_arr()[0].id); diff --git a/anda/desktops/mate/tweak/mate-tweak.spec b/anda/desktops/mate/tweak/mate-tweak.spec index 3a84b0eea5..69f0099d3b 100644 --- a/anda/desktops/mate/tweak/mate-tweak.spec +++ b/anda/desktops/mate/tweak/mate-tweak.spec @@ -2,7 +2,7 @@ Name: mate-tweak Version: 22.10.0 -Release: 2%?dist +Release: 1%?dist Summary: Tweak tool for the MATE Desktop License: GPL-2.0 URL: https://github.com/ubuntu-mate/mate-tweak @@ -39,9 +39,9 @@ desktop-file-validate %buildroot%_datadir/applications/*.desktop %_datadir/applications/%name.desktop %_datadir/applications/marco-{glx,no-composite,xr_glx_hybrid,xrender}.desktop %_datadir/polkit-1/actions/org.mate.%name.policy -%ghost %_prefix/lib/python3.*/site-packages/__pycache__ -%ghost %_prefix/lib/python3.*/site-packages/setup.py -%ghost %_prefix/lib/python3.*/site-packages/mate_tweak-%version-py3.*.egg-info/ +%ghost %_prefix/lib/python3.11/site-packages/__pycache__ +%ghost %_prefix/lib/python3.11/site-packages/setup.py +%ghost %_prefix/lib/python3.11/site-packages/mate_tweak-%version-py%python3_version.egg-info/ %changelog %autochangelog diff --git a/anda/desktops/unity-shell/0001-Remove-xpathselect-dependency.patch b/anda/desktops/unity-shell/0001-Remove-xpathselect-dependency.patch new file mode 100644 index 0000000000..10f2113ee9 --- /dev/null +++ b/anda/desktops/unity-shell/0001-Remove-xpathselect-dependency.patch @@ -0,0 +1,544 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 03be190..f2188a6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -251,7 +251,6 @@ set(UNITY_PLUGIN_SHARED_DEPS + nux-4.0>=4.0.5 + sigc++-2.0>=2.4.0 + unity-misc>=0.4.0 +- xpathselect=1.4 + zeitgeist-2.0 + ) + +diff --git a/plugins/unityshell/src/unityshell.cpp b/plugins/unityshell/src/unityshell.cpp +index 38f433a..1276be8 100644 +--- a/plugins/unityshell/src/unityshell.cpp ++++ b/plugins/unityshell/src/unityshell.cpp +@@ -196,7 +196,6 @@ UnityScreen::UnityScreen(CompScreen* screen) + , WM(PluginAdapter::Initialize(screen)) + , menus_(std::make_shared(std::make_shared(), std::make_shared())) + , deco_manager_(std::make_shared(menus_)) +- , debugger_(this) + , session_(std::make_shared()) + , needsRelayout(false) + , super_keypressed_(false) +diff --git a/plugins/unityshell/src/unityshell.h b/plugins/unityshell/src/unityshell.h +index 403caf1..a386438 100644 +--- a/plugins/unityshell/src/unityshell.h ++++ b/plugins/unityshell/src/unityshell.h +@@ -64,7 +64,6 @@ + #include "PanelController.h" + #include "PanelStyle.h" + #include "UScreen.h" +-#include "DebugDBusInterface.h" + #include "ScreenIntrospection.h" + #include "ScreenSaverDBusManager.h" + #include "SwitcherController.h" +@@ -343,7 +342,6 @@ private: + lockscreen::DBusManager::Ptr screensaver_dbus_manager_; + lockscreen::Controller::Ptr lockscreen_controller_; + ui::EdgeBarrierController::Ptr edge_barriers_; +- debug::DebugDBusInterface debugger_; + std::unique_ptr bghash_; + spread::Widgets::Ptr spread_widgets_; + +diff --git a/unity-shared/CMakeLists.txt b/unity-shared/CMakeLists.txt +index 673c7dd..bebb264 100644 +--- a/unity-shared/CMakeLists.txt ++++ b/unity-shared/CMakeLists.txt +@@ -23,7 +23,6 @@ set (UNITY_SHARED_SOURCES + CoverArt.cpp + BackgroundEffectHelper.cpp + DashStyle.cpp +- DebugDBusInterface.cpp + DecorationStyle.cpp + DefaultThumbnailProvider.cpp + DeltaRestrainment.cpp +diff --git a/unity-shared/DebugDBusInterface.cpp b/unity-shared/DebugDBusInterface.cpp +deleted file mode 100644 +index 73bea0d..0000000 +--- a/unity-shared/DebugDBusInterface.cpp ++++ /dev/null +@@ -1,431 +0,0 @@ +-// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- +-/* +- * Copyright (C) 2010-2013 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 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 . +- * +- * Authored by: Alex Launi +- * Thomi Richards +- * Marco Trevisan +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "DebugDBusInterface.h" +-#include "Introspectable.h" +- +-namespace unity +-{ +-namespace debug +-{ +-namespace +-{ +- +-DECLARE_LOGGER(logger, "unity.debug.interface"); +- +-namespace local +-{ +- const std::string PROTOCOL_VERSION = "1.4"; +- const std::string XPATH_SELECT_LIB = "libxpathselect.so.1.4"; +- +- class IntrospectableAdapter : public std::enable_shared_from_this, public xpathselect::Node +- { +- public: +- typedef std::shared_ptr Ptr; +- IntrospectableAdapter(Introspectable* node, IntrospectableAdapter::Ptr const& parent = nullptr) +- : node_(node) +- , parent_(parent) +- , full_path_((parent_ ? parent_->GetPath() : "") + "/" + GetName()) +- {} +- +- int32_t GetId() const +- { +- return node_->GetIntrospectionId(); +- } +- +- std::string GetName() const +- { +- return node_->GetName(); +- } +- +- std::string GetPath() const +- { +- return full_path_; +- } +- +- Node::Ptr GetParent() const +- { +- return parent_; +- } +- +- bool MatchStringProperty(std::string const& name, std::string const& value) const +- { +- auto const& prop_value = GetPropertyValue(name); +- +- if (prop_value) +- { +- if (!g_variant_is_of_type(prop_value, G_VARIANT_TYPE_STRING)) +- { +- LOG_WARNING(logger) << "Unable to match '"<< name << "', '" << +- prop_value << "' is not a string property."; +- return false; +- } +- +- return (prop_value.GetString() == value); +- } +- +- return false; +- } +- +- bool MatchBooleanProperty(std::string const& name, bool value) const +- { +- auto const& prop_value = GetPropertyValue(name); +- +- if (prop_value) +- { +- if (!g_variant_is_of_type(prop_value, G_VARIANT_TYPE_BOOLEAN)) +- { +- LOG_WARNING(logger) << "Unable to match '"<< name << "', '" << +- prop_value << "' is not a boolean property."; +- return false; +- } +- +- return (prop_value.GetBool() == value); +- } +- +- return false; +- } +- +- bool MatchIntegerProperty(std::string const& name, int32_t value) const +- { +- auto const& prop_value = GetPropertyValue(name); +- +- if (prop_value) +- { +- GVariantClass prop_val_type = g_variant_classify(prop_value); +- // it'd be nice to be able to do all this with one method. +- // I can't figure out how to group all the integer types together +- switch (prop_val_type) +- { +- case G_VARIANT_CLASS_BYTE: +- return static_cast(value) == prop_value.GetByte(); +- case G_VARIANT_CLASS_INT16: +- return value == prop_value.GetInt16(); +- case G_VARIANT_CLASS_UINT16: +- return static_cast(value) == prop_value.GetUInt16(); +- case G_VARIANT_CLASS_INT32: +- return value == prop_value.GetInt32(); +- case G_VARIANT_CLASS_UINT32: +- return static_cast(value) == prop_value.GetUInt32(); +- case G_VARIANT_CLASS_INT64: +- return value == prop_value.GetInt64(); +- case G_VARIANT_CLASS_UINT64: +- return static_cast(value) == prop_value.GetUInt64(); +- default: +- LOG_WARNING(logger) << "Unable to match '"<< name << "', '" << +- prop_value << "' is not a known integer property."; +- }; +- } +- +- return false; +- } +- +- glib::Variant GetPropertyValue(std::string const& name) const +- { +- if (name == "id") +- return glib::Variant(GetId()); +- +- IntrospectionData introspection; +- node_->AddProperties(introspection); +- +- glib::Variant value(g_variant_lookup_value(glib::Variant(introspection.Get()), name.c_str(), nullptr), glib::StealRef()); +- +- if (!value) +- return nullptr; +- +- if (!g_variant_is_of_type(value, G_VARIANT_TYPE_ARRAY) || g_variant_n_children(value) != 2) +- { +- LOG_ERROR(logger) << "Property value for '"<< name << "' should be a 2-sized array, got instead '" << value << "'"; +- return nullptr; +- } +- +- glib::Variant child(g_variant_get_child_value(value, 1), glib::StealRef()); +- +- if (g_variant_is_of_type(child, G_VARIANT_TYPE_VARIANT)) +- return child.GetVariant(); +- +- return child; +- } +- +- std::vector Children() const +- { +- std::vector children; +- auto const& this_ptr = shared_from_this(); +- +- for (auto* child : node_->GetIntrospectableChildren()) +- { +- if (!child) +- continue; +- +- children.push_back(std::make_shared(child, this_ptr)); +- } +- +- return children; +- } +- +- Introspectable* Node() const +- { +- return node_; +- } +- +- private: +- Introspectable* node_; +- IntrospectableAdapter::Ptr parent_; +- std::string full_path_; +- }; +- +- namespace xpathselect +- { +- +- struct NodeSelector +- { +- NodeSelector() +- : driver_(dlopen(XPATH_SELECT_LIB.c_str(), RTLD_LAZY)) +- , node_selector_(driver_ ? reinterpret_cast(dlsym(driver_, "SelectNodes")) : nullptr) +- { +- if (const char* err = dlerror()) +- { +- LOG_WARNING(logger) << "Unable to load entry point in libxpathselect: " << err +- << " -- full D-Bus introspection will not be available"; +- Close(); +- } +- } +- +- ~NodeSelector() { Close(); } +- bool IsAvailable() const { return driver_; } +- operator bool() const { return IsAvailable(); } +- +- ::xpathselect::NodeVector SelectNodes(::xpathselect::Node::Ptr const& root, std::string const& query) +- { +- if (!IsAvailable()) +- return ::xpathselect::NodeVector(); +- +- return node_selector_(root, query); +- } +- +- private: +- void Close() +- { +- if (driver_) +- { +- dlclose(driver_); +- driver_ = nullptr; +- } +- } +- +- void* driver_; +- typedef decltype(&::xpathselect::SelectNodes) select_nodes_t; +- select_nodes_t node_selector_; +- }; +- +- } // xpathselect namespace +- +-} // local namespace +-} // anonymous namespace +- +-namespace dbus +-{ +-const std::string BUS_NAME = "com.canonical.Unity"; +-const std::string OBJECT_PATH = "/com/canonical/Unity/Debug"; +- +-const std::string INTROSPECTION_XML = +- " " +- " " +- "" +- " " +- " " +- " " +- " " +- "" +- " " +- " " +- " " +- "" +- " " +- "" +- " " +- "" +- " " +- " " +- " " +- "" +- " " +- " " +- "" +- " " +- " " +- " " +- " " +- "" +- " " +- " " +- " " +- " " +- "" +- " " +- " "; +-} +- +-struct DebugDBusInterface::Impl +-{ +- Impl(Introspectable*); +- +- GVariant* HandleDBusMethodCall(std::string const&, GVariant*); +- GVariant* GetState(std::string const&); +- +- void StartLogToFile(std::string const&); +- void ResetLogging(); +- void SetLogSeverity(std::string const& log_component, std::string const& severity); +- void LogMessage(std::string const& severity, std::string const& message); +- +- Introspectable* introspection_root_; +- local::xpathselect::NodeSelector xns_; +- glib::DBusServer::Ptr server_; +- std::ofstream output_file_; +-}; +- +-DebugDBusInterface::DebugDBusInterface(Introspectable* root) +- : impl_(new DebugDBusInterface::Impl(root)) +-{} +- +-DebugDBusInterface::~DebugDBusInterface() +-{} +- +-DebugDBusInterface::Impl::Impl(Introspectable* root) +- : introspection_root_(root) +- , server_((introspection_root_ && xns_) ? std::make_shared(dbus::BUS_NAME) : nullptr) +-{ +- if (server_) +- { +- server_->AddObjects(dbus::INTROSPECTION_XML, dbus::OBJECT_PATH); +- +- for (auto const& obj : server_->GetObjects()) +- obj->SetMethodsCallsHandler(sigc::mem_fun(this, &Impl::HandleDBusMethodCall)); +- } +-} +- +-GVariant* DebugDBusInterface::Impl::HandleDBusMethodCall(std::string const& method, GVariant* parameters) +-{ +- if (method == "GetState") +- { +- const gchar* input; +- g_variant_get(parameters, "(&s)", &input); +- +- return GetState(input); +- } +- else if (method == "GetVersion") +- { +- return g_variant_new("(s)", local::PROTOCOL_VERSION.c_str()); +- } +- else if (method == "StartLogToFile") +- { +- const gchar* log_path; +- g_variant_get(parameters, "(&s)", &log_path); +- +- StartLogToFile(log_path); +- } +- else if (method == "ResetLogging") +- { +- ResetLogging(); +- } +- else if (method == "SetLogSeverity") +- { +- const gchar* component; +- const gchar* severity; +- g_variant_get(parameters, "(&s&s)", &component, &severity); +- +- SetLogSeverity(component, severity); +- } +- else if (method == "LogMessage") +- { +- const gchar* severity; +- const gchar* message; +- g_variant_get(parameters, "(&s&s)", &severity, &message); +- +- LogMessage(severity, message); +- } +- +- return nullptr; +-} +- +-GVariant* DebugDBusInterface::Impl::GetState(std::string const& query) +-{ +- GVariantBuilder builder; +- g_variant_builder_init(&builder, G_VARIANT_TYPE("a(sv)")); +- +- auto root_node = std::make_shared(introspection_root_); +- for (auto const& n : xns_.SelectNodes(root_node, query)) +- { +- auto p = std::static_pointer_cast(n); +- if (p) +- g_variant_builder_add(&builder, "(sv)", p->GetPath().c_str(), p->Node()->Introspect()); +- } +- +- return g_variant_new("(a(sv))", &builder); +-} +- +-void DebugDBusInterface::Impl::StartLogToFile(std::string const& file_path) +-{ +- if (output_file_.is_open()) +- output_file_.close(); +- +- output_file_.open(file_path); +- nux::logging::Writer::Instance().SetOutputStream(output_file_); +-} +- +-void DebugDBusInterface::Impl::ResetLogging() +-{ +- if (output_file_.is_open()) +- output_file_.close(); +- +- nux::logging::Writer::Instance().SetOutputStream(std::cout); +- nux::logging::reset_logging(); +-} +- +-void DebugDBusInterface::Impl::SetLogSeverity(std::string const& log_component, std::string const& severity) +-{ +- nux::logging::Logger(log_component).SetLogLevel(nux::logging::get_logging_level(severity)); +-} +- +-void DebugDBusInterface::Impl::LogMessage(std::string const& severity, std::string const& message) +-{ +- nux::logging::Level level = nux::logging::get_logging_level(severity); +- nux::logging::Logger const& log_ref = Unwrap(logger); +- if (log_ref.GetEffectiveLogLevel() <= level) +- { +- nux::logging::LogStream(level, log_ref.module(), __FILE__, __LINE__).stream() +- << message; +- } +-} +- +-} // debug namepsace +-} // unity namespace +diff --git a/unity-shared/DebugDBusInterface.h b/unity-shared/DebugDBusInterface.h +deleted file mode 100644 +index 4083a61..0000000 +--- a/unity-shared/DebugDBusInterface.h ++++ /dev/null +@@ -1,45 +0,0 @@ +-// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- +-/* +- * Copyright (C) 2010-2013 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 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 . +- * +- * Authored by: Alex Launi +- * Marco Trevisan +- */ +- +-#ifndef UNITY_DEBUG_DBUS_INTERFACE_H +-#define UNITY_DEBUG_DBUS_INTERFACE_H +- +-#include +- +-namespace unity +-{ +-namespace debug +-{ +-class Introspectable; +- +-class DebugDBusInterface +-{ +-public: +- DebugDBusInterface(Introspectable* root); +- ~DebugDBusInterface(); +- +-private: +- struct Impl; +- std::unique_ptr impl_; +-}; +-} +-} +- +-#endif /* _DEBUG_DBUS_INTERFACE_H */ diff --git a/anda/desktops/unity-shell/0002-Remove-ido-dependency.patch b/anda/desktops/unity-shell/0002-Remove-ido-dependency.patch new file mode 100644 index 0000000000..be51aa65e0 --- /dev/null +++ b/anda/desktops/unity-shell/0002-Remove-ido-dependency.patch @@ -0,0 +1,32 @@ +diff --git a/services/CMakeLists.txt b/services/CMakeLists.txt +index 2829cd2..4ec220d 100644 +--- a/services/CMakeLists.txt ++++ b/services/CMakeLists.txt +@@ -11,7 +11,6 @@ set(UNITY_PANEL_SERVICE_DEPS + gtk+-3.0>=3.3 + indicator3-0.4>=12.10.2 + x11 +- libido3-0.1>=13.0.0 + ) + + pkg_check_modules(SERVICE_DEPS REQUIRED ${UNITY_PANEL_SERVICE_DEPS}) +diff --git a/services/panel-main.c b/services/panel-main.c +index f6488ba..d3dc59b 100644 +--- a/services/panel-main.c ++++ b/services/panel-main.c +@@ -22,7 +22,6 @@ + #include + #include + #include +-#include + + #include "config.h" + #include "panel-a11y.h" +@@ -466,7 +465,6 @@ main (gint argc, gchar **argv) + + gtk_init (&argc, &argv); + gtk_icon_theme_append_search_path (gtk_icon_theme_get_default(), INDICATORICONDIR); +- ido_init (); + + context = g_option_context_new ("- Unity Panel Service"); + g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); diff --git a/anda/desktops/unity-shell/0003-Remove-social-scope.patch b/anda/desktops/unity-shell/0003-Remove-social-scope.patch new file mode 100644 index 0000000000..a6d29401c7 --- /dev/null +++ b/anda/desktops/unity-shell/0003-Remove-social-scope.patch @@ -0,0 +1,13 @@ +diff --git a/data/com.canonical.Unity.gschema.xml b/data/com.canonical.Unity.gschema.xml +index 787c048..e81adcc 100644 +--- a/data/com.canonical.Unity.gschema.xml ++++ b/data/com.canonical.Unity.gschema.xml +@@ -187,7 +187,7 @@ + + + +- [ 'home.scope', 'applications.scope', 'files.scope', 'video.scope', 'music.scope', 'photos.scope', 'social.scope' ] ++ [ 'home.scope', 'applications.scope', 'files.scope', 'video.scope', 'music.scope', 'photos.scope' ] + List of scope ids specifying which scopes should be created and the order to display them in. + The scopes listed in the scope bar will be ordered according to this list. + diff --git a/anda/desktops/unity-shell/anda.hcl b/anda/desktops/unity-shell/anda.hcl new file mode 100644 index 0000000000..a90e10f77c --- /dev/null +++ b/anda/desktops/unity-shell/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "unity-shell.spec" + } +} diff --git a/anda/desktops/unity-shell/unity-shell.spec b/anda/desktops/unity-shell/unity-shell.spec new file mode 100644 index 0000000000..47f233e22b --- /dev/null +++ b/anda/desktops/unity-shell/unity-shell.spec @@ -0,0 +1,229 @@ +%define archive unity_7.7.0+23.04.20230222.2-0ubuntu2.tar.xz + +Name: unity-shell +Version: 7.7.0 +Release: %autorelease +Summary: Unity is a shell that sings + +License: GPL-3.0-or-later +URL: https://launchpad.net/unity +Source0: http://archive.ubuntu.com/ubuntu/pool/universe/u/unity/%archive +Patch0: 0001-Remove-xpathselect-dependency.patch +Patch1: 0002-Remove-ido-dependency.patch +Patch2: 0003-Remove-social-scope.patch + +BuildRequires: cmake +BuildRequires: g++ +BuildRequires: gcc +BuildRequires: dee-devel +BuildRequires: gnome-desktop3-devel +BuildRequires: pkgconfig(zeitgeist-2.0) +BuildRequires: libappstream-glib-devel +BuildRequires: libdbusmenu-devel +BuildRequires: bamf-devel +BuildRequires: terra-libindicator-gtk3-devel +BuildRequires: json-glib-devel +BuildRequires: libnotify-devel +BuildRequires: libsigc++20-devel +BuildRequires: libunity-devel +BuildRequires: doxygen +BuildRequires: pam-devel +BuildRequires: boost-devel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(nux-4.0) +BuildRequires: compiz9-devel +BuildRequires: pkgconfig(unity-misc) +BuildRequires: chrpath +BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(libunity-settings-daemon) +Requires: python3-gobject +Requires: dconf +Requires: gsettings-ubuntu-touch-schemas +Requires: %{name}-data = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: pam +Requires: bamf-daemon +Requires: unity-gtk-module-common +Requires: compiz9 +Requires: terra-libindicator-gtk3 +Recommends: unity-greeter +Recommends: unity-scope-home + +%description +Unity is a desktop experience that sings. Designed by Canonical and the Ayatana +community, Unity is all about the combination of familiarity and the future. We +bring together visual design, analysis of user experience testing, modern +graphics technologies and a deep understanding of the free software landscape to +produce what we hope will be the lightest, most elegant and most delightful way +to use your PC. + +The Unity desktop experience is designed to allow for multiple implementations, +currently, Unity consists of a Compiz plugin based visual interface only, which +is heavily dependent on OpenGL. + +%package core +Summary: Core library for the Unity shell +Group: System Environment/Libraries +Requires: %{name}-data = %{version}-%{release} + +%description core +This package contains the core library needed for Unity and Unity 2D. + +%package core-devel +Summary: Development files for the core Unity library +Group: Development/Libraries +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: pkgconfig(dee-1.0) +Requires: pkgconfig(glib-2.0) +Requires: pkgconfig(sigc++-2.0) +Requires: pkgconfig(unity) +Requires: pkgconfig(nux-4.0) + +%description core-devel +This package contains the development files the core Unity library. + +%package data +Summary: Common files for the Unity shell +BuildArch: noarch +Group: User Interface/Desktops +# For /usr/etc/pam.d/unity +Recommends: gnome-keyring-pam +Requires: %{name} = %{version}-%{release} + +%description data +This package contains data (non-arch specific) files to Unity 7. + +%package -n python3-uwidgets +Summary: Widgets for Unity7 +Requires: %{name} = %{version}-%{release} + +%description -n python3-uwidgets +This package contains support for widgets for Unity7, based on Blighty. + +%prep +%autosetup -n unity-%{version}+23.04.20230222.2 -p1 +# Correct/not use ubuntu's API +sed -i 's/ubuntu-lock-on-suspend/lock-enabled/' lockscreen/LockScreenSettings.cpp +# Not actually needed for Unity itself +sed -i '/libgeis/d' CMakeLists.txt + +%build +%cmake -DUNITY_PROTOCOL_PRIVATE_LIB=%{_libdir}/libunity/libunity-protocol-private.so.0.0.0 -DCOMPIZ_BUILD_WITH_RPATH=FALSE -DCOMPIZ_PACKAGING_ENABLED=TRUE -DCOMPIZ_PLUGIN_INSTALL_TYPE=package -DUSE_GSETTINGS=TRUE -DENABLE_UNIT_TESTS=FALSE + +%cmake_build + +pushd uwidgets/ +%py3_build +popd + +%install +pushd uwidgets/ +%py3_install +popd + +%cmake_install + +# Not the correct directory, /usr/etc/pam.d should be /etc/pam.d +mv -f %{buildroot}%{_prefix}%{_sysconfdir}/* %{buildroot}%{_sysconfdir} +rm -rf %{buildroot}%{_prefix}%{_sysconfdir} +# Upstart init is dead a long time ago and there isn't any package that provides anything to do with it. +rm -rf %{buildroot}%{_datadir}/upstart +# Needed directory for unity-panel-service +mkdir %{buildroot}%{_datadir}/unity/indicators + +%find_lang unity + +chrpath --delete $RPM_BUILD_ROOT%{_libdir}/compiz/libunityshell.so +chrpath --delete $RPM_BUILD_ROOT%{_libdir}/compiz/libunitymtgrabhandles.so +chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libunity-core-6.0.so.9.0.0 + +%py3_shebang_fix $RPM_BUILD_ROOT%{_bindir}/unity +%py3_shebang_fix $RPM_BUILD_ROOT%{_libdir}/unity/makebootchart.py + +# For some reason prefix is not set and causes linkage issues +sed -i 's!prefix=!prefix=%{_prefix}!' %{buildroot}%{_libdir}/pkgconfig/unity-core-6.0.pc +sed -i 's!exec_prefix=libexec!exec_prefix=%{_prefix}!' %{buildroot}%{_libdir}/pkgconfig/unity-core-6.0.pc +sed -i 's!libdir=%{_lib}!libdir=%{_libdir}!' %{buildroot}%{_libdir}/pkgconfig/unity-core-6.0.pc +sed -i 's!includedir=include!includedir=%{_prefix}/include!' %{buildroot}%{_libdir}/pkgconfig/unity-core-6.0.pc + +%ldconfig_post + +%postun +if [ ${1} -eq 0 ]; then + glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : +fi + +%posttrans +glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : + +%files +%doc AUTHORS ChangeLog HACKING README +%license COPYING COPYING.LGPL +%{_bindir}/unity +%{_libdir}/compiz/libunitymtgrabhandles.so +%{_libdir}/compiz/libunityshell.so +%{_mandir}/man1/unity.1.gz +%{_mandir}/man1/unity-panel-service.1.gz +%dir %{_libdir}/unity/ +%{_libdir}/unity/compiz-config-profile-setter +%{_libdir}/unity/compiz-profile-selector +%{_libdir}/unity/systemd-prestart-check +%{_libdir}/unity/makebootchart.py +%{_libdir}/unity/unity-panel-service +%{_libdir}/unity/unity-active-plugins-safety-check +%{_libdir}/unity/upstart-prestart-check + +%files core +%doc AUTHORS ChangeLog HACKING README +%license COPYING COPYING.LGPL +%{_libdir}/libunity-core-6.0.so.* + +%files core-devel +%doc AUTHORS ChangeLog HACKING README +%license COPYING COPYING.LGPL +%dir %{_includedir}/Unity-6.0/ +%dir %{_includedir}/Unity-6.0/UnityCore/ +%{_includedir}/Unity-6.0/UnityCore/*.h +%{_libdir}/libunity-core-6.0.so +%{_libdir}/pkgconfig/unity-core-6.0.pc + +%files data -f unity.lang +%doc AUTHORS ChangeLog HACKING README +%license COPYING COPYING.LGPL +%{_datadir}/ccsm/icons/hicolor/64x64/apps/plugin-unityshell.png +%{_datadir}/glib-2.0/schemas/com.canonical.Unity.gschema.xml +%{_datadir}/glib-2.0/schemas/org.compiz.unitymtgrabhandles.gschema.xml +%{_datadir}/glib-2.0/schemas/org.compiz.unityshell.gschema.xml +%dir %{_datadir}/unity/ +%dir %{_datadir}/unity/indicators/ +%dir %{_datadir}/unity/icons/ +%{_datadir}/unity/icons/dash-widgets.json +%{_datadir}/unity/icons/*.png +%{_datadir}/unity/icons/*.svg +%{_datadir}/unity/icons/*.svg.save +%{_datadir}/unity/icons/searchingthedashlegalnotice.html +%dir %{_datadir}/unity/themes/ +%{_datadir}/unity/themes/dash-widgets.json +%{_datadir}/compiz/unitymtgrabhandles.xml +%{_datadir}/compiz/unityshell.xml +%dir %{_datadir}/compiz/unitymtgrabhandles +%dir %{_datadir}/compiz/unitymtgrabhandles/images/ +%{_datadir}/compiz/unitymtgrabhandles/images/handle-*.png +%{_datadir}/gnome-control-center/keybindings/50-unity-launchers.xml +%{_datadir}/compizconfig/upgrades/*.upgrade +%config %{_sysconfdir}/pam.d/unity +%config %{_sysconfdir}/compizconfig/unity* +%{_userunitdir}/unity*.service +%{_userunitdir}/unity*.target + +%files -n python3-uwidgets +%doc README +%license uwidgets/LICENCE +%{_bindir}/uwidgets-runner +%{python3_sitearch}/uwidgets-*.egg-info/ +%{python3_sitearch}/uwidgets/ + +%changelog +%autochangelog diff --git a/anda/desktops/unity-shell/update.rhai b/anda/desktops/unity-shell/update.rhai new file mode 100644 index 0000000000..f2c7f60807 --- /dev/null +++ b/anda/desktops/unity-shell/update.rhai @@ -0,0 +1,4 @@ +let html = get("http://archive.ubuntu.com/ubuntu/pool/universe/u/unity/?C=N;O=D"); +let v = find("unity_([\\d.]+)\\+.+?.tar.xz", html, 1); +rpm.version(v); +rpm.define("archive", find("unity_([\\d.]+)\\+.+?.tar.xz", html, 0)); diff --git a/anda/desktops/unityx-shell/0001-Remove-social-scope.patch b/anda/desktops/unityx-shell/0001-Remove-social-scope.patch new file mode 100644 index 0000000000..15ba87317a --- /dev/null +++ b/anda/desktops/unityx-shell/0001-Remove-social-scope.patch @@ -0,0 +1,13 @@ +diff --git a/data/org.unityd.UnityX.gschema.xml b/data/org.unityd.UnityX.gschema.xml +index 6721d27..808b384 100644 +--- a/data/org.unityd.UnityX.gschema.xml ++++ b/data/org.unityd.UnityX.gschema.xml +@@ -187,7 +187,7 @@ + + + +- [ 'home.scope', 'applications.scope', 'files.scope', 'video.scope', 'music.scope', 'photos.scope', 'social.scope' ] ++ [ 'home.scope', 'applications.scope', 'files.scope', 'video.scope', 'music.scope', 'photos.scope' ] + List of scope ids specifying which scopes should be created and the order to display them in. + The scopes listed in the scope bar will be ordered according to this list. + diff --git a/anda/desktops/unityx-shell/anda.hcl b/anda/desktops/unityx-shell/anda.hcl new file mode 100644 index 0000000000..50d5e7b48e --- /dev/null +++ b/anda/desktops/unityx-shell/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "unityx-shell.spec" + } +} diff --git a/anda/desktops/unityx-shell/unityx-shell.spec b/anda/desktops/unityx-shell/unityx-shell.spec new file mode 100644 index 0000000000..2c52fd5bac --- /dev/null +++ b/anda/desktops/unityx-shell/unityx-shell.spec @@ -0,0 +1,215 @@ +%global forgeurl https://gitlab.com/ubuntu-unity/unity-x/unityx +%global commit 46dd5199d1cce639f559eda4519aff77ef9c4433 +%forgemeta + +%define __python /usr/bin/python3 + +Name: unityx-shell +Version: 1.7.7 +Release: 2%?dist +Summary: UnityX is a smaller shell based on Unity7 + +License: GPL-3.0 AND LGPL-3.0 +URL: https://gitlab.com/ubuntu-unity/unity-x/unityx +Source0: %{url}/-/archive/%commit/unityx-%commit.tar.bz2 +Source2: https://gitlab.xfce.org/panel-plugins/xfce4-windowck-plugin/-/commit/dee596492f006d02e2b39abd072ddd7b37fefe82.diff +Patch0: 0001-Remove-social-scope.patch + +BuildRequires: fdupes +BuildRequires: cmake +BuildRequires: g++ +BuildRequires: gcc +BuildRequires: chrpath +BuildRequires: pkgconfig(dee-1.0) +BuildRequires: pkgconfig(unity-settings-daemon) +BuildRequires: pkgconfig(gnome-desktop-3.0) +BuildRequires: zeitgeist-devel +BuildRequires: libappstream-glib-devel +BuildRequires: libdbusmenu-devel +BuildRequires: bamf-devel +BuildRequires: terra-libindicator-gtk3-devel +BuildRequires: json-glib-devel +BuildRequires: libnotify-devel +BuildRequires: libsigc++20-devel +#BuildRequires: xpathselect-devel +#BuildRequires: libunity-devel +BuildRequires: doxygen +BuildRequires: pam-devel +BuildRequires: boost-devel +BuildRequires: pkgconfig(nux-4.0) +BuildRequires: pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(unity-protocol-private) +BuildRequires: libunity libunity-devel +# unityx-shell-xfce4-windowck-plugin +BuildRequires: pkgconfig(libwnck-3.0) +BuildRequires: pkgconfig(libxfconf-0) +BuildRequires: pkgconfig(libxfce4util-1.0) +BuildRequires: pkgconfig(libxfce4ui-2) +BuildRequires: pkgconfig(libxfce4panel-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: xfce4-vala +BuildRequires: xfce4-dev-tools +BuildRequires: python3-devel + +# Various things are missing that it won't run and it gives a segmentfault if Unity is missing? +# Needs more investigating +Requires: unity-shell +Requires: unity-scope-home +Requires: python3-pydbus +Requires: python3-psutil +Requires: unity-asset-pool +Requires: libunity-misc-devel +Requires: geis-devel +Requires: unity-settings-daemon +Requires: unity-gtk3-module +Requires: unity-gtk2-module +Requires: terra-libindicator-gtk3 +Requires: plotinus%{?_isa} = %{version}-%{release} +Requires: bamf-daemon +Requires: xbindkeys +# For default configuration +Requires: %{name}-xfce4-windowck-plugin%{?_isa} = %{version}-%{release} +Requires: nemo +Requires: blueman +Requires: network-manager-applet +Requires: xfce4-vala-panel-appmenu-plugin +Requires: xfwm4 + +%description +UnityX is a shell based off code from Unity7 with lighter dependencies and more +customizability. + +%package xfce4-windowck-plugin +Summary: Core library for the Unity shell +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description xfce4-windowck-plugin +This package contains the core library needed for Unity and Unity 2D. + +%package devel +Summary: Development files for the core Unity library +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: pkgconfig(dee-1.0) +Requires: pkgconfig(glib-2.0) +Requires: pkgconfig(sigc++-2.0) +Requires: pkgconfig(unity) +Requires: pkgconfig(nux-4.0) + +%description devel +This package contains the development files the core Unity library. + +%package -n plotinus +Summary: Automatic testing for Unity + +%description -n plotinus +This package contains the autopilot framework, which allows for triggering +keyboard and mouse events automatically. This package also contains the bindings +needed for writing automated tests in Python. + +%prep +%autosetup -n unityx-%commit -p1 + +%build +# Wrong paths +sed -i 's!lib/{arch}-linux-gnu!%{_lib}!' unityx/unityx +sed -i 's!%{_lib}/bamf/bamfdaemon!libexec/bamf/bamfdaemon!' unityx/unityx +sed -i 's!unity-settings-daemon!%{_libexecdir}/unity-settings-daemon!' unityx/unityx +%py3_shebang_fix unityx/unityx + +# Fix invalid argument calling dbus-update-activation-environment +sed -i 's/'--all', //' unityx/unityx + +# The caches again! +rm -fv unityx/windowck-plugin/po/.intltool-merge-cache* + +%cmake -DENABLE_X_SUPPORT=ON -DUNITY_PROTOCOL_PRIVATE_LIB=%{_libdir}/libunity/libunity-protocol-private.so.0.0.0 -DCOMPIZ_BUILD_WITH_RPATH=FALSE -DCOMPIZ_PACKAGING_ENABLED=TRUE -DCOMPIZ_PLUGIN_INSTALL_TYPE=package -DUSE_GSETTINGS=TRUE -DENABLE_UNIT_TESTS=FALSE +%cmake_build + +pushd unityx/plotinus +# Wrong path again +sed -i 's/LIBRARY DESTINATION lib/LIBRARY DESTINATION %{_lib}/' CMakeLists.txt +%cmake +%cmake_build +popd + +pushd unityx/windowck-plugin +# Upstream patch to fix icons being blurry +patch -i %{SOURCE2} -p1 + +NOCONFIGURE=1 \ +./autogen.sh + +%configure --disable-static +%make_build +popd + +%install +%cmake_install + +pushd unityx/plotinus +%cmake_install +popd + +pushd unityx/windowck-plugin +%make_install +rm -fv %{buildroot}%{_libdir}/*.la +popd + +chrpath --delete %{buildroot}%{_libdir}/libunityx-core-6.0.so.9.0.0 + +pushd %{buildroot} +ln -s %{_libdir}/unity .%{_libdir}/unityx +rm -rf .%{_datadir}/unityx +ln -s %{_datadir}/unity .%{_datadir}/unityx +popd + +%fdupes %buildroot%_datadir/themes/ + +%find_lang unityx +%find_lang xfce4-windowck-plugin + +%ldconfig_post + +%postun +if [ ${1} -eq 0 ]; then + glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : +fi + +%posttrans +glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : + +%files -f unityx.lang +%doc AUTHORS ChangeLog README.md +%license COPYING COPYING.LGPL +%{_bindir}/unityx* +%{_libdir}/unityx +%{_libdir}/libunityx-core-6.0.so.* +%{_datadir}/glib-2.0/schemas/org.unityd.UnityX.gschema.xml +%{_datadir}/glib-2.0/schemas/org.unityd.UnityX.user-interface.gschema.xml +%{_datadir}/unityx +%{_datadir}/xsessions/unityx.desktop + +%files -n plotinus +%doc unityx/plotinus/README.md +%license COPYING COPYING.LGPL +%{_bindir}/plotinus +%{_libdir}/libplotinus.so +%{_datadir}/glib-2.0/schemas/org.unityd.UnityX.plotinus.gschema.xml + +%files devel +%dir %{_includedir}/UnityX-6.0/UnityCore/ +%{_includedir}/UnityX-6.0/UnityCore/*.h +%{_libdir}/libunityx-core-6.0.so +%{_libdir}/pkgconfig/unityx-core-6.0.pc + +%files xfce4-windowck-plugin -f xfce4-windowck-plugin.lang +%doc unityx/windowck-plugin/AUTHORS unityx/windowck-plugin/NEWS unityx/windowck-plugin/README.md +%license unityx/windowck-plugin/COPYING +%{_libdir}/xfce4/panel/plugins/*.so +%{_datadir}/icons/hicolor/48x48/apps/*.png +%{_datadir}/themes/Windowck/ +%{_datadir}/themes/Windowck-dark/ +%{_datadir}/xfce4/panel/plugins/*.desktop + +%changelog +%autochangelog diff --git a/anda/lib/openh264/hardcode-openh264-dep.patch b/anda/lib/openh264/hardcode-openh264-dep.patch new file mode 100644 index 0000000000..fbedcd96e1 --- /dev/null +++ b/anda/lib/openh264/hardcode-openh264-dep.patch @@ -0,0 +1,14 @@ +diff -up gst-plugins-bad-1.18.2/ext/openh264/meson.build.orig gst-plugins-bad-1.18.2/ext/openh264/meson.build +--- gst-plugins-bad-1.18.2/ext/openh264/meson.build.orig 2020-12-06 14:24:13.000000000 +0100 ++++ gst-plugins-bad-1.18.2/ext/openh264/meson.build 2021-02-11 11:48:58.660450319 +0100 +@@ -4,9 +4,7 @@ openh264_sources = [ + 'gstopenh264plugin.c', + ] + +-openh264_dep = dependency('openh264', version : '>= 1.3.0', +- required : get_option('openh264'), +- fallback: ['openh264', 'openh264_dep']) ++openh264_dep = cc.find_library('openh264') + + if openh264_dep.found() + gstopenh264 = library('gstopenh264',