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.sh165
1 files changed, 91 insertions, 74 deletions
diff --git a/debian/_buildscripts/local/build_module.sh b/debian/_buildscripts/local/build_module.sh
index 94fdab76a..515303ebe 100755
--- a/debian/_buildscripts/local/build_module.sh
+++ b/debian/_buildscripts/local/build_module.sh
@@ -69,54 +69,56 @@ function search_module()
MODULE_FOUND="n"
- # Search in 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"
+ # 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
- MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME"
+ # 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
- 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"
- else
- # Search in metapackages folder
- 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 module found
- MODULE_FOUND="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"
- fi
- fi
- fi
- fi
+ fi
+ export MOD_BUILD_PATH
MOD_BUILD_PKGING_PATH="$MOD_BUILD_PATH/debian"
IFS=$OLDIFS
}
@@ -130,6 +132,7 @@ bool_BUILD_FROM_GIT="n"
bool_BUILD_FROM_PATH="n"
bool_BUILD_LOCALLY="n"
bool_EXTRADEP_MOD="n"
+bool_METAPACKAGE_MOD="n"
bool_SHOW_BUILD_LOGS="n"
bool_LOG_RESULT="n"
bool_SHELL_HOOK="n"
@@ -309,6 +312,31 @@ if [ -d "$MOD_BUILD_PATH" ]; then
$SUDO_CMD rm *.deb *.dsc *.changes *.tar.bz2 *.tar.gz *.tar.xz *.log *.buildinfo &>/dev/null
fi
+# calculate package version, if needed
+if [ "$bool_EXTRADEP_MOD" != "y" ]; then
+ cd $MOD_GIT_PATH
+ branch=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"`
+ if [[ -z "$branch" ]]; then
+ branch=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
+ fi
+ target_tag=`git tag | grep -F "$TDE_RELEASE" | head -n1`
+ tag=`git tag | \
+ sed "s|^\([^0-9]\)|\1.|" | sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr -k 5,5nr | sed "s|^\([^0-9]\)\.|\1|" | \
+ while read t; do \
+ git branch --contains $t | cut -c 3- | grep -x "$branch" >/dev/null && \
+ echo "$t..HEAD" && break; done`
+ count=`git log $tag --pretty=oneline | wc -l`
+ pkgver=$TDE_RELEASE
+ 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`
+fi
+
# copy main repo source files, if needed
if [ "$bool_COPY_MOD_SRC" = "y" ]; then
bool_COPY_PKGING_FILES="y"
@@ -319,12 +347,7 @@ if [ "$bool_COPY_MOD_SRC" = "y" ]; then
# Add GIT information
echo "# TDE SCM module information" > "$MOD_BUILD_PATH/.tdescminfo"
echo "Name: $MOD_NAME" >> "$MOD_BUILD_PATH/.tdescminfo"
- cd "$MOD_GIT_PATH"
- 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`
+ echo "Version: R$pkgver" >> "$MOD_BUILD_PATH/.tdescminfo"
echo "Revision: $MOD_BRANCH-$COMMIT_HASH" >> "$MOD_BUILD_PATH/.tdescminfo"
git log -1 --pretty=format:"DateTime: %cd%n" --date=format:"%m/%d/%Y %H:%M" >> "$MOD_BUILD_PATH/.tdescminfo"
else
@@ -338,7 +361,7 @@ if [ "$bool_COPY_MOD_SRC" = "y" ]; then
QUILT_PATCHES="debian/patches" quilt push -a >/dev/null
# Make sure patches are not reapplied in future local builds. This could stop pdebuild from working.
if [ -f "$MOD_BUILD_PATH/debian/patches/series" ]; then
- cp /dev/null "$MOD_BUILD_PATH/debian/patches/series"
+ rm "$MOD_BUILD_PATH/debian/patches/series"
fi
else
echo "There must be one and only one module folder in \"$MOD_GIT_PATH\""
@@ -352,31 +375,25 @@ if [ "$bool_EXTRADEP_MOD" != "y" -a "$bool_COPY_PKGING_FILES" = "y" ]; then
if [ -d "$MOD_BUILD_PKGING_PATH" ]; then
$SUDO_CMD rm -R $MOD_BUILD_PKGING_PATH
fi
- cp -R "$MOD_GIT_PKGING_PATH" "$MOD_BUILD_PKGING_PATH"
+ if [ "$bool_METAPACKAGE_MOD" = "y" ]; then
+ cp -R "$MOD_GIT_PKGING_PATH/.." "$MOD_BUILD_PATH"
+ 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
# Default package name
- # Calculate package version
- cd $MOD_GIT_PATH
- branch=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"`
- if [[ -z "$branch" ]]; then
- branch=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
- fi
- target_tag=`git tag | grep -F "$TDE_RELEASE" | head -n1`
- tag=`git tag | \
- sed "s|^\([^0-9]\)|\1.|" | sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr -k 5,5nr | sed "s|^\([^0-9]\)\.|\1|" | \
- while read t; do \
- git branch --contains $t | cut -c 3- | grep -x "$branch" >/dev/null && \
- echo "$t..HEAD" && break; done`
- count=`git log $tag --pretty=oneline | wc -l`
- package=$(basename $PWD)-trinity-$TDE_RELEASE
- if [[ "$count" -gt 0 ]] || [[ -z "$target_tag" ]]; then
- package=$package~pre$count+$(git rev-parse HEAD | cut -c 1-8)
- fi
+ package=$(basename $PWD)-trinity-$pkgver
REL=4:$TDE_RELEASE${package#*$TDE_RELEASE}
REL=${REL%+*}
REL=${REL/4:14.0.0/4:14.0.0-s}
- REL=${REL/4:14.0.0-s~pre/4:14.0.0-s~}
- REL=${REL/.0~pre/.0~s}
# Get package name and packaging release
PKG_NAME=$(head -n1 $MOD_BUILD_PKGING_PATH/changelog)
PKG_NAME=${PKG_NAME%% *}
@@ -488,7 +505,7 @@ if [ "$bool_BUILD_LOCALLY" = "y" ]; then
fi
else
## Build module in a clean chroot environment using pbuilder
- $SUDO_CMD . "$SCRIPT_DIR/internals/_pbuilder.sh"
+ $SUDO_CMD "$SCRIPT_DIR/internals/_pbuilder.sh"
build_retval=$?
if [ "`whoami`" != "root" ]; then
cd "$MOD_DEB_PATH"