mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
51569b3152
NOTE: THIS COMMIT WON'T COMPILE/WORK ON ITS OWN! BUG: https://bugzilla.samba.org/show_bug.cgi?id=14995 Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
152 lines
3.8 KiB
Bash
Executable File
152 lines
3.8 KiB
Bash
Executable File
#!/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
|