From df101d3bf920589e951e1d98e026ba89d76a639c Mon Sep 17 00:00:00 2001 From: fuleyi Date: Thu, 6 Nov 2025 10:52:22 +0800 Subject: [PATCH] chore: remove powermanager module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed the powermanager module as it appears to be redundant with the existing power1 module. The changes include: 1. Removed powermanager from TEST list in Makefile 2. Removed powermanager import from main.go 3. Deleted D-Bus configuration file for powermanager service 4. Removed powermanager-related comments from systemd service file 5. Completely removed all powermanager source code files including daemon.go, manager.go, and utility files The powermanager module provided similar functionality to the power1 module, including system power state checks (shutdown, reboot, suspend, hibernate) and virtual machine detection. This removal simplifies the codebase by eliminating duplicate functionality. Influence: 1. Verify system power management functions still work correctly through power1 module 2. Test shutdown, reboot, suspend, and hibernate capabilities 3. Confirm no regression in virtual machine detection 4. Check D-Bus service availability for power-related operations 5. Validate system daemon starts without powermanager dependencies chore: 移除powermanager模块 移除powermanager模块,因为它与现有的power1模块功能重复。具体变更包括: 1. 从Makefile的TEST列表中移除powermanager 2. 从main.go中移除powermanager导入 3. 删除powermanager服务的D-Bus配置文件 4. 从systemd服务文件中移除powermanager相关注释 5. 完全删除所有powermanager源代码文件,包括daemon.go、manager.go和工具 文件 powermanager模块提供的功能与power1模块相似,包括系统电源状态检查(关机、 重启、待机、休眠)和虚拟机检测。此次移除通过消除重复功能简化了代码库。 Influence: 1. 验证通过power1模块的系统电源管理功能仍正常工作 2. 测试关机、重启、待机和休眠功能 3. 确认虚拟机检测功能无回归问题 4. 检查电源相关操作的D-Bus服务可用性 5. 验证系统守护进程在没有powermanager依赖的情况下正常启动 --- Makefile | 1 - bin/dde-system-daemon/main.go | 1 - go.mod | 2 +- go.sum | 4 +- misc/conf/org.deepin.dde.PowerManager1.conf | 28 ----- .../services/system/dde-system-daemon.service | 3 - system/power_manager1/daemon.go | 62 ---------- .../power_manager1/exported_methods_auto.go | 32 ----- system/power_manager1/manager.go | 111 ------------------ .../power_manager1/power_manager_dbusutil.go | 16 --- system/power_manager1/utils.go | 47 -------- 11 files changed, 3 insertions(+), 304 deletions(-) delete mode 100644 misc/conf/org.deepin.dde.PowerManager1.conf delete mode 100644 system/power_manager1/daemon.go delete mode 100644 system/power_manager1/exported_methods_auto.go delete mode 100644 system/power_manager1/manager.go delete mode 100644 system/power_manager1/power_manager_dbusutil.go delete mode 100644 system/power_manager1/utils.go diff --git a/Makefile b/Makefile index 23742fc98..0bb81ffce 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,6 @@ TEST = \ ${GOPKG_PREFIX}/system/keyevent1 \ ${GOPKG_PREFIX}/system/lang \ ${GOPKG_PREFIX}/system/power1 \ - ${GOPKG_PREFIX}/system/power_manager1 \ ${GOPKG_PREFIX}/system/resource_ctl \ ${GOPKG_PREFIX}/system/scheduler \ ${GOPKG_PREFIX}/system/swapsched1 \ diff --git a/bin/dde-system-daemon/main.go b/bin/dde-system-daemon/main.go index 30ccc3279..b34d42f5d 100644 --- a/bin/dde-system-daemon/main.go +++ b/bin/dde-system-daemon/main.go @@ -21,7 +21,6 @@ import ( _ "github.com/linuxdeepin/dde-daemon/system/keyevent1" _ "github.com/linuxdeepin/dde-daemon/system/lang" _ "github.com/linuxdeepin/dde-daemon/system/power1" - _ "github.com/linuxdeepin/dde-daemon/system/power_manager1" _ "github.com/linuxdeepin/dde-daemon/system/resource_ctl" _ "github.com/linuxdeepin/dde-daemon/system/scheduler" _ "github.com/linuxdeepin/dde-daemon/system/swapsched1" diff --git a/go.mod b/go.mod index 2c8320a8d..62f56e315 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/godbus/dbus/v5 v5.1.0 github.com/jouyouyun/hardware v0.1.8 github.com/linuxdeepin/dde-api v0.0.0-20251010074154-51d1a75add21 - github.com/linuxdeepin/go-dbus-factory v0.0.0-20251016090126-a071e2cfa352 + github.com/linuxdeepin/go-dbus-factory v0.0.0-20251106025636-c57e2e679c9a github.com/linuxdeepin/go-gir v0.0.0-20250812023606-b28aaee32ac9 github.com/linuxdeepin/go-lib v0.0.0-20251103025305-67a8f34eebc3 github.com/linuxdeepin/go-x11-client v0.0.0-20240415051504-c8e43d028ff9 diff --git a/go.sum b/go.sum index 854503504..bdc15f85c 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/linuxdeepin/dde-api v0.0.0-20251010074154-51d1a75add21 h1:djcA0sDYOGMam+3PXLvWCSWgrT/q4zYPQXvVrQTLmFc= github.com/linuxdeepin/dde-api v0.0.0-20251010074154-51d1a75add21/go.mod h1:0ZwJxZjAVBso131IbmEEBS41D5G6mtNZ3i0/csrLDMM= -github.com/linuxdeepin/go-dbus-factory v0.0.0-20251016090126-a071e2cfa352 h1:MaDDdeUL7WfbJb3yR6SUbptaII8IbxYFJc2VSNMqTMY= -github.com/linuxdeepin/go-dbus-factory v0.0.0-20251016090126-a071e2cfa352/go.mod h1:dfpixHkqiijg3P7w5QArkMyC7+vlHcutN5R6zHIn8is= +github.com/linuxdeepin/go-dbus-factory v0.0.0-20251106025636-c57e2e679c9a h1:pUnReu+BGSsca8XtsT2YyQvMp0EOuCiEbVJK4dZBfZc= +github.com/linuxdeepin/go-dbus-factory v0.0.0-20251106025636-c57e2e679c9a/go.mod h1:dfpixHkqiijg3P7w5QArkMyC7+vlHcutN5R6zHIn8is= github.com/linuxdeepin/go-gir v0.0.0-20250812023606-b28aaee32ac9 h1:H95pXIA104lsylGPXXPm8rM+6vVsmKff7sJGGgWMu5A= github.com/linuxdeepin/go-gir v0.0.0-20250812023606-b28aaee32ac9/go.mod h1:a0tox5vepTQu5iO6rdKc4diGT+fkyXZlRROM8ULEvaI= github.com/linuxdeepin/go-lib v0.0.0-20251103025305-67a8f34eebc3 h1:r84k4eXs1xwlnIwexfndGxEQY9y1TW76ctTUfJwkxHo= diff --git a/misc/conf/org.deepin.dde.PowerManager1.conf b/misc/conf/org.deepin.dde.PowerManager1.conf deleted file mode 100644 index 5fbd238fc..000000000 --- a/misc/conf/org.deepin.dde.PowerManager1.conf +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/misc/systemd/services/system/dde-system-daemon.service b/misc/systemd/services/system/dde-system-daemon.service index ef2c322f6..f53105e6f 100644 --- a/misc/systemd/services/system/dde-system-daemon.service +++ b/misc/systemd/services/system/dde-system-daemon.service @@ -100,8 +100,6 @@ ReadWritePaths=-/var/lib/dde-daemon/display/ ReadWritePaths=-/var/lib/dde-daemon/power/ # ReadWritePaths=-/etc/tlp.d # com.deepin.daemon.SwapSchedHelper -# 需要操作cgroup -# com.deepin.daemon.PowerManager # 无读写文件 # com.deepin.daemon.Daemon # ReadWritePaths=-/etc/NetworkManager/system-connections @@ -116,7 +114,6 @@ ReadWritePaths=-/var/tmp ReadWritePaths=-/boot # com.deepin.daemon.KeyEvent # 写/proc/uos/touchpad_switch -# com.deepin.daemon.PowerManager # 无读写文件 # com.deepin.system.InputDevices # 写/proc/uos/touchpad_switch diff --git a/system/power_manager1/daemon.go b/system/power_manager1/daemon.go deleted file mode 100644 index a560a58c4..000000000 --- a/system/power_manager1/daemon.go +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: GPL-3.0-or-later - -package power_manager - -import ( - "github.com/linuxdeepin/dde-daemon/loader" - "github.com/linuxdeepin/go-lib/log" -) - -const ( - dbusServiceName = "org.deepin.dde.PowerManager1" - dbusPath = "/org/deepin/dde/PowerManager1" - dbusInterface = dbusServiceName -) - -var logger = log.NewLogger("daemon/system/powermanager") - -func init() { - loader.Register(NewDaemon(logger)) -} - -type Daemon struct { - *loader.ModuleBase - manager *Manager -} - -func NewDaemon(logger *log.Logger) *Daemon { - daemon := new(Daemon) - daemon.ModuleBase = loader.NewModuleBase("powermanager", daemon, logger) - return daemon -} - -func (d *Daemon) GetDependencies() []string { - return []string{} -} - -func (d *Daemon) Start() (err error) { - service := loader.GetService() - d.manager, err = newManager(service) - if err != nil { - return - } - - err = service.Export(dbusPath, d.manager) - if err != nil { - return - } - - err = service.RequestName(dbusServiceName) - return -} - -func (d *Daemon) Stop() error { - if d.manager == nil { - return nil - } - - d.manager = nil - return nil -} diff --git a/system/power_manager1/exported_methods_auto.go b/system/power_manager1/exported_methods_auto.go deleted file mode 100644 index b7f0d62bc..000000000 --- a/system/power_manager1/exported_methods_auto.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by "dbusutil-gen em -type Manager"; DO NOT EDIT. - -package power_manager - -import ( - "github.com/linuxdeepin/go-lib/dbusutil" -) - -func (v *Manager) GetExportedMethods() dbusutil.ExportedMethods { - return dbusutil.ExportedMethods{ - { - Name: "CanHibernate", - Fn: v.CanHibernate, - OutArgs: []string{"can"}, - }, - { - Name: "CanReboot", - Fn: v.CanReboot, - OutArgs: []string{"can"}, - }, - { - Name: "CanShutdown", - Fn: v.CanShutdown, - OutArgs: []string{"can"}, - }, - { - Name: "CanSuspend", - Fn: v.CanSuspend, - OutArgs: []string{"can"}, - }, - } -} diff --git a/system/power_manager1/manager.go b/system/power_manager1/manager.go deleted file mode 100644 index d0b85cba7..000000000 --- a/system/power_manager1/manager.go +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: GPL-3.0-or-later - -package power_manager - -import ( - "os" - "os/exec" - - "github.com/godbus/dbus/v5" - login1 "github.com/linuxdeepin/go-dbus-factory/system/org.freedesktop.login1" - "github.com/linuxdeepin/go-lib/dbusutil" -) - -//go:generate dbusutil-gen em -type Manager -type Manager struct { - service *dbusutil.Service - objLogin login1.Manager - - VirtualMachineName string -} - -func newManager(service *dbusutil.Service) (*Manager, error) { - m := &Manager{ - service: service, - } - err := m.init() - if err != nil { - return nil, err - } - - name, err := detectVirtualMachine() - if err != nil { - logger.Warning(err) - } - - m.setPropVirtualMachineName(name) - - return m, nil -} - -func (*Manager) GetInterfaceName() string { - return dbusInterface -} - -func (m *Manager) init() error { - sysBus, err := dbus.SystemBus() - if err != nil { - logger.Warning(err) - return err - } - - m.objLogin = login1.NewManager(sysBus) - return nil -} - -func (m *Manager) CanShutdown() (can bool, busErr *dbus.Error) { - str, _ := m.objLogin.CanPowerOff(0) - return str == "yes", nil -} - -func (m *Manager) CanReboot() (can bool, busErr *dbus.Error) { - str, _ := m.objLogin.CanReboot(0) - return str == "yes", nil -} - -func (m *Manager) CanSuspend() (can bool, busErr *dbus.Error) { - // 虚拟机屏蔽待机 - if m.VirtualMachineName != "" { - return false, nil - } - _, err := os.Stat("/sys/power/mem_sleep") - if os.IsNotExist(err) { - return false, nil - } - - str, _ := m.objLogin.CanSuspend(0) - return str == "yes", nil -} - -func (m *Manager) CanHibernate() (can bool, busErr *dbus.Error) { - // 虚拟机屏蔽休眠 - if m.VirtualMachineName != "" { - return false, nil - } - str, _ := m.objLogin.CanHibernate(0) - return str == "yes", nil -} - -var autoConfigTargets = []string{ - "suspend.target", - "sleep.target", - "suspend-then-hibernate.target", - "hibernate.target", - "hybrid-sleep.target", -} - -func (m *Manager) maskOnVM(enable bool) { - var oper string - if enable && m.VirtualMachineName != "" { - oper = "mask" - } else { - oper = "unmask" - } - - for _, target := range autoConfigTargets { - logger.Debug("auto mask on virt") - exec.Command("systemctl", oper, target).Run() - } -} diff --git a/system/power_manager1/power_manager_dbusutil.go b/system/power_manager1/power_manager_dbusutil.go deleted file mode 100644 index f7ca281e5..000000000 --- a/system/power_manager1/power_manager_dbusutil.go +++ /dev/null @@ -1,16 +0,0 @@ -// Code generated by "dbusutil-gen -type Manager manager.go"; DO NOT EDIT. - -package power_manager - -func (v *Manager) setPropVirtualMachineName(value string) (changed bool) { - if v.VirtualMachineName != value { - v.VirtualMachineName = value - v.emitPropChangedVirtualMachineName(value) - return true - } - return false -} - -func (v *Manager) emitPropChangedVirtualMachineName(value string) error { - return v.service.EmitPropertyChanged(v, "VirtualMachineName", value) -} diff --git a/system/power_manager1/utils.go b/system/power_manager1/utils.go deleted file mode 100644 index 10cc5a681..000000000 --- a/system/power_manager1/utils.go +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: GPL-3.0-or-later - -package power_manager - -import ( - "os" - "os/exec" - "strings" -) - -const ( - fileMemSleep = "/sys/power/mem_sleep" -) - -func canSuspend() bool { - // TODO: 这种判断方式只能作为当前的临时方案使用,不是一个标准的判断是否支持待机的方法, - // 等到内核对systemd的login中判断是否能待机的DBus接口(服务名 org.freedesktop.login1, - // 对象 /org/freedesktop/login1,接口 org.freedesktop.login1.Manager 方法 CanSuspend) - // 支持完善以后就要移除这部分逻辑。 - data, err := os.ReadFile(fileMemSleep) - if err != nil { - logger.Warningf("read %s failed: %v", fileMemSleep, err) - return false - } - if !strings.Contains(string(data), "deep") { - logger.Debugf("can not find 'deep' in %s", fileMemSleep) - return false - } - - return true -} - -func detectVirtualMachine() (string, error) { - out, err := exec.Command("/usr/bin/systemd-detect-virt").Output() - if err != nil { - return "", err - } - - name := strings.TrimSpace(string(out)) - if name == "none" { - name = "" - } - - return name, nil -}