From 87f5bc587023f88834f63357f51df0e392c5330d Mon Sep 17 00:00:00 2001 From: Elysia <1391048988@qq.com> Date: Sun, 9 Nov 2025 12:33:38 +0800 Subject: [PATCH] Change hyprland-qt-support to local build --- .../SPECS/hyprland-qt-support.spec | 46 +++++++++++++++++++ sdata/dist-fedora/install-deps.sh | 35 +++++++------- 2 files changed, 62 insertions(+), 19 deletions(-) create mode 100644 sdata/dist-fedora/SPECS/hyprland-qt-support.spec diff --git a/sdata/dist-fedora/SPECS/hyprland-qt-support.spec b/sdata/dist-fedora/SPECS/hyprland-qt-support.spec new file mode 100644 index 000000000..73d7ea0da --- /dev/null +++ b/sdata/dist-fedora/SPECS/hyprland-qt-support.spec @@ -0,0 +1,46 @@ +# Original-Spec: https://copr-dist-git.fedorainfracloud.org/packages/solopasha/hyprland/hyprland-qt-support.git/plain/hyprland-qt-support.spec?h=master + +Name: hyprland-qt-support +Version: 0.1.0 +Release: %autorelease -b9 +Summary: A Qt6 Qml style provider for hypr* apps +License: BSD-3-Clause +URL: https://github.com/hyprwm/hyprland-qt-support +Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: %{ix86} + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: qt6-rpm-macros + +BuildRequires: cmake(Qt6Quick) +BuildRequires: cmake(Qt6QuickControls2) +BuildRequires: cmake(Qt6Qml) + +BuildRequires: pkgconfig(hyprlang) + +%description +%{summary}. + +%prep +wget --content-disposition -q -N -P %{_sourcedir} %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +%autosetup -p1 + +%build +%cmake -DINSTALL_QMLDIR=%{_qt6_qmldir} +%cmake_build + +%install +%cmake_install + +%files +%license LICENSE +%doc README.md +%{_prefix}/lib/libhyprland-quick-style-impl.so +%{_prefix}/lib/libhyprland-quick-style.so +%{_qt6_qmldir}/org/hyprland/ + +%changelog +%autochangelog \ No newline at end of file diff --git a/sdata/dist-fedora/install-deps.sh b/sdata/dist-fedora/install-deps.sh index 8f813da84..457290401 100644 --- a/sdata/dist-fedora/install-deps.sh +++ b/sdata/dist-fedora/install-deps.sh @@ -13,7 +13,7 @@ case $SKIP_SYSUPDATE in esac # Development-tools installation -v sudo dnf install @development-tools fedora-packager rpmdevtools fonts-rpm-macros -y +v sudo dnf install @development-tools fedora-packager rpmdevtools fonts-rpm-macros qt6-rpm-macros -y # COPR repositories v sudo dnf copr enable solopasha/hyprland -y @@ -42,17 +42,12 @@ v sudo dnf install ${themes_deps[@]} -y # Hyprland hyprland_deps=( - hypridle hyprland hyprlock hyprpicker - hyprsunset xdg-desktop-portal-hyprland wl-clipboard + hypridle hyprland hyprlock hyprpicker hyprsunset + xdg-desktop-portal-hyprland wl-clipboard ) v sudo dnf install --setopt="install_weak_deps=False" "${hyprland_deps[@]}" -y - -## About `hyprland-qtutils` and `hyprland-qt-support` -# The hyprland-qt-support's GitHub repository requires Qt 6.6 or higher, which I think makes DNF's requirement of Qt 6.9 too strict; it should also support Qt 6.10. -# On distro like Arch Linux, `hyprland-qtutils` and `hyprland-qt-support` are in dependency chain already so no need to add them as deps explicitly; -# However on Fedora, if this package is not installed, a yellow warning⚠️ will appear every time you log in to Hyprland. -v dnf download hyprland-qt-support && v sudo rpm -ivh --nodeps hyprland-qt-support-*.fc$(rpm -E %fedora).$(uname -m).rpm -v sudo dnf install hyprland-qtutils -y +# hyprland-qt-support's build deps +v sudo dnf install hyprlang-devel # KDE v sudo dnf install bluedevil gnome-keyring NetworkManager plasma-nm polkit-kde dolphin plasma-systemsettings -y @@ -79,17 +74,16 @@ quickshell_custom_deps=( qt6-qtquicktimeline qt6-qtsensors qt6-qttools qt6-qttranslations qt6-qtvirtualkeyboard qt6-qtwayland kdialog kf6-syntax-highlighting ) +quickshell_build_deps=( + breakpad-static qt6-qtdeclarative-devel qt6-qtshadertools-devel breakpad-devel + gcc-c++ ninja-build mesa-libgbm-devel cli11-devel glib2-devel jemalloc-devel + libdrm-devel pipewire-devel pam-devel polkit-devel wayland-devel wayland-protocols-devel + qt6-qtbase-private-devel spirv-tools + libasan +) v sudo dnf install "${quickshell_deps[@]}" -y v sudo dnf install "${quickshell_custom_deps[@]}" -y -# Dynamically control the version of quickshell -qs_version=$(dnf list --showduplicates quickshell-git 2>/dev/null | - grep -E "\.git${_qs_shortcommit}(-|$)" | - awk '{print $2}' | - sort -V | - tail -n1) -v sudo dnf versionlock delete quickshell-git 2>/dev/null -v sudo dnf install quickshell-git-${qs_version} -v sudo dnf versionlock add quickshell-git +v sudo dnf install "${quickshell_build_deps[@]}" -y # Screencapture v sudo dnf install hyprshot slurp swappy tesseract tesseract-langpack-eng tesseract-langpack-chi_sim wf-recorder -y @@ -121,3 +115,6 @@ install_RPMS() { showfun install_RPMS v install_RPMS + +# hyprland-qtutils depends on hyprland-qt-support +v sudo dnf install hyprland-qtutils -y \ No newline at end of file