git: 8de46b474536 - main - x11-toolkits/copperspice: resurrect CopperSpice

From: Adriaan de Groot <adridg_at_FreeBSD.org>
Date: Sun, 20 Feb 2022 15:45:47 UTC
The branch main has been updated by adridg:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8de46b474536e33e8747d8e98f64ebe866c718a0

commit 8de46b474536e33e8747d8e98f64ebe866c718a0
Author:     Adriaan de Groot <adridg@FreeBSD.org>
AuthorDate: 2022-02-07 11:11:28 +0000
Commit:     Adriaan de Groot <adridg@FreeBSD.org>
CommitDate: 2022-02-20 15:45:27 +0000

    x11-toolkits/copperspice: resurrect CopperSpice
    
    CopperSpice is a toolkit, forked from Qt and updated to use
    modern C++ and CMake in the Qt 5.something LGPL days. It was
    removed from the tree for being unfetchable in 2017, now
    restored. I didn't bother to look at the old ports files, so
    this is entirely new work.
    
    CS builds cleanly, except I patched in -pthread as a linker
    option; I think this ought to be part of the Threads package
    found by CMake, but it isn't (on FreeBSD at least). Some linkage
    options need to be PUBLIC to be carried through to consuming
    applications (this is a FreeBSD thing).
    
    While here, introduce the misc/copperspice-examples which
    is a demo application *kitchensink* that exercises the libraries.
    
    CopperSpice shares notional-filenames with Qt (e.g. binaries
    called "lupdate" for UI design) but the Qt ports are versioned
    ("lupdate-qt5"). CopperSpice gets "-cs" as a suffix.
    
    There's a bunch of patching to make things "behave" like a
    regularly packaged set of libraries and applications that
    consume those libraries. In particular using $(LOCALBASE)/share/
    rather than putting everything in the same target directory.
---
 MOVED                                              |    2 +-
 misc/Makefile                                      |    1 +
 misc/copperspice-examples/Makefile                 |   38 +
 misc/copperspice-examples/distinfo                 |    3 +
 .../files/patch-src_CMakeLists.txt                 |   62 +
 misc/copperspice-examples/pkg-descr                |    5 +
 x11-toolkits/Makefile                              |    1 +
 x11-toolkits/copperspice/Makefile                  |   46 +
 x11-toolkits/copperspice/distinfo                  |    3 +
 .../copperspice/files/patch-CMakeLists.txt         |   29 +
 .../files/patch-src_core_CMakeLists.txt            |   36 +
 .../files/patch-src_core_kernel_kernel.cmake       |   17 +
 .../patch-src_core_kernel_qcoreapplication.cpp     |   11 +
 .../files/patch-src_declarative_CMakeLists.txt     |   13 +
 .../copperspice/files/patch-src_gui_CMakeLists.txt |   22 +
 .../files/patch-src_multimedia_CMakeLists.txt      |   22 +
 .../files/patch-src_network_CMakeLists.txt         |   22 +
 .../files/patch-src_opengl_CMakeLists.txt          |   22 +
 ...timedia_mediaservices_gstreamer_gstreamer.cmake |   13 +
 ...ultimedia_playlistformats_playlistformats.cmake |    8 +
 ...ch-src_plugins_platforms_xcb_glx_xcb__glx.cmake |    9 +
 .../patch-src_plugins_platforms_xcb_xcb.cmake      |   10 +
 ...s_platforms_xcb_xcb__support_xcb__support.cmake |   12 +
 ...c_plugins_printerdrivers_cups_cupsprinter.cmake |   10 +
 .../files/patch-src_script_CMakeLists.txt          |   22 +
 .../files/patch-src_scripttools_CMakeLists.txt     |   13 +
 .../copperspice/files/patch-src_sql_CMakeLists.txt |   22 +
 .../copperspice/files/patch-src_svg_CMakeLists.txt |   22 +
 .../files/patch-src_tools_lconvert_CMakeLists.txt  |   11 +
 .../files/patch-src_tools_linguist_CMakeLists.txt  |   11 +
 .../files/patch-src_tools_lrelease_CMakeLists.txt  |   11 +
 .../files/patch-src_tools_lupdate_CMakeLists.txt   |   11 +
 .../files/patch-src_tools_rcc_CMakeLists.txt       |   11 +
 .../files/patch-src_tools_uic_CMakeLists.txt       |   11 +
 .../files/patch-src_webkit_CMakeLists.txt          |   22 +
 .../copperspice/files/patch-src_xml_CMakeLists.txt |   22 +
 .../files/patch-src_xmlpatterns_CMakeLists.txt     |   22 +
 .../files/patch-utilities_unicode_CMakeLists.txt   |   15 +
 x11-toolkits/copperspice/pkg-descr                 |   14 +
 x11-toolkits/copperspice/pkg-plist                 | 2133 ++++++++++++++++++++
 40 files changed, 2789 insertions(+), 1 deletion(-)

