Package: guix-patches;
Reported by: Timmy Douglas <mail <at> timmydouglas.com>
Date: Sun, 10 Dec 2023 07:17:02 UTC
Severity: normal
Tags: patch
Done: "jgart" <jgart <at> dismail.de>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Timmy Douglas <mail <at> timmydouglas.com> To: guix-patches <at> gnu.org Cc: Timmy Douglas <mail <at> timmydouglas.com> Subject: [PATCH 2/2] gnu: Add hare. Date: Sat, 9 Dec 2023 23:11:13 -0800
* 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 <antero <at> mailbox.org> +;;; Copyright © 2023 Timmy Douglas <mail <at> timmydouglas.com> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.