aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorAntero Mejr <antero@mailbox.org>2023-02-24 03:22:19 +0000
committerLudovic Courtès <ludo@gnu.org>2023-03-10 14:49:59 +0100
commitb924d89fceb4090229f2ee93ba1c81fee770707a (patch)
tree15280bb0e41f7455bdf98f9cdfa64dd1bdbaed94 /gnu/packages
parent8935e4195273bcb7023521943b0f293c5d7355b2 (diff)
downloadguix-b924d89fceb4090229f2ee93ba1c81fee770707a.tar.gz
guix-b924d89fceb4090229f2ee93ba1c81fee770707a.zip
gnu: Add lib9.
* gnu/packages/suckless.scm (lib9): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/suckless.scm72
1 files changed, 72 insertions, 0 deletions
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 8844482cc9..7f79e9d7e9 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -1252,3 +1252,75 @@ a nice format.")
(description "svkbd is a simple virtual keyboard, intended to be used in
environments, where no keyboard is available.")
(license license:expat)))
+
+(define-public lib9
+ ;; no release since 2010
+ (let ((commit "63916da7bd6d73d9a405ce83fc4ca34845667cce")
+ (revision "0"))
+ (package
+ (name "lib9")
+ (version (git-version "7" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.suckless.org/9base/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "04j8js4s3jmlzi3m46q81bq76rn41an58ffhkbj9p5wwr5hvplh8"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no tests
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "config.mk"
+ (("^PREFIX.*=.*$")
+ (string-append "PREFIX=\"" #$output "\"\n"))
+ (("^OBJTYPE.*=.*$")
+ #$@(cond
+ ((target-x86-64?)
+ #~(string-append "OBJTYPE=x86_64\n"))
+ ((target-x86?)
+ #~(string-append "OBJTYPE=386\n"))
+ ((target-powerpc?)
+ #~(string-append "OBJTYPE=power\n"))
+ ((target-arm32?)
+ #~(string-append "OBJTYPE=arm\n"))))
+ (("^CFLAGS.*+=.*$")
+ (string-append
+ "CFLAGS+=-O2 -g -I. -fPIC -c -DPLAN9PORT "
+ "-DPREFIX=\\\"" #$output "\\\"\n"))
+ (("^LDFLAGS.*+=.*$")
+ "LDFLAGS+=\n")
+ (("^CC.*=.*$")
+ (string-append "CC=" #$(cc-for-target) "\n")))
+ (substitute* "lib9/libc.h"
+ (("#define main.*p9main")
+ ""))
+ (substitute* "lib9/main.c"
+ (("p9main\\(argc, argv\\);")
+ "")
+ (("extern void p9main\\(int, char\\*\\*\\);")
+ ""))
+ (substitute* "lib9/Makefile"
+ (("lib9.a")
+ "lib9.so")
+ (("LIB9OFILES=\\\\")
+ "LIB9OFILES=convM2D.o \\")
+ (("@\\$\\{AR\\} \\$\\{LIB\\} \\$\\{OFILES\\}")
+ "gcc -shared ${OFILES} -o lib9.so"))))
+ (add-after 'patch 'chdir
+ (lambda _
+ (chdir "lib9")))
+ (delete 'configure)))) ;no configure script
+ (home-page "https://tools.suckless.org/9base/")
+ (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"
+ "powerpc-linux"))
+ (synopsis "Unix port of Plan 9's formatted I/O C library")
+ (description
+ "This package provides a ported version of the Plan 9 lib9 C library.
+It also contains the Plan 9 libbio, libregexp, libfmt and libutf libraries.")
+ (license (list license:expat ;modifications
+ license:lpl1.02))))) ;original plan9 code