diff --git a/MOVED b/MOVED
index 92be28289282..bd01e972fcb1 100644
--- a/MOVED
+++ b/MOVED
@@ -13107,7 +13107,6 @@ games/xscorch||2019-10-16|Has expired: Unfetchable, unmaintained
 graphics/aeskulap||2019-10-16|Has expired: Unfetchable, unmaintained
 graphics/agave||2019-10-16|Has expired: Unfetchable, unmaintained
 graphics/cbview||2019-10-16|Has expired: Unfetchable, unmaintained
-graphics/copperspice||2019-10-16|Has expired: Unfetchable, unmaintained
 graphics/cthumb||2019-10-16|Has expired: Unfetchable, unmaintained
 graphics/fujiplay||2019-10-16|Has expired: Unfetchable, unmaintained
 graphics/gimp-ez-perspective-plugin||2019-10-16|Has expired: Unfetchable, unmaintained
@@ -16892,3 +16891,4 @@ security/php81-openssl||2022-02-12|php81-openssl module is a default module for
 math/qhull8|math/qhull|2022-02-19|qhull as version 8 is the default from now on
 print/tex-aleph||2022-02-19|tex-aleph has been removed from texlive-2021 system
 sysutils/intel-pcm-devel||2022-02-19|intel-pcm-devel has been removed, encouraging users to use intel-pcm instead
+graphics/copperspice|x11-toolkits/copperspice|2022-02-20|Revive in more appropriate category
diff --git a/misc/Makefile b/misc/Makefile
index ba25cec91c41..39553d69e4e3 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -53,6 +53,7 @@
     SUBDIR += compat8x
     SUBDIR += compat9x
     SUBDIR += concourse
+    SUBDIR += copperspice-examples
     SUBDIR += countrycodes
     SUBDIR += cpuid
     SUBDIR += crosti
