From patchwork Wed May 20 03:23:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "ashish.is--- via Guix-patches\" via" X-Patchwork-Id: 22221 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 4872A27BBE3; Wed, 20 May 2020 04:25:08 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL, T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id B010B27BBE1 for ; Wed, 20 May 2020 04:25:07 +0100 (BST) Received: from localhost ([::1]:53476 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jbFLv-0002xy-AH for patchwork@mira.cbaines.net; Tue, 19 May 2020 23:25:07 -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 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" Reply-to: Ryan Prior , Ryan Prior via Guix-patches X-Patchwork-Original-From: Ryan Prior via Guix-patches via From: "ashish.is--- via Guix-patches\" via" X-getmail-retrieved-from-mailbox: Patches * 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 = \ %D%/packages/vim.scm \ %D%/packages/virtualization.scm \ %D%/packages/visidata.scm \ + %D%/packages/vlang.scm \ %D%/packages/vnc.scm \ %D%/packages/vpn.scm \ %D%/packages/vulkan.scm \ 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 © 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=gcc" + "GITCLEANPULL=true" + "GITFASTCLONE=mkdir -p" + "TCCREPO=" + "TMPTCC=tcc" + ,(string-append "TMPVC=" (assoc-ref %build-inputs "vc")) + "VCREPO=" + "VERBOSE=1" + "V_ALWAYS_CLEAN_TMP=false") + #: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 in the + ;; same directory. In a future release we may be able to move + ;; 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 generated c + ;; source by hand has been a commonly used technique for iterating 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 thread +safety guarantees with minimal abstraction.") + (license license:expat)))