From 0aebfd7dd33d429a7a5bb68cff1eeee9e95f3d0d Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 20 Jan 2017 13:16:10 +0000 Subject: [PATCH] gnu: Add ponyc. * gnu/packages/pony.scm: New file. * gnu/packages/patches/ponyc-disable-tests.patch: New file. * gnu/local.mk --- gnu/local.mk | 2 + gnu/packages/patches/ponyc-disable-tests.patch | 19 ++++ gnu/packages/pony.scm | 117 +++++++++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 gnu/packages/patches/ponyc-disable-tests.patch create mode 100644 gnu/packages/pony.scm diff --git a/gnu/local.mk b/gnu/local.mk index 060de2535..7713fd2e6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -303,6 +303,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/pkg-config.scm \ %D%/packages/plotutils.scm \ %D%/packages/polkit.scm \ + %D%/packages/pony.scm \ %D%/packages/popt.scm \ %D%/packages/pth.scm \ %D%/packages/pulseaudio.scm \ @@ -837,6 +838,7 @@ dist_patch_DATA = \ %D%/packages/patches/plotutils-libpng-jmpbuf.patch \ %D%/packages/patches/polkit-drop-test.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \ + %D%/packages/patches/ponyc-disable-tests.patch \ %D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \ diff --git a/gnu/packages/patches/ponyc-disable-tests.patch b/gnu/packages/patches/ponyc-disable-tests.patch new file mode 100644 index 000000000..38740cf96 --- /dev/null +++ b/gnu/packages/patches/ponyc-disable-tests.patch @@ -0,0 +1,19 @@ +diff -Naur a/packages/net/_test.pony b/packages/net/_test.pony +--- a/packages/net/_test.pony 1970-01-01 01:00:01.000000000 +0100 ++++ b/packages/net/_test.pony 2016-12-01 22:25:59.102433053 +0100 +@@ -5,14 +5,7 @@ + new make() => None + + fun tag tests(test: PonyTest) => +- test(_TestBroadcast) +- test(_TestTCPWritev) +- test(_TestTCPExpect) +- test(_TestTCPMute) +- test(_TestTCPUnmute) +- ifdef not windows then +- test(_TestTCPThrottle) +- end ++ None + + class _TestPing is UDPNotify + let _h: TestHelper diff --git a/gnu/packages/pony.scm b/gnu/packages/pony.scm new file mode 100644 index 000000000..025cd6a7a --- /dev/null +++ b/gnu/packages/pony.scm @@ -0,0 +1,117 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 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 pony) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages gcc) + #:use-module (gnu packages pcre) + #:use-module (gnu packages llvm) + #:use-module (gnu packages bash) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages tls)) + +(define-public ponyc + (package + (name "ponyc") + (version "0.10.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/ponylang/ponyc/archive/" + version ".tar.gz")) + (patches (search-patches "ponyc-disable-tests.patch")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0j87f7jk7ly96wm67smf4hia2cb4ivv4vrlp2297h2f3smifhjk9")))) + ;; Only x86 and arm are supported with 32 and 64 bit variants. + (supported-systems + (fold delete %supported-systems + '("mips64el-linux"))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test-ci" + #:strip-binaries? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'fix-tests + (lambda _ + (substitute* "packages/process/_test.pony" + (("/bin/") "")) ; cat,date,echo + (substitute* "Makefile" + (("llvm-ar-3.8") "llvm-ar")) + (substitute* "src/libponyc/pkg/package.c" + (("/usr/local/lib") "") + (("/opt/local/lib") "")) + (substitute* '("packages/crypto/hash_fn.pony" + "packages/crypto/digest.pony" + "packages/net/ssl/_ssl_init.pony") + (("/usr/local/opt/libressl/lib") + (string-append (assoc-ref %build-inputs "libressl") + "/lib"))) + (substitute* "Makefile" + (("PONYPATH=.") "PONYPATH=.:$(PONYPATH)")) + (setenv "LLVM_CONFIG" + (string-append (assoc-ref %build-inputs "llvm") + "/bin/llvm-config")) + (setenv "LTO_PLUGIN" + (string-append (assoc-ref %build-inputs "gcc:lib") + "/lib/LLVMgold.so")) + (setenv "CC" "gcc"))) + (replace 'build + (lambda _ + (zero? (system* "make" "config=release")))) + (replace 'install + (lambda _ + (zero? (system* "make" "config=release" + (string-append "prefix=" + (assoc-ref %outputs "out")) + "install")))) + (add-before 'check 'set-pony-path + (lambda _ + (setenv "PONYPATH" + (string-append (assoc-ref %outputs "out") + "/lib" ":" + (assoc-ref %build-inputs "pcre2") + "/lib" ":" + (assoc-ref %build-inputs "libressl") + "/lib" ":" + (which "ld")))))))) + (inputs + `(("pcre2" ,pcre2))) + (native-inputs + `(("llvm" ,llvm) + ("gcc:lib" ,(canonical-package gcc) "lib") + ("gcc" ,(canonical-package gcc)) + ("ncurses" ,ncurses) + ("libressl" ,libressl) + ("bash" ,bash))) + (synopsis "Actor model, capabilities-secure, high performance programming language") + (description + "What.") + (home-page "http://www.ponylang.org/") + (license license:bsd-2))) -- 2.11.1