Source: pupnp
Version: 1:1.14.25-1
Severity: important
Tags: patch upstream
Control: forwarded -1 https://github.com/pupnp/pupnp/pull/534

Dear Maintainer,

I am currently working on an updated version of the amule package which
normally build-depends on libupnp-dev. When trying such a build,
setting up the build environment using pbuilder/cowbuilder fails with
various messages like:

   CMake Error in src/CMakeLists.txt:
     Imported target "UPNP::Shared" includes non-existent path
       "/usr/COMPONENT"
     in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:
     * The path was deleted, renamed, or moved to another location.
     * An install or uninstall procedure did not complete successfully.
     * The installation package was faulty and references files it does not
     provide.

See pipeline on Salsa [1] for a complete picture.

These errors are caused by a malformed INTERFACE_INCLUDE_DIRECTORIES
statement in /usr/lib/*/cmake/UPNP/UPNP.cmake at line 73. In addition,
exactly the same malformed statement exists in
/usr/lib/*/IXML/IXML.cmake again at line 73.

These malformed statements are originating from invalid use of
'install(TARGETS ... INCLUDES DESTINATION ...)' in source files
upnp/CMakeLists.txt [2] + [3] and ixml/CMakeLists.txt [4] + [5].
INCLUDES DESTINATION does not know artifact options like COMPONENT but
solely directories [6].

I reported the issue upstream. Though, upstream seems to be hesitant to
accept my pull request [7].

I prepared patches to fix this in Debian for versions 1:1.14.25-1 and 
1:1.18.0-1 of pupnp. Please find the patches attached, ready to be
imported with 'quilt import ...'. A patched local build of pupnp
1:1.14.25-1 enabled a successful local build of the amule package under
development. It would be great patched versions 1:1.14.25-2 and
1:1.18.0-2 of pupnp would show up in the repo.

Best,
Sven

[1] https://salsa.debian.org/sge/amule/-/jobs/9235504#L2703 ff.
[2] https://sources.debian.org/src/pupnp/1%3A1.14.25-1/upnp/CMakeLists.txt#L159 
+ L160
[3] https://sources.debian.org/src/pupnp/1%3A1.14.25-1/upnp/CMakeLists.txt#L218 
+ L219
[4] https://sources.debian.org/src/pupnp/1%3A1.14.25-1/ixml/CMakeLists.txt#L60 
+ L61
[5] https://sources.debian.org/src/pupnp/1%3A1.14.25-1/ixml/CMakeLists.txt#L109 
+ L110
[6] https://cmake.org/cmake/help/v4.0/command/install.html#signatures
[7] https://github.com/pupnp/pupnp/pull/534

-- System Information:
Debian Release: forky/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.18.9+deb14-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

-- 
GPG Fingerprint
3DF5 E8AA 43FC 9FDF D086 F195 ADF5 0EDA F8AD D585
Description: Fix usage of INCLUDES DESTINATION
 In ixml/CMakeLists.txt and upnp/CMakeLists.txt:
 INCLUDES DESTINATION is not an <artifact-kind> and thus does not come with
 <artifact-option>s like e.g. COMPONENT. At least with cmake 4, the strings
 up to the next <artifact-kind> get considered as paths which do not exist,
 resulting in invalid 'INTERFACE_INCLUDE_DIRECTORIES ...' lines in the
 generated files /usr/lib/*/cmake/IXML/IXML.cmake and
 /usr/lib/*/cmake/UPNP/UPNP.cmake.
 .
 This patch drops the false 'COMPONENT UPNP_Development' lines. As a
 saveguard the remaining 'INCLUDES DESTINATION...' lines are moved to the
 end of the respective invocation of 'install(TARGET...)' as the cmake
 manual suggests, see
 https://cmake.org/cmake/help/v4.0/command/install.html#signatures. 
Author: Sven Geuer <[email protected]>
Origin: backport, https://github.com/pupnp/pupnp/pull/534
Forwarded: not-needed
Last-Update: 2026-03-13
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/ixml/CMakeLists.txt
+++ b/ixml/CMakeLists.txt
@@ -57,8 +57,6 @@
 		EXPORT IXML
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-			COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -66,6 +64,7 @@
 			COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 
@@ -106,8 +105,6 @@
 		EXPORT IXML
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-			COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -115,6 +112,7 @@
 			COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 
--- a/upnp/CMakeLists.txt
+++ b/upnp/CMakeLists.txt
@@ -156,8 +156,6 @@
 		EXPORT UPNP
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-			COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -165,6 +163,7 @@
 			COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 
@@ -215,8 +214,6 @@
 		EXPORT UPNP
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-			COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -224,6 +221,7 @@
 			COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 
Description: Fix usage of INCLUDES DESTINATION
 In ixml/CMakeLists.txt and upnp/CMakeLists.txt:
 INCLUDES DESTINATION is not an <artifact-kind> and thus does not come with
 <artifact-option>s like e.g. COMPONENT. At least with cmake 4, the strings
 up to the next <artifact-kind> get considered as paths which do not exist,
 resulting in invalid 'INTERFACE_INCLUDE_DIRECTORIES ...' lines in the
 generated files /usr/lib/*/cmake/IXML/IXML.cmake and
 /usr/lib/*/cmake/UPNP/UPNP.cmake.
 .
 This patch drops the false 'COMPONENT UPNP_Development' lines. As a
 saveguard the remaining 'INCLUDES DESTINATION...' lines are moved to the
 end of the respective invocation of 'install(TARGET...)' as the cmake
 manual suggests, see
 https://cmake.org/cmake/help/v4.0/command/install.html#signatures. 
Author: Sven Geuer <[email protected]>
Origin: backport, https://github.com/pupnp/pupnp/pull/534
Forwarded: not-needed
Last-Update: 2026-03-13
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/ixml/CMakeLists.txt
+++ b/ixml/CMakeLists.txt
@@ -58,9 +58,6 @@
 		EXPORT IXML
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES
-		DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-		COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -68,6 +65,7 @@
 				COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 
@@ -111,9 +109,6 @@
 		EXPORT IXML
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES
-		DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-		COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -121,6 +116,7 @@
 				COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 
--- a/upnp/CMakeLists.txt
+++ b/upnp/CMakeLists.txt
@@ -163,9 +163,6 @@
 		EXPORT UPNP
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES
-		DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-		COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -173,6 +170,7 @@
 				COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 
@@ -230,9 +228,6 @@
 		EXPORT UPNP
 		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_Development
-		INCLUDES
-		DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
-		COMPONENT UPNP_Development
 		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 			COMPONENT UPNP_RunTime
 			NAMELINK_COMPONENT UPNP_Development
@@ -240,6 +235,7 @@
 				COMPONENT UPNP_Development
 		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 			COMPONENT UPNP_RunTime
+		INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/upnp
 	)
 endif()
 

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to