GNU bug report logs - #71161
[PATCH 0/5] obs: Update to 30.1.2

Previous Next

Package: guix-patches;

Reported by: iyzsong <at> envs.net

Date: Fri, 24 May 2024 04:31:01 UTC

Severity: normal

Tags: patch

Done: Andrew Tropin <andrew <at> trop.in>

To reply to this bug, email your comments to 71161 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#71161; Package guix-patches. (Fri, 24 May 2024 04:31:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to iyzsong <at> envs.net:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 24 May 2024 04:31:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: guix-patches <at> gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 0/5] obs: Update to 30.1.2
Date: Fri, 24 May 2024 12:30:17 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

Hello, these patches update OBS studio to its latest version.

qrcodegen-cpp needs to be updated for obs, need check telegram-desktop
and libreoffice if they build okay with the newer qrcodegen-cpp.  I haven't
check that.

Add a LD_LIBRARY_PATH hack for mesa, without it obs won't get a
display via libglvnd's libEGL.  It seems we need build mesa with glvnd
support (which will bring egl_vendor.d/50_mesa.json for libglvend to
consume, and rename libEGL.so to libEGL_mesa.so).


Sou Bunnbu (宋文武) (5):
  gnu: Add plog.
  gnu: Add libjuice.
  gnu: Add libdatachannel.
  gnu: qrcodegen-cpp: Update to 1.8.0.
  gnu: obs: Update to 30.1.2.

 gnu/local.mk                                  |   2 +-
 gnu/packages/aidc.scm                         |  22 +-
 gnu/packages/logging.scm                      |  25 +
 .../patches/qrcodegen-cpp-cmake.patch         | 506 ++++++++++++++++++
 .../patches/qrcodegen-cpp-make-install.patch  | 448 ----------------
 gnu/packages/video.scm                        |  21 +-
 gnu/packages/web.scm                          |  53 ++
 7 files changed, 606 insertions(+), 471 deletions(-)
 create mode 100644 gnu/packages/patches/qrcodegen-cpp-cmake.patch
 delete mode 100644 gnu/packages/patches/qrcodegen-cpp-make-install.patch


base-commit: 9901416233867233192b63fde7f616751127b189
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#71161; Package guix-patches. (Fri, 24 May 2024 04:33:01 GMT) Full text and rfc822 format available.

Message #8 received at 71161 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 71161 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 1/5] gnu: Add plog.
Date: Fri, 24 May 2024 12:31:42 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

* gnu/packages/logging.scm (plog): New variable.

Change-Id: Ibb90ffc6342d099d3ca5e8e1694b0128d78f5d4c
---
 gnu/packages/logging.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index a757c22154..9cc28279d7 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -119,6 +119,31 @@ (define-public glog
 command line.")
     (license license:bsd-3)))
 
+(define-public plog
+  (package
+    (name "plog")
+    (version "1.1.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/SergiusTheBest/plog")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1kxqz3vn98y1qij60sxn0ldv5q2xh2zbp7v8cd9m21sf1yp636im"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:configure-flags
+           #~'("-DPLOG_BUILD_TESTS=ON")))
+    (home-page "https://github.com/SergiusTheBest/plog")
+    (synopsis "C++ logging library")
+    (description
+     "Plog is a C++ logging library that is designed to be simple, small and
+flexible.  It is created as an alternative to existing large libraries and
+provides some unique features such as CSV log format and wide string support.")
+    (license license:expat)))
+
 ;; This is the legacy version of the tailon package.  The new version, written
 ;; in Go in available here: https://github.com/gvalkov/tailon.
 (define-public tailon
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#71161; Package guix-patches. (Fri, 24 May 2024 04:33:02 GMT) Full text and rfc822 format available.

Message #11 received at 71161 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 71161 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 2/5] gnu: Add libjuice.
Date: Fri, 24 May 2024 12:31:43 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

* gnu/packages/web.scm (libjuice): New variable.

Change-Id: I5ad910e687cc20d356800e5c4ac02d5158f122f3
---
 gnu/packages/web.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index cbf270ec6b..b9d1f42f00 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -2141,6 +2141,29 @@ (define-public wwwoffle
 changes, and much more.")
     (license license:gpl2+)))
 
+(define-public libjuice
+  (package
+    (name "libjuice")
+    (version "1.4.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/paullouisageneau/libjuice")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "035kqyp5bcawzkpqpjb1qjwqf0dp2gm9h2j9py5iiahcvfjwh70i"))))
+    (build-system cmake-build-system)
+    (arguments (list #:tests? #f))      ; requires internet access
+    (home-page "https://github.com/paullouisageneau/libjuice")
+    (synopsis "UDP Interactive Connectivity Establishment library")
+    (description "@code{libjuice} allows to open bidirectionnal User Datagram
+Protocol (UDP) streams with Network Address Translator (NAT) traversal.  It's a
+simplified implementation of the Interactive Connectivity Establishment (ICE)
+protocol, client-side and server-side, written in C without dependencies for
+POSIX platforms.")
+    (license license:mpl2.0)))
 (define-public liboauth
   (package
     (name "liboauth")
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#71161; Package guix-patches. (Fri, 24 May 2024 04:33:02 GMT) Full text and rfc822 format available.

Message #14 received at 71161 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 71161 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 3/5] gnu: Add libdatachannel.
Date: Fri, 24 May 2024 12:31:44 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

* gnu/packages/web.scm (libdatachannel): New variable.

Change-Id: Idc8996eec5160574649575a5519c6510baf194a5
---
 gnu/packages/web.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b9d1f42f00..39c35d6970 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -169,6 +169,7 @@ (define-module (gnu packages web)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp-xyz)
+  #:use-module (gnu packages logging)
   #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mail)
@@ -200,6 +201,7 @@ (define-module (gnu packages web)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages skribilo)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages telephony)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages time)
@@ -2164,6 +2166,34 @@ (define-public libjuice
 protocol, client-side and server-side, written in C without dependencies for
 POSIX platforms.")
     (license license:mpl2.0)))