diff --git a/misc/copperspice-examples/Makefile b/misc/copperspice-examples/Makefile
new file mode 100644
index 000000000000..bc60c59707cc
--- /dev/null
+++ b/misc/copperspice-examples/Makefile
@@ -0,0 +1,38 @@
+PORTNAME=	copperspice-examples
+DISTVERSIONPREFIX=	ks-
+DISTVERSION=	1.7.3
+CATEGORIES=	misc
+
+MAINTAINER=	adridg@FreeBSD.org
+COMMENT=	Example programs for Copperspice
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libpulse.so:audio/pulseaudio \
+		libgstreamer-1.0.so:multimedia/gstreamer1 \
+		libcups.so:print/cups \
+		libxcb-icccm.so:x11/xcb-util-wm \
+		libxcb-image.so:x11/xcb-util-image \
+		libxcb-keysyms.so:x11/xcb-util-keysyms \
+		libxcb-render-util.so:x11/xcb-util-renderutil \
+		libxcb.so:x11/libxcb \
+		libxkbcommon.so:x11/libxkbcommon \
+		libfontconfig.so:x11-fonts/fontconfig
+BUILD_DEPENDS=	copperspice>=1.7:x11-toolkits/copperspice
+RUN_DEPENDS=	copperspice>=1.7:x11-toolkits/copperspice
+
+USES=		compiler:c++17-lang cmake gl gnome iconv jpeg pkgconfig ssl xorg
+USE_GL=		gl
+USE_GNOME=	cairo glib20 libxml2
+USE_GSTREAMER1=	yes
+USE_XORG=	ice sm x11 xau xcb xcursor xext xfixes xi xinerama xrandr xrender
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	copperspice
+GH_PROJECT=	kitchensink
+
+PLIST_FILES=	bin/kitchensink
+
+.include <bsd.port.mk>
diff --git a/misc/copperspice-examples/distinfo b/misc/copperspice-examples/distinfo
new file mode 100644
index 000000000000..19d156d76a68
--- /dev/null
+++ b/misc/copperspice-examples/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1644188375
+SHA256 (copperspice-kitchensink-ks-1.7.3_GH0.tar.gz) = 5e7f8cab97e6260ad6dc7e1195ef7983bb4ecf88c47047196ad48e8bf7690c3d
+SIZE (copperspice-kitchensink-ks-1.7.3_GH0.tar.gz) = 626928
diff --git a/misc/copperspice-examples/files/patch-src_CMakeLists.txt b/misc/copperspice-examples/files/patch-src_CMakeLists.txt
new file mode 100644
index 000000000000..9f2009855313
--- /dev/null
+++ b/misc/copperspice-examples/files/patch-src_CMakeLists.txt
@@ -0,0 +1,62 @@
+--- src/CMakeLists.txt.orig	2022-02-15 21:15:36 UTC
++++ src/CMakeLists.txt
+@@ -182,25 +182,26 @@ endif()
+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
+    install(TARGETS KitchenSink DESTINATION ../MacOS)
+ else()
+-   install(TARGETS KitchenSink DESTINATION .)
++   install(TARGETS KitchenSink)
+ endif()
+ 
+-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../resources/script.js       DESTINATION ./resources)
+-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../resources/sampleMenu.xml  DESTINATION ./resources)
++set(install_resource_dir ${CMAKE_INSTALL_DATADIR}/copperspice/kitchensink/resources)
++# install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../resources/script.js       DESTINATION ${install_resource_dir})
++# install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../resources/sampleMenu.xml  DESTINATION ${install_resource_dir})
+ 
+ # installs the CopperSpice libraries
+-cs_copy_library(CsCore)
+-cs_copy_library(CsGui)
+-cs_copy_library(CsNetwork)
+-cs_copy_library(CsOpenGL)
+-cs_copy_library(CsScript)
+-cs_copy_library(CsSql)
+-cs_copy_library(CsSvg)
+-cs_copy_library(CsXml)
+-cs_copy_library(CsXmlPatterns)
++# cs_copy_library(CsCore)
++# cs_copy_library(CsGui)
++# cs_copy_library(CsNetwork)
++# cs_copy_library(CsOpenGL)
++# cs_copy_library(CsScript)
++# cs_copy_library(CsSql)
++# cs_copy_library(CsSvg)
++# cs_copy_library(CsXml)
++# cs_copy_library(CsXmlPatterns)
+ 
+ if("Multimedia" IN_LIST COPPERSPICE_COMPONENTS)
+-   cs_copy_library(CsMultimedia)
++   # cs_copy_library(CsMultimedia)
+ endif()
+ 
+ if("WebKit" IN_LIST COPPERSPICE_COMPONENTS)
+@@ -226,15 +227,15 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ elseif(CMAKE_SYSTEM_NAME MATCHES "(Linux|OpenBSD|FreeBSD|NetBSD|DragonFly)")
+ 
+    # installs the platform Gui plugin
+-   cs_copy_plugins(CsGui)
+-   cs_copy_plugins(CsOpenGL)
++   # cs_copy_plugins(CsGui)
++   # cs_copy_plugins(CsOpenGL)
+ 
+    # three files
+    if("Multimedia" IN_LIST COPPERSPICE_COMPONENTS)
+-      cs_copy_plugins(CsMultimedia)
++      # cs_copy_plugins(CsMultimedia)
+    endif()
+ 
+-   install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../resources/ks.png DESTINATION ./resources)
++   # install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../resources/ks.png DESTINATION ${install_resource_dir})
+ 
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
+ 
diff --git a/misc/copperspice-examples/pkg-descr b/misc/copperspice-examples/pkg-descr
new file mode 100644
index 000000000000..73f7eb9ef0f1
--- /dev/null
+++ b/misc/copperspice-examples/pkg-descr
@@ -0,0 +1,5 @@
+CopperSpice is a set of individual libraries which can be used to develop
+cross platform software applications in C++. This is the example application
+for CopperSpice, which showcases most of the things the library can do.
+
+WWW: https://www.copperspice.com/
diff --git a/x11-toolkits/Makefile b/x11-toolkits/Makefile
index 66a183da74b6..580587d4a00f 100644
--- a/x11-toolkits/Makefile
+++ b/x11-toolkits/Makefile
@@ -7,6 +7,7 @@
     SUBDIR += blt
     SUBDIR += bwidget
     SUBDIR += color-widgets-qt5
+    SUBDIR += copperspice
     SUBDIR += ctk
     SUBDIR += fltk
     SUBDIR += fox14
