From 1df790d50d7980d83937bfa93d9b270bcc2b1be8 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 4 Oct 2016 08:34:28 +0000 Subject: [PATCH] gnu: Add psyclpc. * gnu/packages/psyc.scm (psyclpc): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/psyc.scm | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm index 57042946d5..a55f78e4c0 100644 --- a/gnu/packages/psyc.scm +++ b/gnu/packages/psyc.scm @@ -18,15 +18,24 @@ (define-module (gnu packages psyc) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix build-system perl) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages autotools) + #:use-module (gnu packages bison) + #:use-module (gnu packages compression) + #:use-module (gnu packages gettext) #:use-module (gnu packages linux) + #:use-module (gnu packages man) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) + #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls) #:use-module (gnu packages web)) (define-public perl-net-psyc @@ -143,3 +152,76 @@ core aspects of PSYC, useful for all kinds of clients and servers including psyced.") (synopsis "PSYC library in C") (license license:agpl3+))) + +;; This commit removes the historic bundled pcre, not released as a tarball so far. +(define-public psyclpc + (let* ((commit "8bd51f2a4847860ba8b82dc79348ab37d516011e") + (revision "1")) + (package + (name "psyclpc") + (version (string-append "20160821-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.psyced.org/git/psyclpc") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "10w4kx9ygcv1lcmd7j4knvjiy8dac1y3hjfv3lhp67jpv6w3iagz")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests/checks. + #:configure-flags + ;; If you have questions about this part, look at + ;; "src/settings/psyced" and the ebuild. + (list + "--enable-use-tls=yes" + "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled. + (string-append "--prefix=" + (assoc-ref %outputs "out")) + ;; src/Makefile: Set MUD_LIB to the directory which contains + ;; the mud data. defaults to MUD_LIB = @libdir@ + (string-append "--libdir=" + (assoc-ref %outputs "out") + "/opt/psyced/world") + (string-append "--bindir=" + (assoc-ref %outputs "out") + "/opt/psyced/bin") + ;; src/Makefile: Set ERQ_DIR to directory which contains the + ;; stuff which ERQ can execute (hopefully) savely. Was formerly + ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@ + (string-append "--libexecdir=" + (assoc-ref %outputs "out") + "/opt/psyced/run")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir-to-src + ;; We need to pass this as env variables + ;; and manually change the directory. + (lambda _ + (chdir "src") + (setenv "CONFIG_SHELL" (which "sh")) + (setenv "SHELL" (which "sh")) + #t))) + #:make-flags (list "install-all"))) + (inputs + `(("zlib" ,zlib) + ("openssl" ,openssl) + ("pcre" ,pcre))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("bison" ,bison) + ("gnu-gettext" ,gnu-gettext) + ("help2man" ,help2man) + ("autoconf" ,autoconf) + ("automake" ,automake))) + (home-page "http://lpc.psyc.eu/") + (synopsis "psycLPC is a multi-user network server programming language") + (description + "LPC is a bytecode language, invented to specifically implement +multi user virtual environments on the internet. This technology is used for +MUDs and also the psyced implementation of the Protocol for SYnchronous +Conferencing (PSYC). psycLPC is a fork of LDMud with some new features and +many bug fixes.") + (license license:gpl2))))