;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 ng0 ;;; ;;; 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 . (define-module (gnu packages libdispatch) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (gnu packages autotools) #:use-module (gnu packages llvm) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages ruby)) (define-public libkqueue (package (name "libkqueue") (version "2.1.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mheily/libkqueue/archive/v" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "07xdns9kaw6v5jbz2d7d9zw1lkz1zdj1wmbyxla0wqyhzywizybf")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'autogen (lambda _ (zero? (system* "autoreconf" "-fi"))))))) (native-inputs `(("pkg-config" ,pkg-config) ("ruby" ,ruby) ("perl" ,perl) ("autoconf" ,(autoconf-wrapper)) ("automake" ,automake) ("libtool" ,libtool))) (home-page "https://github.com/mheily/libkqueue") (description "Userspace implementation of the kqueue(2) kernel event notification mechanism found in FreeBSD. libkqueue acts as a translator between the kevent structure and the native kernel facilities.") (synopsis "kqueue(2) compatibility library") ;; event.h is bsd-2 (license (list license:expat license:bsd-2)))) (define-public libpthread_workqueue (package (name "libpthread_workqueue") (version "0.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/mheily/libpwq/archive/v" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0gi8l6jy5d7w3fff684qfjdj16snbc8vkf27y68w91xl5jy16xri")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'autogen (lambda _ (zero? (system* "autoreconf" "--install" "--verbose"))))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,(autoconf-wrapper)) ("automake" ,automake) ("libtool" ,libtool))) (home-page "https://github.com/mheily/libpwq") (description "libpthread_workqueue is a POSIX threads workqueue library.") (synopsis "Portable implementation of the pthread_workqueue API") (license license:bsd-2))) (define-public libblocks-runtime (package (name "libblocks-runtime") (version "0.4.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mheily/blocks-runtime/releases/" "download/v" version "/" "libblocksruntime-" version ".tar.gz")) (sha256 (base32 "1g1a25g1qfy3w21dy0kaxnj6ylbjskmsif68fw7xkavcgn6y21vq")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'autogen (lambda _ (zero? (system* "autoreconf" "--install" "--verbose"))))))) (native-inputs `(("autoconf" ,(autoconf-wrapper)) ("automake" ,automake) ("clang" ,clang) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (home-page "https://github.com/mheily/blocks-runtime/") (description "Blocks are a proposed extension to the C, Objective C, and C++ languages developed by Apple to support the Grand Central Dispatch concurrency engine.") (synopsis "Blocks Runtime") (license (list license:ncsa license:expat)))) ;; This commit includes a commit which drops click. (define-public libdispatch (let ((commit "bd1808980b04830cbbd79c959b8bc554085e38a1") (revision "1")) (package (name "libdispatch") (version (string-append "0.1.3.1" "-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/nickhutchinson/libdispatch") (commit commit))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "00a6xkzrd7svk7pbi59w0rq7wxszp888lg00kzaim2ikagw67ihi")))) (native-inputs `(("python-2" ,python-2))) (inputs `(("libpthread_workqueue" ,libpthread_workqueue) ("libkqueue" ,libkqueue) ("libblocks-runtime" ,libblocks-runtime))) (build-system cmake-build-system) (arguments ;;`(#:tests? #f)) `(#:configure-flags (list "-DDISPATCH_ENABLE_TEST_SUITE=1"))) ;; #:phases ;; (modify-phases %standard-phases ;; (add-after 'unpack 'autogen ;; (lambda _ (home-page "http://nickhutchinson.me/libdispatch/") (synopsis "GNU-linux port of Apple's concurrency library") (description "libdispatch, aka Grand Central Dispatch (GCD) is Apple's high-performance event-handling library. It provides asynchronous task queues, monitoring of file descriptor read and write-ability, asynchronous I/O (for sockets and regular files), readers-writer locks, parallel for-loops, sane signal handling, periodic timers, semaphores and more.") (license license:asl2.0))))