summaryrefslogtreecommitdiff
path: root/pkg/git
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2016-12-11 16:04:20 -0800
committerMichael Forney <mforney@mforney.org>2016-12-13 23:10:30 -0800
commit293f5a93b77d92fd65db7f3d0df654f102e46cfb (patch)
tree6ecd1170e3dd793862dd852814dc1b4cd5e44260 /pkg/git
parent9a506a6834df01a26795cea222b410f206efa9fa (diff)
Move to flat package hierarchy
Note to self: never try to move submodules again To migrate your existing submodules (more or less): set -x set -e mkdir .git/modules/pkg for old in */*/src ; do new="pkg/${old#*/}" if ! [ -f "$old/.git" ] || [ "${old%%/*}" = pkg ] ; then continue fi git -C ".git/modules/$old" config core.worktree "../../../../../$new" rmdir "$new" mv "$old" "$new" sed -e "s,$old,$new," "$new/.git" > "$new/.git.tmp" mv "$new/.git.tmp" "$new/.git" mkdir ".git/modules/${new%/src}" mv ".git/modules/$old" ".git/modules/$new" rm "${old%/src}"/*.ninja mv "${old%/src}"/*.tar.{gz,xz,bz2} "${new%/src}/" rmdir "${old%/src}" || true done sed -e 's,^\[submodule "[^/]*/,[submodule "pkg/,' .git/config > .git/config.tmp mv .git/config.tmp .git/config
Diffstat (limited to 'pkg/git')
-rw-r--r--pkg/git/commands.txt151
-rw-r--r--pkg/git/config.h13
-rw-r--r--pkg/git/gen.rc381
-rw-r--r--pkg/git/patch/0001-Drop-dashes-from-builtin-invocations-in-scripts.patch107
-rw-r--r--pkg/git/rev1
-rw-r--r--pkg/git/sh_gen.sed10
m---------pkg/git/src0
7 files changed, 663 insertions, 0 deletions
diff --git a/pkg/git/commands.txt b/pkg/git/commands.txt
new file mode 100644
index 00000000..a5d3f05a
--- /dev/null
+++ b/pkg/git/commands.txt
@@ -0,0 +1,151 @@
+# <cd src/Documentation && printf '%s\n' git-*.txt
+git-add.txt
+git-am.txt
+git-annotate.txt
+git-apply.txt
+git-archimport.txt
+git-archive.txt
+git-bisect-lk2009.txt
+git-bisect.txt
+git-blame.txt
+git-branch.txt
+git-bundle.txt
+git-cat-file.txt
+git-check-attr.txt
+git-check-ignore.txt
+git-check-mailmap.txt
+git-check-ref-format.txt
+git-checkout-index.txt
+git-checkout.txt
+git-cherry-pick.txt
+git-cherry.txt
+git-citool.txt
+git-clean.txt
+git-clone.txt
+git-column.txt
+git-commit-tree.txt
+git-commit.txt
+git-config.txt
+git-count-objects.txt
+git-credential-cache--daemon.txt
+git-credential-cache.txt
+git-credential-store.txt
+git-credential.txt
+git-cvsexportcommit.txt
+git-cvsimport.txt
+git-cvsserver.txt
+git-daemon.txt
+git-describe.txt
+git-diff-files.txt
+git-diff-index.txt
+git-diff-tree.txt
+git-diff.txt
+git-difftool.txt
+git-fast-export.txt
+git-fast-import.txt
+git-fetch-pack.txt
+git-fetch.txt
+git-filter-branch.txt
+git-fmt-merge-msg.txt
+git-for-each-ref.txt
+git-format-patch.txt
+git-fsck-objects.txt
+git-fsck.txt
+git-gc.txt
+git-get-tar-commit-id.txt
+git-grep.txt
+git-gui.txt
+git-hash-object.txt
+git-help.txt
+git-http-backend.txt
+git-http-fetch.txt
+git-http-push.txt
+git-imap-send.txt
+git-index-pack.txt
+git-init-db.txt
+git-init.txt
+git-instaweb.txt
+git-interpret-trailers.txt
+git-log.txt
+git-ls-files.txt
+git-ls-remote.txt
+git-ls-tree.txt
+git-mailinfo.txt
+git-mailsplit.txt
+git-merge-base.txt
+git-merge-file.txt
+git-merge-index.txt
+git-merge-one-file.txt
+git-merge-tree.txt
+git-merge.txt
+git-mergetool--lib.txt
+git-mergetool.txt
+git-mktag.txt
+git-mktree.txt
+git-mv.txt
+git-name-rev.txt
+git-notes.txt
+git-p4.txt
+git-pack-objects.txt
+git-pack-redundant.txt
+git-pack-refs.txt
+git-parse-remote.txt
+git-patch-id.txt
+git-prune-packed.txt
+git-prune.txt
+git-pull.txt
+git-push.txt
+git-quiltimport.txt
+git-read-tree.txt
+git-rebase.txt
+git-receive-pack.txt
+git-reflog.txt
+git-relink.txt
+git-remote-ext.txt
+git-remote-fd.txt
+git-remote-testgit.txt
+git-remote.txt
+git-repack.txt
+git-replace.txt
+git-request-pull.txt
+git-rerere.txt
+git-reset.txt
+git-rev-list.txt
+git-rev-parse.txt
+git-revert.txt
+git-rm.txt
+git-send-email.txt
+git-send-pack.txt
+git-sh-i18n--envsubst.txt
+git-sh-i18n.txt
+git-sh-setup.txt
+git-shell.txt
+git-shortlog.txt
+git-show-branch.txt
+git-show-index.txt
+git-show-ref.txt
+git-show.txt
+git-stage.txt
+git-stash.txt
+git-status.txt
+git-stripspace.txt
+git-submodule.txt
+git-svn.txt
+git-symbolic-ref.txt
+git-tag.txt
+git-tools.txt
+git-unpack-file.txt
+git-unpack-objects.txt
+git-update-index.txt
+git-update-ref.txt
+git-update-server-info.txt
+git-upload-archive.txt
+git-upload-pack.txt
+git-var.txt
+git-verify-commit.txt
+git-verify-pack.txt
+git-verify-tag.txt
+git-web--browse.txt
+git-whatchanged.txt
+git-worktree.txt
+git-write-tree.txt
diff --git a/pkg/git/config.h b/pkg/git/config.h
new file mode 100644
index 00000000..47cb9d5b
--- /dev/null
+++ b/pkg/git/config.h
@@ -0,0 +1,13 @@
+#define DEFAULT_GIT_TEMPLATE_DIR "share/git-core/templates"
+#define ETC_GITATTRIBUTES "/etc/gitattributes"
+#define ETC_GITCONFIG "/etc/gitconfig"
+#define GIT_EXEC_PATH "libexec/git-core"
+#define GIT_HTML_PATH "share/doc/git-doc"
+#define GIT_INFO_PATH "share/info"
+#define GIT_LOCALE_PATH "/share/locale"
+#define GIT_MAN_PATH "share/man"
+#define GIT_USER_AGENT "git/" GIT_VERSION
+#define GIT_VERSION "2.11.0"
+#define NO_SYS_POLL_H
+#define PAGER_ENV "LESS=FRX LV=-c"
+#define SHA1_HEADER <openssl/sha.h>
diff --git a/pkg/git/gen.rc b/pkg/git/gen.rc
new file mode 100644
index 00000000..12a5e772
--- /dev/null
+++ b/pkg/git/gen.rc
@@ -0,0 +1,381 @@
+cflags\
+ -include '$dir'/config.h\
+ -isystem '$builddir'/pkg/curl/include\
+ -isystem '$builddir'/pkg/libressl/include\
+ -isystem '$builddir'/pkg/zlib/include\
+ -I '$srcdir' \
+ -I '$srcdir'/compat/regex\
+ -I '$outdir'
+
+rule cmdlist 'wd=$$PWD && cd $srcdir && ./generate-cmdlist.sh $$wd/$in >$$wd/$out.tmp && mv $$wd/$out.tmp $$wd/$out'
+build '$outdir'/common-cmds.h cmdlist '$srcdir'/command-list.txt '|' '$srcdir'/Documentation/`{grep -v '^#' commands.txt}
+
+phony deps '$outdir'/common-cmds.h pkg/^(curl libressl zlib)^/headers
+
+cc exec_cmd.c '||' '$dir'/deps ; with cflags '$cflags ''-DPREFIX=""'''
+cc common-main.c '||' '$dir'/deps
+cc compat/regex/regex.c '||' '$dir'/deps ; with cflags '$cflags -DGAWK -DNO_MBSUPPORT'
+
+# src/Makefile:/^LIB_OBJS.\+=
+lib libgit.a -d '$dir'/deps\
+ abspath.c\
+ advice.c\
+ alias.c\
+ alloc.c\
+ apply.c\
+ archive-tar.c\
+ archive-zip.c\
+ archive.c\
+ argv-array.c\
+ attr.c\
+ base85.c\
+ bisect.c\
+ blob.c\
+ branch.c\
+ bulk-checkin.c\
+ bundle.c\
+ cache-tree.c\
+ color.c\
+ column.c\
+ combine-diff.c\
+ commit.c\
+ compat/obstack.c\
+ compat/regex/regex.c.o\
+ compat/terminal.c\
+ config.c\
+ connect.c\
+ connected.c\
+ convert.c\
+ copy.c\
+ credential.c\
+ csum-file.c\
+ ctype.c\
+ date.c\
+ decorate.c\
+ diff-delta.c\
+ diff-lib.c\
+ diff-no-index.c\
+ diff.c\
+ diffcore-break.c\
+ diffcore-delta.c\
+ diffcore-order.c\
+ diffcore-pickaxe.c\
+ diffcore-rename.c\
+ dir.c\
+ dir-iterator.c\
+ editor.c\
+ entry.c\
+ environment.c\
+ ewah/bitmap.c\
+ ewah/ewah_bitmap.c\
+ ewah/ewah_io.c\
+ ewah/ewah_rlw.c\
+ exec_cmd.c.o\
+ fetch-pack.c\
+ fsck.c\
+ gettext.c\
+ gpg-interface.c\
+ graph.c\
+ grep.c\
+ hashmap.c\
+ help.c\
+ hex.c\
+ ident.c\
+ kwset.c\
+ levenshtein.c\
+ line-log.c\
+ line-range.c\
+ list-objects.c\
+ ll-merge.c\
+ lockfile.c\
+ log-tree.c\
+ mailinfo.c\
+ mailmap.c\
+ match-trees.c\
+ merge-blobs.c\
+ merge-recursive.c\
+ merge.c\
+ mergesort.c\
+ mru.c\
+ name-hash.c\
+ notes-cache.c\
+ notes-merge.c\
+ notes-utils.c\
+ notes.c\
+ object.c\
+ pack-bitmap-write.c\
+ pack-bitmap.c\
+ pack-check.c\
+ pack-objects.c\
+ pack-revindex.c\
+ pack-write.c\
+ pager.c\
+ parse-options-cb.c\
+ parse-options.c\
+ patch-delta.c\
+ patch-ids.c\
+ path.c\
+ pathspec.c\
+ pkt-line.c\
+ preload-index.c\
+ pretty.c\
+ prio-queue.c\
+ progress.c\
+ prompt.c\
+ quote.c\
+ reachable.c\
+ read-cache.c\
+ ref-filter.c\
+ reflog-walk.c\
+ refs.c\
+ refs/files-backend.c\
+ refs/iterator.c\
+ remote.c\
+ replace_object.c\
+ rerere.c\
+ resolve-undo.c\
+ revision.c\
+ run-command.c\
+ send-pack.c\
+ sequencer.c\
+ server-info.c\
+ setup.c\
+ sha1-array.c\
+ sha1-lookup.c\
+ sha1_file.c\
+ sha1_name.c\
+ shallow.c\
+ sideband.c\
+ sigchain.c\
+ split-index.c\
+ strbuf.c\
+ streaming.c\
+ string-list.c\
+ submodule-config.c\
+ submodule.c\
+ symlinks.c\
+ tag.c\
+ tempfile.c\
+ tmp-objdir.c\
+ trace.c\
+ trailer.c\
+ transport-helper.c\
+ transport.c\
+ tree-diff.c\
+ tree-walk.c\
+ tree.c\
+ unpack-trees.c\
+ url.c\
+ urlmatch.c\
+ usage.c\
+ userdiff.c\
+ utf8.c\
+ varint.c\
+ version.c\
+ versioncmp.c\
+ walker.c\
+ wildmatch.c\
+ worktree.c\
+ wrapper.c\
+ write_or_die.c\
+ ws.c\
+ wt-status.c\
+ xdiff-interface.c\
+ zlib.c\
+ \
+ thread-utils.c\
+ libxdiff.a\
+ '$builddir'/pkg/^(libressl/libcrypto.a.d zlib/libz.a)
+
+# src/Makefile:/^XDIFF_OBJS.\+=
+lib libxdiff.a xdiff/^(\
+ xdiffi.c\
+ xprepare.c\
+ xutils.c\
+ xemit.c\
+ xmerge.c\
+ xpatience.c\
+ xhistogram.c\
+)
+
+# src/Makefile:/^BUILTIN_OBJS.\+=
+exe git -d '$dir'/deps git.c common-main.c.o builtin/^(\
+ add.c\
+ am.c\
+ annotate.c\
+ apply.c\
+ archive.c\
+ bisect--helper.c\
+ blame.c\
+ branch.c\
+ bundle.c\
+ cat-file.c\
+ check-attr.c\
+ check-ignore.c\
+ check-mailmap.c\
+ check-ref-format.c\
+ checkout-index.c\
+ checkout.c\
+ clean.c\
+ clone.c\
+ column.c\
+ commit-tree.c\
+ commit.c\
+ config.c\
+ count-objects.c\
+ credential.c\
+ describe.c\
+ diff-files.c\
+ diff-index.c\
+ diff-tree.c\
+ diff.c\
+ fast-export.c\
+ fetch-pack.c\
+ fetch.c\
+ fmt-merge-msg.c\
+ for-each-ref.c\
+ fsck.c\
+ gc.c\
+ get-tar-commit-id.c\
+ grep.c\
+ hash-object.c\
+ help.c\
+ index-pack.c\
+ init-db.c\
+ interpret-trailers.c\
+ log.c\
+ ls-files.c\
+ ls-remote.c\
+ ls-tree.c\
+ mailinfo.c\
+ mailsplit.c\
+ merge.c\
+ merge-base.c\
+ merge-file.c\
+ merge-index.c\
+ merge-ours.c\
+ merge-recursive.c\
+ merge-tree.c\
+ mktag.c\
+ mktree.c\
+ mv.c\
+ name-rev.c\
+ notes.c\
+ pack-objects.c\
+ pack-redundant.c\
+ pack-refs.c\
+ patch-id.c\
+ prune-packed.c\
+ prune.c\
+ pull.c\
+ push.c\
+ read-tree.c\
+ receive-pack.c\
+ reflog.c\
+ remote.c\
+ remote-ext.c\
+ remote-fd.c\
+ repack.c\
+ replace.c\
+ rerere.c\
+ reset.c\
+ rev-list.c\
+ rev-parse.c\
+ revert.c\
+ rm.c\
+ send-pack.c\
+ shortlog.c\
+ show-branch.c\
+ show-ref.c\
+ stripspace.c\
+ submodule--helper.c\
+ symbolic-ref.c\
+ tag.c\
+ unpack-file.c\
+ unpack-objects.c\
+ update-index.c\
+ update-ref.c\
+ update-server-info.c\
+ upload-archive.c\
+ var.c\
+ verify-commit.c\
+ verify-pack.c\
+ verify-tag.c\
+ worktree.c\
+ write-tree.c\
+) libgit.a.d
+file bin/git '$outdir'/git 755
+
+fn x {
+ name=$1
+ shift
+ if(~ $#* 0) srcs=$name.c
+ if not srcs=$*
+ exe git-$name -d '$dir'/deps $srcs common-main.c.o libgit.a.d
+ file libexec/git-core/git-$name '$outdir'/git-$name 755
+}
+
+# src/Makefile:/^PROGRAM_OBJS./+=
+x credential-store
+x daemon
+x fast-import
+x http-backend
+x imap-send imap-send.c '$builddir'/pkg/libressl/libssl.a.d
+x sh-i18n--envsubst
+x shell
+x show-index
+x upload-pack
+# git-remote-testsvn is intentionally omitted.
+
+x remote-http remote-curl.c http.c http-walker.c '$builddir'/pkg/curl/libcurl.a.d
+for(remote in https ftp ftps) sym libexec/git-core/git-remote-$remote git-remote-http
+
+rule sh_gen 'sed -f $dir/sh_gen.sed $in >$out.tmp && mv $out.tmp $out'
+fn x {
+ name=$1
+ mode=$2
+ shift
+ build '$outdir'/git-$name sh_gen '$srcdir'/git-$name.sh '|' '$dir'/sh_gen.sed
+ file libexec/git-core/git-$name '$outdir'/git-$name $mode
+}
+
+# src/Makefile:/^SCRIPT_SH.\+=
+x bisect 755
+x difftool--helper 755
+x filter-branch 755
+x merge-octopus 755
+x merge-one-file 755
+x merge-resolve 755
+x mergetool 755
+x quiltimport 755
+x rebase 755
+x remote-testgit 755
+x request-pull 755
+x stash 755
+x submodule 755
+x web--browse 755
+
+# src/Makefile:/^SCRIPT_LIB.\+=
+x mergetool--lib 644
+x parse-remote 644
+x rebase--am 644
+x rebase--interactive 644
+x rebase--merge 644
+x sh-setup 644
+x sh-i18n 644
+
+for(exe in git-^(shell upload-pack))
+ sym bin/$exe ../libexec/git-core/$exe
+for(exe in git-^(receive-pack upload-archive))
+ sym bin/$exe git
+
+# templates
+dir share/git-core/templates/branches 755
+file share/git-core/templates/description '$srcdir'/templates/this--description 644
+file share/git-core/templates/info/exclude '$srcdir'/templates/info--exclude 644
+# Skip the sample hooks and install an empty directory instead.
+dir share/git-core/templates/hooks 755
+
+# TODO: Build and install man pages.
+
+fetch git
diff --git a/pkg/git/patch/0001-Drop-dashes-from-builtin-invocations-in-scripts.patch b/pkg/git/patch/0001-Drop-dashes-from-builtin-invocations-in-scripts.patch
new file mode 100644
index 00000000..717f8b13
--- /dev/null
+++ b/pkg/git/patch/0001-Drop-dashes-from-builtin-invocations-in-scripts.patch
@@ -0,0 +1,107 @@
+From b8d3b9e40f00194a25797f606aeebf946b38eba2 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 3 Dec 2016 00:41:41 -0800
+Subject: [PATCH] Drop dashes from builtin invocations in scripts
+
+---
+ git-merge-octopus.sh | 2 +-
+ git-merge-one-file.sh | 8 ++++----
+ git-merge-resolve.sh | 2 +-
+ git-parse-remote.sh | 2 +-
+ git-submodule.sh | 6 +++---
+ 5 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/git-merge-octopus.sh b/git-merge-octopus.sh
+index bcf0d92..6c390d6 100755
+--- a/git-merge-octopus.sh
++++ b/git-merge-octopus.sh
+@@ -100,7 +100,7 @@ do
+ if test $? -ne 0
+ then
+ gettextln "Simple merge did not work, trying automatic merge."
+- git-merge-index -o git-merge-one-file -a ||
++ git merge-index -o git-merge-one-file -a ||
+ OCTOPUS_FAILURE=1
+ next=$(git write-tree 2>/dev/null)
+ fi
+diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh
+index 424b034..9879c59 100755
+--- a/git-merge-one-file.sh
++++ b/git-merge-one-file.sh
+@@ -115,16 +115,16 @@ case "${1:-.}${2:-.}${3:-.}" in
+ ;;
+ esac
+
+- src1=$(git-unpack-file $2)
+- src2=$(git-unpack-file $3)
++ src1=$(git unpack-file $2)
++ src2=$(git unpack-file $3)
+ case "$1" in
+ '')
+ echo "Added $4 in both, but differently."
+- orig=$(git-unpack-file e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
++ orig=$(git unpack-file e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
+ ;;
+ *)
+ echo "Auto-merging $4"
+- orig=$(git-unpack-file $1)
++ orig=$(git unpack-file $1)
+ ;;
+ esac
+
+diff --git a/git-merge-resolve.sh b/git-merge-resolve.sh
+index c9da747..343fe7b 100755
+--- a/git-merge-resolve.sh
++++ b/git-merge-resolve.sh
+@@ -45,7 +45,7 @@ then
+ exit 0
+ else
+ echo "Simple merge failed, trying Automatic merge."
+- if git-merge-index -o git-merge-one-file -a
++ if git merge-index -o git-merge-one-file -a
+ then
+ exit 0
+ else
+diff --git a/git-parse-remote.sh b/git-parse-remote.sh
+index d3c3998..dcfa271 100644
+--- a/git-parse-remote.sh
++++ b/git-parse-remote.sh
+@@ -2,7 +2,7 @@
+ # upstream branch that should be pulled by "git pull" from the current
+ # branch.
+
+-# git-ls-remote could be called from outside a git managed repository;
++# git ls-remote could be called from outside a git managed repository;
+ # this would fail in that case and would issue an error message.
+ GIT_DIR=$(git rev-parse -q --git-dir) || :;
+
+diff --git a/git-submodule.sh b/git-submodule.sh
+index a024a13..4aac71f 100755
+--- a/git-submodule.sh
++++ b/git-submodule.sh
+@@ -843,7 +843,7 @@ cmd_summary() {
+ test $status != A && test $ignore_config = all && continue
+ fi
+ # Also show added or modified modules which are checked out
+- GIT_DIR="$sm_path/.git" git-rev-parse --git-dir >/dev/null 2>&1 &&
++ GIT_DIR="$sm_path/.git" git rev-parse --git-dir >/dev/null 2>&1 &&
+ printf '%s\n' "$sm_path"
+ done
+ )
+@@ -877,11 +877,11 @@ cmd_summary() {
+ missing_dst=
+
+ test $mod_src = 160000 &&
+- ! GIT_DIR="$name/.git" git-rev-parse -q --verify $sha1_src^0 >/dev/null &&
++ ! GIT_DIR="$name/.git" git rev-parse -q --verify $sha1_src^0 >/dev/null &&
+ missing_src=t
+
+ test $mod_dst = 160000 &&
+- ! GIT_DIR="$name/.git" git-rev-parse -q --verify $sha1_dst^0 >/dev/null &&
++ ! GIT_DIR="$name/.git" git rev-parse -q --verify $sha1_dst^0 >/dev/null &&
+ missing_dst=t
+
+ display_name=$(git submodule--helper relative-path "$name" "$wt_prefix")
+--
+2.10.2
+
diff --git a/pkg/git/rev b/pkg/git/rev
new file mode 100644
index 00000000..45a4fb75
--- /dev/null
+++ b/pkg/git/rev
@@ -0,0 +1 @@
+8
diff --git a/pkg/git/sh_gen.sed b/pkg/git/sh_gen.sed
new file mode 100644
index 00000000..ea0f0f21
--- /dev/null
+++ b/pkg/git/sh_gen.sed
@@ -0,0 +1,10 @@
+s|@SHELL_PATH@|/bin/sh|
+s|@@DIFF@@|diff|
+s|@@LOCALEDIR@@|/share/locale|g
+s|@@NO_CURL@@||g
+s|@@USE_GETTEXT_SCHEME@@||g
+/^\# @@BROKEN_PATH_FIX@@$/d
+s|@@GITWEBDIR@@|/share/gitweb|g
+s|@@PERL@@|/bin/perl|g
+s|@@SANE_TEXT_GREP@@||g
+s|@@PAGER_ENV@@|LESS=FRX LV=-c|g
diff --git a/pkg/git/src b/pkg/git/src
new file mode 160000
+Subproject 454cb6bd52a4de614a3633e4f547af03d5c3b64