GNU bug report logs - #67740
[PATCH 2/2] gnu: Add hare.

Previous Next

Package: guix-patches;

Reported by: Timmy Douglas <mail <at> timmydouglas.com>

Date: Sun, 10 Dec 2023 07:17:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 67740 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#67740; Package guix-patches. (Sun, 10 Dec 2023 07:17:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Timmy Douglas <mail <at> timmydouglas.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 10 Dec 2023 07:17:02 GMT) Full text and rfc822 format available.

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





This bug report was last modified 146 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.