gnu: icecat: Update to 78.10.0-guix0-preview1 [security fixes].
[jackhill/guix/guix.git] / gnu / packages / aidc.scm
index 4c9f098..d1b63de 100644 (file)
@@ -1,8 +1,10 @@
 ;;; 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 pkg-config)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #: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
@@ -54,16 +108,25 @@ formats.")
 (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")
@@ -82,7 +145,7 @@ characters, and is highly robust.")
      (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
@@ -99,6 +162,83 @@ characters, and is highly robust.")
     (home-page "https://github.com/dmtx")
     (synopsis "Library for reading and writing Data Matrix 2D barcodes")
     (description "libdmtx is software for reading and writing Data Matrix 2D
-barcodes on Linux and Unix.  At its core libdmtx is a shared library, allowing
+barcodes of the modern ECC200 variety.  libdmtx is a shared library, allowing
 C/C++ programs to use its capabilities without restrictions or overhead.")
     (license license:bsd-3)))
+
+(define-public zbar
+  (package
+    (name "zbar")
+    (version "0.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://linuxtv.org/downloads/zbar/zbar-"
+                           version
+                           ".tar.bz2"))
+       (sha256
+        (base32
+         "0bmd93a15qpgbsq9c9j33qms18rdrgz6gbc48zi6z9w5pvrvi7z9"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags (list "--with-gtk=auto"
+                               "--with-python=auto"
+                               (string-append "--with-dbusconfdir="
+                                              (assoc-ref %outputs "out")
+                                              "/etc"))))
+    (native-inputs
+     `(("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("gtk+" ,gtk+)
+       ("imagemagick" ,imagemagick)
+       ("libjpeg" ,libjpeg-turbo)
+       ("python" ,python)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)
+       ("v4l-utils" ,v4l-utils)))
+    (synopsis "Bar code reader")
+    (description
+     "ZBar can read barcodes from various sources, such as video streams,
+image files, and raw intensity sensors.  It supports EAN-13/UPC-A, UPC-E,
+EAN-8, Code 128, Code 93, Code 39, Codabar, Interleaved 2 of 5, QR Code and SQ
+Code.  Included with the library are basic applications for decoding captured
+bar code images and using a video device (e.g. webcam) as a bar code scanner.
+For application developers, language bindings are included for C, C++ and
+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)))