From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id gPlTKABmdWV5NwEAG6o9tA:P1 (envelope-from ) for ; Sun, 10 Dec 2023 08:17:20 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id gPlTKABmdWV5NwEAG6o9tA (envelope-from ) for ; Sun, 10 Dec 2023 08:17:20 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; none 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 80CF622EB6 for ; Sun, 10 Dec 2023 08:17:20 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rCE3W-0006PD-5B; Sun, 10 Dec 2023 02:16:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rCE3U-0006OB-TM for guix-patches@gnu.org; Sun, 10 Dec 2023 02:16:48 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rCE3U-00066v-K8 for guix-patches@gnu.org; Sun, 10 Dec 2023 02:16:48 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rCE3i-0000r1-JL for guix-patches@gnu.org; Sun, 10 Dec 2023 02:17:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#67740] [PATCH 2/2] gnu: Add hare. Resent-From: Timmy Douglas Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 07:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 67740 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 67740@debbugs.gnu.org Cc: Timmy Douglas X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.17021926053237 (code B ref -1); Sun, 10 Dec 2023 07:17:02 +0000 Received: (at submit) by debbugs.gnu.org; 10 Dec 2023 07:16:45 +0000 Received: from localhost ([127.0.0.1]:49384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCE3Q-0000q8-8N for submit@debbugs.gnu.org; Sun, 10 Dec 2023 02:16:45 -0500 Received: from lists.gnu.org ([2001:470:142::17]:45604) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCE3M-0000pu-4e for submit@debbugs.gnu.org; Sun, 10 Dec 2023 02:16:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rCE32-0006Cm-Nx for guix-patches@gnu.org; Sun, 10 Dec 2023 02:16:20 -0500 Received: from out-172.mta0.migadu.com ([91.218.175.172]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rCE2l-00062J-5e for guix-patches@gnu.org; Sun, 10 Dec 2023 02:16:14 -0500 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timmydouglas.com; s=key1; t=1702192560; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EyAm8QutHrhqfZ2dZaU36lYXO0CduHvYHGv5sdl8vdk=; b=G2/3NwMVnzJYRKKGUbmqRiyi6f31uhb1pLuwvgtekobR88P5rbYHXz9G6rSOST63VcxYXm PNTARLk1Tb2i57vtisf8Dg8ut+X1hdkCqL3sS6oSMjrKMBKySJo4BvFH5EbqnU1QElsiht kWAi+EpWDuDFZZEeDCsUZmN9wDn3B90= Date: Sat, 9 Dec 2023 23:11:13 -0800 Message-ID: <611eda75b5cca8d39d4c73ae69db32982673a5a6.1702192273.git.mail@timmydouglas.com> In-Reply-To: <25394f16bfd70d3a7f21a26672407a89ce98dde2.1702192273.git.mail@timmydouglas.com> References: <25394f16bfd70d3a7f21a26672407a89ce98dde2.1702192273.git.mail@timmydouglas.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=91.218.175.172; envelope-from=mail@timmydouglas.com; helo=out-172.mta0.migadu.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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: , Reply-to: Timmy Douglas X-ACL-Warn: , Timmy Douglas via Guix-patches From: Timmy Douglas via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -4.00 X-Spam-Score: -4.00 X-Migadu-Queue-Id: 80CF622EB6 X-Migadu-Scanner: mx12.migadu.com X-TUID: /+OyhYoB5yP3 * gnu/packages/hare.scm (harec): New variable. * gnu/packages/hare.scm (hare-tzdata): New variable. * gnu/packages/hare.scm (hare-xml): New variable. * gnu/packages/hare.scm (hare-ev): New variable. * gnu/packages/hare.scm (hare-wayland): New variable. Change-Id: I06f3431b362982bf29b35b6426ff11a5bf27eeee --- gnu/packages/hare.scm | 274 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 gnu/packages/hare.scm diff --git a/gnu/packages/hare.scm b/gnu/packages/hare.scm new file mode 100644 index 0000000000..46669e3a2a --- /dev/null +++ b/gnu/packages/hare.scm @@ -0,0 +1,274 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Antero Mejr +;;; Copyright © 2023 Timmy Douglas +;;; +;;; 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 hare) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages c) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages man) + #:use-module (gnu packages pkg-config)) + +(define-public harec + (let ((revision "1") + (commit "08af3257fc210601713ad026e05c0269e4f71473")) + (package + (name "harec") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/harec") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a265f4dla482yqzzf2jsz10j6jhj1whnic0qsvmdv9q80mi444n")))) + (build-system gnu-build-system) + (inputs (list qbe scdoc)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (replace 'configure + ;; its custom configure script doesn't understand 'CONFIG_SHELL'. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "CC" + #$(cc-for-target)) + (setenv "AR" + #$(ar-for-target)) + (setenv "AS" + #$(as-for-target)) + (setenv "CC" + #$(cc-for-target)) + (setenv "LD" + #$(ld-for-target)) + (setenv "QBE" + (string-append #$qbe "/bin/qbe")) + (invoke "./configure" + (string-append "--prefix=" out)))))))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (synopsis "Hare bootstrap compiler") + (description + "This is a Hare compiler written in C11 for POSIX-compatible systems.") + (home-page "https://harelang.org") + (license license:gpl3+)))) + + +(define hare-tzdata + (package + (inherit tzdata) + (arguments + (substitute-keyword-arguments (package-arguments tzdata) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'copy-leap-seconds-list + (lambda _ + (copy-file "leap-seconds.list" + (string-append + #$output "/share/zoneinfo/leap-seconds.list")))))))))) + +(define-public hare + (let ((revision "1") + (commit "3cf277739c142cdc611415ca605639aa39c38d20")) + (package + (name "hare") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/hare") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h0mz2w8bwcif43zq9csk8v3i8czqv3hqd6s2ijf2rdkg1mshrr5")))) + (build-system gnu-build-system) + (native-inputs (list scdoc)) + (propagated-inputs (list binutils harec qbe)) + (inputs (list hare-tzdata)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-makefile + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (tzdata-dir (assoc-ref inputs "tzdata")) + (buildtmp (getenv "TMPDIR")) + (arch-name (if #$(target-aarch64?) "aarch64" + (if #$(target-riscv64?) + "riscv64" "x86_64")))) + (copy-file "configs/linux.mk" "config.mk") + (setenv "XDG_CACHE_HOME" buildtmp) ;"Error creating /homeless-shelter/.cache/hare: Permission denied" + (substitute* "wordexp/wordexp.ha" + (("/bin/sh") + (which "sh"))) + (substitute* "time/chrono/+linux.ha" + (("/usr") + tzdata-dir)) ;it uses leap-seconds.list + (substitute* "config.mk" + (("/usr/local") + out) + (("x86_64") + arch-name) + (("_LD=[-a-z]+") + (string-append "_LD=" + #$(ld-for-target))) + (("_AS=[-a-z]+") + (string-append "_AS=" + #$(as-for-target))) + (("_CC=[-a-z]+") + (string-append "_CC=" + #$(cc-for-target))) + (("HARECACHE = .cache") + (string-append "HARECACHE=" buildtmp "/.cache")) + (("BINOUT = .bin") + (string-append "BINOUT=" buildtmp "/.bin")))))) + (delete 'configure)))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (native-search-paths + (list (search-path-specification + (variable "HAREPATH") + (files '("src/hare/stdlib" "src/hare/third-party"))))) + (synopsis "Hare compiler") + (description + "This is the Hare compiler. Hare is a systems programming language.") + (home-page "https://harelang.org") + (license (list license:gpl3 ;compiler + license:mpl2.0))))) ; stdlib + + +(define-public hare-xml + (let ((revision "1") + (commit "6b90e482c431f072e9b3ce3ba4d9d5f59ffedef0")) + (package + (name "hare-xml") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/hare-xml") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n62xxni4l1xrprdb81j7yh0n3fwyjvw20a72b1xbmq8gkn863pb")))) + (build-system gnu-build-system) + (native-inputs (list hare scdoc)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-makefile + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "XDG_CACHE_HOME" + (getenv "TMPDIR")) + (substitute* "Makefile" + (("/usr/local") + out))))) + (delete 'configure)))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (synopsis "Hare XML Library") + (description "This package provides XML support for Hare.") + (home-page "https://git.sr.ht/~sircmpwn/hare-xml") + (license license:mpl2.0)))) + + +(define-public hare-ev + (let ((revision "1") + (commit "e3c3f7613c602672ac41a3e47c106a5bd27a2378")) + (package + (name "hare-ev") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/hare-ev") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ssb51a6qhsg4022k61wzk4yx6pqr8pjgabmwzp46zn9apd122sd")))) + (build-system gnu-build-system) + (native-inputs (list hare)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-makefile + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "XDG_CACHE_HOME" + (getenv "TMPDIR")) + (substitute* "Makefile" + (("/usr/local") + out))))) + (delete 'configure)))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (synopsis "Hare event loop Library") + (description "This package provides an event loop for Hare programs.") + (home-page "https://git.sr.ht/~sircmpwn/hare-ev") + (license license:mpl2.0)))) + + +(define-public hare-wayland + (let ((revision "1") + (commit "21ba2418387bd00221290b28e8056173a459fd4a")) + (package + (name "hare-wayland") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/hare-wayland") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vv3apcxq7pdv2xblayi2ncqjh3gz0521x70schhn30781qp0l52")))) + (build-system gnu-build-system) + (native-inputs (list hare hare-xml pkg-config wayland wayland-protocols)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-makefile + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "XDG_CACHE_HOME" + (getenv "TMPDIR")) + (substitute* "Makefile" + (("/usr/local") + out))))) + (delete 'configure)))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (synopsis "Native Hare Wayland bindings") + (description + "This package provides native Wayland bindings generated from Wayland +XML protocol definitions.") + (home-page "https://git.sr.ht/~sircmpwn/hare-wayland") + (license license:mpl2.0)))) + -- 2.41.0