Hi,

I've looked into this, and I believe that the attached two patches should fix this. However, I cannot test this on Debian -- I'm on Ubuntu 22.04 where cairo-dock-plug-ins builds and installs well with or without the patches.

It would be great to know if these really fix the problem, so we can include these fixes in the next release.

Best,

Daniel


From 1aaf4b9d5c10167c1c14394ad940684c7aef65ec Mon Sep 17 00:00:00 2001
From: Daniel Kondor <kondor.d...@gmail.com>
Date: Thu, 7 Mar 2024 22:39:19 +0100
Subject: [PATCH 1/2] Dbus: do not use deprecated distutils Python module

---
 Dbus/interfaces/bash/setup.py   | 2 +-
 Dbus/interfaces/python/setup.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Dbus/interfaces/bash/setup.py b/Dbus/interfaces/bash/setup.py
index 80aa9d418..756bf3474 100644
--- a/Dbus/interfaces/bash/setup.py
+++ b/Dbus/interfaces/bash/setup.py
@@ -13,7 +13,7 @@
 # GNU General Public License for more details.
 # http://www.gnu.org/licenses/licenses.html#GPL
 
-from distutils.core import setup
+from setuptools import setup
 setup(name='CDBashApplet',
 		version='1.0',
 		license='GPL-3',
diff --git a/Dbus/interfaces/python/setup.py b/Dbus/interfaces/python/setup.py
index af33b73bd..04525688f 100644
--- a/Dbus/interfaces/python/setup.py
+++ b/Dbus/interfaces/python/setup.py
@@ -13,7 +13,7 @@
 # GNU General Public License for more details.
 # http://www.gnu.org/licenses/licenses.html#GPL
 
-from distutils.core import setup
+from setuptools import setup
 setup(name='CDApplet',
 		version='1.0',
 		license='GPL-3',
-- 
2.34.1

From 5d747b30271961daf3dc92b2c77fd8b10fb3acd0 Mon Sep 17 00:00:00 2001
From: Daniel Kondor <kondor.d...@gmail.com>
Date: Thu, 7 Mar 2024 22:40:23 +0100
Subject: [PATCH 2/2] Dbus: do not use a deprecated CMake function

---
 Dbus/interfaces/bash/BashInstall.cmake.in     | 46 ++++++++++++-------
 Dbus/interfaces/bash/CMakeLists.txt           |  6 +--
 Dbus/interfaces/python/CMakeLists.txt         |  6 +--
 Dbus/interfaces/python/PythonInstall.cmake.in | 46 ++++++++++++-------
 4 files changed, 66 insertions(+), 38 deletions(-)

diff --git a/Dbus/interfaces/bash/BashInstall.cmake.in b/Dbus/interfaces/bash/BashInstall.cmake.in
index dd0f7924f..d46a02e9f 100644
--- a/Dbus/interfaces/bash/BashInstall.cmake.in
+++ b/Dbus/interfaces/bash/BashInstall.cmake.in
@@ -2,38 +2,52 @@
 
 IF ("@PYTHON2_FOUND@" STREQUAL "TRUE")
 	IF("@ROOT_PREFIX@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON2_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		set (ROOT1 "$ENV{DESTDIR}")
+		IF ("${ROOT1}" STREQUAL "")
+			set (ROOT1 "/")
+		ENDIF()
+		execute_process(COMMAND "@PYTHON2_EXECUTABLE@"
 						"setup.py" "install"
-						"--prefix=${CMAKE_INSTALL_PREFIX}"
-						"--root=`test -z \"\$DESTDIR\" && echo / || echo \$DESTDIR`"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						"--prefix=@CMAKE_INSTALL_PREFIX@"
+						"--root=${ROOT1}"
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSEIF("@python_no_deb_layout@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON2_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON2_EXECUTABLE@"
 						"setup.py" "install"
 						"--root=@ROOT_PREFIX@"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSE()
-		EXEC_PROGRAM("@PYTHON2_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON2_EXECUTABLE@"
 						"setup.py" "install"
-						"--root=@ROOT_PREFIX@")
+						"--root=@ROOT_PREFIX@"
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ENDIF()
 ENDIF()
 
 IF ("@PYTHON3_FOUND@" STREQUAL "TRUE")
 	IF("@ROOT_PREFIX@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON3_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		set (ROOT1 "$ENV{DESTDIR}")
+		IF ("${ROOT1}" STREQUAL "")
+			set (ROOT1 "/")
+		ENDIF()
+		execute_process(COMMAND "@PYTHON3_EXECUTABLE@"
 						"setup.py" "install"
-						"--prefix=${CMAKE_INSTALL_PREFIX}"
-						"--root=`test -z \"\$DESTDIR\" && echo / || echo \$DESTDIR`"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						"--prefix=@CMAKE_INSTALL_PREFIX@"
+						"--root=${ROOT1}"
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSEIF("@python_no_deb_layout@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON3_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON3_EXECUTABLE@"
 						"setup.py" "install"
 						"--root=@ROOT_PREFIX@"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSE()
-		EXEC_PROGRAM("@PYTHON3_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON3_EXECUTABLE@"
 						"setup.py" "install"
-						"--root=@ROOT_PREFIX@")
+						"--root=@ROOT_PREFIX@"
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ENDIF()
 ENDIF()
diff --git a/Dbus/interfaces/bash/CMakeLists.txt b/Dbus/interfaces/bash/CMakeLists.txt
index 024296919..e1fd86763 100644
--- a/Dbus/interfaces/bash/CMakeLists.txt
+++ b/Dbus/interfaces/bash/CMakeLists.txt
@@ -8,16 +8,16 @@ if (NOT "${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
 endif()
 
 if (PYTHON2_FOUND)
-	exec_program("${PYTHON2_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}" ARGS "setup.py" "-q" "build")
+	execute_process(COMMAND "${PYTHON2_EXECUTABLE}" "setup.py" "-q" "build" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
 endif()
 if (PYTHON3_FOUND)
-	exec_program("${PYTHON3_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}" ARGS "setup.py" "-q" "build")  # if both are present, the build sub-folder will not have the same name, so we can build now and then install during the 'make install'.
+	execute_process(COMMAND "${PYTHON3_EXECUTABLE}" "setup.py" "-q" "build" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")  # if both are present, the build sub-folder will not have the same name, so we can build now and then install during the 'make install'.
 endif()
 
 ########### install files ###############
 # Run a custom script with 'make install'
 add_custom_target(bash_pyc ALL)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/BashInstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/BashInstall.cmake)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/BashInstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/BashInstall.cmake @ONLY)
 set_target_properties(bash_pyc PROPERTIES POST_INSTALL_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/BashInstall.cmake)
 
 # and the bash functions goes into the data dir of the applet (didn't find a better place).
diff --git a/Dbus/interfaces/python/CMakeLists.txt b/Dbus/interfaces/python/CMakeLists.txt
index c24ed0d9e..d57b6e071 100644
--- a/Dbus/interfaces/python/CMakeLists.txt
+++ b/Dbus/interfaces/python/CMakeLists.txt
@@ -8,14 +8,14 @@ endif()
 
 ###########  byte-compile the python scripts to .pyc ###############
 if (PYTHON2_FOUND)
-	exec_program("${PYTHON2_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}" ARGS "setup.py" "-q" "build")
+	execute_process(COMMAND "${PYTHON2_EXECUTABLE}" "setup.py" "-q" "build" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
 endif()
 if (PYTHON3_FOUND)
-	exec_program("${PYTHON3_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}" ARGS "setup.py" "-q" "build")  # if both are present, the build sub-folder will not have the same name, so we can build now and then install during the 'make install', which allows us to not build as root.
+	execute_process(COMMAND "${PYTHON3_EXECUTABLE}" "setup.py" "-q" "build" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")  # if both are present, the build sub-folder will not have the same name, so we can build now and then install during the 'make install', which allows us to not build as root.
 endif()
 
 ########### install files ###############
 # Run a custom script with 'make install' 
 add_custom_target(python_pyc ALL)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/PythonInstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/PythonInstall.cmake)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/PythonInstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/PythonInstall.cmake @ONLY)
 set_target_properties(python_pyc PROPERTIES POST_INSTALL_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/PythonInstall.cmake)
diff --git a/Dbus/interfaces/python/PythonInstall.cmake.in b/Dbus/interfaces/python/PythonInstall.cmake.in
index e0a45b797..00e8a747f 100644
--- a/Dbus/interfaces/python/PythonInstall.cmake.in
+++ b/Dbus/interfaces/python/PythonInstall.cmake.in
@@ -2,38 +2,52 @@
 
 if ("@PYTHON2_FOUND@" STREQUAL "TRUE")
 	IF("@ROOT_PREFIX@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON2_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		set (ROOT1 "$ENV{DESTDIR}")
+		IF ("${ROOT1}" STREQUAL "")
+			set (ROOT1 "/")
+		ENDIF()
+		execute_process(COMMAND "@PYTHON2_EXECUTABLE@"
 						"setup.py" "install"
-						"--prefix=${CMAKE_INSTALL_PREFIX}"
-						"--root=`test -z \"\$DESTDIR\" && echo / || echo \$DESTDIR`"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						"--prefix=@CMAKE_INSTALL_PREFIX@"
+						"--root=${ROOT1}"
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSEIF("@python_no_deb_layout@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON2_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON2_EXECUTABLE@"
 						"setup.py" "install"
 						"--root=@ROOT_PREFIX@"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSE()
-		EXEC_PROGRAM("@PYTHON2_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON2_EXECUTABLE@"
 						"setup.py" "install"
-						"--root=@ROOT_PREFIX@")
+						"--root=@ROOT_PREFIX@"
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ENDIF()
 ENDIF()
 
 if ("@PYTHON3_FOUND@" STREQUAL "TRUE")
 	IF("@ROOT_PREFIX@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON3_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		set (ROOT1 "$ENV{DESTDIR}")
+		IF ("${ROOT1}" STREQUAL "")
+			set (ROOT1 "/")
+		ENDIF()
+		execute_process(COMMAND "@PYTHON3_EXECUTABLE@"
 						"setup.py" "install"
-						"--prefix=${CMAKE_INSTALL_PREFIX}"
-						"--root=`test -z \"\$DESTDIR\" && echo / || echo \$DESTDIR`"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						"--prefix=@CMAKE_INSTALL_PREFIX@"
+						"--root=${ROOT1}"
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSEIF("@python_no_deb_layout@" STREQUAL "")
-		EXEC_PROGRAM("@PYTHON3_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON3_EXECUTABLE@"
 						"setup.py" "install"
 						"--root=@ROOT_PREFIX@"
-						"@DEBIAN_INSTALL_LAYOUT@")
+						@DEBIAN_INSTALL_LAYOUT@
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ELSE()
-		EXEC_PROGRAM("@PYTHON3_EXECUTABLE@" "${CMAKE_CURRENT_BINARY_DIR}" ARGS
+		execute_process(COMMAND "@PYTHON3_EXECUTABLE@"
 						"setup.py" "install"
-						"--root=@ROOT_PREFIX@")
+						"--root=@ROOT_PREFIX@"
+						WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@")
 	ENDIF()
 ENDIF()
-- 
2.34.1

Reply via email to