nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/0004-aviod-use-hardcode-path.patch
2023-04-06 17:28:19 +08:00

324 lines
14 KiB
Diff

From 12a5ccce245f82c334e78d48354e55311c15fb0c Mon Sep 17 00:00:00 2001
From: rewine <lhongxu@outlook.com>
Date: Wed, 5 Apr 2023 23:51:58 +0800
Subject: [PATCH 4/4] aviod-use-hardcode-path
---
accounts/user.go | 2 +-
accounts/user_chpwd_union_id.go | 9 ++++-----
bin/backlight_helper/ddcci/ddcci.go | 20 +++++--------------
bin/dde-authority/fprint_transaction.go | 2 +-
inputdevices/keyboard.go | 5 +++--
keybinding/shortcuts/system_shortcut.go | 6 +++---
keybinding/special_keycode.go | 2 +-
keybinding/utils.go | 2 +-
launcher/manager_ifc.go | 2 +-
.../dde-daemon/keybinding/system_actions.json | 4 ++--
misc/etc/acpi/powerbtn.sh | 2 +-
misc/udev-rules/80-deepin-fprintd.rules | 2 +-
system/display/displaycfg.go | 2 +-
system/power/manager_lmt.go | 3 ++-
system/power_manager/utils.go | 2 +-
system/systeminfo/manager.go | 2 +-
systeminfo/utils.go | 2 +-
17 files changed, 30 insertions(+), 39 deletions(-)
diff --git a/accounts/user.go b/accounts/user.go
index f8827fb2..ff604f38 100644
--- a/accounts/user.go
+++ b/accounts/user.go
@@ -450,7 +450,7 @@ func (u *User) checkIsControlCenter(sender dbus.Sender) bool {
return false
}
- if exe == controlCenterPath {
+ if strings.Contains(exe, "dde-control-center") {
return true
}
diff --git a/accounts/user_chpwd_union_id.go b/accounts/user_chpwd_union_id.go
index b0ba9cb9..e8aa1a1e 100644
--- a/accounts/user_chpwd_union_id.go
+++ b/accounts/user_chpwd_union_id.go
@@ -107,14 +107,13 @@ func newCaller(service *dbusutil.Service, sender dbus.Sender) (ret *caller, err
// 只允许来自控制中心, 锁屏和 greetter 的调用
var app string
- switch exe {
- case "/usr/bin/dde-control-center":
+ if (strings.Contains(exe, "dde-control-center")) {
app = "control-center"
- case "/usr/bin/dde-lock":
+ } else if (strings.Contains(exe, "dde-lock")) {
app = "lock"
- case "/usr/bin/lightdm-deepin-greeter":
+ } else if (strings.Contains(exe, "lightdm-deepin-greeter")) {
app = "greeter"
- default:
+ } else {
err = fmt.Errorf("set password with Union ID called by %s, which is not allow", exe)
return
}
diff --git a/bin/backlight_helper/ddcci/ddcci.go b/bin/backlight_helper/ddcci/ddcci.go
index 21653459..01a67e91 100644
--- a/bin/backlight_helper/ddcci/ddcci.go
+++ b/bin/backlight_helper/ddcci/ddcci.go
@@ -15,10 +15,7 @@ import (
"bytes"
"encoding/base64"
"fmt"
- "os/exec"
- "path/filepath"
"reflect"
- "strings"
"sync"
"unsafe"
@@ -113,18 +110,11 @@ func newDDCCI() (*ddcci, error) {
return nil, err
}
- content, err := exec.Command("/usr/bin/dpkg-architecture", "-qDEB_HOST_MULTIARCH").Output() // TODO: arch和rpm打包需要通过patch修改获取路径的方式
- if err != nil {
- logger.Warning(err)
- } else {
- path := filepath.Join("/usr/lib", strings.TrimSpace(string(content)), "libddcutil.so.0")
- logger.Debug("so path:", path)
- cStr := C.CString(path)
- defer C.free(unsafe.Pointer(cStr))
- ret := C.InitDDCCISo(cStr)
- if ret == -2 {
- logger.Debug("failed to initialize ddca_free_all_displays sym")
- }
+ cStr := C.CString("libddcutil.so.0")
+ defer C.free(unsafe.Pointer(cStr))
+ ret := C.InitDDCCISo(cStr)
+ if ret == -2 {
+ logger.Debug("failed to initialize ddca_free_all_displays sym")
}
return ddc, nil
diff --git a/bin/dde-authority/fprint_transaction.go b/bin/dde-authority/fprint_transaction.go
index 0e460ec3..b803d1c9 100644
--- a/bin/dde-authority/fprint_transaction.go
+++ b/bin/dde-authority/fprint_transaction.go
@@ -461,7 +461,7 @@ func (tx *FPrintTransaction) End(sender dbus.Sender) *dbus.Error {
func killFPrintDaemon() {
logger.Debug("kill fprintd")
- err := exec.Command("pkill", "-f", "/usr/lib/fprintd/fprintd").Run()
+ err := exec.Command("pkill", "fprintd").Run()
if err != nil {
logger.Warning("failed to kill fprintd:", err)
}
diff --git a/inputdevices/keyboard.go b/inputdevices/keyboard.go
index 6d05f662..ca29cecc 100644
--- a/inputdevices/keyboard.go
+++ b/inputdevices/keyboard.go
@@ -10,6 +10,7 @@ import (
"fmt"
"os"
"os/user"
+ "os/exec"
"path"
"regexp"
"strings"
@@ -51,7 +52,7 @@ const (
kbdSystemConfig = "/etc/default/keyboard"
qtDefaultConfig = ".config/Trolltech.conf"
- cmdSetKbd = "/usr/bin/setxkbmap"
+ cmdSetKbd = "setxkbmap"
)
type Keyboard struct {
@@ -704,7 +705,7 @@ func (kbd *Keyboard) handlePropertyNotifyEvent(ev *x.PropertyNotifyEvent) {
}
func (kbd *Keyboard) shouldUseDDEKwin() bool {
- _, err := os.Stat("/usr/bin/kwin_no_scale")
+ _, err := exec.LookPath("kwin_no_scale")
return err == nil
}
diff --git a/keybinding/shortcuts/system_shortcut.go b/keybinding/shortcuts/system_shortcut.go
index 95e1b222..95d82db7 100644
--- a/keybinding/shortcuts/system_shortcut.go
+++ b/keybinding/shortcuts/system_shortcut.go
@@ -83,10 +83,10 @@ var defaultSysActionCmdMap = map[string]string{
"launcher": "dbus-send --print-reply --dest=com.deepin.dde.Launcher /com/deepin/dde/Launcher com.deepin.dde.Launcher.Toggle",
"terminal": "/usr/lib/deepin-daemon/default-terminal",
"terminal-quake": "deepin-terminal --quake-mode",
- "lock-screen": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');/usr/bin/setxkbmap -option grab:break_actions&&/usr/bin/xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap",
+ "lock-screen": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');setxkbmap -option grab:break_actions&&xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap",
"logout": "dbus-send --print-reply --dest=com.deepin.dde.shutdownFront /com/deepin/dde/shutdownFront com.deepin.dde.shutdownFront.Show",
"deepin-screen-recorder": "dbus-send --print-reply --dest=com.deepin.ScreenRecorder /com/deepin/ScreenRecorder com.deepin.ScreenRecorder.stopRecord",
- "system-monitor": "/usr/bin/deepin-system-monitor",
+ "system-monitor": "deepin-system-monitor",
"color-picker": "dbus-send --print-reply --dest=com.deepin.Picker /com/deepin/Picker com.deepin.Picker.Show",
// screenshot actions:
"screenshot": screenshotCmdPrefix + "StartScreenshot",
@@ -104,7 +104,7 @@ var defaultSysActionCmdMap = map[string]string{
"global-search": "/usr/libexec/dde-daemon/keybinding/shortcut-dde-grand-search.sh",
"switch-next-kbd-layout": "dbus-send --print-reply --dest=com.deepin.daemon.Keybinding /com/deepin/daemon/InputDevice/Keyboard com.deepin.daemon.InputDevice.Keyboard.ToggleNextLayout",
// cmd
- "calculator": "/usr/bin/deepin-calculator",
+ "calculator": "deepin-calculator",
"search": "/usr/libexec/dde-daemon/keybinding/shortcut-dde-grand-search.sh",
}
diff --git a/keybinding/special_keycode.go b/keybinding/special_keycode.go
index d18c9a66..9704b241 100644
--- a/keybinding/special_keycode.go
+++ b/keybinding/special_keycode.go
@@ -276,7 +276,7 @@ func (m *Manager) handlePower() {
}
m.systemTurnOffScreen()
case powerActionShowUI:
- cmd := "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');/usr/bin/setxkbmap -option grab:break_actions&&/usr/bin/xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/shutdownFront com.deepin.dde.shutdownFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap"
+ cmd := "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');setxkbmap -option grab:break_actions&&xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/shutdownFront com.deepin.dde.shutdownFront.Show&&setxkbmap -option; setxkbmap -option $originmap"
go func() {
locked, err := m.sessionManager.Locked().Get(0)
if err != nil {
diff --git a/keybinding/utils.go b/keybinding/utils.go
index 8e531369..261c88e8 100644
--- a/keybinding/utils.go
+++ b/keybinding/utils.go
@@ -311,7 +311,7 @@ func readTinyFile(file string) ([]byte, error) {
}
func shouldUseDDEKwin() bool {
- _, err := os.Stat("/usr/bin/kwin_no_scale")
+ _, err := exec.LookPath("kwin_no_scale")
return err == nil
}
diff --git a/launcher/manager_ifc.go b/launcher/manager_ifc.go
index 440aa8e5..ad74f99f 100644
--- a/launcher/manager_ifc.go
+++ b/launcher/manager_ifc.go
@@ -24,7 +24,7 @@ const (
dbusObjPath = "/com/deepin/dde/daemon/Launcher"
dbusInterface = dbusServiceName
desktopMainSection = "Desktop Entry"
- launcherExecPath = "/usr/bin/dde-launcher"
+ launcherExecPath = "dde-launcher"
)
var errorInvalidID = errors.New("invalid ID")
diff --git a/misc/dde-daemon/keybinding/system_actions.json b/misc/dde-daemon/keybinding/system_actions.json
index 8de3f111..8048048e 100644
--- a/misc/dde-daemon/keybinding/system_actions.json
+++ b/misc/dde-daemon/keybinding/system_actions.json
@@ -13,7 +13,7 @@
"Action": "dbus-send --print-reply --dest=com.deepin.ScreenRecorder /com/deepin/ScreenRecorder com.deepin.ScreenRecorder.stopRecord"
},
{
- "Action": "/usr/bin/deepin-system-monitor",
+ "Action": "deepin-system-monitor",
"Key": "system-monitor"
},
{
@@ -21,7 +21,7 @@
"Action": "dbus-send --print-reply --dest=com.deepin.Picker /com/deepin/Picker com.deepin.Picker.Show"
},
{
- "Action": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');/usr/bin/setxkbmap -option grab:break_actions&&/usr/bin/xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&/usr/bin/setxkbmap -option; setxkbmap -option $originmap",
+ "Action": "originmap=$(setxkbmap -query | grep option | awk -F ' ' '{print $2}');setxkbmap -option grab:break_actions&&xdotool key XF86Ungrab&&dbus-send --print-reply --dest=com.deepin.dde.lockFront /com/deepin/dde/lockFront com.deepin.dde.lockFront.Show&&setxkbmap -option; setxkbmap -option $originmap",
"Key": "lock-screen"
},
{
diff --git a/misc/etc/acpi/powerbtn.sh b/misc/etc/acpi/powerbtn.sh
index 5c536b9e..39c28987 100755
--- a/misc/etc/acpi/powerbtn.sh
+++ b/misc/etc/acpi/powerbtn.sh
@@ -58,4 +58,4 @@ elif test "$XUSER" != "" && test -x /usr/bin/qdbus; then
fi
# If all else failed, just initiate a plain shutdown.
-/sbin/shutdown -h now "Power button pressed"
+shutdown -h now "Power button pressed"
diff --git a/misc/udev-rules/80-deepin-fprintd.rules b/misc/udev-rules/80-deepin-fprintd.rules
index d3d3554a..9163b91c 100644
--- a/misc/udev-rules/80-deepin-fprintd.rules
+++ b/misc/udev-rules/80-deepin-fprintd.rules
@@ -1 +1 @@
-SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", ACTION=="add|remove", ENV{LIBFPRINT_DRIVER}!="" RUN+="/usr/bin/dbus-send --system --dest=com.deepin.daemon.Fprintd --print-reply /com/deepin/daemon/Fprintd com.deepin.daemon.Fprintd.TriggerUDevEvent"
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", ACTION=="add|remove", ENV{LIBFPRINT_DRIVER}!="" RUN+="@dbus@/bin/dbus-send --system --dest=com.deepin.daemon.Fprintd --print-reply /com/deepin/daemon/Fprintd com.deepin.daemon.Fprintd.TriggerUDevEvent"
diff --git a/system/display/displaycfg.go b/system/display/displaycfg.go
index 57b5871a..5b7757b4 100644
--- a/system/display/displaycfg.go
+++ b/system/display/displaycfg.go
@@ -255,7 +255,7 @@ func (d *Display) doDetectSupportWayland(sender dbus.Sender) (bool, error) {
return false, err
}
var cmd *exec.Cmd
- if execPath == "/usr/bin/lightdm-deepin-greeter" {
+ if strings.Contains(execPath, "lightdm-deepin-greeter") {
cmd = exec.Command("runuser", "-u", "lightdm", "glxinfo") // runuser -u lightdm glxinfo
} else {
cmd = exec.Command("glxinfo")
diff --git a/system/power/manager_lmt.go b/system/power/manager_lmt.go
index e2bdb2af..baf32fbd 100644
--- a/system/power/manager_lmt.go
+++ b/system/power/manager_lmt.go
@@ -8,6 +8,7 @@ import (
"bufio"
"io/ioutil"
"os"
+ "os/exec"
"path/filepath"
"strings"
@@ -28,7 +29,7 @@ const (
const lowBatteryThreshold = 20.0
func isLaptopModeBinOk() bool {
- _, err := os.Stat(laptopModeBin)
+ _, err := exec.LookPath("laptop_mode")
return err == nil
}
diff --git a/system/power_manager/utils.go b/system/power_manager/utils.go
index 93f433c2..ef603c96 100644
--- a/system/power_manager/utils.go
+++ b/system/power_manager/utils.go
@@ -33,7 +33,7 @@ func canSuspend() bool {
}
func detectVirtualMachine() (string, error) {
- out, err := exec.Command("/usr/bin/systemd-detect-virt").Output()
+ out, err := exec.Command("systemd-detect-virt").Output()
if err != nil {
return "", err
}
diff --git a/system/systeminfo/manager.go b/system/systeminfo/manager.go
index 5525ae36..daab2c44 100644
--- a/system/systeminfo/manager.go
+++ b/system/systeminfo/manager.go
@@ -205,7 +205,7 @@ func filterUnNumber(value string) string {
//执行命令:/usr/bin/getconf LONG_BIT 获取系统位数
func (m *Manager) systemBit() string {
- output, err := exec.Command("/usr/bin/getconf", "LONG_BIT").Output()
+ output, err := exec.Command("getconf", "LONG_BIT").Output()
if err != nil {
return "64"
}
diff --git a/systeminfo/utils.go b/systeminfo/utils.go
index ed17aeb8..e919fb53 100644
--- a/systeminfo/utils.go
+++ b/systeminfo/utils.go
@@ -39,7 +39,7 @@ func getMemoryFromFile(file string) (uint64, error) {
//执行命令:/usr/bin/getconf LONG_BIT 获取系统位数
func systemBit() string {
- output, err := exec.Command("/usr/bin/getconf", "LONG_BIT").Output()
+ output, err := exec.Command("getconf", "LONG_BIT").Output()
if err != nil {
return "64"
}
--
2.39.2