%global debug_package %{nil} %undefine _debugsource_packages Name: treeland Version: 0.8.15 Release: 1%{?dist} Summary: Deepin Wayland compositor based on wlroots and QtQuick (bundles waylib + qwlroots) License: GPL-3.0-or-later URL: https://github.com/linuxdeepin/treeland Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: fix-sd-session-username.py BuildRequires: cmake >= 3.25.0 BuildRequires: gcc14 BuildRequires: gcc14-c++ BuildRequires: pkgconfig # Qt6 (need 6.8+, we have 6.8.4) BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtbase-private-devel BuildRequires: qt6-qtdeclarative-devel BuildRequires: qt6-qtdeclarative-private-devel BuildRequires: qt6-qtwayland-devel BuildRequires: qt6-qtshadertools-devel BuildRequires: qt6-qttools-devel BuildRequires: qt6-qtremoteobjects-devel BuildRequires: qt6-qtsvg-devel # DTK6 BuildRequires: dtk6core-devel BuildRequires: dtk6declarative-devel BuildRequires: dtksystemsettings-devel BuildRequires: ddm-devel BuildRequires: dtkcommon # Wayland / wlroots stack (waylib+qwlroots built inline against system wlroots 0.19) BuildRequires: wlroots-devel BuildRequires: wayland-devel BuildRequires: wayland-protocols-devel BuildRequires: wlr-protocols-devel BuildRequires: treeland-protocols-devel BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(libseat) BuildRequires: pkgconfig(libsystemd) BuildRequires: pam-devel BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-randr) BuildRequires: pkgconfig(xau) BuildRequires: hwdata BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libgbm-devel # XWayland support (treeland-xwayland) BuildRequires: xorg-x11-server-Xwayland Requires: xorg-x11-server-Xwayland Requires: qt6-qtwayland Requires: wlroots %description Treeland is Deepin's Wayland compositor built on wlroots and QtQuick, providing the layer-shell and window-management foundation for the DDE 2.0 shell (dde-shell). This build vendors waylib and qwlroots and links the system wlroots 0.19. The display manager (DDM) integration is disabled; the compositor runs standalone (suitable for headless / VNC use). Includes built-in XWayland. %prep %autosetup -n %{name}-%{version} # Drop wallpaper-factory (needs libmpv for video wallpapers; not available/needed) sed -i '/add_subdirectory(wallpaper-factory)/d' CMakeLists.txt python3 %{SOURCE1} %build # AL2023 pam-devel ships no pam.pc, but treeland's CMake does pkg_check_modules(pam). # Provide a minimal pam.pc and expose it via PKG_CONFIG_PATH. mkdir -p %{_builddir}/pkgconfig-extra cat > %{_builddir}/pkgconfig-extra/pam.pc <<'PC' prefix=/usr libdir=/usr/lib64 includedir=/usr/include Name: pam Description: Pluggable Authentication Modules Version: 1.5.2 Libs: -lpam Cflags: PC export PKG_CONFIG_PATH="%{_builddir}/pkgconfig-extra:${PKG_CONFIG_PATH}" # WITH_SUBMODULE_WAYLIB builds the vendored waylib + qwlroots inline against the # system wlroots-0.19. DISABLE_DDM skips the Deepin Display Manager dependency. %cmake \ -DWITH_SUBMODULE_WAYLIB=ON \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING=OFF \ -DSYSTEMD_SYSTEM_UNIT_DIR=%{_prefix}/lib/systemd/system \ -DSYSTEMD_USER_UNIT_DIR=%{_prefix}/lib/systemd/user %cmake_build %install %cmake_install %files %license LICENSE* %{_bindir}/treeland %{_bindir}/treeland.sh %{_bindir}/treeland-debug %{_bindir}/treeland-user-wrapper %{_libexecdir}/treeland-screensaver %{_libexecdir}/treeland-sd %{_libexecdir}/treeland-xwayland %{_libexecdir}/treeland-session-helper %{_libdir}/*.so.* %{_libdir}/treeland/ %{_datadir}/wayland-sessions/*.desktop %{_datadir}/treeland/ %{_datadir}/dsg/ %{_datadir}/dbus-1/ %{_prefix}/lib/systemd/ # waylib/qwlroots/treeland development files (bundled) %{_includedir}/qwlroots/ %{_includedir}/waylibserver/ %{_includedir}/treeland/ %{_libdir}/*.so %{_libdir}/cmake/ %{_libdir}/pkgconfig/*.pc %changelog * Sat Jul 18 2026 Yonghang Wang - 0.8.15-1 - Initial treeland build for AL2023: vendored waylib+qwlroots, system wlroots 0.19, DDM disabled, XWayland enabled