diff options
Diffstat (limited to 'gnu/packages/suckless.scm')
-rw-r--r-- | gnu/packages/suckless.scm | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 8844482cc9..400832045f 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -48,6 +48,7 @@ #:use-module (gnu packages mpd) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages shells) #:use-module (gnu packages webkit) #:use-module (gnu packages xorg) #:use-module (guix build-system cargo) @@ -1252,3 +1253,142 @@ 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 + +(define-public 9yacc + (package + (inherit lib9) + (name "9yacc") + (arguments + (substitute-keyword-arguments (package-arguments lib9) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'patch 'patch-for-9yacc + (lambda _ + (substitute* "yacc/yacc.c" + (("#9/yacc") + (string-append #$output "/lib"))) + (substitute* "config.mk" + (("^CFLAGS.*+=.*$") + (string-append "CFLAGS+=-O2 -g -c -DPLAN9PORT " + "-DPREFIX=\\\"" #$output "\\\"\n"))))) + (replace 'chdir + (lambda _ + (chdir "yacc"))) + (delete 'install-include) + (add-after 'install 'install-yaccpar + (lambda _ + (install-file "yaccpar" (string-append #$output "/lib")) + (install-file "yaccpars" (string-append #$output "/lib")))))))) + (inputs (list lib9)) + (synopsis "Port of Plan 9's yacc parser generator for Unix") + (description + "This package provides a ported version of the Plan 9 yacc parser +generator."))) + +(define-public 9base + (package + (inherit 9yacc) + (name "9base") + (arguments + (substitute-keyword-arguments (package-arguments 9yacc) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'patch-for-9yacc 'patch-for-9base + (lambda _ + (substitute* "Makefile" + (("SUBDIRS = lib9\\\\") + "SUBDIRS = \\") + (("@chmod 755 yacc/9yacc") + "")) + (for-each (lambda (x) + (substitute* "Makefile" + (((string-append x "\\\\")) "\\"))) + '("yacc" "diff" "hoc" "rc")) + (substitute* "sam/Makefile" + (("\\$\\{CFLAGS\\}") + "${CFLAGS} -I.")) + (substitute* "config.mk" + (("^YACC.*=.*$") + (string-append "YACC=" #$(this-package-native-input "9yacc") + "/bin/yacc\n"))))) + (delete 'chdir) + (delete 'install-yaccpar))))) + (native-inputs (list 9yacc)) + (inputs (list lib9)) + (propagated-inputs (list rc)) + (synopsis "Port of various Plan 9 tools for Unix") + (description + "This package provides ported versions of various Plan 9 userland tools +for Unix."))) |