summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-08-16 12:08:37 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2020-08-16 12:16:07 +0200
commit784e7d7ae9840b4d38379e587dd181a9490cd101 (patch)
tree6f949088512844e793a397da3aaa16833c9240e6 /gnu
parentf27a7e41568c0ae47b8c9a34c4f7e628e97d6c46 (diff)
downloadguix-784e7d7ae9840b4d38379e587dd181a9490cd101.tar.gz
gnu: ola: Build with libmicrohttpd 0.9.71.
* gnu/packages/lighting.scm (ola)[source]: Update to 0.10.7-0.5d88293.
[source]: Use GIT-FETCH & GIT-FILE-NAME.  Remove patch.
[native-inputs]: Add autoconf, automake, and libtool.
* gnu/packages/patches/ola-readdir-r.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/lighting.scm88
-rw-r--r--gnu/packages/patches/ola-readdir-r.patch62
3 files changed, 49 insertions, 102 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 87bd7094bf..db0f73d881 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1355,7 +1355,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch	\
   %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch	\
   %D%/packages/patches/omake-fix-non-determinism.patch	\
-  %D%/packages/patches/ola-readdir-r.patch			\
   %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch	\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch	\
diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm
index 18110420de..027c08b4e9 100644
--- a/gnu/packages/lighting.scm
+++ b/gnu/packages/lighting.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,10 +19,11 @@
 
 (define-module (gnu packages lighting)
   #:use-module (guix build-system gnu)
-  #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -35,46 +36,55 @@
   #:use-module (gnu packages protobuf))
 
 (define-public ola
-  (package
-    (name "ola")
-    (version "0.10.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/OpenLightingProject/ola/releases/download/"
-                    version "/ola-" version ".tar.gz"))
-              (patches (search-patches "ola-readdir-r.patch"))
-              (sha256
-               (base32
-                "181imc9qkjm2m1iwrb5ixsckx893nc6qwjfzacsjlqp0jlnj8rca"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("bison" ,bison)
-       ("cppunit" ,cppunit)
-       ("flex" ,flex)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("libftdi" ,libftdi)
-       ("libmicrohttpd" ,libmicrohttpd)
-       ("libusb" ,libusb)
-       ("libuuid" ,util-linux "lib")
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     ;; Ola 0.10.5 only supports protobuf 2.x, and building it with 3.x breaks.
-     ;; XXX Remove protobuf-2 when it is no longer needed.
-     `(("protobuf" ,protobuf-2))) ;; for pkg-config --libs libola
-    (arguments
-     `(;; G++ >= 4.8 macro expansion tracking requires lots of memory, causing
-       ;; build to fail on low memory systems.  We disable that with the
-       ;; following configure flags.
-       #:configure-flags (list "CXXFLAGS=-ftrack-macro-expansion=0")))
-    (synopsis "Framework for controlling entertainment lighting equipment")
-    (description "The Open Lighting Architecture is a framework for lighting
+  ;; Use a commit that allows building with libmicrohttpd 0.9.71.
+  ;; https://github.com/OpenLightingProject/ola/pull/1651
+  (let ((commit "5d882936436240b312b3836afd199587beaca840")
+        (revision "0"))
+    (package
+      (name "ola")
+      (version (git-version "0.10.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/OpenLightingProject/ola")
+               (commit commit)))
+         (sha256
+          (base32 "1bhl3gvmvmnyrygfj13cibf2xirm285m8abjkaxq22hrqbsvab2m"))
+         (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("bison" ,bison)
+         ("cppunit" ,cppunit)
+         ("flex" ,flex)
+         ("pkg-config" ,pkg-config)
+
+         ;; For git repository bootstrapping.
+         ("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)))
+      (inputs
+       `(("libftdi" ,libftdi)
+         ("libmicrohttpd" ,libmicrohttpd)
+         ("libusb" ,libusb)
+         ("libuuid" ,util-linux "lib")
+         ("zlib" ,zlib)))
+      (propagated-inputs
+       ;; Ola 0.10.5 only supports protobuf 2.x, and building it with 3.x breaks.
+       ;; XXX Remove protobuf-2 when it is no longer needed.
+       `(("protobuf" ,protobuf-2))) ;; for pkg-config --libs libola
+      (arguments
+       `( ;; G++ >= 4.8 macro expansion tracking requires lots of memory, causing
+         ;; build to fail on low memory systems.  We disable that with the
+         ;; following configure flags.
+         #:configure-flags (list "CXXFLAGS=-ftrack-macro-expansion=0")))
+      (synopsis "Framework for controlling entertainment lighting equipment")
+      (description "The Open Lighting Architecture is a framework for lighting
 control information.  It supports a range of protocols and over a dozen USB
 devices.  It can run as a standalone service, which is useful for converting
 signals between protocols, or alternatively using the OLA API, it can be used
 as the backend for lighting control software.  OLA runs on many different
 platforms including ARM, which makes it a perfect fit for low cost Ethernet to
 DMX gateways.")
-    (home-page "https://www.openlighting.org/ola")
-    (license license:lgpl2.1+)))
+      (home-page "https://www.openlighting.org/ola")
+      (license license:lgpl2.1+))))
diff --git a/gnu/packages/patches/ola-readdir-r.patch b/gnu/packages/patches/ola-readdir-r.patch
deleted file mode 100644
index b4bd98137e..0000000000
--- a/gnu/packages/patches/ola-readdir-r.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Fix build failure caused by use of the deprecated readdir_r(3) while
-building with -Werror=deprecated-declarations
-
-Patch copied from upstream source repository:
-https://github.com/daveol/ola/commit/9d8575ff38f76df698ea8889e07a3dee8f21bd68
-
-From 9d8575ff38f76df698ea8889e07a3dee8f21bd68 Mon Sep 17 00:00:00 2001
-From: Dave Olsthoorn <dave.olsthoorn@gmail.com>
-Date: Wed, 2 Mar 2016 11:22:17 +0100
-Subject: [PATCH] Use readdir instead of readdir_r
-
-This replacec the use of readdir_r with readdir since readdir seems to
-be both dangarous and deprecated in newer versions of glibc.
-
-This fixes #1055
----
- common/file/Util.cpp | 17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/common/file/Util.cpp b/common/file/Util.cpp
-index e2261fd..0ffddd3 100644
---- a/common/file/Util.cpp
-+++ b/common/file/Util.cpp
-@@ -128,30 +128,29 @@ bool FindMatchingFiles(const string &directory,
-   FindClose(h_find);
- #else
-   DIR *dp;
--  struct dirent dir_ent;
--  struct dirent *dir_ent_p;
-+  struct dirent *dir_ent;
-   if ((dp = opendir(directory.data())) == NULL) {
-     OLA_WARN << "Could not open " << directory << ":" << strerror(errno);
-     return false;
-   }
- 
--  if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
--    OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
-+  if ((dir_ent = readdir(dp)) == NULL) {
-+    OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
-     closedir(dp);
-     return false;
-   }
- 
--  while (dir_ent_p != NULL) {
-+  while (dir_ent != NULL) {
-     vector<string>::const_iterator iter;
-     for (iter = prefixes.begin(); iter != prefixes.end(); ++iter) {
--      if (!strncmp(dir_ent_p->d_name, iter->data(), iter->size())) {
-+      if (!strncmp(dir_ent->d_name, iter->data(), iter->size())) {
-         std::ostringstream str;
--        str << directory << PATH_SEPARATOR << dir_ent_p->d_name;
-+        str << directory << PATH_SEPARATOR << dir_ent->d_name;
-         files->push_back(str.str());
-       }
-     }
--    if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
--      OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
-+    if ((dir_ent = readdir(dp)) == NULL) {
-+      OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
-       closedir(dp);
-       return false;
-     }