From: "KADOTA, Kyohei via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v2 0/3] Port git to Plan 9
Date: Tue, 27 Aug 2019 06:46:16 -0700 (PDT) [thread overview]
Message-ID: <pull.305.v2.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.305.git.gitgitgadget@gmail.com>
Changes from v1
===============
* Use gmake
* Use sh
* Remove dependencies to Plan 9 tools; rc and mk
What I did
==========
I ported git, and git subcommands with gmake to Plan 9. This pull request
contains patches for existing codes, and new files to build git in Plan 9.
I added three new options into Makefile.
* USER_GITCONFIG - default ~/.gitconfig
* USER_GITCREDENTIALS - default ~/.git-credentials
* USER_GITCREDENTIAL_CACHE - default ~/.git-credential-cache
* USE_EXEC_WRAPPER - default empty
In Plan 9, user configuration files are stored at $home/lib, instead of
dotfiles.
http://xahlee.info/UnixResource_dir/writ/unix_origin_of_dot_filename.html
And Plan 9 haven't hard link and symbolic link. Thus I added exec-wrapper to
want to shrink disk usage.
http://doc.cat-v.org/plan_9/4th_edition/papers/lexnames
Installation
============
# ANSI/POSIX commands are installed at /bin only in current namespace.
% bind -a /bin/ape /bin
# Plan 9 C compiler can't initialize struct fields that is bit field so remove bit fields from all C files.
% ./remove-bitfields.sh
# build Git toolchain with /n/sources/contrib/andrey/make-3.81.tgz
% gmake 'prefix=' 'gitexecdir=bin/git-core' 'sysconfdir=sys/lib/git' 'template_dir=sys/lib/git/templates' install
lufia (3):
Change HOME, PATH, and .gitconfig paths to be customizable
Fix C syntactic errors for the Plan 9 C compiler
Support Plan 9 dialect
GIT-VERSION-GEN | 2 +-
Makefile | 81 +++++++++++++++++++++++-----
builtin/config.c | 2 +-
compat/plan9/openssl/crypto.h | 5 ++
compat/regex/regex_internal.h | 3 ++
config.c | 5 +-
config.mak.uname | 99 +++++++++++++++++++++++++++++++++++
credential-cache.c | 2 +-
credential-store.c | 2 +-
exec-cmd.c | 4 +-
exec-wrapper.c | 16 ++++++
generate-cmdlist.sh | 24 ++++++---
git-compat-util.h | 17 +++++-
help.c | 2 +-
parse-options.h | 18 +++----
path.c | 6 +--
remove-bitfields.sh | 17 ++++++
run-command.c | 4 +-
sequencer.c | 2 +-
shell.c | 2 +-
t/chainlint.sed | 66 +++++++++++------------
templates/Makefile | 12 ++++-
22 files changed, 311 insertions(+), 80 deletions(-)
create mode 100644 compat/plan9/openssl/crypto.h
create mode 100644 exec-wrapper.c
create mode 100755 remove-bitfields.sh
base-commit: 745f6812895b31c02b29bdfe4ae8e5498f776c26
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-305%2Flufia%2Fplan9-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-305/lufia/plan9-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/305
Range-diff vs v1:
1: fa539c75b2 ! 1: 63e7e7794e Change HOME, PATH, and .gitconfig paths to be customizable
@@ -10,12 +10,26 @@
--- a/Makefile
+++ b/Makefile
@@
+ localedir = $(sharedir)/locale
+ template_dir = share/git-core/templates
htmldir = $(prefix)/share/doc/git-doc
- ETC_GITCONFIG = $(sysconfdir)/gitconfig
- ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
-+USER_GITCONFIG = ~/.gitconfig
-+USER_GITCREDENTIALS = ~/.git-credentials
-+USER_GITCREDENTIAL_CACHE = ~/.git-credential-cache
+-ETC_GITCONFIG = $(sysconfdir)/gitconfig
+-ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
++ifndef ETC_GITCONFIG
++ ETC_GITCONFIG = $(sysconfdir)/gitconfig
++endif
++ifndef ETC_GITATTRIBUTES
++ ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
++endif
++ifndef USER_GITCONFIG
++ USER_GITCONFIG = ~/.gitconfig
++endif
++ifndef USER_GITCREDENTIALS
++ USER_GITCREDENTIALS = ~/.git-credentials
++endif
++ifndef USER_GITCREDENTIAL_CACHE
++ USER_GITCREDENTIAL_CACHE = ~/.git-credential-cache
++endif
lib = lib
# DESTDIR =
pathsep = :
2: 301a796de9 ! 2: 7abbd36e1d Fix C syntactic errors for the Plan 9 C compiler
@@ -114,22 +114,25 @@
* It's okay for the caller to consume argv/argc in the usual way.
* Other fields of that structure are private to parse-options and should not
- diff --git a/remove-bitfields.rc b/remove-bitfields.rc
- new file mode 100644
+ diff --git a/remove-bitfields.sh b/remove-bitfields.sh
+ new file mode 100755
--- /dev/null
- +++ b/remove-bitfields.rc
+ +++ b/remove-bitfields.sh
@@
-+#!/bin/rc
++#!/bin/ape/sh
+# Plan 9 C compiler rejects initialization a structure including bit field.
-+# usage: remove-bitfields.rc [dir ...]
++# usage: remove-bitfields.sh [dir ...]
++
++if ! echo abc | sed 's/(ab)c/\1/' >/dev/null 2>&1
++then
++ alias sed='sed -E'
++fi
+
-+fn sigexit sighup sigint sigquit sigterm {
-+ rm -f /tmp/remove-bitfields.$pid
-+ exit
-+}
++trap 'rm -f /tmp/remove-bitfields.$pid; exit 1' 1 2 3 15 EXIT
+
-+files=`{du -a $* | awk '/\.[ch]$/ { print $2 }'}
-+for(i in $files){
++files=$(du -a $* | awk '/\.[ch]$/ { print $2 }')
++for i in $files
++do
+ sed '/(^[ ]*\*|\?)/!s/([a-z]+[a-z0-9]*) *: *[0-9]+([,;])/\1\2/g' $i >/tmp/remove-bitfields.$pid
+ cp /tmp/remove-bitfields.$pid $i
-+}
++done
3: df67a7e1d3 < -: ---------- GIT-VERSION-GEN: Use sed instead of expr
4: d25bcb43e1 < -: ---------- Port generate-cmdline.sh to rc
5: d00bbdce0d < -: ---------- Add plan9/wrap.c
6: 0494971306 < -: ---------- Add mkfile to build git and subcommands for Plan 9
-: ---------- > 3: 7505e85fc5 Support Plan 9 dialect
--
gitgitgadget
next prev parent reply other threads:[~2019-08-27 13:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-03 23:52 [PATCH 0/6] Port git to Plan 9 KADOTA, Kyohei via GitGitGadget
2019-08-03 23:52 ` [PATCH 1/6] Change HOME, PATH, and .gitconfig paths to be customizable lufia via GitGitGadget
2019-08-03 23:52 ` [PATCH 2/6] Fix C syntactic errors for the Plan 9 C compiler lufia via GitGitGadget
2019-08-03 23:52 ` [PATCH 3/6] GIT-VERSION-GEN: Use sed instead of expr lufia via GitGitGadget
2019-08-05 22:37 ` Junio C Hamano
2019-08-03 23:52 ` [PATCH 4/6] Port generate-cmdline.sh to rc lufia via GitGitGadget
2019-08-03 23:52 ` [PATCH 5/6] Add plan9/wrap.c lufia via GitGitGadget
2019-08-04 0:03 ` brian m. carlson
2019-08-04 1:26 ` Kyohei Kadota
2019-08-03 23:52 ` [PATCH 6/6] Add mkfile to build git and subcommands for Plan 9 lufia via GitGitGadget
2019-08-04 0:38 ` [PATCH 0/6] Port git to " brian m. carlson
2019-08-04 2:22 ` Kyohei Kadota
2019-08-04 20:22 ` Jonathan Nieder
2019-08-27 13:46 ` KADOTA, Kyohei via GitGitGadget [this message]
2019-08-27 13:46 ` [PATCH v2 1/3] Change HOME, PATH, and .gitconfig paths to be customizable lufia via GitGitGadget
2019-08-27 13:46 ` [PATCH v2 2/3] Fix C syntactic errors for the Plan 9 C compiler lufia via GitGitGadget
2019-08-27 13:46 ` [PATCH v2 3/3] Support Plan 9 dialect lufia via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.305.v2.git.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.