+
+(define-public libdatachannel
+  (package
+    (name "libdatachannel")
+    (version "0.21.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/paullouisageneau/libdatachannel")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "11icbyd71dw5ywjdviq580xvad24yfsjj3c5zpjqsxc883i40dxi"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f                  ; requires internet access
+           #:configure-flags
+           #~'("-DPREFER_SYSTEM_LIB=ON")))
+    (inputs (list libjuice libsrtp nlohmann-json openssl plog usrsctp))
+    (home-page "https://libdatachannel.org/")
+    (synopsis "WebRTC Data Channels and WebSockets library")
+    (description "@code{libdatachannel} is a standalone implementation of WebRTC
+Data Channels, WebRTC Media Transport, and WebSockets in C++17 with C bindings
+for POSIX platforms.  WebRTC is a W3C and IETF standard enabling real-time
+peer-to-peer data and media exchange between two devices.")
+    (license license:mpl2.0)))
+
 (define-public liboauth
   (package
     (name "liboauth")
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#71161; Package guix-patches. (Fri, 24 May 2024 04:33:03 GMT) Full text and rfc822 format available.

Message #17 received at 71161 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 71161 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 4/5] gnu: qrcodegen-cpp: Update to 1.8.0.
Date: Fri, 24 May 2024 12:31:45 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

* gnu/packages/aidc.scm (qrcodegen-cpp): Update to 1.8.0.
[source]: Use qrcodegen-cpp-cmake.patch.
[build-system]: Switch to cmake-build-system.
[arguments]: Enable tests and build shared libraries.
* gnu/packages/patches/qrcodegen-cpp-make-install.patch: Remove file.
* gnu/packages/patches/qrcodegen-cpp-cmake.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register patch.

Change-Id: I0272a28ab2cda89700b5523e96f3014eff7ebf65
---
 gnu/local.mk                                  |   2 +-
 gnu/packages/aidc.scm                         |  22 +-
 .../patches/qrcodegen-cpp-cmake.patch         | 506 ++++++++++++++++++
 .../patches/qrcodegen-cpp-make-install.patch  | 448 ----------------
 4 files changed, 514 insertions(+), 464 deletions(-)
 create mode 100644 gnu/packages/patches/qrcodegen-cpp-cmake.patch
 delete mode 100644 gnu/packages/patches/qrcodegen-cpp-make-install.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index d76c0d1e39..508a79cbad 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1974,7 +1974,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/qemu-glibc-2.27.patch 			\
   %D%/packages/patches/qemu-glibc-2.30.patch 			\
   %D%/packages/patches/qemu-fix-agent-paths.patch 		\
-  %D%/packages/patches/qrcodegen-cpp-make-install.patch		\
+  %D%/packages/patches/qrcodegen-cpp-cmake.patch		\
   %D%/packages/patches/qtbase-absolute-runpath.patch		\
   %D%/packages/patches/qtbase-find-tools-in-PATH.patch		\
   %D%/packages/patches/qtbase-qmake-fix-includedir.patch 	\
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index b0fc1b30d9..bc9c47a480 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -228,30 +228,22 @@ (define-public zbar
 (define-public qrcodegen-cpp
   (package
     (name "qrcodegen-cpp")
-    (version "1.6.0")
+    (version "1.8.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                      (url "https://github.com/nayuki/QR-Code-generator")
                      (commit (string-append "v" version))))
               (file-name (git-file-name name version))
-              (patches (search-patches "qrcodegen-cpp-make-install.patch"))
+              (patches (search-patches "qrcodegen-cpp-cmake.patch"))
               (sha256
                (base32
-                "0iq9sv9na0vg996aqrxrjn9rrbiyy7sc9vslw945p3ky22pw3lql"))))
-    (build-system gnu-build-system)
+                "0dk9ci5gchxa8gh0hyhlj3d5jwxqlnfm85xyp791ldaia14bkj39"))))
+    (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f ; no test suite
-       #:make-flags
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure) ; No ./configure script
-         ;; Only build the C++ variant.
-         (add-after 'unpack 'chdir
-           (lambda _
-             (chdir "cpp")
-             #t)))))
+     (list #:configure-flags
+           #~'("-DBUILD_TESTS=ON"
+               "-DBUILD_SHARED_LIBS=ON")))
     (synopsis "QR Code generator library")
     (description "qrcodegen-cpp is a QR code generator library in C++.  The
 project also offers Java, Javascript, Python, C, and Rust implementations.")
diff --git a/gnu/packages/patches/qrcodegen-cpp-cmake.patch b/gnu/packages/patches/qrcodegen-cpp-cmake.patch
new file mode 100644
index 0000000000..aa0716f173
--- /dev/null
+++ b/gnu/packages/patches/qrcodegen-cpp-cmake.patch
@@ -0,0 +1,506 @@
+From 283d6a4bae95f42aaccd9ddd06d16c2e33ed4abf Mon Sep 17 00:00:00 2001
+From: Vitaly Zaitsev <vitaly <at> easycoding.org>
+Date: Thu, 21 Apr 2022 15:36:23 +0200
+Subject: [PATCH 1/2] Implemented CMake build support.
+
+Co-authored-by: leha-bot <leha-bot <at> users.noreply.github.com>
+Signed-off-by: Vitaly Zaitsev <vitaly <at> easycoding.org>
+---
+ CMakeLists.txt                     | 235 +++++++++++++++++++++++++++++
+ c/Makefile                         |  88 -----------
+ cmake/qrcodegen-config.cmake.in    |   4 +
+ cmake/qrcodegen.pc.in              |  11 ++
+ cmake/qrcodegencpp-config.cmake.in |   4 +
+ cmake/qrcodegencpp.pc.in           |  11 ++
+ cpp/Makefile                       |  84 -----------
+ 7 files changed, 265 insertions(+), 172 deletions(-)
+ create mode 100644 CMakeLists.txt
+ delete mode 100644 c/Makefile
+ create mode 100644 cmake/qrcodegen-config.cmake.in
+ create mode 100644 cmake/qrcodegen.pc.in
+ create mode 100644 cmake/qrcodegencpp-config.cmake.in
+ create mode 100644 cmake/qrcodegencpp.pc.in
+ delete mode 100644 cpp/Makefile
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+new file mode 100644
+index 0000000..b07197f
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,235 @@
++# ==============================
++# === Project initialization ===
++# ==============================
++
++cmake_minimum_required(VERSION 3.12)
++
++project(QR-Code-generator
++    VERSION 1.8.0
++    DESCRIPTION "High-quality QR Code generator library in Java, TypeScript/JavaScript, Python, C++, C, Rust"
++    HOMEPAGE_URL "https://www.nayuki.io/page/qr-code-generator-library"
++    LANGUAGES C CXX
++)
++
++set(CMAKE_CXX_STANDARD 11)
++set(CMAKE_CXX_STANDARD_REQUIRED ON)
++
++# =======================
++# === Project options ===
++# =======================
++
++option(BUILD_EXAMPLES "Build examples and demos" OFF)
++option(BUILD_TESTS "Build and run unit tests" OFF)
++
++# =======================
++# === Paths detection ===
++# =======================
++
++include(GNUInstallDirs)
++
++# ============================
++# === CMake config helpers ===
++# ============================
++
++include(CMakePackageConfigHelpers)
++
++# ========================
++# === C library target ===
++# ========================
++
++set(QRCODEGEN_NAME "qrcodegen")
++
++set(QRCODEGEN_SOURCES
++    c/qrcodegen.c
++)
++
++set(QRCODEGEN_HEADERS
++    c/qrcodegen.h
++)
++
++add_library(${QRCODEGEN_NAME}
++    ${QRCODEGEN_SOURCES}
++    ${QRCODEGEN_HEADERS}
++)
++
++target_include_directories(${QRCODEGEN_NAME} PUBLIC
++    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/c>
++    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGEN_NAME}>
++)
++
++set_property(TARGET ${QRCODEGEN_NAME} PROPERTY PUBLIC_HEADER ${QRCODEGEN_HEADERS})
++set_property(TARGET ${QRCODEGEN_NAME} PROPERTY VERSION ${CMAKE_PROJECT_VERSION})
++set_property(TARGET ${QRCODEGEN_NAME} PROPERTY SOVERSION 1)
++
++install(TARGETS ${QRCODEGEN_NAME}
++    EXPORT ${QRCODEGEN_NAME}-targets
++    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++    BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
++    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGEN_NAME}
++)
++
++configure_package_config_file(cmake/${QRCODEGEN_NAME}-config.cmake.in
++    ${QRCODEGEN_NAME}-config.cmake
++    INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGEN_NAME}
++)
++write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}-config-version.cmake
++    COMPATIBILITY ExactVersion
++)
++
++install(FILES
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}-config.cmake
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}-config-version.cmake
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGEN_NAME}
++)
++
++install(EXPORT ${QRCODEGEN_NAME}-targets
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGEN_NAME}
++    NAMESPACE ${QRCODEGEN_NAME}::
++)
++
++configure_file(cmake/${QRCODEGEN_NAME}.pc.in
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}.pc
++    @ONLY
++)
++
++install(FILES
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGEN_NAME}.pc
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
++)
++
++# =========================
++# === C examples target ===
++# =========================
++
++if(BUILD_EXAMPLES)
++    set(QRCODEGENDEMO_SOURCES
++        c/qrcodegen-demo.c
++    )
++
++    add_executable(${QRCODEGEN_NAME}-demo
++        ${QRCODEGENDEMO_SOURCES}
++    )
++
++    target_link_libraries(${QRCODEGEN_NAME}-demo PRIVATE
++        ${QRCODEGEN_NAME}
++    )
++endif()
++
++# ======================
++# === C tests target ===
++# ======================
++
++if (BUILD_TESTS)
++    set(QRCODEGENTEST_SOURCES
++        c/qrcodegen-test.c
++    )
++
++    add_library(${QRCODEGEN_NAME}-testable OBJECT
++        ${QRCODEGEN_SOURCES}
++        ${QRCODEGEN_HEADERS}
++    )
++
++    target_compile_options(${QRCODEGEN_NAME}-testable PUBLIC
++        -DQRCODEGEN_TEST
++    )
++
++    add_executable(${QRCODEGEN_NAME}-test
++        ${QRCODEGENTEST_SOURCES}
++    )
++
++    target_link_libraries(${QRCODEGEN_NAME}-test PRIVATE
++        ${QRCODEGEN_NAME}-testable
++    )
++
++    add_test(NAME ${QRCODEGEN_NAME}-test COMMAND ${QRCODEGEN_NAME}-test)
++endif()
++
++# ==========================
++# === C++ library target ===
++# ==========================
++
++set(QRCODEGENCPP_NAME "qrcodegencpp")
++
++set(QRCODEGENCPP_SOURCES
++    cpp/qrcodegen.cpp
++)
++
++set(QRCODEGENCPP_HEADERS
++    cpp/qrcodegen.hpp
++)
++
++add_library(${QRCODEGENCPP_NAME}
++    ${QRCODEGENCPP_SOURCES}
++    ${QRCODEGENCPP_HEADERS}
++)
++
++target_include_directories(${QRCODEGENCPP_NAME} PUBLIC
++    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cpp>
++    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGENCPP_NAME}>
++)
++
++set_property(TARGET ${QRCODEGENCPP_NAME} PROPERTY PUBLIC_HEADER ${QRCODEGENCPP_HEADERS})
++set_property(TARGET ${QRCODEGENCPP_NAME} PROPERTY VERSION ${CMAKE_PROJECT_VERSION})
++set_property(TARGET ${QRCODEGENCPP_NAME} PROPERTY SOVERSION 1)
++
++install(TARGETS ${QRCODEGENCPP_NAME}
++    EXPORT ${QRCODEGENCPP_NAME}-targets
++    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++    BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
++    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${QRCODEGENCPP_NAME}
++)
++
++configure_package_config_file(cmake/${QRCODEGENCPP_NAME}-config.cmake.in
++    ${QRCODEGENCPP_NAME}-config.cmake
++    INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGENCPP_NAME}
++)
++write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}-config-version.cmake
++    COMPATIBILITY ExactVersion
++)
++
++install(FILES
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}-config.cmake
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}-config-version.cmake
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGENCPP_NAME}
++)
++
++install(EXPORT ${QRCODEGENCPP_NAME}-targets
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${QRCODEGENCPP_NAME}
++    NAMESPACE ${QRCODEGENCPP_NAME}::
++)
++
++configure_file(cmake/${QRCODEGENCPP_NAME}.pc.in
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}.pc
++    @ONLY
++)
++
++install(FILES
++    ${CMAKE_CURRENT_BINARY_DIR}/${QRCODEGENCPP_NAME}.pc
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
++)
++
++# ===========================
++# === C++ examples target ===
++# ===========================
++
++if(BUILD_EXAMPLES)
++    set(QRCODEGENCPPDEMO_SOURCES
++        cpp/QrCodeGeneratorDemo.cpp
++    )
++
++    add_executable(${QRCODEGENCPP_NAME}-demo
++        ${QRCODEGENCPPDEMO_SOURCES}
++    )
++
++    target_link_libraries(${QRCODEGENCPP_NAME}-demo PRIVATE
++        ${QRCODEGENCPP_NAME}
++    )
++endif()
++
++# ====================
++# === Tests export ===
++# ====================
++
++if (BUILD_TESTS)
++    enable_testing()
++endif()
+diff --git a/c/Makefile b/c/Makefile
+deleted file mode 100644
+index 661b1f7..0000000
+--- a/c/Makefile
++++ /dev/null
+@@ -1,88 +0,0 @@
+-# 
+-# Makefile for QR Code generator (C)
+-# 
+-# Copyright (c) Project Nayuki. (MIT License)
+-# https://www.nayuki.io/page/qr-code-generator-library
+-# 
+-# Permission is hereby granted, free of charge, to any person obtaining a copy of
+-# this software and associated documentation files (the "Software"), to deal in
+-# the Software without restriction, including without limitation the rights to
+-# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+-# the Software, and to permit persons to whom the Software is furnished to do so,
+-# subject to the following conditions:
+-# - The above copyright notice and this permission notice shall be included in
+-#   all copies or substantial portions of the Software.
+-# - The Software is provided "as is", without warranty of any kind, express or
+-#   implied, including but not limited to the warranties of merchantability,
+-#   fitness for a particular purpose and noninfringement. In no event shall the
+-#   authors or copyright holders be liable for any claim, damages or other
+-#   liability, whether in an action of contract, tort or otherwise, arising from,
+-#   out of or in connection with the Software or the use or other dealings in the
+-#   Software.
+-# 
+-
+-
+-# ---- Configuration options ----
+-
+-# External/implicit variables:
+-# - CC: The C compiler, such as gcc or clang.
+-# - CFLAGS: Any extra user-specified compiler flags (can be blank).
+-
+-# Recommended compiler flags:
+-CFLAGS += -std=c99 -O
+-
+-# Extra flags for diagnostics:
+-# CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+-
+-
+-# ---- Controlling make ----
+-
+-# Clear default suffix rules
+-.SUFFIXES:
+-
+-# Don't delete object files
+-.SECONDARY:
+-
+-# Stuff concerning goals
+-.DEFAULT_GOAL = all
+-.PHONY: all clean
+-
+-
+-# ---- Targets to build ----
+-
+-LIB = qrcodegen
+-LIBFILE = lib$(LIB).a
+-LIBOBJ = qrcodegen.o
+-MAINS = qrcodegen-demo qrcodegen-test
+-
+-# Build all binaries
+-all: $(LIBFILE) $(MAINS)
+-
+-# Delete build output
+-clean:
+-	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
+-	rm -rf .deps
+-
+-# Executable files
+-%: %.o $(LIBFILE)
+-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB)
+-
+-# Special executable
+-qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
+-	$(CC) $(CFLAGS) $(LDFLAGS) -DQRCODEGEN_TEST -o $@ $^
+-
+-# The library
+-$(LIBFILE): $(LIBOBJ)
+-	$(AR) -crs $@ -- $^
+-
+-# Object files
+-%.o: %.c .deps/timestamp
+-	$(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
+-
+-# Have a place to store header dependencies automatically generated by compiler
+-.deps/timestamp:
+-	mkdir -p .deps
+-	touch .deps/timestamp
+-
+-# Make use of said dependencies if available
+--include .deps/*.d
+diff --git a/cmake/qrcodegen-config.cmake.in b/cmake/qrcodegen-config.cmake.in
+new file mode 100644
+index 0000000..0b82c63
+--- /dev/null
++++ b/cmake/qrcodegen-config.cmake.in
+@@ -0,0 +1,4 @@
++@PACKAGE_INIT@
++
++include("${CMAKE_CURRENT_LIST_DIR}/@QRCODEGEN_NAME@-targets.cmake")
++check_required_components(@QRCODEGEN_NAME@)
+diff --git a/cmake/qrcodegen.pc.in b/cmake/qrcodegen.pc.in
+new file mode 100644
+index 0000000..c68955b
+--- /dev/null
++++ b/cmake/qrcodegen.pc.in
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@QRCODEGEN_NAME@
++
++Name: @QRCODEGEN_NAME@
++Description: @CMAKE_PROJECT_DESCRIPTION@
++Version: @CMAKE_PROJECT_VERSION@
++
++Libs: -L${libdir} -l <at> QRCODEGEN_NAME@
++Cflags: -I${includedir}
+diff --git a/cmake/qrcodegencpp-config.cmake.in b/cmake/qrcodegencpp-config.cmake.in
+new file mode 100644
+index 0000000..3d18f99
+--- /dev/null
++++ b/cmake/qrcodegencpp-config.cmake.in
+@@ -0,0 +1,4 @@
++@PACKAGE_INIT@
++
++include("${CMAKE_CURRENT_LIST_DIR}/@QRCODEGENCPP_NAME@-targets.cmake")
++check_required_components(@QRCODEGENCPP_NAME@)
+diff --git a/cmake/qrcodegencpp.pc.in b/cmake/qrcodegencpp.pc.in
+new file mode 100644
+index 0000000..89db084
+--- /dev/null
++++ b/cmake/qrcodegencpp.pc.in
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@QRCODEGENCPP_NAME@
++
++Name: @QRCODEGENCPP_NAME@
++Description: @CMAKE_PROJECT_DESCRIPTION@
++Version: @CMAKE_PROJECT_VERSION@
++
++Libs: -L${libdir} -l <at> QRCODEGENCPP_NAME@
++Cflags: -I${includedir}
+diff --git a/cpp/Makefile b/cpp/Makefile
+deleted file mode 100644
+index 57dc0bf..0000000
+--- a/cpp/Makefile
++++ /dev/null
+@@ -1,84 +0,0 @@
+-# 
+-# Makefile for QR Code generator (C++)
+-# 
+-# Copyright (c) Project Nayuki. (MIT License)
+-# https://www.nayuki.io/page/qr-code-generator-library
+-# 
+-# Permission is hereby granted, free of charge, to any person obtaining a copy of
+-# this software and associated documentation files (the "Software"), to deal in
+-# the Software without restriction, including without limitation the rights to
+-# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+-# the Software, and to permit persons to whom the Software is furnished to do so,
+-# subject to the following conditions:
+-# - The above copyright notice and this permission notice shall be included in
+-#   all copies or substantial portions of the Software.
+-# - The Software is provided "as is", without warranty of any kind, express or
+-#   implied, including but not limited to the warranties of merchantability,
+-#   fitness for a particular purpose and noninfringement. In no event shall the
+-#   authors or copyright holders be liable for any claim, damages or other
+-#   liability, whether in an action of contract, tort or otherwise, arising from,
+-#   out of or in connection with the Software or the use or other dealings in the
+-#   Software.
+-# 
+-
+-
+-# ---- Configuration options ----
+-
+-# External/implicit variables:
+-# - CXX: The C++ compiler, such as g++ or clang++.
+-# - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
+-
+-# Recommended compiler flags:
+-CXXFLAGS += -std=c++11 -O
+-
+-# Extra flags for diagnostics:
+-# CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+-
+-
+-# ---- Controlling make ----
+-
+-# Clear default suffix rules
+-.SUFFIXES:
+-
+-# Don't delete object files
+-.SECONDARY:
+-
+-# Stuff concerning goals
+-.DEFAULT_GOAL = all
+-.PHONY: all clean
+-
+-
+-# ---- Targets to build ----
+-
+-LIB = qrcodegencpp
+-LIBFILE = lib$(LIB).a
+-LIBOBJ = qrcodegen.o
+-MAINS = QrCodeGeneratorDemo
+-
+-# Build all binaries
+-all: $(LIBFILE) $(MAINS)
+-
+-# Delete build output
+-clean:
+-	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
+-	rm -rf .deps
+-
+-# Executable files
+-%: %.o $(LIBFILE)
+-	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB)
+-
+-# The library
+-$(LIBFILE): $(LIBOBJ)
+-	$(AR) -crs $@ -- $^
+-
+-# Object files
+-%.o: %.cpp .deps/timestamp
+-	$(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
+-
+-# Have a place to store header dependencies automatically generated by compiler
+-.deps/timestamp:
+-	mkdir -p .deps
+-	touch .deps/timestamp
+-
+-# Make use of said dependencies if available
+--include .deps/*.d
+-- 
+2.41.0
+
diff --git a/gnu/packages/patches/qrcodegen-cpp-make-install.patch b/gnu/packages/patches/qrcodegen-cpp-make-install.patch
deleted file mode 100644
index 4da619d3c8..0000000000
--- a/gnu/packages/patches/qrcodegen-cpp-make-install.patch
+++ /dev/null
@@ -1,448 +0,0 @@
-Make the library installable. Patch copied from pull request:
-
-https://github.com/nayuki/QR-Code-generator/pull/72
-
-From 1625fc1665e1f83eb73c0f5670dcfda96dc0b3e4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal <at> suse.com>
-Date: Tue, 3 Dec 2019 11:57:24 +0100
-Subject: [PATCH 1/7] Do not append to C/XX/FLAGS but just set them if not
- defined already
-
----
- c/Makefile   | 2 +-
- cpp/Makefile | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/c/Makefile b/c/Makefile
-index fd0c367..b27449c 100644
---- a/c/Makefile
-+++ b/c/Makefile
-@@ -29,7 +29,7 @@
- # - CFLAGS: Any extra user-specified compiler flags (can be blank).
- 
- # Recommended compiler flags:
--CFLAGS += -std=c99 -O
-+CFLAGS ?= -std=c99 -O
- 
- # Extra flags for diagnostics:
- # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
-diff --git a/cpp/Makefile b/cpp/Makefile
-index f83c512..666f976 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -29,7 +29,7 @@
- # - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
- 
- # Recommended compiler flags:
--CXXFLAGS += -std=c++11 -O
-+CXXFLAGS ?= -std=c++11 -O
- 
- # Extra flags for diagnostics:
- # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
-
-From 2e496a0f59d5c6782c1e3e2a3ca36d0272b384f3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal <at> suse.com>
-Date: Tue, 3 Dec 2019 11:59:59 +0100
-Subject: [PATCH 2/7] Make use of -fPIC parameter when building'
-
----
- c/Makefile   | 2 +-
- cpp/Makefile | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/c/Makefile b/c/Makefile
-index b27449c..bf79462 100644
---- a/c/Makefile
-+++ b/c/Makefile
-@@ -77,7 +77,7 @@ $(LIBFILE): $(LIBOBJ)
- 
- # Object files
- %.o: %.c .deps/timestamp
--	$(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
-+	$(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
- 
- # Have a place to store header dependencies automatically generated by compiler
- .deps/timestamp:
-diff --git a/cpp/Makefile b/cpp/Makefile
-index 666f976..f37cf66 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -73,7 +73,7 @@ $(LIBFILE): $(LIBOBJ)
- 
- # Object files
- %.o: %.cpp .deps/timestamp
--	$(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
-+	$(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
- 
- # Have a place to store header dependencies automatically generated by compiler
- .deps/timestamp:
-
-From 29489faaa5a3b014c5c2d95ca34033df470de73c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal <at> suse.com>
-Date: Tue, 3 Dec 2019 12:07:19 +0100
-Subject: [PATCH 3/7] Generate both shared and static libraries
-
----
- c/Makefile   | 14 ++++++++++----
- cpp/Makefile | 14 ++++++++++----
- 2 files changed, 20 insertions(+), 8 deletions(-)
-
-diff --git a/c/Makefile b/c/Makefile
-index bf79462..38eda2d 100644
---- a/c/Makefile
-+++ b/c/Makefile
-@@ -51,16 +51,19 @@ CFLAGS ?= -std=c99 -O
- # ---- Targets to build ----
- 
- LIB = qrcodegen
--LIBFILE = lib$(LIB).a
-+ARFILE = lib$(LIB).a
-+LIBFILE = lib$(LIB).so
-+# Bump the soname number when the ABI changes and gets incompatible
-+SO_NAME = $(LIBFILE).1
- LIBOBJ = qrcodegen.o
- MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
- 
- # Build all binaries
--all: $(LIBFILE) $(MAINS)
-+all: $(LIBFILE) $(ARFILE) $(MAINS)
- 
- # Delete build output
- clean:
--	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
-+	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
- 	rm -rf .deps
- 
- # Executable files
-@@ -72,9 +75,12 @@ qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
- 	$(CC) $(CFLAGS) -DQRCODEGEN_TEST -o $@ $^
- 
- # The library
--$(LIBFILE): $(LIBOBJ)
-+$(ARFILE): $(LIBOBJ)
- 	$(AR) -crs $@ -- $^
- 
-+$(LIBFILE): $(LIBOBJ)
-+	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
-+
- # Object files
- %.o: %.c .deps/timestamp
- 	$(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
-diff --git a/cpp/Makefile b/cpp/Makefile
-index f37cf66..606cdad 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -51,16 +51,19 @@ CXXFLAGS ?= -std=c++11 -O
- # ---- Targets to build ----
- 
- LIB = qrcodegen
--LIBFILE = lib$(LIB).a
-+ARFILE = lib$(LIB).a
-+LIBFILE = lib$(LIB).so
-+# Bump the soname number when the ABI changes and gets incompatible
-+SO_NAME = $(LIBFILE).1
- LIBOBJ = QrCode.o
- MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
- 
- # Build all binaries
--all: $(LIBFILE) $(MAINS)
-+all: $(LIBFILE) $(ARFILE) $(MAINS)
- 
- # Delete build output
- clean:
--	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
-+	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
- 	rm -rf .deps
- 
- # Executable files
-@@ -68,9 +71,12 @@ clean:
- 	$(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB)
- 
- # The library
--$(LIBFILE): $(LIBOBJ)
-+$(ARFILE): $(LIBOBJ)
- 	$(AR) -crs $@ -- $^
- 
-+$(LIBFILE): $(LIBOBJ)
-+	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
-+
- # Object files
- %.o: %.cpp .deps/timestamp
- 	$(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
-
-From 064f38d6a8dc0a457728a47ee4ca1e927e46d5ec Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal <at> suse.com>
-Date: Tue, 3 Dec 2019 12:45:34 +0100
-Subject: [PATCH 4/7] Create install targets for C and CPP
-
----
- c/Makefile   | 26 ++++++++++++++++++++++++++
- cpp/Makefile | 27 +++++++++++++++++++++++++++
- 2 files changed, 53 insertions(+)
-
-diff --git a/c/Makefile b/c/Makefile
-index 38eda2d..7521944 100644
---- a/c/Makefile
-+++ b/c/Makefile
-@@ -34,6 +34,8 @@ CFLAGS ?= -std=c99 -O
- # Extra flags for diagnostics:
- # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
- 
-+# Version information
-+VERSION = 1.5.0
- 
- # ---- Controlling make ----
- 
-@@ -55,9 +57,15 @@ ARFILE = lib$(LIB).a
- LIBFILE = lib$(LIB).so
- # Bump the soname number when the ABI changes and gets incompatible
- SO_NAME = $(LIBFILE).1
-+REAL_NAME = $(LIBFILE).$(VERSION)
-+HEADERS = qrcodegen.h
- LIBOBJ = qrcodegen.o
- MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
- 
-+# define paths to install
-+INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
-+LIBDIR ?= $(DESTDIR)/usr/lib
-+
- # Build all binaries
- all: $(LIBFILE) $(ARFILE) $(MAINS)
- 
-@@ -66,6 +74,24 @@ clean:
- 	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
- 	rm -rf .deps
- 
-+install-shared: $(LIBFILE)
-+	install -d $(LIBDIR) || true
-+	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
-+	rm -f $(LIBDIR)/$(SO_NAME)
-+	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
-+	rm -f $(LIBDIR)/$(LIBFILE)
-+	ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
-+
-+install-static: $(ARFILE)
-+	install -d $(LIBDIR) || true
-+	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
-+
-+install-header: $(HEADERS)
-+	install -d $(INCLUDEDIR) || true
-+	install -m 0644 $(HEADERS) $(INCLUDEDIR)/
-+
-+install: install-shared install-static install-header
-+
- # Executable files
- %: %.o $(LIBFILE)
- 	$(CC) $(CFLAGS) -o $@ $< -L . -l $(LIB)
-diff --git a/cpp/Makefile b/cpp/Makefile
-index 606cdad..3271bd8 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -34,6 +34,8 @@ CXXFLAGS ?= -std=c++11 -O
- # Extra flags for diagnostics:
- # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
- 
-+# Version information
-+VERSION = 1.5.0
- 
- # ---- Controlling make ----
- 
-@@ -55,9 +57,16 @@ ARFILE = lib$(LIB).a
- LIBFILE = lib$(LIB).so
- # Bump the soname number when the ABI changes and gets incompatible
- SO_NAME = $(LIBFILE).1
-+REAL_NAME = $(LIBFILE).$(VERSION)
-+HEADERS = QrCode.hpp
- LIBOBJ = QrCode.o
- MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
- 
-+# define paths to install
-+INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
-+LIBDIR ?= $(DESTDIR)/usr/lib
-+
-+
- # Build all binaries
- all: $(LIBFILE) $(ARFILE) $(MAINS)
- 
-@@ -66,6 +75,24 @@ clean:
- 	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
- 	rm -rf .deps
- 
-+install-shared: $(LIBFILE)
-+	install -d $(LIBDIR) || true
-+	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
-+	rm -f $(LIBDIR)/$(SO_NAME)
-+	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
-+	rm -f $(LIBDIR)/$(LIBFILE)
-+	ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
-+
-+install-static: $(ARFILE)
-+	install -d $(LIBDIR) || true
-+	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
-+
-+install-header: $(HEADERS)
-+	install -d $(INCLUDEDIR) || true
-+	install -m 0644 $(HEADERS) $(INCLUDEDIR)/
-+
-+install: install-shared install-static install-header
-+
- # Executable files
- %: %.o $(LIBFILE)
- 	$(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB)
-
-From a635ff4654f94ab26b458c46a8841543e5bc8c67 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal <at> suse.com>
-Date: Tue, 3 Dec 2019 12:50:39 +0100
-Subject: [PATCH 5/7] Rename cpp library to qrcodegencpp to avoid conflict
-
----
- cpp/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cpp/Makefile b/cpp/Makefile
-index 3271bd8..42fa4ff 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -52,7 +52,7 @@ VERSION = 1.5.0
- 
- # ---- Targets to build ----
- 
--LIB = qrcodegen
-+LIB = qrcodegencpp
- ARFILE = lib$(LIB).a
- LIBFILE = lib$(LIB).so
- # Bump the soname number when the ABI changes and gets incompatible
-
-From c073e7dfad6454dfd725a69c347f8272d29ea41c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal <at> suse.com>
-Date: Tue, 7 Jan 2020 09:18:59 +0100
-Subject: [PATCH 6/7] Add PREFIX variable and few minor fixes from code review
-
----
- c/Makefile   | 9 +++++----
- cpp/Makefile | 9 +++++----
- 2 files changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/c/Makefile b/c/Makefile
-index 7521944..874933e 100644
---- a/c/Makefile
-+++ b/c/Makefile
-@@ -29,7 +29,7 @@
- # - CFLAGS: Any extra user-specified compiler flags (can be blank).
- 
- # Recommended compiler flags:
--CFLAGS ?= -std=c99 -O
-+CFLAGS += -std=c99
- 
- # Extra flags for diagnostics:
- # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
-@@ -63,8 +63,9 @@ LIBOBJ = qrcodegen.o
- MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
- 
- # define paths to install
--INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
--LIBDIR ?= $(DESTDIR)/usr/lib
-+PREFIX ?= /usr/local
-+INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen
-+LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
- 
- # Build all binaries
- all: $(LIBFILE) $(ARFILE) $(MAINS)
-@@ -105,7 +106,7 @@ $(ARFILE): $(LIBOBJ)
- 	$(AR) -crs $@ -- $^
- 
- $(LIBFILE): $(LIBOBJ)
--	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
-+	$(CC) $(CFLAGS) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
- 
- # Object files
- %.o: %.c .deps/timestamp
-diff --git a/cpp/Makefile b/cpp/Makefile
-index 42fa4ff..f8d9b7f 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -29,7 +29,7 @@
- # - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
- 
- # Recommended compiler flags:
--CXXFLAGS ?= -std=c++11 -O
-+CXXFLAGS += -std=c++11
- 
- # Extra flags for diagnostics:
- # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
-@@ -63,8 +63,9 @@ LIBOBJ = QrCode.o
- MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
- 
- # define paths to install
--INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
--LIBDIR ?= $(DESTDIR)/usr/lib
-+PREFIX ?= /usr/local
-+INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen
-+LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
- 
- 
- # Build all binaries
-@@ -102,7 +103,7 @@ $(ARFILE): $(LIBOBJ)
- 	$(AR) -crs $@ -- $^
- 
- $(LIBFILE): $(LIBOBJ)
--	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
-+	$(CXX) $(CXXFLAGS) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
- 
- # Object files
- %.o: %.cpp .deps/timestamp
-
-From b43c1de5cc874535a7f549cef437f6849528e455 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal <at> suse.com>
-Date: Tue, 7 Jan 2020 13:12:32 +0100
-Subject: [PATCH 7/7] Install static and shared library as an executable
-
----
- c/Makefile   | 4 ++--
- cpp/Makefile | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/c/Makefile b/c/Makefile
-index 874933e..631cc71 100644
---- a/c/Makefile
-+++ b/c/Makefile
-@@ -77,7 +77,7 @@ clean:
- 
- install-shared: $(LIBFILE)
- 	install -d $(LIBDIR) || true
--	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
-+	install -m 0755 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
- 	rm -f $(LIBDIR)/$(SO_NAME)
- 	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
- 	rm -f $(LIBDIR)/$(LIBFILE)
-@@ -85,7 +85,7 @@ install-shared: $(LIBFILE)
- 
- install-static: $(ARFILE)
- 	install -d $(LIBDIR) || true
--	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
-+	install -m 0755 $(ARFILE) $(LIBDIR)/$(ARFILE)
- 
- install-header: $(HEADERS)
- 	install -d $(INCLUDEDIR) || true
-diff --git a/cpp/Makefile b/cpp/Makefile
-index f8d9b7f..bbd861e 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -78,7 +78,7 @@ clean:
- 
- install-shared: $(LIBFILE)
- 	install -d $(LIBDIR) || true
--	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
-+	install -m 0755 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
- 	rm -f $(LIBDIR)/$(SO_NAME)
- 	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
- 	rm -f $(LIBDIR)/$(LIBFILE)
-@@ -86,7 +86,7 @@ install-shared: $(LIBFILE)
- 
- install-static: $(ARFILE)
- 	install -d $(LIBDIR) || true
--	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
-+	install -m 0755 $(ARFILE) $(LIBDIR)/$(ARFILE)
- 
- install-header: $(HEADERS)
- 	install -d $(INCLUDEDIR) || true
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#71161; Package guix-patches. (Fri, 24 May 2024 04:33:03 GMT) Full text and rfc822 format available.

Message #20 received at 71161 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 71161 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 5/5] gnu: obs: Update to 30.1.2.
Date: Fri, 24 May 2024 12:31:46 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

* gnu/packages/video.scm (obs): Update to 30.1.2.
[arguments]: Add "-DENABLE_QSV11=OFF" to configure-flags.  Add MESA
to LD_LIBRARY_PATH for 'obs'.
[inputs]: Add libdatachannel, qrcodegen-cpp and vulkan-headers.
Replace ffmpeg-4 with ffmpeg, Qt 5 with Qt 6.

Change-Id: Id74c52512eb18727b0c8c8a0a7ed4c892a5e76c2
---
 gnu/packages/video.scm | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2e7ba6d10e..3782198a17 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -109,6 +109,7 @@ (define-module (gnu packages video)
   #:use-module (guix build-system waf)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages audio)
@@ -3965,7 +3966,7 @@ (define-public v4l-utils
 (define-public obs
   (package
     (name "obs")
-    (version "29.1.3")
+    (version "30.1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3975,7 +3976,7 @@ (define-public obs
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "192p7m3g8ynbkq3s894w6a0w6gix3k237q5jwqrrr8idwfwwyh0g"))
+                "02pm6397h7l0xhdpscbh1kq8y98zx236z95wvw60kbhq38s0i0ik"))
               (patches
                (search-patches "obs-modules-location.patch"))))
     (build-system cmake-build-system)
@@ -3986,6 +3987,7 @@ (define-public obs
               "-DENABLE_UNIT_TESTS=ON"
               "-DENABLE_NEW_MPEGTS_OUTPUT=OFF"
               "-DENABLE_AJA=OFF"
+              "-DENABLE_QSV11=OFF"
               ;; Browser plugin requires cef, but it is not packaged yet.
               ;; <https://bitbucket.org/chromiumembedded/cef/src/master/>
               "-DBUILD_BROWSER=OFF")
@@ -3998,6 +4000,9 @@ (define-public obs
                    `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))
                    `("LD_LIBRARY_PATH" ":" prefix
                      (,(string-append #$(this-package-input "vlc")
+                                      "/lib")
+                      ;; TODO: Remove this once our mesa has glvnd support.
+                      ,(string-append #$(this-package-input "mesa")
                                       "/lib"))))))))))
     (native-search-paths
      (list (search-path-specification
@@ -4017,12 +4022,13 @@ (define-public obs
       bash-minimal
       curl
       eudev
-      ffmpeg-4
+      ffmpeg
       fontconfig
       freetype
       glib
       jack-1
       jansson
+      libdatachannel
       libglvnd
       libva
       libx264
@@ -4036,12 +4042,13 @@ (define-public obs
       pipewire
       pulseaudio
       python
-      qtbase-5
-      qtsvg-5
-      qtx11extras
-      qtwayland-5
+      qrcodegen-cpp
+      qtbase
+      qtsvg
+      qtwayland
       speexdsp
       v4l-utils
+      vulkan-headers
       vlc
       wayland
       wayland-protocols
-- 
2.41.0





Reply sent to Andrew Tropin <andrew <at> trop.in>:
You have taken responsibility. (Sat, 07 Sep 2024 14:17:02 GMT) Full text and rfc822 format available.

Notification sent to iyzsong <at> envs.net:
bug acknowledged by developer. (Sat, 07 Sep 2024 14:17:02 GMT) Full text and rfc822 format available.

Message #25 received at 71161-done <at> debbugs.gnu.org (full text, mbox):

From: Andrew Tropin <andrew <at> trop.in>
To: iyzsong <at> envs.net, 71161-done <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: Re: [bug#71161] [PATCH 0/5] obs: Update to 30.1.2
Date: Sat, 07 Sep 2024 18:15:41 +0400
[Message part 1 (text/plain, inline)]
On 2024-05-24 12:30, iyzsong--- via Guix-patches via wrote:

> From: 宋文武 <iyzsong <at> member.fsf.org>
>
> Hello, these patches update OBS studio to its latest version.
>
> qrcodegen-cpp needs to be updated for obs, need check telegram-desktop
> and libreoffice if they build okay with the newer qrcodegen-cpp.  I haven't
> check that.
>
> Add a LD_LIBRARY_PATH hack for mesa, without it obs won't get a
> display via libglvnd's libEGL.  It seems we need build mesa with glvnd
> support (which will bring egl_vendor.d/50_mesa.json for libglvend to
> consume, and rename libEGL.so to libEGL_mesa.so).
>
>
> Sou Bunnbu (宋文武) (5):
>   gnu: Add plog.
>   gnu: Add libjuice.
>   gnu: Add libdatachannel.
>   gnu: qrcodegen-cpp: Update to 1.8.0.
>   gnu: obs: Update to 30.1.2.
>
>  gnu/local.mk                                  |   2 +-
>  gnu/packages/aidc.scm                         |  22 +-
>  gnu/packages/logging.scm                      |  25 +
>  .../patches/qrcodegen-cpp-cmake.patch         | 506 ++++++++++++++++++
>  .../patches/qrcodegen-cpp-make-install.patch  | 448 ----------------
>  gnu/packages/video.scm                        |  21 +-
>  gnu/packages/web.scm                          |  53 ++
>  7 files changed, 606 insertions(+), 471 deletions(-)
>  create mode 100644 gnu/packages/patches/qrcodegen-cpp-cmake.patch
>  delete mode 100644 gnu/packages/patches/qrcodegen-cpp-make-install.patch
>
>
> base-commit: 9901416233867233192b63fde7f616751127b189


Applied, pushed as
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=797138b627

Thank you very much for the patch!

-- 
Best regards,
Andrew Tropin
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified today.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.