From 784e7d7ae9840b4d38379e587dd181a9490cd101 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 16 Aug 2020 12:08:37 +0200 Subject: [PATCH] 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. --- gnu/local.mk | 1 - gnu/packages/lighting.scm | 88 +++++++++++++----------- gnu/packages/patches/ola-readdir-r.patch | 62 ----------------- 3 files changed, 49 insertions(+), 102 deletions(-) delete mode 100644 gnu/packages/patches/ola-readdir-r.patch 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 -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice ;;; ;;; 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 -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::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; - }