123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- ;;; mudsync --- Live hackable MUDs in Guile
- ;;; Copyright (C) 2016 Jan Nieuwenhuizen <janneke@gnu.org>
- ;;; Copyright (C) 2017 Christopher Allan Webber <cwebber@dustycloud.org>
- ;;;
- ;;; This program 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.
- ;;;
- ;;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
- ;;; Commentary:
- ;;
- ;; GNU Guix development package. To build and install, run:
- ;;
- ;; guix package -f guix.scm
- ;;
- ;; To build it, but not install it, run:
- ;;
- ;; guix build -f guix.scm
- ;;
- ;; To use as the basis for a development environment, run:
- ;;
- ;; guix environment -l guix.scm
- ;;
- ;;; Code:
- (use-modules (srfi srfi-1)
- (srfi srfi-26)
- (ice-9 popen)
- (ice-9 match)
- (ice-9 rdelim)
- (guix download)
- (guix packages)
- (guix licenses)
- (guix gexp)
- (guix git-download)
- (guix build-system gnu)
- ((guix build utils) #:select (with-directory-excursion))
- (gnu packages)
- (gnu packages autotools)
- (gnu packages guile)
- (gnu packages pkg-config)
- (gnu packages texinfo))
- (define %source-dir (dirname (current-filename)))
- (define guile-without-select-bug
- (package
- (inherit guile-next)
- (version (package-version guile-next))
- (source (origin
- (method url-fetch)
- (uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-"
- version ".tar.xz"))
- (sha256
- (base32
- "0r9y4hw17dlxahik4zsccfb2f3p2a07wqndfm251bgmam9hln6gi"))
- (modules '((guix build utils)))
- ;; Remove the pre-built object files. Instead, build everything
- ;; from source, at the expense of significantly longer build
- ;; times (almost 3 hours on a 4-core Intel i5).
- (snippet '(for-each delete-file
- (find-files "prebuilt" "\\.go$")))
- ;; Here's what we're adding
- (patches (list (string-append %source-dir
- "/build-aux/patch-guile-fix-live-repl.patch")))))))
- (define guile-8sync-latest
- (package
- (inherit guile-8sync)
- (version "git")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://git.savannah.gnu.org/8sync.git")
- (commit "dfde2119df2a0adb86ec4921f95ef2c15692a593")))
- (sha256
- (base32
- "086smlch92n6z5xng0la9l9g6m145klw1c8222cgj32qhyarbkpk"))))
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-before 'configure 'bootstrap
- (lambda _
- (zero? (system* "./bootstrap.sh")))))))))
- (package
- (name "guile-mudsync")
- (version "git")
- (source (local-file %source-dir
- #:recursive? #t
- #:select? (git-predicate %source-dir)))
- (build-system gnu-build-system)
- (native-inputs `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("pkg-config" ,pkg-config)
- ("texinfo" ,texinfo)))
- (inputs `(("guile" ,guile-without-select-bug)
- ("guile-8sync" ,guile-8sync-latest)
- ("guile-irregex" ,guile2.2-irregex)))
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-before 'configure 'bootstrap
- (lambda _
- (zero? (system* "./bootstrap.sh"))))
- (add-before 'configure 'setenv
- (lambda _
- (setenv "GUILE_AUTO_COMPILE" "0"))))))
- (home-page "https://notabug.org/cwebber/mudsync/")
- (synopsis "Live hackable MUD system")
- (description
- "Mudsync is a live hackable MUD system built on top of GNU 8sync.")
- (license gpl3+))
|