Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hyprland for openSUSE:Factory checked in at 2024-08-09 16:14:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hyprland (Old) and /work/SRC/openSUSE:Factory/.hyprland.new.7232 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "hyprland" Fri Aug 9 16:14:37 2024 rev:26 rq:1192550 version:0.42.0 Changes: -------- --- /work/SRC/openSUSE:Factory/hyprland/hyprland.changes 2024-06-27 16:03:22.894785999 +0200 +++ /work/SRC/openSUSE:Factory/.hyprland.new.7232/hyprland.changes 2024-08-09 16:15:04.715969902 +0200 @@ -1,0 +2,203 @@ +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 + +------------------------------------------------------------------- Old: ---- hyprland-0.41.2.tar.xz New: ---- hyprland-0.42.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hyprland.spec ++++++ --- /var/tmp/diff_new_pack.LyWmiI/_old 2024-08-09 16:15:06.396040028 +0200 +++ /var/tmp/diff_new_pack.LyWmiI/_new 2024-08-09 16:15:06.400040195 +0200 @@ -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: 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(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 @@ 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 @@ Summary: Fish Completion for %{name} Group: System/Shells Requires: %{name} +Requires: awk Requires: fish Supplements: (%{name} and fish) BuildArch: noarch @@ -130,6 +132,7 @@ Summary: ZSH Completion for %{name} Group: System/Shells Requires: %{name} +Requires: awk Requires: zsh Supplements: (%{name} and zsh) BuildArch: noarch @@ -161,10 +164,6 @@ %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 @@ %{_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 @@ %{_mandir}/man1/hyprctl.* %files wallpapers -%{_datadir}/%{name}/wall* +%{_datadir}/%{shortname}/wall* %if %{with devel} %files devel ++++++ hyprland-0.41.2.tar.xz -> hyprland-0.42.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/hyprland/hyprland-0.41.2.tar.xz /work/SRC/openSUSE:Factory/.hyprland.new.7232/hyprland-0.42.0.tar.xz differ: char 15, line 1 ++++++ opensuse-hyprpm-use-hyprland-devel-subpkg.patch ++++++ --- /var/tmp/diff_new_pack.LyWmiI/_old 2024-08-09 16:15:06.476043367 +0200 +++ /var/tmp/diff_new_pack.LyWmiI/_new 2024-08-09 16:15:06.484043701 +0200 @@ -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 @@ 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 @@ 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 @@ #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 @@ - 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 @@ - 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 @@ - 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 @@ - 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 @@ - // 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 @@ 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() {