unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#71161] [PATCH 0/5] obs: Update to 30.1.2
@ 2024-05-24  4:30 iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 1/5] gnu: Add plog iyzsong--- via Guix-patches via
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: iyzsong--- via Guix-patches via @ 2024-05-24  4:30 UTC (permalink / raw)
  To: 71161; +Cc: 宋文武

From: 宋文武 <iyzsong@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





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#71161] [PATCH 1/5] gnu: Add plog.
  2024-05-24  4:30 [bug#71161] [PATCH 0/5] obs: Update to 30.1.2 iyzsong--- via Guix-patches via
@ 2024-05-24  4:31 ` iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 2/5] gnu: Add libjuice iyzsong--- via Guix-patches via
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: iyzsong--- via Guix-patches via @ 2024-05-24  4:31 UTC (permalink / raw)
  To: 71161; +Cc: 宋文武

From: 宋文武 <iyzsong@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





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#71161] [PATCH 2/5] gnu: Add libjuice.
  2024-05-24  4:30 [bug#71161] [PATCH 0/5] obs: Update to 30.1.2 iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 1/5] gnu: Add plog iyzsong--- via Guix-patches via
@ 2024-05-24  4:31 ` iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 3/5] gnu: Add libdatachannel iyzsong--- via Guix-patches via
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: iyzsong--- via Guix-patches via @ 2024-05-24  4:31 UTC (permalink / raw)
  To: 71161; +Cc: 宋文武

From: 宋文武 <iyzsong@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





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#71161] [PATCH 3/5] gnu: Add libdatachannel.
  2024-05-24  4:30 [bug#71161] [PATCH 0/5] obs: Update to 30.1.2 iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 1/5] gnu: Add plog iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 2/5] gnu: Add libjuice iyzsong--- via Guix-patches via
@ 2024-05-24  4:31 ` iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 4/5] gnu: qrcodegen-cpp: Update to 1.8.0 iyzsong--- via Guix-patches via
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: iyzsong--- via Guix-patches via @ 2024-05-24  4:31 UTC (permalink / raw)
  To: 71161; +Cc: 宋文武

From: 宋文武 <iyzsong@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





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#71161] [PATCH 4/5] gnu: qrcodegen-cpp: Update to 1.8.0.
  2024-05-24  4:30 [bug#71161] [PATCH 0/5] obs: Update to 30.1.2 iyzsong--- via Guix-patches via
                   ` (2 preceding siblings ...)
  2024-05-24  4:31 ` [bug#71161] [PATCH 3/5] gnu: Add libdatachannel iyzsong--- via Guix-patches via
@ 2024-05-24  4:31 ` iyzsong--- via Guix-patches via
  2024-05-24  4:31 ` [bug#71161] [PATCH 5/5] gnu: obs: Update to 30.1.2 iyzsong--- via Guix-patches via
  2024-09-07 14:15 ` bug#71161: [PATCH 0/5] " Andrew Tropin via Guix-patches via
  5 siblings, 0 replies; 7+ messages in thread
From: iyzsong--- via Guix-patches via @ 2024-05-24  4:31 UTC (permalink / raw)
  To: 71161; +Cc: 宋文武

From: 宋文武 <iyzsong@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@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@users.noreply.github.com>
+Signed-off-by: Vitaly Zaitsev <vitaly@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@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@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@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@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@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@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@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@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@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





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#71161] [PATCH 5/5] gnu: obs: Update to 30.1.2.
  2024-05-24  4:30 [bug#71161] [PATCH 0/5] obs: Update to 30.1.2 iyzsong--- via Guix-patches via
                   ` (3 preceding siblings ...)
  2024-05-24  4:31 ` [bug#71161] [PATCH 4/5] gnu: qrcodegen-cpp: Update to 1.8.0 iyzsong--- via Guix-patches via
@ 2024-05-24  4:31 ` iyzsong--- via Guix-patches via
  2024-09-07 14:15 ` bug#71161: [PATCH 0/5] " Andrew Tropin via Guix-patches via
  5 siblings, 0 replies; 7+ messages in thread
From: iyzsong--- via Guix-patches via @ 2024-05-24  4:31 UTC (permalink / raw)
  To: 71161; +Cc: 宋文武

From: 宋文武 <iyzsong@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





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#71161: [PATCH 0/5] obs: Update to 30.1.2
  2024-05-24  4:30 [bug#71161] [PATCH 0/5] obs: Update to 30.1.2 iyzsong--- via Guix-patches via
                   ` (4 preceding siblings ...)
  2024-05-24  4:31 ` [bug#71161] [PATCH 5/5] gnu: obs: Update to 30.1.2 iyzsong--- via Guix-patches via
@ 2024-09-07 14:15 ` Andrew Tropin via Guix-patches via
  5 siblings, 0 replies; 7+ messages in thread
From: Andrew Tropin via Guix-patches via @ 2024-09-07 14:15 UTC (permalink / raw)
  To: iyzsong, 71161-done; +Cc: 宋文武

[-- Attachment #1: Type: text/plain, Size: 1678 bytes --]

On 2024-05-24 12:30, iyzsong--- via Guix-patches via wrote:

> From: 宋文武 <iyzsong@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-09-07 14:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-24  4:30 [bug#71161] [PATCH 0/5] obs: Update to 30.1.2 iyzsong--- via Guix-patches via
2024-05-24  4:31 ` [bug#71161] [PATCH 1/5] gnu: Add plog iyzsong--- via Guix-patches via
2024-05-24  4:31 ` [bug#71161] [PATCH 2/5] gnu: Add libjuice iyzsong--- via Guix-patches via
2024-05-24  4:31 ` [bug#71161] [PATCH 3/5] gnu: Add libdatachannel iyzsong--- via Guix-patches via
2024-05-24  4:31 ` [bug#71161] [PATCH 4/5] gnu: qrcodegen-cpp: Update to 1.8.0 iyzsong--- via Guix-patches via
2024-05-24  4:31 ` [bug#71161] [PATCH 5/5] gnu: obs: Update to 30.1.2 iyzsong--- via Guix-patches via
2024-09-07 14:15 ` bug#71161: [PATCH 0/5] " Andrew Tropin via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).