%global debug_package %{nil} %global _missing_build_ids_terminate_build 0 Name: dde-daemon Version: 6.1.100 Release: 1%{?dist} Summary: Daemon for Deepin Desktop Environment License: GPL-3.0-or-later URL: https://github.com/linuxdeepin/dde-daemon Source0: %{name}-%{version}.tar.gz Source1: %{name}-%{version}-vendor.tar.bz2 BuildRequires: golang >= 1.20 BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: pkg-config BuildRequires: alsa-lib-devel BuildRequires: libinput-devel BuildRequires: systemd-devel BuildRequires: glib2-devel BuildRequires: libX11-devel BuildRequires: libXi-devel BuildRequires: libgudev-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gtk3-devel BuildRequires: gdk-pixbuf2-xlib-devel BuildRequires: libddcutil-devel BuildRequires: librsvg2-tools BuildRequires: gettext BuildRequires: python3 Requires: alsa-lib Requires: libinput Requires: systemd-libs Requires: glib2 Requires: libX11 Requires: libXi Requires: libgudev %description DDE Daemon is the core system daemon for the Deepin Desktop Environment. It manages hardware settings including audio, display, input devices, power management, bluetooth, keyboard bindings, and many other system services. %prep %autosetup -n %{name}-%{version} tar -xf %{SOURCE1} %build export CGO_ENABLED=1 export GOFLAGS="-mod=vendor -buildmode=pie" export GO_BUILD_FLAGS="-mod=vendor -buildmode=pie" export BUILD_TAGS=noscheduler # Build Go binaries mkdir -p out/bin for bin in dde-session-daemon dde-system-daemon grub2 search backlight_helper langselector soundeffect dde-lockservice default-terminal dde-greeter-setter default-file-manager greeter-display-daemon fix-xauthority-perm; do go build -mod=vendor -buildmode=pie -tags noscheduler \ -ldflags '-linkmode=external -extldflags "-pie"' \ -o out/bin/$bin ./bin/$bin done # Build desktop-toggle (C binary) gcc bin/desktop-toggle/main.c $(pkg-config --cflags --libs x11) -o out/bin/desktop-toggle # Build icons python3 misc/icons/install_to_hicolor.py -d status -o out/icons misc/icons/status # Build translations for po in misc/po/*.po; do lang=$(basename "$po" .po) mkdir -p out/locale/$lang/LC_MESSAGES msgfmt -o out/locale/$lang/LC_MESSAGES/dde-daemon.mo "$po" done # Generate polkit policies from .in + ts files # ts_to_policy needs deepin-policy-ts-convert which may not be available # Just use the .in files as .policy (they work without translations) for f in misc/polkit-action/*.policy.in; do base=$(basename "$f" .in) cp "$f" "misc/polkit-action/$base" done %install # Binaries mkdir -pv %{buildroot}%{_prefix}/lib/deepin-daemon cp -f out/bin/* %{buildroot}%{_prefix}/lib/deepin-daemon/ # Locale mkdir -pv %{buildroot}%{_datadir}/locale cp -r out/locale/* %{buildroot}%{_datadir}/locale/ # D-Bus configs mkdir -pv %{buildroot}%{_datadir}/dbus-1/system.d cp misc/conf/*.conf %{buildroot}%{_datadir}/dbus-1/system.d/ # D-Bus services mkdir -pv %{buildroot}%{_datadir}/dbus-1 cp -r misc/services %{buildroot}%{_datadir}/dbus-1/ cp -r misc/system-services %{buildroot}%{_datadir}/dbus-1/ # Polkit actions mkdir -pv %{buildroot}%{_datadir}/polkit-1/actions cp misc/polkit-action/*.policy %{buildroot}%{_datadir}/polkit-1/actions/ # Polkit rules mkdir -pv %{buildroot}%{_datadir}/polkit-1/rules.d/ cp misc/polkit-rules/*.rules %{buildroot}%{_datadir}/polkit-1/rules.d/ # DDE daemon data mkdir -pv %{buildroot}%{_datadir}/dde-daemon cp -r misc/dde-daemon/* %{buildroot}%{_datadir}/dde-daemon/ cp -r misc/usr/share/deepin %{buildroot}%{_datadir}/ # DDE data (zoneinfo etc) mkdir -pv %{buildroot}%{_datadir}/dde cp -r misc/data misc/zoneinfo %{buildroot}%{_datadir}/dde/ # LightDM config install -Dm644 misc/lightdm.conf %{buildroot}%{_datadir}/lightdm/lightdm.conf.d/60-deepin.conf # GSettings schemas mkdir -p %{buildroot}%{_datadir}/glib-2.0/schemas install -m0644 misc/schemas/*.xml %{buildroot}%{_datadir}/glib-2.0/schemas/ # Systemd services mkdir -pv %{buildroot}/lib/systemd/ cp -r misc/systemd/services/* %{buildroot}/lib/systemd/ # Systemd user service for display brightness mkdir -p %{buildroot}%{_prefix}/lib/systemd/user/dde-session-initialized.target.wants/ mkdir -p %{buildroot}%{_prefix}/lib/systemd/user/dde-session-pre.target.wants/ install -m0644 misc/systemd_task/dde-display-task-refresh-brightness.service %{buildroot}%{_prefix}/lib/systemd/user/ ln -s %{_prefix}/lib/systemd/user/dde-display-task-refresh-brightness.service \ %{buildroot}%{_prefix}/lib/systemd/user/dde-session-initialized.target.wants/dde-display-task-refresh-brightness.service # Link for session daemon if [ -f %{buildroot}/lib/systemd/user/org.dde.session.Daemon1.service ]; then ln -s %{_prefix}/lib/systemd/user/org.dde.session.Daemon1.service \ %{buildroot}%{_prefix}/lib/systemd/user/dde-session-pre.target.wants/org.dde.session.Daemon1.service fi # PAM config mkdir -pv %{buildroot}/etc/pam.d/ cp -f misc/etc/pam.d/* %{buildroot}/etc/pam.d/ # GRUB config mkdir -pv %{buildroot}/etc/default/grub.d cp -f misc/etc/default/grub.d/* %{buildroot}/etc/default/grub.d/ install -d -m 755 %{buildroot}/etc/grub.d install -m 755 misc/etc/grub.d/* %{buildroot}/etc/grub.d/ # Deepin config mkdir -pv %{buildroot}/etc/deepin cp -f misc/etc/deepin/* %{buildroot}/etc/deepin/ # Pulse config mkdir -pv %{buildroot}/etc/pulse/daemon.conf.d cp -f misc/etc/pulse/daemon.conf.d/*.conf %{buildroot}/etc/pulse/daemon.conf.d/ # Service trigger mkdir -pv %{buildroot}%{_prefix}/lib/deepin-daemon/service-trigger cp -f misc/service-trigger/*.json %{buildroot}%{_prefix}/lib/deepin-daemon/service-trigger/ # Libexec mkdir -pv %{buildroot}%{_libexecdir}/dde-daemon/ cp -r misc/libexec/dde-daemon/* %{buildroot}%{_libexecdir}/dde-daemon/ # DSettings configs mkdir -pv %{buildroot}%{_datadir}/dsg/configs/org.deepin.dde.daemon/ cp -r misc/dsg-configs/*.json %{buildroot}%{_datadir}/dsg/configs/org.deepin.dde.daemon/ mkdir -pv %{buildroot}%{_datadir}/dsg/configs/org.deepin.dde.lightdm-deepin-greeter cp -r misc/dsg-configs/org.deepin.dde.lightdm-deepin-greeter/*.json \ %{buildroot}%{_datadir}/dsg/configs/org.deepin.dde.lightdm-deepin-greeter/ # Scripts cp -f misc/scripts/dde-lock.sh %{buildroot}%{_prefix}/lib/deepin-daemon/ cp -f misc/scripts/dde-shutdown.sh %{buildroot}%{_prefix}/lib/deepin-daemon/ # Icons mkdir -pv %{buildroot}%{_datadir}/icons/ cp -r out/icons/hicolor %{buildroot}%{_datadir}/icons/ %files %license LICENSE %{_prefix}/lib/deepin-daemon/ %{_datadir}/locale/*/LC_MESSAGES/dde-daemon.mo %{_datadir}/dbus-1/system.d/*.conf %{_datadir}/dbus-1/services/ %{_datadir}/dbus-1/system-services/ %{_datadir}/polkit-1/actions/*.policy %{_datadir}/polkit-1/rules.d/*.rules %{_datadir}/dde-daemon/ %{_datadir}/dde/ %{_datadir}/deepin/ %{_datadir}/lightdm/lightdm.conf.d/60-deepin.conf %{_datadir}/glib-2.0/schemas/*.xml /lib/systemd/ %{_prefix}/lib/systemd/user/dde-display-task-refresh-brightness.service %{_prefix}/lib/systemd/user/dde-session-initialized.target.wants/ %{_prefix}/lib/systemd/user/dde-session-pre.target.wants/ /etc/pam.d/* /etc/default/grub.d/* /etc/grub.d/* /etc/deepin/ /etc/pulse/daemon.conf.d/*.conf %{_libexecdir}/dde-daemon/ %{_datadir}/dsg/configs/org.deepin.dde.daemon/ %{_datadir}/dsg/configs/org.deepin.dde.lightdm-deepin-greeter/ %{_datadir}/icons/hicolor/ %changelog * Fri Jul 17 2026 Yonghang Wang - 6.1.100-1 - Initial package for AL2023