guix.scm 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. ;;; 8sync --- Asynchronous programming for Guile
  2. ;;; Copyright (C) 2016 Jan Nieuwenhuizen <janneke@gnu.org>
  3. ;;; Copyright (C) 2017 Christopher Allan Webber <cwebber@dustycloud.org>
  4. ;;;
  5. ;;; This file is part of 8sync.
  6. ;;; However, unlike most of 8sync, which is under the LGPLv3+, this
  7. ;;; file in particular is licensed under GPLv3+.
  8. ;;; Guix is also licensed under GPLv3+.
  9. ;;;
  10. ;;; This program is free software: you can redistribute it and/or modify
  11. ;;; it under the terms of the GNU General Public License as published by
  12. ;;; the Free Software Foundation, either version 3 of the License, or
  13. ;;; (at your option) any later version.
  14. ;;;
  15. ;;; This program is distributed in the hope that it will be useful,
  16. ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. ;;; GNU General Public License for more details.
  19. ;;;
  20. ;;; You should have received a copy of the GNU General Public License
  21. ;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
  22. ;;; Commentary:
  23. ;;
  24. ;; GNU Guix development package. To build and install, run:
  25. ;;
  26. ;; guix package -f guix.scm
  27. ;;
  28. ;; To build it, but not install it, run:
  29. ;;
  30. ;; guix build -f guix.scm
  31. ;;
  32. ;; To use as the basis for a development environment, run:
  33. ;;
  34. ;; guix environment -l guix.scm
  35. ;;
  36. ;;; Code:
  37. (use-modules (srfi srfi-1)
  38. (srfi srfi-26)
  39. (ice-9 popen)
  40. (ice-9 match)
  41. (ice-9 rdelim)
  42. (guix packages)
  43. (guix licenses)
  44. (guix gexp)
  45. (guix git-download)
  46. (guix build-system gnu)
  47. ((guix build utils) #:select (with-directory-excursion))
  48. (gnu packages)
  49. (gnu packages autotools)
  50. (gnu packages guile)
  51. (gnu packages pkg-config)
  52. (gnu packages texinfo))
  53. (define %source-dir (dirname (current-filename)))
  54. (package
  55. (name "guile-8sync")
  56. (version "git")
  57. (source (local-file %source-dir
  58. #:recursive? #t
  59. #:select? (git-predicate %source-dir)))
  60. (build-system gnu-build-system)
  61. (native-inputs `(("autoconf" ,autoconf)
  62. ("automake" ,automake)
  63. ("guile" ,guile-2.2)
  64. ("pkg-config" ,pkg-config)
  65. ("texinfo" ,texinfo)))
  66. (arguments
  67. `(#:phases (modify-phases %standard-phases
  68. (add-before 'configure 'bootstrap
  69. (lambda _
  70. (zero? (system* "./bootstrap.sh"))))
  71. (add-before 'configure 'setenv
  72. (lambda _
  73. (setenv "GUILE_AUTO_COMPILE" "0"))))))
  74. (home-page "https://gnu.org/s/8sync/")
  75. (synopsis "Asynchronous actor model library for Guile")
  76. (description
  77. "GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming
  78. library for GNU Guile based on the actor model.")
  79. (license lgpl3+))