summaryrefslogtreecommitdiffstats
path: root/debian/_buildscripts/local/build_module.sh
diff options
context:
space:
mode:
Diffstat (limited to 'debian/_buildscripts/local/build_module.sh')
-rwxr-xr-xdebian/_buildscripts/local/build_module.sh206
1 files changed, 111 insertions, 95 deletions
diff --git a/debian/_buildscripts/local/build_module.sh b/debian/_buildscripts/local/build_module.sh
index 515303ebe..09c80f2bf 100755
--- a/debian/_buildscripts/local/build_module.sh
+++ b/debian/_buildscripts/local/build_module.sh
@@ -69,56 +69,62 @@ function search_module()
MODULE_FOUND="n"
- # Check if it is a metapackage
- LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^(metapackages/)?||"`
- LOC_MATCH=`ls "$REPO_TDE_MAIN/metapackages" | grep "^$LOC_BASENAME\$"`
- if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then
- # Unique metapackage found
- MODULE_FOUND="y"
+ # Check if it is a metapackage
+ LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^(metapackages/)?||"`
+ LOC_MATCH=`ls "$REPO_TDE_MAIN/metapackages" | grep "^$LOC_BASENAME\$"`
+ if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then
+ # Unique metapackage found
+ MODULE_FOUND="y"
bool_METAPACKAGE_MOD="y"
- MOD_NAME="metapackages/$LOC_MATCH"
- MOD_GIT_PATH="$REPO_TDE_MAIN/metapackages/$LOC_BASENAME"
- MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian"
- MOD_BUILD_PATH="$TDE_BUILD_DIR/metapackages/$LOC_BASENAME"
- else
- # Search for unique GIT repository
- LOC_MATCH=`sed -n "s|^\[submodule \"main/\([^\"]*\)\"\]$|\1|p" <"$REPO_TDE/.gitmodules" | grep "$LOC_MOD_NAME$"`
- if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then
- # Unique module
- MODULE_FOUND="y"
- MOD_NAME=$LOC_MATCH
- if [ "${bool_BUILD_FROM_PATH}" = "y" ]; then
- MOD_GIT_PATH="$MOD_PATH"
- else
- MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME"
- fi
- MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian"
- MOD_BUILD_PATH="$TDE_BUILD_DIR/$MOD_NAME"
- else
- # Search for a unique folder with the same name
- if [ -d "${REPO_TDE_MAIN}/$LOC_MOD_NAME" ]; then
- # Folder found
- MODULE_FOUND="y"
- MOD_NAME=$LOC_MOD_NAME
- MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME"
- MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian"
- MOD_BUILD_PATH="$TDE_BUILD_DIR/$MOD_NAME"
- else
- # Search in extra dependency folder
- LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^${CFG_EXTRA_DEPS_DIR}/(debian/)?||"`
- LOC_MATCH=`ls "$REPO_EXTRA_DEPENDENCIES/debian" | grep "^$LOC_BASENAME\$"`
- if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then
- # Unique module found
- MODULE_FOUND="y"
- bool_EXTRADEP_MOD="y"
- MOD_NAME="$CFG_EXTRA_DEPS_DIR/$LOC_MATCH"
- MOD_GIT_PATH="$REPO_EXTRA_DEPENDENCIES/debian/$LOC_BASENAME"
- MOD_BUILD_PATH="$TDE_BUILD_DIR/$CFG_EXTRA_DEPS_DIR/$LOC_BASENAME"
- fi
- fi
- fi
- fi
- export MOD_BUILD_PATH
+ MOD_NAME="metapackages/$LOC_MATCH"
+ MOD_GIT_PATH="$REPO_TDE_MAIN/metapackages/$LOC_BASENAME"
+ MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian"
+ MOD_BUILD_PATH="$TDE_BUILD_DIR/metapackages/$LOC_BASENAME"
+ else
+ # Search for unique GIT repository
+ if [[ "$str" == */* ]]; then
+ # Module name contains path too
+ LOC_MATCH=`sed -n "s|^\[submodule \"main/\([^\"]*\)\"\]$|\1|p" <"$REPO_TDE/.gitmodules" | grep "$LOC_MOD_NAME$"`
+ else
+ # Module name only, no path. Search for exact name match
+ LOC_MATCH=`sed -n "s|^\[submodule \"main/\([^\"]*\)\"\]$|\1|p" <"$REPO_TDE/.gitmodules" | grep "/$LOC_MOD_NAME$"`
+ fi
+ if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then
+ # Unique module
+ MODULE_FOUND="y"
+ MOD_NAME=$LOC_MATCH
+ if [ "${bool_BUILD_FROM_PATH}" = "y" ]; then
+ MOD_GIT_PATH="$MOD_PATH"
+ else
+ MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME"
+ fi
+ MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian"
+ MOD_BUILD_PATH="$TDE_BUILD_DIR/$MOD_NAME"
+ else
+ # Search for a unique folder with the same name
+ if [ -d "${REPO_TDE_MAIN}/$LOC_MOD_NAME" ]; then
+ # Folder found
+ MODULE_FOUND="y"
+ MOD_NAME=$LOC_MOD_NAME
+ MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME"
+ MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian"
+ MOD_BUILD_PATH="$TDE_BUILD_DIR/$MOD_NAME"
+ else
+ # Search in extra dependency folder
+ LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^${CFG_EXTRA_DEPS_DIR}/(debian/)?||"`
+ LOC_MATCH=`ls "$REPO_EXTRA_DEPENDENCIES/debian" | grep "^$LOC_BASENAME\$"`
+ if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then
+ # Unique module found
+ MODULE_FOUND="y"
+ bool_EXTRADEP_MOD="y"
+ MOD_NAME="$CFG_EXTRA_DEPS_DIR/$LOC_MATCH"
+ MOD_GIT_PATH="$REPO_EXTRA_DEPENDENCIES/debian/$LOC_BASENAME"
+ MOD_BUILD_PATH="$TDE_BUILD_DIR/$CFG_EXTRA_DEPS_DIR/$LOC_BASENAME"
+ fi
+ fi
+ fi
+ fi
+ export MOD_BUILD_PATH
MOD_BUILD_PKGING_PATH="$MOD_BUILD_PATH/debian"
IFS=$OLDIFS
}
@@ -153,15 +159,15 @@ while [ $# -gt 0 ]; do
-lr) # Log build Result to file
bool_LOG_RESULT="y"
;;
- -p) # build from specific Path
+ -p) # build from specific Path
if [ -z "$MOD_NAME" ]; then
- shift
+ shift
MOD_NAME="$1"
- bool_BUILD_FROM_PATH="y"
+ bool_BUILD_FROM_PATH="y"
else
bool_INVALID_PARAMETERS="y"
fi
- ;;
+ ;;
-po) # Prepare build folder Only but do not build
bool_PREPARE_ONLY="y"
;;
@@ -192,29 +198,29 @@ fi
# If building from a given path, look up the module name
if [ "${bool_BUILD_FROM_PATH}" = "y" ]; then
- if [ -d "${MOD_NAME}" ]; then
- cd "${MOD_NAME}"
- MOD_PATH=`pwd`
- if [ "${USE_GIT_WORKTREES}" = "y" ]; then
- MOD_NAME=`git rev-parse --git-dir 2>/dev/null | sed "s|.*/\([^\/]\+\)\.git.*|\1|"`
- else
- MOD_NAME=`basename "${MOD_PATH}"`
- fi
- if [ "${MOD_NAME}" != "" -a "${MOD_NAME}" != "tde" -a "${MOD_NAME}" != ".git" ]; then
- # Valid git module
- if [[ "${MOD_PATH}" =~ ${TDE_BUILD_DIR} ]]; then
- # Module from build folder
- bool_BUILD_FROM_GIT="n"
- else
- # Module from git repo
- bool_BUILD_FROM_GIT="y"
- fi
- else
- MOD_NAME=""
- fi
- else
- MOD_NAME=""
- fi
+ if [ -d "${MOD_NAME}" ]; then
+ cd "${MOD_NAME}"
+ MOD_PATH=`pwd`
+ if [ "${USE_GIT_WORKTREES}" = "y" ]; then
+ MOD_NAME=`git rev-parse --git-dir 2>/dev/null | sed "s|.*/\([^\/]\+\)\.git.*|\1|"`
+ else
+ MOD_NAME=`basename "${MOD_PATH}"`
+ fi
+ if [ "${MOD_NAME}" != "" -a "${MOD_NAME}" != "tde" -a "${MOD_NAME}" != ".git" ]; then
+ # Valid git module
+ if [[ "${MOD_PATH}" =~ ${TDE_BUILD_DIR} ]]; then
+ # Module from build folder
+ bool_BUILD_FROM_GIT="n"
+ else
+ # Module from git repo
+ bool_BUILD_FROM_GIT="y"
+ fi
+ else
+ MOD_NAME=""
+ fi
+ else
+ MOD_NAME=""
+ fi
fi
echo -e "${CLightCyan}#### Processing module \"$MOD_NAME\" ####${CNone}"
@@ -270,14 +276,14 @@ done
#----------------------------
# Check if module is an extra dependency
if [[ $MOD_NAME =~ ^$CFG_EXTRA_DEPS_DIR/ ]]; then
- bool_EXTRADEP_MOD="y"
+ bool_EXTRADEP_MOD="y"
fi
# Make sure the module exists
search_module $MOD_NAME
if [ "$MODULE_FOUND" != "y" ]; then
- echo "Module \"$MOD_NAME\" not found"
- do_exit 5
+ echo "Module \"$MOD_NAME\" not found"
+ do_exit 5
fi
if [ "$bool_BUILD_FROM_GIT" = "y" ]; then
@@ -330,11 +336,11 @@ if [ "$bool_EXTRADEP_MOD" != "y" ]; then
if [[ "$count" -gt 0 ]] || [[ -z "$target_tag" ]]; then
pkgver=$pkgver~pre$count+$(git rev-parse HEAD | cut -c 1-8)
fi
- MOD_BRANCH=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"`
- if [[ -z "$MOD_BRANCH" ]]; then
- MOD_BRANCH=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
- fi
- COMMIT_HASH=`git rev-parse HEAD`
+ MOD_BRANCH=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"`
+ if [[ -z "$MOD_BRANCH" ]]; then
+ MOD_BRANCH=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
+ fi
+ COMMIT_HASH=`git rev-parse HEAD`
fi
# copy main repo source files, if needed
@@ -377,17 +383,17 @@ if [ "$bool_EXTRADEP_MOD" != "y" -a "$bool_COPY_PKGING_FILES" = "y" ]; then
fi
if [ "$bool_METAPACKAGE_MOD" = "y" ]; then
cp -R "$MOD_GIT_PKGING_PATH/.." "$MOD_BUILD_PATH"
- else
+ else
cp -R "$MOD_GIT_PKGING_PATH" "$MOD_BUILD_PKGING_PATH"
- fi
- if [[ -s "$MOD_BUILD_PKGING_PATH/patches/series" ]]; then
- cd "$MOD_BUILD_PATH"
- quilt push -a
- # Make sure patches are not reapplied in future local builds. This could stop pdebuild from working.
- if [ -f "$MOD_BUILD_PKGING_PATH/patches/series" ]; then
- rm "$MOD_BUILD_PKGING_PATH/patches/series"
- fi
- fi
+ fi
+ if [[ -s "$MOD_BUILD_PKGING_PATH/patches/series" ]]; then
+ cd "$MOD_BUILD_PATH"
+ QUILT_PATCHES="debian/patches" quilt push -a
+ # Make sure patches are not reapplied in future local builds. This could stop pdebuild from working.
+ if [ -f "$MOD_BUILD_PKGING_PATH/patches/series" ]; then
+ rm "$MOD_BUILD_PKGING_PATH/patches/series"
+ fi
+ fi
# Default package name
package=$(basename $PWD)-trinity-$pkgver
@@ -412,8 +418,18 @@ if [ "$bool_EXTRADEP_MOD" != "y" -a "$bool_COPY_PKGING_FILES" = "y" ]; then
ADD_REL=0
# Update changelog
+ cd $MOD_GIT_PATH
REPO_DATE=`git log -1 --pretty=format:"%cd%n" --date=rfc`
- GITUSER="$(git config --get user.name) <$(git config --get user.email)>"
+ GITUSERNAME="$(git config --get user.name)"
+ GITUSEREMAIL="$(git config --get user.email)"
+ if [ -z "$GITUSERNAME" ]; then
+ GITUSERNAME="anonymous"
+ fi
+ if [ -z "$GITUSEREMAIL" ]; then
+ GITUSEREMAIL="anonymous@anonymous.org"
+ fi
+ GITUSER="$GITUSERNAME <$GITUSEREMAIL>"
+ cd $MOD_BUILD_PATH
echo "$PKG_NAME ($REL-0$DISTRO$DISTRO_VERSION.$ADD_REL+$PKG_REL) $DISTRO_NAME; urgency=low" > "$MOD_BUILD_PKGING_PATH/changelog"
echo -e "\n * Automated git build\n\n -- $GITUSER $REPO_DATE\n" >> "$MOD_BUILD_PKGING_PATH/changelog"
cat "$REPO_TDE_PACKAGING/$MOD_NAME/debian/changelog" >> "$MOD_BUILD_PKGING_PATH/changelog"