From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id yGdRMxOjxF72PwAA0tVLHw (envelope-from ) for ; Wed, 20 May 2020 03:25:07 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 2M0gLxOjxF5ZSQAA1q6Kng (envelope-from ) for ; Wed, 20 May 2020 03:25:07 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 33966940365 for ; Wed, 20 May 2020 03:25:07 +0000 (UTC) Received: from localhost ([::1]:53476 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jbFLt-0002xy-SG for larch@yhetil.org; Tue, 19 May 2020 23:25:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41146) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jbFLq-0002xh-0A for guix-patches@gnu.org; Tue, 19 May 2020 23:25:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:40197) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jbFLp-0005E9-Mr for guix-patches@gnu.org; Tue, 19 May 2020 23:25:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jbFLp-0006xe-J8 for guix-patches@gnu.org; Tue, 19 May 2020 23:25:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41415] [PATCH 1/1] gnu: Add v. References: <20200520031816.32692-1-rprior@protonmail.com> In-Reply-To: <20200520031816.32692-1-rprior@protonmail.com> Resent-From: Ryan Prior Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 20 May 2020 03:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41415 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41415@debbugs.gnu.org Received: via spool by 41415-submit@debbugs.gnu.org id=B41415.158994506726708 (code B ref 41415); Wed, 20 May 2020 03:25:01 +0000 Received: (at 41415) by debbugs.gnu.org; 20 May 2020 03:24:27 +0000 Received: from localhost ([127.0.0.1]:51743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbFL9-0006wa-M6 for submit@debbugs.gnu.org; Tue, 19 May 2020 23:24:27 -0400 Received: from mail-40131.protonmail.ch ([185.70.40.131]:11102) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbFL5-0006wF-8F for 41415@debbugs.gnu.org; Tue, 19 May 2020 23:24:18 -0400 Date: Wed, 20 May 2020 03:23:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1589945048; bh=sHDjwDraY2RFO2rm0jPU997gvd7HOQg/wgEwP+jo0ks=; h=Date:To:From:Reply-To:Subject:From; b=r3C0JL2iihgQWvL2Llp1cbe/N9mJj9k7ivj8Hckc4ifl1Usdt3KNp3dPYcEFW3YK4 uGRPJiE0pwtCrwNXxdLZYbbi2p46Kg+Aly/7n1h7S6ThOWmqZSszSinQtsd+tgesul BeCA70TsIyAPxGUGdyMzoTZij2SPeH4J7YKVP1DE= Message-ID: <20200520032346.498-1-rprior@protonmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.7 (-) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" Reply-to: Ryan Prior , Ryan Prior via Guix-patches From: Ryan Prior via Guix-patches via X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=protonmail.com header.s=protonmail header.b=r3C0JL2i; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: -0.01 X-TUID: Le+C1Wb+m0ij * gnu/packages/vlang.scm: New file. * gnu/packages/vlang.scm (v): New variable. * gnu/local.mk: Add vlang.scm. --- gnu/local.mk | 1 + gnu/packages/vlang.scm | 116 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 gnu/packages/vlang.scm diff --git a/gnu/local.mk b/gnu/local.mk index 2e12c5a873..4c389fd772 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -533,6 +533,7 @@ GNU_SYSTEM_MODULES =3D=09=09=09=09\ %D%/packages/vim.scm=09=09=09=09\ %D%/packages/virtualization.scm=09=09\ %D%/packages/visidata.scm=09=09=09\ + %D%/packages/vlang.scm=09=09=09\ %D%/packages/vnc.scm=09=09=09=09\ %D%/packages/vpn.scm=09=09=09=09\ %D%/packages/vulkan.scm=09=09=09\ diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm new file mode 100644 index 0000000000..d73dd566c5 --- /dev/null +++ b/gnu/packages/vlang.scm @@ -0,0 +1,116 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2020 Ryan Prior +;;; +;;; 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 vlang) + #:use-module (gnu packages c) + #:use-module (gnu packages gcc) + #:use-module (gnu packages glib) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) + +(define-public v + (package + (name "v") + (version "0.1.27") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vlang/v.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d9qhacllvkqif42jaayixhjyhx7pzslh8p1yr5p19447q763fq1")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; tests are broken in v 0.1.27 + #:make-flags + `("CC=3Dgcc" + "GITCLEANPULL=3Dtrue" + "GITFASTCLONE=3Dmkdir -p" + "TCCREPO=3D" + "TMPTCC=3Dtcc" + ,(string-append "TMPVC=3D" (assoc-ref %build-inputs "vc")) + "VCREPO=3D" + "VERBOSE=3D1" + "V_ALWAYS_CLEAN_TMP=3Dfalse") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'patch-makefile + (lambda _ + (substitute* "Makefile" + (("rm -rf") "true") + (("v self") "v -cc gcc cmd/v")) + #t)) + ;; A few tests are broken in v 0.1.27. This function should be + ;; enabled to run tests in the next release. + ;; (replace 'check + ;; (lambda _ + ;; (let* ((tmpbin "tmp/bin") + ;; (gcc (which "gcc"))) + ;; (mkdir-p tmpbin) + ;; (symlink gcc (string-append tmpbin "/cc")) + ;; (setenv "PATH" (string-append tmpbin ":" (getenv "PATH"))= ) + ;; (invoke "./v" "test-fixed")) + ;; #t)) + (replace 'install + (lambda _ + (let* ((bin (string-append (assoc-ref %outputs "out") "/bin")) + (tools (string-append bin "/cmd/tools")) + (thirdparty (string-append bin "/thirdparty")) + (vlib (string-append bin "/vlib")) + (vmod (string-append bin "/v.mod"))) + (mkdir-p bin) + (copy-file "./v" (string-append bin "/v")) + ;; v requires as of 0.1.27 that these other components are i= n the + ;; same directory. In a future release we may be able to mov= e + ;; these into other output folders. + (copy-recursively "cmd/tools" tools) + (copy-recursively "thirdparty" thirdparty) + (copy-recursively "vlib" vlib) + (copy-file "v.mod" vmod)) + #t))))) + (inputs + `(("glib" ,glib) + ("gcc" ,gcc))) + (native-inputs + `(("vc" + ,(let ((vc-version "0884d7092f4c2a4f8ca16da6f1792efa235247be")) + ;; v bootstraps from generated c source code from a dedicated + ;; repository. It's readable, as generated source goes, and not = at all + ;; obfuscated, and it's about 15kb. The original source written = in + ;; golang is lost to the forces of entropy; modifying the genera= ted c + ;; source by hand has been a commonly used technique for iterati= ng on + ;; the codebase. + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vlang/vc.git") + (commit vc-version))) + (file-name (git-file-name "vc" vc-version)) + (sha256 + (base32 "17bs09iwxfd0si70j48n9nd16gfgcj8imd0azypk3xzzbz4wybnz= "))))))) + (home-page "https://vlang.io/") + (synopsis "Compiler for the V programming language") + (description + "V is a systems programming language. It provides memory safety and t= hread +safety guarantees with minimal abstraction.") + (license license:expat))) --=20 2.26.2