Hi, John J Foerch <jjfoe...@earthlink.net> writes:
> Hello, > > Here is a package definition for ola (Open Lighting Architecture). I > was having trouble getting ola's python bindings to build, as detailed > in an earlier message, so this patch does not include them. I intend to > add them when I figure out how, but since they're not essential to the > function of the library, I think they need not block adding the basic > package. Ola also provides bindings for java, but they depend on Apache > maven, which we don't seem to have a package for yet, so here again, I > think that this can be added later. > > Please let me know of anything that should be changed. > > Thank you, > > -- > John Foerch > > > From f600e8a43997efecb9587a9c39579a7d6f3291f4 Mon Sep 17 00:00:00 2001 > From: "John J. Foerch" <jjfoe...@earthlink.net> > Date: Wed, 3 Aug 2016 21:36:52 -0500 > Subject: [PATCH] gnu: Add ola. > > * gnu/packages/ola.scm (ola): New variable. > --- > gnu/packages/ola.scm | 77 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 77 insertions(+) > create mode 100644 gnu/packages/ola.scm > > diff --git a/gnu/packages/ola.scm b/gnu/packages/ola.scm > new file mode 100644 > index 0000000..f47c029 > --- /dev/null > +++ b/gnu/packages/ola.scm > @@ -0,0 +1,77 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright © 2016 John J. Foerch <jjfoe...@earthlink.net> > +;;; > +;;; This file is part of GNU Guix. > +;;; > +;;; GNU Guix is free software; you can redistribute it and/or modify it > +;;; under the terms of the GNU General Public License as published by > +;;; the Free Software Foundation; either version 3 of the License, or (at > +;;; your option) any later version. > +;;; > +;;; GNU Guix is distributed in the hope that it will be useful, but > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +;;; GNU General Public License for more details. > +;;; > +;;; You should have received a copy of the GNU General Public License > +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. > + > +(define-module (gnu packages ola) > + #:use-module (guix build-system gnu) > + #:use-module (guix download) > + #:use-module ((guix licenses) #:prefix license:) > + #:use-module (guix packages) > + #:use-module (gnu packages bison) > + #:use-module (gnu packages check) > + #:use-module (gnu packages compression) > + #:use-module (gnu packages gnunet) > + #:use-module (gnu packages flex) > + #:use-module (gnu packages libftdi) > + #:use-module (gnu packages libusb) > + #:use-module (gnu packages linux) > + #:use-module (gnu packages pkg-config) > + #:use-module (gnu packages protobuf)) > + > +(define-public ola > + (package > + (name "ola") > + (version "0.10.2") > + (source (origin > + (method url-fetch) > + (uri (string-append > + > "https://github.com/OpenLightingProject/ola/releases/download/" > + version "/ola-" version ".tar.gz")) > + (sha256 > + (base32 > + "09zx1c8nkj29shfdzkahrh9397m3mwnsy0gj7jrb63f89f3n2vlq")))) > + (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) > + ("zlib" ,zlib))) > + (propagated-inputs > + `(("protobuf" ,protobuf))) > + (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") > + #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs > "out"))) > + #:phases %standard-phases)) > + (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+))) The patch builds on my machine and lgtm. I make some minor changes (in diff format): 1. Add ola.scm to gnu/local.mk, so that the build system knows the presence of gnu/package/ola.scm. The commit message should say this as well. 2. Move protobuf from propagated-inputs to inputs. I don't know if this is right. But usually library depedencies don't need to be propagated (?), only command line tools needed at run-time need to be propagated, right? 3. Remove make-flags and phases. %standard-phases is the implicit phases, so there is no need to specify it. I think PREFIX is already handled by gnu-build-system. So it is not needed. 2 files changed, 4 insertions(+), 6 deletions(-) gnu/local.mk | 1 + gnu/packages/ola.scm | 9 +++------ modified gnu/local.mk @@ -261,6 +261,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/nvi.scm \ %D%/packages/ocaml.scm \ %D%/packages/ocr.scm \ + %D%/packages/ola.scm \ %D%/packages/onc-rpc.scm \ %D%/packages/openbox.scm \ %D%/packages/openldap.scm \ modified gnu/packages/ola.scm @@ -55,16 +55,13 @@ ("libmicrohttpd" ,libmicrohttpd) ("libusb" ,libusb) ("libuuid" ,util-linux) - ("zlib" ,zlib))) - (propagated-inputs - `(("protobuf" ,protobuf))) + ("zlib" ,zlib) + ("protobuf" ,protobuf))) (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") - #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases %standard-phases)) + #: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 Thanks for the patch. How do the others think? Cheers, Alex