From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: No such file: LLVMgold.so while packaging ponyc Date: Fri, 17 Feb 2017 14:44:13 +0000 Message-ID: <20170217144413.steyscurxqm5zmms@wasp> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="p7hudoikl7covwms" Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53757) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cejjr-00017Q-UL for guix-devel@gnu.org; Fri, 17 Feb 2017 09:42:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cejjn-0006xD-Ux for guix-devel@gnu.org; Fri, 17 Feb 2017 09:42:24 -0500 Received: from fragranza.investici.org ([2a00:1dc0:2479::19]:35724) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cejjn-0006wl-Hy for guix-devel@gnu.org; Fri, 17 Feb 2017 09:42:19 -0500 Received: from [178.175.144.26] (fragranza [178.175.144.26]) (Authenticated sender: niasterisk@grrlz.net) by localhost (Postfix) with ESMTPSA id E90BB2C026D for ; Fri, 17 Feb 2017 14:42:16 +0000 (UTC) Content-Disposition: inline List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --p7hudoikl7covwms Content-Type: text/plain; charset=utf-8 Content-Disposition: inline A while ago I started packaging ponylang's compiler "ponyc", which can be found here (https://pagure.io/guix-dev/branch/package/langs/ponyc). For your convinience this is also attached as a .patch file. It seems as if it requires the LLVMgold.so file, at least [0] and my own errors are telling me this. We do not provide the LLVMgold.so file. This could be similar to the package definition rust has. Linking libponyc ar: /gnu/store/cdi08kw7r6r684w8mk0xq0dkgpjhfpmd-gcc-4.9.4-lib/lib/LLVMgold.so: cannot open shared object file: No such file or directory ... (lots of similar errors) ar: build/release/obj/libgtest/gtest_main.o: plugin needed to handle lto object ar: build/release/obj/libgtest/gtest-all.o: plugin needed to handle lto object main.c Linking ponyc collect2: fatal error: cannot find 'ld' compilation terminated. make: *** [Makefile:591: build/release/ponyc] Error 1 phase `build' failed after 55.4 seconds I'm open for new ideas. 0: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/ponyc/default.nix -- ng0 -- https://www.inventati.org/patternsinthechaos/ --p7hudoikl7covwms Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-gnu-Add-ponyc.patch" Content-Transfer-Encoding: quoted-printable >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 =3D \ %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 =3D \ %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/package= s/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() =3D> None +=20 + fun tag tests(test: PonyTest) =3D> +- test(_TestBroadcast) +- test(_TestTCPWritev) +- test(_TestTCPExpect) +- test(_TestTCPMute) +- test(_TestTCPUnmute) +- ifdef not windows then +- test(_TestTCPThrottle) +- end ++ None +=20 + 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 =C2=A9 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 (a= t +;;; 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=3D.") "PONYPATH=3D.:$(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=3Drelease")))) + (replace 'install + (lambda _ + (zero? (system* "make" "config=3Drelease" + (string-append "prefix=3D" + (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 progra= mming language") + (description + "What.") + (home-page "http://www.ponylang.org/") + (license license:bsd-2))) --=20 2.11.1 --p7hudoikl7covwms--