unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#54467] gnu: add plan9port
@ 2022-03-19 16:47 路辉
  2023-08-20  5:02 ` bug#54467: " Hilton Chain via Guix-patches via
  0 siblings, 1 reply; 2+ messages in thread
From: 路辉 @ 2022-03-19 16:47 UTC (permalink / raw)
  To: 54467

[-- Attachment #1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #2: 0001-gnu-add-script-to-build-plan9port.patch --]
[-- Type: text/x-patch, Size: 2331 bytes --]

From 5ebeaf63ab03a1c5201fb855ccc40de7ec25df17 Mon Sep 17 00:00:00 2001
From: Lu Hui <luhux76@gmail.com>
Date: Sun, 20 Mar 2022 00:17:40 +0800
Subject: [PATCH 1/2] gnu: add script to build plan9port

* gnu/packages/aux-files/plan9/builder.sh: configure & build & install plan9port
---
 gnu/packages/aux-files/plan9port/builder.sh | 73 +++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100755 gnu/packages/aux-files/plan9port/builder.sh

diff --git a/gnu/packages/aux-files/plan9port/builder.sh b/gnu/packages/aux-files/plan9port/builder.sh
new file mode 100755
index 0000000000..fd30cafda6
--- /dev/null
+++ b/gnu/packages/aux-files/plan9port/builder.sh
@@ -0,0 +1,73 @@
+# bash shell script
+# from nixpkgs: https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/system/plan9port/builder.sh
+
+export PLAN9=$out/plan9
+export PLAN9_TARGET=$PLAN9
+
+plan9portLinkFlags()
+{
+    eval set -- "$LDFLAGS"
+    local flag
+    for flag in "$@"; do
+        printf ' -Wl,%s' "$flag"
+    done
+}
+
+configurePhase()
+{
+    (
+        echo CC9=\"$(command -v $CC)\"
+        echo CFLAGS=\"$CFLAGS\"
+        echo LDFLAGS=\"$(plan9portLinkFlags)\"
+        echo X11=\"$libxt/include\"
+        case "$system" in
+          x86_64-linux) echo OBJTYPE=x86_64;;
+          i?86-linux)   echo OBJTYPE=386;;
+          power-linux)  echo OBJTYPE=power;;
+          sparc-linux)  echo OBJTYPE=sparc;;
+        esac
+        if [[ $system =~ "linux" ]]; then
+          echo SYSVERSION=2.6.x
+        fi
+    ) >config
+
+    for f in `grep -l -r /usr/local/plan9`; do
+        sed "s,/usr/local/plan9,${PLAN9},g" -i $f
+    done
+}
+
+buildPhase()
+{
+    mkdir -p $PLAN9
+
+    # Copy sources, some necessary bin scripts
+    cp -R * $PLAN9
+
+    local originalPath="$PATH"
+    export PATH="$PLAN9/bin:$PATH"
+    pushd src
+    ../dist/buildmk
+    mk clean
+    mk libs-nuke
+    mk all
+    mk -k install
+    if [[ -f $PLAN9/bin/quote1 ]]; then
+        cp $PLAN9/bin/quote1 $PLAN9/bin/'"'
+        cp $PLAN9/bin/quote2 $PLAN9/bin/'""'
+    fi
+    popd
+    export PATH="$originalPath"
+}
+
+installPhase()
+{
+    # Copy the `9' utility. This way you can use
+    # $ 9 awk
+    # to use the plan 9 awk
+    mkdir $out/bin
+    ln -s $PLAN9/bin/9 $out/bin
+}
+
+configurePhase
+buildPhase
+installPhase
-- 
2.34.0


[-- Attachment #3: 0002-gnu-Add-plan9port.patch --]
[-- Type: text/x-patch, Size: 3831 bytes --]

From 6674eeadec48b44ab137ae7b874a254557c232dd Mon Sep 17 00:00:00 2001
From: Lu Hui <luhux76@gmail.com>
Date: Sun, 20 Mar 2022 00:20:01 +0800
Subject: [PATCH 2/2] gnu: Add plan9port

* gnu/packages/plan9.scm (plan9port) : New variable.
---
 gnu/packages/plan9.scm | 59 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/gnu/packages/plan9.scm b/gnu/packages/plan9.scm
index 73694c4ed3..5c4380e782 100644
--- a/gnu/packages/plan9.scm
+++ b/gnu/packages/plan9.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2021 宋文武 <iyzsong@member.fsf.org>
+;;; Copyright © 2022 Lu Hui <luhux76@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,10 +19,16 @@
 
 (define-module (gnu packages plan9)
   #:use-module (guix build-system gnu)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages xorg))
 
 (define-public drawterm
@@ -63,3 +70,55 @@ (define-public drawterm
 Plan 9 systems.  It behaves like a Plan 9 kernel and will attempt to
 reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.")
       (license license:expat))))
+
+(define-public plan9port
+  (let ((revision "0") (commit "bab7b73b85f865d20a5c4f2d78ac9e81b3d39109"))
+    (package
+      (name "plan9port")
+      (version (git-version "20220124" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/9fans/plan9port")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "17h6xdij3h00j87lc94q887sq45540lcp9h3kbxwxisd020h1i3v"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags (list (string-append "CC="
+                                           ,(cc-for-target)))
+         #:tests?
+         #f ;no tests
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ;configure in install phase
+           (delete 'build) ;build in install phase
+           (replace 'install
+              ;configure & build & install
+             (lambda* (#:key outputs native-inputs inputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out")) (libxt (assoc-ref inputs
+                                                              "libxt"))
+                      (system ,(%current-system))
+                      (builder (assoc-ref inputs "builder.sh")))
+                 (copy-file builder "./builder.sh")
+                 (setenv "out" out)
+                 (setenv "libxt" libxt)
+                 (setenv "system" system)
+                 (invoke "bash" "builder.sh")))))))
+      (inputs `(("builder.sh" ,(search-auxiliary-file "plan9port/builder.sh"))
+                ("fontconfig" ,fontconfig)
+                ("freetype" ,freetype)
+                ("libx11" ,libx11)
+                ("libxt" ,libxt)
+                ("libxext" ,libxext)
+                ("xorgproto" ,xorgproto)))
+      (native-inputs `(("perl" ,perl) ("which" ,which)
+                       ("bash" ,bash)))
+      (synopsis "Plan 9 from User Space")
+      (home-page "https://9fans.github.io/plan9port/")
+      (description
+       "Plan 9 from User Space (aka plan9port) is a port of many Plan 9 programs
+ from their native Plan 9 environment to Unix-like operating systems.")
+      (license license:expat))))
-- 
2.34.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-08-20  5:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-19 16:47 [bug#54467] gnu: add plan9port 路辉
2023-08-20  5:02 ` bug#54467: " Hilton Chain via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).