diff --git a/x11-toolkits/copperspice/Makefile b/x11-toolkits/copperspice/Makefile
new file mode 100644
index 000000000000..ca28ea864e5d
--- /dev/null
+++ b/x11-toolkits/copperspice/Makefile
@@ -0,0 +1,46 @@
+PORTNAME=	copperspice
+DISTVERSIONPREFIX=	cs-
+DISTVERSION=	1.7.3
+CATEGORIES=	x11-toolkits
+
+MAINTAINER=	adridg@FreeBSD.org
+COMMENT=	First class GUI library to unite the C++ community
+
+LICENSE=	LGPL21
+LICENSE_FILE=	${WRKSRC}/license/LICENSE.LGPL
+
+LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libpulse.so:audio/pulseaudio \
+		libgstreamer-1.0.so:multimedia/gstreamer1 \
+		libcups.so:print/cups \
+		libxcb-icccm.so:x11/xcb-util-wm \
+		libxcb-image.so:x11/xcb-util-image \
+		libxcb-keysyms.so:x11/xcb-util-keysyms \
+		libxcb-render-util.so:x11/xcb-util-renderutil \
+		libxcb.so:x11/libxcb \
+		libxkbcommon.so:x11/libxkbcommon \
+		libfontconfig.so:x11-fonts/fontconfig
+
+USES=		compiler:c++17-lang cmake gl gnome iconv jpeg pkgconfig ssl xorg
+USE_GL=		gl
+USE_GNOME=	cairo glib20 libxml2
+USE_GSTREAMER1=	yes
+USE_XORG=	ice sm x11 xau xcb xcursor xext xfixes xi xinerama xrandr xrender
+
+USE_GITHUB=	yes
+
+CMAKE_ARGS+=	-DCMAKE_INSTALL_BINDIR:PATH='$(LOCALBASE)/lib/copperspice/bin' \
+		-DCMAKE_INSTALL_INCLUDEDIR:PATH='$(LOCALBASE)/include/copperspice' \
+		-DCMAKE_INSTALL_PREFIX:PATH='$(LOCALBASE)' \
+		-DTOOLS_SUFFIX:STRING=-cs
+
+# There is a notional conflict with the Qt ports: those have **versioned**
+# tool names, like designer-qt5, lupdate-qt5, to allow co-installation
+# of Qt[456] (when we had / have more than one current-version in ports).
+#
+# Since CopperSpice doesn't version the binaries, it doesn't conflict
+# with the Qt ports, but does "rudely" occupy the unversioned name.
+#
+# CONFLICTS=	qt5-core
+
+.include <bsd.port.mk>
diff --git a/x11-toolkits/copperspice/distinfo b/x11-toolkits/copperspice/distinfo
new file mode 100644
index 000000000000..4e65f5d36c6b
--- /dev/null
+++ b/x11-toolkits/copperspice/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1644180687
+SHA256 (copperspice-copperspice-cs-1.7.3_GH0.tar.gz) = c1c1318f04aae0e4af10fffa6d20267768c2b1acc4c339f41609629584f81c39
+SIZE (copperspice-copperspice-cs-1.7.3_GH0.tar.gz) = 35455780
diff --git a/x11-toolkits/copperspice/files/patch-CMakeLists.txt b/x11-toolkits/copperspice/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..ebe2c70ce785
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-CMakeLists.txt
@@ -0,0 +1,29 @@
+--- CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ CMakeLists.txt
+@@ -43,12 +43,6 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ elseif (CMAKE_SYSTEM_NAME MATCHES "(Linux|OpenBSD|FreeBSD|NetBSD|DragonFly)")
+    include(GNUInstallDirs)
+ 
+-   # rpath used for rcc and uic when compiling a user application
+-   file(RELATIVE_PATH CS_BIN_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}"
+-                                   "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+-
+-   set(CMAKE_INSTALL_RPATH "$ORIGIN/${CS_BIN_RPATH}")
+-
+ elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
+    set(CMAKE_INSTALL_BINDIR bin)
+    set(CMAKE_INSTALL_LIBDIR lib)
+@@ -549,6 +543,13 @@ elseif (WITH_WEBKIT AND NOT (WITH_GUI AND WITH_NETWORK
+    message(SEND_ERROR "WebKit component requires Gui, Network, and Script components")
+ 
+ endif()
++
++# To improve co-installability, insert this subdirectory in library-
++# and include-file installation paths (e.g. libraries end up installed
++# in ${PREFIX}/lib/${CS_NAMESPACE_DIRECTORY}/ ) It may be empty,
++# for no intermediate subdirectory. If it isn't empty, must end with /.
++set(CS_NAMESPACE_DIRECTORY "/copperspice/")
++set(CS_FULL_LIBDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY})
+ 
+ add_subdirectory(src/core)
+ foreach(component ${CS_OPTIONAL_COMPONENTS})
diff --git a/x11-toolkits/copperspice/files/patch-src_core_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_core_CMakeLists.txt
new file mode 100644
index 000000000000..48b17e753b79
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_core_CMakeLists.txt
@@ -0,0 +1,36 @@
+--- src/core/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/core/CMakeLists.txt
+@@ -128,9 +128,10 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ 
+ elseif(CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD|DragonFly)")
+    target_link_libraries(CsCore
+-      PRIVATE
++      PUBLIC
+       ${CMAKE_THREAD_LIBS_INIT}
+    )
++   target_link_options(CsCore PUBLIC -pthread)
+    include_directories(${CMAKE_SOURCE_DIR}/src/3rdparty/forkfd)
+ 
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
+@@ -154,8 +155,8 @@ target_sources(CsCore
+ 
+ target_include_directories(CsCore
+    PUBLIC
+-   $<INSTALL_INTERFACE:include>
+-   $<INSTALL_INTERFACE:include/QtCore>
++   ${CMAKE_INSTALL_INCLUDEDIR}
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtCore
+ )
+ 
+ if(MSVC)
+@@ -196,8 +197,8 @@ install(
+    TARGETS CsCore
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_core_kernel_kernel.cmake b/x11-toolkits/copperspice/files/patch-src_core_kernel_kernel.cmake
new file mode 100644
index 000000000000..959d38506b45
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_core_kernel_kernel.cmake
@@ -0,0 +1,17 @@
+--- src/core/kernel/kernel.cmake.orig	2022-02-17 22:27:19 UTC
++++ src/core/kernel/kernel.cmake
+@@ -150,6 +150,7 @@ target_sources(CsCore
+    ${CMAKE_CURRENT_SOURCE_DIR}/kernel/csobject_debug.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/kernel/csobject_private.cpp
+ )
++target_compile_definitions(CsCore PRIVATE CS_DEFAULT_PLUGINPATH="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}")
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+    target_sources(CsCore
+@@ -194,4 +195,4 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
+       ${CMAKE_CURRENT_SOURCE_DIR}/kernel/qsystemsemaphore_win.cpp
+    )
+ 
+-endif()
+\ No newline at end of file
++endif()
diff --git a/x11-toolkits/copperspice/files/patch-src_core_kernel_qcoreapplication.cpp b/x11-toolkits/copperspice/files/patch-src_core_kernel_qcoreapplication.cpp
new file mode 100644
index 000000000000..34d6e3f4917e
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_core_kernel_qcoreapplication.cpp
@@ -0,0 +1,11 @@
+--- src/core/kernel/qcoreapplication.cpp.orig	2022-02-17 22:23:09 UTC
++++ src/core/kernel/qcoreapplication.cpp
+@@ -1653,6 +1653,8 @@ QStringList QCoreApplication::libraryPaths()
+                app_libpaths->append(canonicalPath);
+             }
+          }
++      } else { // Bung in the #defined default, which comes from CMake
++          QString canonicalPath = QDir(CS_DEFAULT_PLUGINPATH).canonicalPath();  if (! canonicalPath.isEmpty() && !app_libpaths->contains(canonicalPath)) app_libpaths->append(CS_DEFAULT_PLUGINPATH);
+       }
+    }
+ 
diff --git a/x11-toolkits/copperspice/files/patch-src_declarative_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_declarative_CMakeLists.txt
new file mode 100644
index 000000000000..472eedf70715
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_declarative_CMakeLists.txt
@@ -0,0 +1,13 @@
+--- src/declarative/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/declarative/CMakeLists.txt
+@@ -73,8 +73,8 @@ macro_generate_package(
+ install(TARGETS CsDeclarative
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_gui_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_gui_CMakeLists.txt
new file mode 100644
index 000000000000..6aefefb92f18
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_gui_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/gui/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/gui/CMakeLists.txt
+@@ -179,7 +179,7 @@ target_sources(CsGui
+ 
+ target_include_directories(CsGui
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtGui>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtGui
+    ${OPENGL_INCLUDE_DIR}
+ )
+ 
+@@ -215,8 +215,8 @@ install(
+    TARGETS CsGui
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_multimedia_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_multimedia_CMakeLists.txt
new file mode 100644
index 000000000000..04e21ab27536
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_multimedia_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/multimedia/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/multimedia/CMakeLists.txt
+@@ -81,7 +81,7 @@ target_link_libraries(CsMultimedia
+ target_include_directories(CsMultimedia
+    PUBLIC
+    ${GSTREAMER_INCLUDE_DIRS}
+-   $<INSTALL_INTERFACE:include/QtMultimedia>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtMultimedia
+ )
+ 
+ set_target_properties(CsMultimedia
+@@ -103,8 +103,8 @@ install(
+     TARGETS CsMultimedia
+     EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_network_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_network_CMakeLists.txt
new file mode 100644
index 000000000000..6575cadf255d
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_network_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/network/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/network/CMakeLists.txt
+@@ -92,7 +92,7 @@ target_link_libraries(CsNetwork
+ 
+ target_include_directories(CsNetwork
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtNetwork>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtNetwork
+ )
+ 
+ set_target_properties(CsNetwork
+@@ -114,8 +114,8 @@ install(
+    TARGETS CsNetwork
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_opengl_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_opengl_CMakeLists.txt
new file mode 100644
index 000000000000..28ce2097ed26
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_opengl_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/opengl/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/opengl/CMakeLists.txt
+@@ -130,7 +130,7 @@ function_variable_fixup("${EXTRA_OPENGL_LDFLAGS}"  EXT
+ 
+ target_include_directories(CsOpenGL
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtOpenGL>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtOpenGL
+ )
+ 
+ target_link_libraries(CsOpenGL
+@@ -159,8 +159,8 @@ install(
+    TARGETS CsOpenGL
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_plugins_multimedia_mediaservices_gstreamer_gstreamer.cmake b/x11-toolkits/copperspice/files/patch-src_plugins_multimedia_mediaservices_gstreamer_gstreamer.cmake
new file mode 100644
index 000000000000..872e9730be5c
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_plugins_multimedia_mediaservices_gstreamer_gstreamer.cmake
@@ -0,0 +1,13 @@
+--- src/plugins/multimedia/mediaservices/gstreamer/gstreamer.cmake.orig	2022-02-17 11:16:53 UTC
++++ src/plugins/multimedia/mediaservices/gstreamer/gstreamer.cmake
+@@ -284,7 +284,7 @@ if(WITH_MULTIMEDIA AND GStreamer_FOUND)
+    set_target_properties(CsMultimedia_gst_camerabin    PROPERTIES PREFIX "")
+    set_target_properties(CsMultimedia_gst_mediaplayer  PROPERTIES PREFIX "")
+ 
+-   install(TARGETS CsMultimedia_gst_audiodecoder DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-   install(TARGETS CsMultimedia_gst_camerabin    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-   install(TARGETS CsMultimedia_gst_mediaplayer  DESTINATION ${CMAKE_INSTALL_LIBDIR})
++   install(TARGETS CsMultimedia_gst_audiodecoder DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}/mediaservices)
++   install(TARGETS CsMultimedia_gst_camerabin    DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}/mediaservices)
++   install(TARGETS CsMultimedia_gst_mediaplayer  DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}/mediaservices)
+ endif()
diff --git a/x11-toolkits/copperspice/files/patch-src_plugins_multimedia_playlistformats_playlistformats.cmake b/x11-toolkits/copperspice/files/patch-src_plugins_multimedia_playlistformats_playlistformats.cmake
new file mode 100644
index 000000000000..29b5d3c71718
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_plugins_multimedia_playlistformats_playlistformats.cmake
@@ -0,0 +1,8 @@
+--- src/plugins/multimedia/playlistformats/playlistformats.cmake.orig	2022-02-17 11:15:59 UTC
++++ src/plugins/multimedia/playlistformats/playlistformats.cmake
+@@ -24,4 +24,4 @@ target_compile_definitions(CsMultimedia_m3u
+    -DQT_PLUGIN
+ )
+ 
+-install(TARGETS CsMultimedia_m3u DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(TARGETS CsMultimedia_m3u DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}/mediaservices)
diff --git a/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_glx_xcb__glx.cmake b/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_glx_xcb__glx.cmake
new file mode 100644
index 000000000000..b33fd95bcb54
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_glx_xcb__glx.cmake
@@ -0,0 +1,9 @@
+--- src/plugins/platforms/xcb/glx/xcb_glx.cmake.orig	2022-02-17 11:21:35 UTC
++++ src/plugins/platforms/xcb/glx/xcb_glx.cmake
+@@ -51,5 +51,5 @@ if(BUILD_PLATFORMS_XCB_PLUGIN AND XCB_GLX_LIB)
+       -DXCB_USE_XINPUT2
+    )
+ 
+-   install(TARGETS CsGuiXcb_Glx DESTINATION ${CMAKE_INSTALL_LIBDIR})
++   install(TARGETS CsGuiXcb_Glx DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}/xcbglintegrations)
+ endif()
diff --git a/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_xcb.cmake b/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_xcb.cmake
new file mode 100644
index 000000000000..75e759f79e9e
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_xcb.cmake
@@ -0,0 +1,10 @@
+--- src/plugins/platforms/xcb/xcb.cmake.orig	2022-02-17 11:13:33 UTC
++++ src/plugins/platforms/xcb/xcb.cmake
+@@ -28,6 +28,6 @@ if(BUILD_PLATFORMS_XCB_PLUGIN)
+       -DXCB_USE_XINPUT2
+    )
+ 
+-   install(TARGETS CsGuiXcb DESTINATION ${CMAKE_INSTALL_LIBDIR})
++   install(TARGETS CsGuiXcb DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}/platforms)
+ endif()
+ 
diff --git a/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_xcb__support_xcb__support.cmake b/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_xcb__support_xcb__support.cmake
new file mode 100644
index 000000000000..b59d894bf89d
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_plugins_platforms_xcb_xcb__support_xcb__support.cmake
@@ -0,0 +1,12 @@
+--- src/plugins/platforms/xcb/xcb_support/xcb_support.cmake.orig	2022-02-17 11:18:08 UTC
++++ src/plugins/platforms/xcb/xcb_support/xcb_support.cmake
+@@ -151,7 +151,7 @@ if(BUILD_PLATFORMS_XCB_PLUGIN)
+       TARGETS CsXcbSupport
+       EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+       RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+    )
+ endif()
diff --git a/x11-toolkits/copperspice/files/patch-src_plugins_printerdrivers_cups_cupsprinter.cmake b/x11-toolkits/copperspice/files/patch-src_plugins_printerdrivers_cups_cupsprinter.cmake
new file mode 100644
index 000000000000..aa9c59886c2d
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_plugins_printerdrivers_cups_cupsprinter.cmake
@@ -0,0 +1,10 @@
+--- src/plugins/printerdrivers/cups/cupsprinter.cmake.orig	2022-02-17 11:23:12 UTC
++++ src/plugins/printerdrivers/cups/cupsprinter.cmake
+@@ -37,6 +37,6 @@ if(Cups_FOUND)
+ 
+    function_generate_resources(CsPrinterDriverCups)
+ 
+-   install(TARGETS CsPrinterDriverCups DESTINATION ${CMAKE_INSTALL_LIBDIR})
++   install(TARGETS CsPrinterDriverCups DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}/platforms)
+ endif()
+ 
diff --git a/x11-toolkits/copperspice/files/patch-src_script_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_script_CMakeLists.txt
new file mode 100644
index 000000000000..8278eab8efda
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_script_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/script/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/script/CMakeLists.txt
+@@ -569,7 +569,7 @@ target_sources(CsScript
+ 
+ target_include_directories(CsScript
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtScript>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtScript
+ )
+ 
+ target_link_libraries(CsScript
+@@ -596,8 +596,8 @@ install(
+    TARGETS CsScript
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_scripttools_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_scripttools_CMakeLists.txt
new file mode 100644
index 000000000000..fef284348123
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_scripttools_CMakeLists.txt
@@ -0,0 +1,13 @@
+--- src/scripttools/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/scripttools/CMakeLists.txt
+@@ -62,8 +62,8 @@ install(
+     TARGETS CsScriptTools
+     EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_sql_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_sql_CMakeLists.txt
new file mode 100644
index 000000000000..3b632ee1895f
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_sql_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/sql/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/sql/CMakeLists.txt
+@@ -76,7 +76,7 @@ target_link_libraries(CsSql
+ 
+ target_include_directories(CsSql
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtSql>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtSql
+ )
+ 
+ set_target_properties(CsSql
+@@ -98,8 +98,8 @@ install(
+    TARGETS CsSql
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_svg_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_svg_CMakeLists.txt
new file mode 100644
index 000000000000..468aea52a433
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_svg_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/svg/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/svg/CMakeLists.txt
+@@ -89,7 +89,7 @@ target_sources(CsSvg
+ 
+ target_include_directories(CsSvg
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtSvg>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtSvg
+ )
+ 
+ target_link_libraries(CsSvg
+@@ -123,8 +123,8 @@ install(
+    TARGETS CsSvg
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_tools_lconvert_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_tools_lconvert_CMakeLists.txt
new file mode 100644
index 000000000000..77752954f979
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_tools_lconvert_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/tools/lconvert/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/tools/lconvert/CMakeLists.txt
+@@ -39,7 +39,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "DARWIN")
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD)")
+-   list(APPEND EXTRA_LCONVERT_LDFLAGS  '-Wl,-rpath,$ORIGIN/../lib')
++   list(APPEND EXTRA_LCONVERT_LDFLAGS  '-Wl,-rpath,${CS_FULL_LIBDIR}')
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
diff --git a/x11-toolkits/copperspice/files/patch-src_tools_linguist_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_tools_linguist_CMakeLists.txt
new file mode 100644
index 000000000000..8647ae132c4f
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_tools_linguist_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/tools/linguist/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/tools/linguist/CMakeLists.txt
+@@ -100,7 +100,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD)")
+-   list(APPEND EXTRA_LINGUIST_LDFLAGS '-Wl,-rpath,$ORIGIN/../lib')
++   list(APPEND EXTRA_LINGUIST_LDFLAGS '-Wl,-rpath,${CS_FULL_LIBDIR}')
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "Windows")
diff --git a/x11-toolkits/copperspice/files/patch-src_tools_lrelease_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_tools_lrelease_CMakeLists.txt
new file mode 100644
index 000000000000..d5011fa29c03
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_tools_lrelease_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/tools/lrelease/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/tools/lrelease/CMakeLists.txt
+@@ -38,7 +38,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD)")
+-   list(APPEND EXTRA_LRELEASE_LDFLAGS '-Wl,-rpath,$ORIGIN/../lib')
++   list(APPEND EXTRA_LRELEASE_LDFLAGS '-Wl,-rpath,${CS_FULL_LIBDIR}')
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "Windows")
diff --git a/x11-toolkits/copperspice/files/patch-src_tools_lupdate_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_tools_lupdate_CMakeLists.txt
new file mode 100644
index 000000000000..d27d382700eb
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_tools_lupdate_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/tools/lupdate/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/tools/lupdate/CMakeLists.txt
+@@ -36,7 +36,7 @@ target_sources(lupdate${TOOLS_SUFFIX}
+ )
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD)")
+-   set(EXTRA_LUPDATE_LDFLAGS  ${EXTRA_LUPDATE_LDFLAGS} '-Wl,-rpath,$ORIGIN/../lib')
++   set(EXTRA_LUPDATE_LDFLAGS  ${EXTRA_LUPDATE_LDFLAGS} '-Wl,-rpath,${CS_FULL_LIBDIR}')
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "DARWIN")
diff --git a/x11-toolkits/copperspice/files/patch-src_tools_rcc_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_tools_rcc_CMakeLists.txt
new file mode 100644
index 000000000000..7e30a741a18b
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_tools_rcc_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/tools/rcc/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/tools/rcc/CMakeLists.txt
+@@ -35,7 +35,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "DARWIN")
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD)")
+-   list(APPEND EXTRA_RCC_LDFLAGS '-Wl,-rpath,$ORIGIN/../lib')
++   list(APPEND EXTRA_RCC_LDFLAGS '-Wl,-rpath,${CS_FULL_LIBDIR}')
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
diff --git a/x11-toolkits/copperspice/files/patch-src_tools_uic_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_tools_uic_CMakeLists.txt
new file mode 100644
index 000000000000..928d9e79918e
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_tools_uic_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- src/tools/uic/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/tools/uic/CMakeLists.txt
+@@ -70,7 +70,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD)")
+-   list(APPEND EXTRA_UIC_LDFLAGS  '-Wl,-rpath,$ORIGIN/../lib')
++   list(APPEND EXTRA_UIC_LDFLAGS  '-Wl,-rpath,${CS_FULL_LIBDIR}')
+ endif()
+ 
+ if(CMAKE_SYSTEM_NAME MATCHES "Windows")
diff --git a/x11-toolkits/copperspice/files/patch-src_webkit_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_webkit_CMakeLists.txt
new file mode 100644
index 000000000000..377477ec9427
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_webkit_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/webkit/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/webkit/CMakeLists.txt
+@@ -2432,7 +2432,7 @@ function_variable_fixup("${EXTRA_WEBKIT_LDFLAGS}"  EXT
+ 
+ target_include_directories(CsWebKit
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtWebKit>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtWebKit
+ )
+ 
+ target_link_libraries(CsWebKit
+@@ -2462,8 +2462,8 @@ install(
+    TARGETS CsWebKit
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_xml_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_xml_CMakeLists.txt
new file mode 100644
index 000000000000..ae6250b46122
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_xml_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/xml/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/xml/CMakeLists.txt
+@@ -44,7 +44,7 @@ target_sources(CsXml
+ 
+ target_include_directories(CsXml
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtXml>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtXml
+ )
+ 
+ target_link_libraries(CsXml
+@@ -71,8 +71,8 @@ install(
+    TARGETS CsXml
+    EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-src_xmlpatterns_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-src_xmlpatterns_CMakeLists.txt
new file mode 100644
index 000000000000..2aa346e2d3a1
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-src_xmlpatterns_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- src/xmlpatterns/CMakeLists.txt.orig	2022-01-14 18:52:21 UTC
++++ src/xmlpatterns/CMakeLists.txt
+@@ -67,7 +67,7 @@ target_sources(CsXmlPatterns
+ 
+ target_include_directories(CsXmlPatterns
+    PUBLIC
+-   $<INSTALL_INTERFACE:include/QtXmlPatterns>
++   ${CMAKE_INSTALL_INCLUDEDIR}/QtXmlPatterns
+ )
+ 
+ target_link_libraries(CsXmlPatterns
+@@ -95,8 +95,8 @@ install(
+     TARGETS CsXmlPatterns
+     EXPORT CopperSpiceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
+     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
++    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${CS_NAMESPACE_DIRECTORY}
+ )
+ 
+ install(
diff --git a/x11-toolkits/copperspice/files/patch-utilities_unicode_CMakeLists.txt b/x11-toolkits/copperspice/files/patch-utilities_unicode_CMakeLists.txt
new file mode 100644
index 000000000000..e12f670492fe
--- /dev/null
+++ b/x11-toolkits/copperspice/files/patch-utilities_unicode_CMakeLists.txt
@@ -0,0 +1,15 @@
+--- utilities/unicode/CMakeLists.txt.orig	2022-02-18 10:42:10 UTC
++++ utilities/unicode/CMakeLists.txt
+@@ -34,12 +34,6 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ elseif (CMAKE_SYSTEM_NAME MATCHES "(Linux|OpenBSD|FreeBSD|NetBSD|DragonFly)")
+    include(GNUInstallDirs)
+ 
+-   # rpath used for rcc and uic when compiling a user application
+-   file(RELATIVE_PATH CS_BIN_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}"
+-                                   "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+-
+-   set(CMAKE_INSTALL_RPATH "$ORIGIN/${CS_BIN_RPATH}")
+-
+ elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
+    set(CMAKE_INSTALL_BINDIR bin)
+    set(CMAKE_INSTALL_LIBDIR lib)
diff --git a/x11-toolkits/copperspice/pkg-descr b/x11-toolkits/copperspice/pkg-descr
new file mode 100644
index 000000000000..8cf7753ef9bc
--- /dev/null
+++ b/x11-toolkits/copperspice/pkg-descr
@@ -0,0 +1,14 @@
+CopperSpice is a set of individual libraries which can be used to develop
+cross platform software applications in C++. It is a totally open source
+project released under the LGPL V2.1 license and was initially derived
+from the Qt framework. Over the last several years CopperSpice has
+completely diverged, with a goal of providing a first class GUI library
+to unite the C++ community.
+
+Our motivation for developing CopperSpice was to change the fundamental
+design and turn the existing framework into a set of libraries for C++
+developers. We are accomplishing this by leveraging modern C++
+functionality, new technology, and modern tooling. CopperSpice currently
+requires C++17 or newer.
+
*** 2140 LINES SKIPPED ***