Accepting request 1192550 from X11:Wayland

OBS-URL: https://build.opensuse.org/request/show/1192550
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hyprland?expand=0&rev=26
This commit is contained in:
Dominique Leuenberger 2024-08-09 14:14:37 +00:00 committed by Git OBS Bridge
commit df60bf64b0
5 changed files with 246 additions and 39 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cbf31acef7031076888e8b0891cbcf6093c6a08f9399735aecbbdd45ee3bb0ee
size 51587912

3
hyprland-0.42.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2ef6a30f5a68cea1171dd69e8bbe84a773c6a83b5d70e101c8318320a758b003
size 51160524

View File

@ -1,3 +1,206 @@
-------------------------------------------------------------------
Thu Aug 8 07:43:20 UTC 2024 - Florian "sp1rit" <sp1rit@disroot.org>
- Update to version 0.42.0:
+ At last, a very large update 0.42.0 has finally dropped!
+ Notable changes:
- Wlroots has been dropped, and is no longer a dependency.
- Explicit sync support has been added and will be automatically
turned on/off depending on your setup. For some select nvidia
users, this might cause glitches. In such cases, disable it
with render:explicit_sync = false
- Old protocol implementations redone in our newer, more
memory-safe impl style.
- In-house XCursor implementation for legacy themes
- Tons and tons of fixes and performance improvements!
+ Breaking changes:
- misc:no_direct_scanout -> render:direct_scanout
- fakefullscreen has been dropped in favor of the new
fullscreenstate dispatcher
+ New features:
- config: add option to exit window while retaining fullscreen
(#516) (#6880)
- core: Add missing header for libc++ after e989a0b (#7158)
- core: add a destructor to CHyprOpenglImpl and avoid
wl_container_of undefined behaviour (#7101)
- crashreporter: add date and flags to crash report (#7028)
- debug: add Nvidia driver info (#6715)
- hyprpm: add short error code explanations
- internal: Add functions to hyprctl header (#6745)
- keybinds: add bindp and noshortcutsinhibit (#7017)
- keybinds: add safeguard to mousebinds (#7034)
- pluginapi: Add force reload of config at the end of plugin
initialization (#7099)
- pointer: change min cursor padding to 0 (#6027)
- socket2: Add windowtitlev2 event which includes the window
address (#6856)
- touch: add touch swipe invert config (#6940)
+ Fixes:
- border: fixup infinite recursion
- compositor: fix general:extend_border_grab_area (#7214)
- compositor: fix log typos (#7111)
- configmgr: fix warning
- core/surface/buffer: Buffer lock/release fixes (#7110)
- core/surface: fixup a few pointer handling edge cases
- core: Fix crash on opening chromium (#6932)
- core: fix a few ubsan issues reported at exit of hyprland
(#6699)
- decorations: fix infinite recursion on no_gaps when only (#7169)
- drm-syncobj: fixup fd leak with timelines
- hyprctl: increase hyprctl timeout to 5s to fix #6801 (#7152)
- ime-relay: fix crash on nullptr surface focus
- input: Fix hyprctl switchxkblayout not actually changing layout
(#7070)
- input: fix capabilities enum types passed
- input: fix invalid usage of dev in setTouchDeviceConfigs
- input: fix keyboard leds with multiple keyboards (#7079)
- input: fix leds on kb creation (#7206)
- internal: fix fullscreen typos (#7134)
- keybinds: fix NoSymbol keybinds (#7199)
- keybinds: fix movewindow float to 0 (#6777)
- layersurface: fixup focus issues in onUnmap
- layout: fix dynamic rules not updating after setting fullscreen
(#7129)
- meson: fix wlroots-hyprland dep checks (for libliftoff patch to
work) (#6736)
- output: minor tearing fixes
- pointer: fix buffer crash (#7131)
- presentation-feedback: fix invalid values sent after aq merge
- renderer: Explicit sync fixes (#7151)
- renderer: fix a few xray regressions (#6855)
- renderer: fixup crashes on inaccessible files for bg
- renderer: fixup nvidia driver version checks
- renderer: partially revert previous xray fix (#6868)
- session: fix activate events being always treated as on (#6696)
- sessionLock: fix the check for locking a locked session (#6843)
- shortcutsInhibit: fix crash
- style: fix clang-format
- surface: fix zero_scaling xwayland damage
- surface: fixup logical damage size calculations
- toplevelexport: fix flipped r/b channels when sharing windows
(#6861)
- touch: fix touch swipe invert config (#7014)
- virtual-pointer: fixup virtual pointer warp events
- wayland/compositor: fixup buffer damage tracking for
wl_shm buffers
- wayland/compositor: fixup double buffer releases
- wayland/surface: fixup self-owning surface roles
- xdg-shell: fix xdg-positioner y-flip (#7094)
- xdg-shell: fixup unassigned wl surfaces to xdg surfaces
- xwayland: fix high cpu idle usage
- xwayland: fix setting title prop (#6809)
- xwayland: fixup WM_SIZE_HINTS handling according to ICCCM
- xwm: Fix xwayland black window bug after losing focus (#6966)
+ Other:
- Meson: replace props.json with VERSION
- Meson: install config and wallpapers to DATADIR/hypr
- Completions: use only awk (#6763)
- Core: Move to aquamarine (#6608)
- compositor: ignore setting surface scanout if DS is disabled
- compositor: implement wayland socket handover (#6930)
- compositor: minor cleanups for fading out layers
- compositor: simplify getWindowFromSurface
- config: avoid using initial ws tracking for exec-once
- config: don't crash when getenv HOME returns null
- config: use hyprutils helper (#6891)
- core/surface: drop map/unmap events in member funcs
- core: Improve handling of window properties (#6776)
- core: Properly shutdown wl display (#7018)
- core: avoid locking 2 wayland sockets (#6971)
- core: emit unmap event after unmap in surface destroy
- core: move to steady_clock where applicable
- cursor: Better xcursor implementation (#7178)
- cursormgr: avoid scanning ill formed inherit (#7211)
- cursormgr: implement inheriting themes for xcursor (#7197)
- debug: dont manually unlock the lock_guard (#7210)
- debug: get rid of useless 1s in logs (#6969)
- egl: attempt a 3.2 egl context first
- egl: avoid setting debug mode and handle legacyrenderer
- egl: require gles 3.0 only
- egl: support getting the device via platform_device
- ext-foreign-toplevel: Send done after title and class (#6857)
- hyprctl completions: Use only awk rather than grep + awk
- hyprctl: link to much less libraries (#7212)
- hyprerror: minor stylistic changes
- hyprpm: execute all git commands regardless of fails
- hyprpm: init submodules after resets
- input: Emulate discrete scrolling from v120 events (#6881)
- input: don't simulate mouse movement on focus change in
follow_mouse = 2/3 if no_warps is false (#7015)
- input: refocus last window on keyboard unfocusable surfaces
- input: unify removing currentlyDraggedWindow (#7071)
- inputmgr: ensure we dont divide by zero (#6713)
- internal: refactor fullscreen states (#7104)
- internal: some minor fd/socket cleanups and make logging thread
safe (#7123)
- keybinds: allow toggling fullscreenstate (#7128)
- keybinds: handle monitor change in moveWindowIntoGroup (#7030)
- keybinds: handle null monitor in pinActive (#7122)
- keybinds: improve fullscreenstate toggling (#7174)
- keybinds: never switch to another monitor with per_monitor
(#6665)
- keybinds: remove toggleopaque (#7024)
- keyboard: properly update keymap state and fd on keymap changes
- keyboard: update xkb state after key event
- layer-shell: avoid crashes on unmap (#7092)
- layer-shell: properly map and unmap surface and propagate unmap
events
- layer-shell: validate exclusiveEdge and don't set it as top by
default (#7006)
- layershell: don't throw misaligned error on exclusive edge 0
- layersurface: null check for surface validity before unmap()
- layout: update workspace rules on layout change (#6878)
- meson: install wayland.hpp header
- opengl: destroy cairo image surface after use
- output: submit damage to kms
- pointer-constraint: set lifetime correctly
- pointer/hw: extend cursor swapchain to 3
- pointer: round position when rendering software cursors
- pointer: update geometry after unplug events
- pointer: use preMonitorCommit for resetting render state
- protocols: Move globalshortcuts impl (#7102)
- protocols: move screencopy and toplevel export to
hyprwayland-scanner (#7065)
- protocols: move text-input-v1 to hyprwayland-scanner (#7096)
- renderer/layer-shell: use explicitly set exclusiveEdge (#6984)
- renderer: Make shader time always count from zero (#6903)
- renderer: don't skip back background on preBlurQueued
- renderer: don't use the surface counter in popup iterations
- renderer: drastically optimize bg texture creation
- renderer: drop redundant spammy trace log
- renderer: guard layer in renderLayer
- renderer: untransform textures matching display transform
- renderer: use session lock alpha for rendering lacking locks
- seat: don't send keyboard data without a keyboard cap (#6697)
- session-lock: send locked after the lock screen is properly
rendered (#6850)
- sessionLock: don't sendLocked when session lock has already
been destoyed (#7150)
- sessionLock: focus lock on creation based on mouse position
(#6658)
- surface: avoid crashes on fading out layers
- surface: emit unmap before unmapping and releasing the buffers
- tablet: Send .frame() on .proximity_out() (#6761)
- touch: set lastInputTouch on every event
- virtualptr: allow binding to output
- virtualptr: map to entire screen if no output is provided
- wayland/compositor: drop pending buffer ref if synchronous
- wayland/compositor: release buffers on unmap
- wayland/output: avoid sending events to dead outputs
- window/ls: reset core signals after destroy
- window: drop ack requirement for applying pending reported size
- window: override noMaximize if new window takes over fullscreen
(#6812) (#6870)
- wl_seat: avoid sending events to objects without caps
- workspaces: don't try to reopen special workspaces (#6802)
- xcursor: rework bootleg xcursor (#7140)
- xdg-shell: completely rewrite xdg-positioner (#7067)
- xdg-shell: make xdg-positioner flip target greatest available
space (#7209)
- xwayland: avoid unfocusing on OR child focuses
- xwayland: break cyclic loop of parents (#6722)
- xwm: drop invalid case for clearing X focus
-------------------------------------------------------------------
Wed Jun 26 07:58:46 UTC 2024 - Florian "spirit" <sp1rit@disroot.org>

View File

@ -19,8 +19,10 @@
%bcond_without devel
%define shortname hypr
Name: hyprland
Version: 0.41.2
Version: 0.42.0
Release: 0
Summary: Dynamic tiling Wayland compositor
License: BSD-3-Clause
@ -32,23 +34,20 @@ BuildRequires: cmake
BuildRequires: gcc-c++ >= 11
BuildRequires: git
BuildRequires: glslang-devel
BuildRequires: jq
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: pkgconfig(aquamarine)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gbm) >= 17.1.0
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(hwdata)
BuildRequires: pkgconfig(hyprcursor) >= 0.1.9
BuildRequires: pkgconfig(hyprlang) >= 0.3.2
BuildRequires: pkgconfig(hyprutils) >= 0.1.4
BuildRequires: pkgconfig(hyprutils) >= 0.2.1
BuildRequires: pkgconfig(hyprwayland-scanner) >= 0.3.8
BuildRequires: pkgconfig(libdisplay-info)
BuildRequires: pkgconfig(libdrm) >= 2.4.118
BuildRequires: pkgconfig(libinput) >= 1.14.0
BuildRequires: pkgconfig(libseat) >= 0.2.0
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(pangocairo)
@ -63,6 +62,7 @@ BuildRequires: pkgconfig(wayland-server) >= 1.22
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xcb-renderutil)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xwayland)
%if 0%{?suse_version}
@ -108,6 +108,7 @@ build plugins for hyprland.
Summary: Bash Completion for %{name}
Group: System/Shells
Requires: %{name}
Requires: awk
Requires: bash-completion
Supplements: (%{name} and bash-completion)
BuildArch: noarch
@ -119,6 +120,7 @@ The official bash completion script for %{name}.
Summary: Fish Completion for %{name}
Group: System/Shells
Requires: %{name}
Requires: awk
Requires: fish
Supplements: (%{name} and fish)
BuildArch: noarch
@ -130,6 +132,7 @@ The official fish completion script for %{name}.
Summary: ZSH Completion for %{name}
Group: System/Shells
Requires: %{name}
Requires: awk
Requires: zsh
Supplements: (%{name} and zsh)
BuildArch: noarch
@ -161,10 +164,6 @@ sed -i 's;REPLACE_ME_WITH_PREFIX;%{_prefix};' hyprpm/src/core/DataState.cpp
%install
%meson_install --tags runtime,man%{?with_devel:,devel}
%if %{with devel}
rm %{buildroot}/%{_libdir}/libwlroots.a %{buildroot}/%{_datadir}/pkgconfig/wlroots.pc
rm -rf %{buildroot}/%{_includedir}/wlr/
%endif
%files
%license LICENSE
@ -172,8 +171,8 @@ rm -rf %{buildroot}/%{_includedir}/wlr/
%{_bindir}/Hyprland
%{_bindir}/hyprctl
%{_bindir}/hyprpm
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/hyprland.conf
%dir %{_datadir}/%{shortname}
%{_datadir}/%{shortname}/hyprland.conf
%dir %{_datadir}/wayland-sessions/
%{_datadir}/wayland-sessions/%{name}.desktop
%dir %{_datadir}/xdg-desktop-portal
@ -182,7 +181,7 @@ rm -rf %{buildroot}/%{_includedir}/wlr/
%{_mandir}/man1/hyprctl.*
%files wallpapers
%{_datadir}/%{name}/wall*
%{_datadir}/%{shortname}/wall*
%if %{with devel}
%files devel

View File

@ -1,4 +1,4 @@
From 7c6a4e5b37a2e42a3f79fda15bb6116856928c93 Mon Sep 17 00:00:00 2001
From c34dc954cc6388e9bc9ea608152ae4fc3f201bb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20sp1rit=E2=80=8B?= <sp1rit@disroot.org>
Date: Fri, 14 Jun 2024 23:43:46 +0200
Subject: [PATCH] openSUSE: Use hyprland-devel instead of downloading from
@ -17,8 +17,8 @@ It also adds a new check to ensure that the subpackage is instealled.
Signed-off-by: Florian "sp1rit" <sp1rit@disroot.org>
---
hyprpm/src/core/DataState.cpp | 2 +-
hyprpm/src/core/PluginManager.cpp | 137 +++++-------------------------
2 files changed, 22 insertions(+), 117 deletions(-)
hyprpm/src/core/PluginManager.cpp | 140 +++++-------------------------
2 files changed, 21 insertions(+), 121 deletions(-)
diff --git a/hyprpm/src/core/DataState.cpp b/hyprpm/src/core/DataState.cpp
index 61ad336..99dbadd 100644
@ -34,7 +34,7 @@ index 61ad336..99dbadd 100644
void DataState::ensureStateStoreExists() {
diff --git a/hyprpm/src/core/PluginManager.cpp b/hyprpm/src/core/PluginManager.cpp
index 848b9ca..253c024 100644
index 6988547..036c705 100644
--- a/hyprpm/src/core/PluginManager.cpp
+++ b/hyprpm/src/core/PluginManager.cpp
@@ -14,6 +14,7 @@
@ -45,14 +45,14 @@ index 848b9ca..253c024 100644
#include <pwd.h>
#include <unistd.h>
@@ -397,136 +398,27 @@ bool CPluginManager::updateHeaders(bool force) {
@@ -406,134 +407,20 @@ bool CPluginManager::updateHeaders(bool force) {
const auto HLVER = getHyprlandVersion();
if (!hasDeps()) {
- std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not update. Dependencies not satisfied. Hyprpm requires: cmake, meson, cpio\n";
+ std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not update. Dependencies not satisfied. Hyprpm requires: hyprland-devel, cmake, meson, cpio\n";
return false;
- }
}
-
- if (!std::filesystem::exists("/tmp/hyprpm")) {
- std::filesystem::create_directory("/tmp/hyprpm");
@ -63,8 +63,8 @@ index 848b9ca..253c024 100644
- std::cout << "\n" << std::string{Colors::GREEN} + "✔" + Colors::RESET + " Headers up to date.\n";
- return true;
- }
+ }
-
+
CProgressBar progress;
- progress.m_iMaxSteps = 5;
+ progress.m_iMaxSteps = 1;
@ -110,12 +110,22 @@ index 848b9ca..253c024 100644
- progress.m_szCurrentMessage = "Checking out sources";
- progress.print();
-
- ret = execAndGet("cd " + WORKINGDIR + " && git checkout " + HLVER.branch + " 2>&1");
- if (m_bVerbose)
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "will run: " + "cd " + WORKINGDIR + " && git checkout " + HLVER.hash + " 2>&1");
-
- ret = execAndGet("cd " + WORKINGDIR + " && git checkout " + HLVER.hash + " 2>&1");
-
- if (ret.contains("fatal: unable to read tree")) {
- std::cerr << "\n"
- << Colors::RED << "✖" << Colors::RESET
- << " Could not checkout the running Hyprland commit. If you are on -git, try updating.\nYou can also try re-running hyprpm update with --no-shallow.\n";
- return false;
- }
-
- if (m_bVerbose)
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "git returned (co): " + ret);
-
- ret = execAndGet("cd " + WORKINGDIR + " && git rm subprojects/tracy && git submodule update --init 2>&1 && git reset --hard --recurse-submodules " + HLVER.hash);
- ret = execAndGet("cd " + WORKINGDIR + " ; git rm subprojects/tracy ; git submodule update --init 2>&1 ; git reset --hard --recurse-submodules " + HLVER.hash);
-
- if (m_bVerbose)
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "git returned (rs): " + ret);
@ -123,8 +133,7 @@ index 848b9ca..253c024 100644
- progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " checked out to running ver");
- progress.m_iSteps = 3;
- progress.m_szCurrentMessage = "Building Hyprland";
+ progress.m_szCurrentMessage = "Checking headers";
progress.print();
- progress.print();
-
- progress.printMessageAbove(std::string{Colors::YELLOW} + "!" + Colors::RESET + " configuring Hyprland");
-
@ -149,16 +158,12 @@ index 848b9ca..253c024 100644
- return false;
- }
-
- // le hack. Wlroots has to generate its build/include
- ret = execAndGet("cd " + WORKINGDIR + "/subprojects/wlroots-hyprland && meson setup -Drenderers=gles2 -Dexamples=false build");
- if (m_bVerbose)
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "meson returned: " + ret);
-
- progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " configured Hyprland");
- progress.m_iSteps = 4;
- progress.m_szCurrentMessage = "Installing sources";
- progress.print();
-
+ progress.m_szCurrentMessage = "Checking headers";
progress.print();
- std::string cmd =
- std::format("sed -i -e \"s#PREFIX = /usr/local#PREFIX = {}#\" {}/Makefile && cd {} && make installheaders", DataState::getHeadersPath(), WORKINGDIR, WORKINGDIR);
- if (m_bVerbose)
@ -172,7 +177,6 @@ index 848b9ca..253c024 100644
- // remove build files
- std::filesystem::remove_all(WORKINGDIR);
-
+
auto HEADERSVALID = headersValid();
if (HEADERSVALID == HEADERS_OK) {
progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " installed headers");
@ -181,15 +185,16 @@ index 848b9ca..253c024 100644
progress.m_szCurrentMessage = "Done!";
progress.print();
std::cout << "\n";
@@ -541,7 +428,7 @@ bool CPluginManager::updateHeaders(bool force) {
} else {
progress.printMessageAbove(std::string{Colors::RED} + "✖" + Colors::RESET + " failed to install headers with error code " + std::to_string((int)HEADERSVALID));
progress.printMessageAbove(std::string{Colors::RED} + "✖" + Colors::RESET + " failed to install headers with error code " + std::to_string((int)HEADERSVALID) + " (" +
headerErrorShort(HEADERSVALID) + ")");
- progress.m_iSteps = 5;
+ progress.m_iSteps = 1;
progress.m_szCurrentMessage = "Failed";
progress.print();
@@ -877,6 +769,19 @@ std::string CPluginManager::headerError(const eHeadersErrors err) {
@@ -904,6 +791,19 @@ std::string CPluginManager::headerErrorShort(const eHeadersErrors err) {
}
bool CPluginManager::hasDeps() {