;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darringon <jmd@gnu.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages check)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages video)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
+(define-public zxing-cpp
+ (package
+ (name "zxing-cpp")
+ (version "1.0.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/nu-book/zxing-cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71"))))
+ (native-inputs
+ `(("googletest-source" ,(package-source googletest))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:out-of-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-googletest
+ ;; Copy the googletest sources to where the CMake build expects them.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((source (assoc-ref inputs "googletest-source"))
+ (target "test/unit/googletest-src"))
+ (mkdir-p target)
+ (copy-recursively source target)
+ ;; Disable downloading via ExternalProject.
+ (substitute* "test/unit/CMakeLists.txt.in"
+ (("ExternalProject_Add\\(") "message("))
+ #t)))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "test/unit"
+ (invoke "cmake" ".")
+ (invoke "make")
+ (invoke "./ZXingUnitTest"))
+ #t)))))
+ (synopsis "C++ port of ZXing")
+ (description "ZXing-CPP is a barcode scanning library.")
+ (home-page "https://github.com/nu-book/zxing-cpp")
+ (license license:asl2.0)))
(define-public barcode
(package
(define-public qrencode
(package
(name "qrencode")
- (version "4.0.2")
+ (version "4.1.1")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://fukuchi.org/works/qrencode/qrencode-" version
- ".tar.bz2"))
+ (uri (string-append "https://fukuchi.org/works/qrencode/"
+ "qrencode-" version ".tar.bz2"))
(sha256
(base32
- "1d2q5d3v8g3hsi3h5jq4n177bjhf3kawms09immw7p187f6jgjy9"))))
+ "08v9d8jn26bva2a8x4hghq3mgl8zcid393iqkidwyhc05xrxjmg4"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--with-tests")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "tests"
+ (invoke "./test_basic.sh")))
+ #t)))))
(inputs `(("libpng" ,libpng)))
(native-inputs `(("pkg-config" ,pkg-config)))
(synopsis "Encode data into a QR Code symbol")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/dmtx/libdmtx.git")
+ (url "https://github.com/dmtx/libdmtx")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
Python as well as GUI widgets for GTK and Qt.")
(home-page "https://github.com/mchehab/zbar")
(license license:lgpl2.1+)))
+
+(define-public qrcodegen-cpp
+ (package
+ (name "qrcodegen-cpp")
+ (version "1.6.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"))
+ (sha256
+ (base32
+ "0iq9sv9na0vg996aqrxrjn9rrbiyy7sc9vslw945p3ky22pw3lql"))))
+ (build-system gnu-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)))))
+ (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.")
+ (home-page "https://www.nayuki.io/page/qr-code-generator-library")
+ (license license:expat)))