summaryrefslogtreecommitdiffstats
path: root/third_party/heimdal/import-lorikeet.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/heimdal/import-lorikeet.sh')
-rwxr-xr-xthird_party/heimdal/import-lorikeet.sh151
1 files changed, 151 insertions, 0 deletions
diff --git a/third_party/heimdal/import-lorikeet.sh b/third_party/heimdal/import-lorikeet.sh
new file mode 100755
index 0000000..45a5888
--- /dev/null
+++ b/third_party/heimdal/import-lorikeet.sh
@@ -0,0 +1,151 @@
+#!/bin/bash
+#
+# Usage copy import-lorikeet.sh and rebase-lorikeet.sh
+# into an empty directory maybe call it update-heimdal
+# and don't use it for any other work than importing lorikeet heimdal
+# into samba.
+#
+# You need to pass the name of the lorikeet branch
+# within the heimdal/ repository as first argument.
+#
+# You can pass skip_fetch=yes, skip_create=yes, skip_build=yes, skip_test=yes
+# as env vars
+#
+
+DATE=`date --utc +%Y%m%d%H%M`
+
+lorikeet_branch="$1"
+tmp_samba_branch="import-lorikeet-tmp"
+new_samba_branch="import-${lorikeet_branch}"
+samba_master_branch="$2"
+test -n "$samba_master_branch" || {
+ samba_master_branch="origin/master"
+}
+
+export CC="ccache gcc"
+
+bailout() {
+ exit $1;
+}
+
+# 1. check if the heimdal repository created with rebase-lorikeet.sh already
+# exist
+heimdal_check() {
+ test -d heimdal || {
+ ls heimdal/
+ bailout 255
+ }
+
+ test -n "$lorikeet_branch" || {
+ echo "usage: $0 <lorikeet-branch> [<samba-branch>]"
+ bailout 1
+ }
+
+ return 0;
+}
+
+# 2. initialize the samba repository in the samba subdir
+samba_init() {
+ test -d samba || {
+ mkdir samba || bailout $?
+ pushd samba
+ git init || bailout $?
+ git remote add origin https://git.samba.org/samba.git
+ git remote add local-heimdal ../heimdal
+ popd
+ }
+
+ return 0;
+}
+
+# 3. bring the repository uptodate
+samba_fetch() {
+ test x"$skip_fetch" = x"yes" || {
+ pushd samba
+ git fetch origin || bailout $?
+ git fetch local-heimdal || bailout $?
+ popd
+ }
+
+ return 0;
+}
+
+#
+# It would be good if you have a lex:yacc combination which can rebuild this
+# files...
+#
+
+build_samba() {
+ test x"$skip_build" = x"yes" || {
+ ./configure.developer || return $?
+ make -j || return $?
+ test x"$skip_test" = x"yes" || {
+ TDB_NO_FSYNC=1 make -j test || return $?
+ }
+ }
+
+ return 0;
+}
+
+samba_create() {
+ test x"$skip_create" = x"yes" || {
+ pushd samba
+ lorikeet_commit=`git log -1 local-heimdal/$lorikeet_branch | head -1 | cut -d ' ' -f2`
+ echo "local-heimdal/$lorikeet_branch => commit:$lorikeet_commit"
+ echo "git update-ref"
+ git update-ref refs/heads/$tmp_samba_branch $samba_master_branch || bailout $?
+ echo "git checkout"
+ git checkout $tmp_samba_branch || bailout $?
+ echo "git reset --hard HEAD"
+ git reset --hard HEAD
+ echo "git clean -d -x -f"
+ git clean -d -x -f
+ echo "git read-tree..."
+ git read-tree -u --prefix=third_party/heimdal-new/ local-heimdal/$lorikeet_branch || bailout $?
+ echo "git reset --mixed HEAD"
+ git reset --mixed HEAD
+ echo "swap old -> new"
+ mv third_party/heimdal third_party/heimdal-old || bailout $?
+ rsync -a third_party/heimdal-new/ third_party/heimdal || bailout $?
+ # echo "PS1=\"'import-heimdal shell'>\"" > ../.bashrc.samba_create
+ # bash --rcfile ../.bashrc.samba_create
+ # bailout 255
+ echo "add changed files to the index"
+ git add -u third_party/heimdal
+ echo "commit the changed files blindly"
+ git commit --no-verify -m "third_party/heimdal: import $lorikeet_branch (commit $lorikeet_commit)"
+ echo "cleanup third_party/heimdal"
+ rm -rf third_party/heimdal
+ git checkout third_party/heimdal
+ echo "try to build samba"
+ build_samba || {
+ echo ""
+ echo "Now build the tree and make it compile."
+ echo "Missing files can be copied from third_party/heimdal-new/"
+ echo "Also run make test!"
+ }
+ echo ""
+ echo "Then do a 'git add third_party/heimdal' and a 'git commit --amend'"
+ echo "and write a useful commit message..."
+ echo "Then commit all needed changes outside of third_party/heimdal"
+ echo "maybe splitted into multiple commits."
+ echo ""
+ echo "!!!!!!!!!"
+ echo ""
+ echo "if you this shell exit with 0, then $new_samba_branch will be created"
+ echo ""
+ echo "PS1=\"'import-heimdal shell'>\"" > ../.bashrc.samba_create
+ bash --rcfile ../.bashrc.samba_create || bailout $?
+ git branch $new_samba_branch $tmp_samba_branch || bailout $?
+ echo "branch $new_samba_branch created"
+ popd
+ }
+
+ return 0;
+}
+
+heimdal_check
+samba_init
+
+samba_fetch
+samba_create