diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2018-07-11 23:38:32 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2018-07-11 23:38:32 +0900 |
commit | eeaccbeddbaa2974406eb20cbb7beca3fb4a59f0 (patch) | |
tree | 510e0eea682ebf69263b187287873956394b5e7b /debian/_buildscripts/local/internals/_pbuilder.sh | |
parent | 02dbbffa606c3c52833bbaf3dc5c5a050f295dbf (diff) | |
download | tde-packaging-eeaccbeddbaa2974406eb20cbb7beca3fb4a59f0.tar.gz tde-packaging-eeaccbeddbaa2974406eb20cbb7beca3fb4a59f0.zip |
DEB build scripts: several enhancements as follow:
- major rework of update_repositories.sh script, which now supports
multiple branches and provide better feedback to user.
- added support for pre-built extra dependency packages. A user can now
use Slavek Banko's binary packages instead of building the extra
dependency locally. This removes a quite tedious process during the
setup of the building environment.
- bug fixes and more user friendly folder names.
- improved README to cover the complete process until TDE installation.
Special thanks to Gregory Guy <zadig83@laposte.net> for testing and
feedback done so far.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'debian/_buildscripts/local/internals/_pbuilder.sh')
-rwxr-xr-x | debian/_buildscripts/local/internals/_pbuilder.sh | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/debian/_buildscripts/local/internals/_pbuilder.sh b/debian/_buildscripts/local/internals/_pbuilder.sh new file mode 100755 index 000000000..931fba56f --- /dev/null +++ b/debian/_buildscripts/local/internals/_pbuilder.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +function run_pdebuild() +{ + # pbuilder absolute paths + PBUILDER_HOOK_DIR="/var/cache/pbuilder/hooks" + PBUILDER_SHELL_HOOK_TEMPLATE="$SCRIPT_DIR/internals/C10shell" + PBUILDER_SHELL_HOOK="$PBUILDER_HOOK_DIR/C10shell" + PBUILDER_DEPS_HOOK="$PBUILDER_HOOK_DIR/D05deps" + + # Local option variables + # - internal pbuilder + OPT_INTERNAL_PBUILDER="" + if [ "$bool_INTERNAL_PBUILDER" = "y" ]; then + OPT_INTERNAL_PBUILDER="--use-pdebuild-internal" + fi + # Sign packages optino + OPT_SIGN_PKG_PBUILDER="" + if [ ! -z "$GPG_SIGN_KEYID" ]; then + OPT_SIGN_PKG_LOCAL="-k$GPG_SIGN_KEYID" + OPT_SIGN_PKG_PBUILDER="--auto-debsign --debsign-k $GPG_SIGN_KEYID" + fi + + ## Build module in a clean chroot environment using pbuilder + # Install/remove shell hook + if [ ! -d "$PBUILDER_HOOK_DIR" ]; then + mkdir -p "$PBUILDER_HOOK_DIR" + fi + if [ "$bool_SHELL_HOOK" = "y" ]; then + cp "$PBUILDER_SHELL_HOOK_TEMPLATE" "$PBUILDER_SHELL_HOOK" + chmod a+x "$PBUILDER_SHELL_HOOK" + else + if [ -x "$PBUILDER_SHELL_HOOK" ]; then + rm "$PBUILDER_SHELL_HOOK" + fi + fi + # Build using pbuilder + echo -e "${CYellow}> Building using pbuilder${CNone}" + # Create pbuilder hook to make sure all available packages are scanned + # Store any existing D05 hook as a temporary file, this will be reinstated at the end + cat <<END_D05_01 > "$PBUILDER_DEPS_HOOK" +#!/bin/sh +(cd "$TDE_DEBS_DIR"; apt-ftparchive packages . > Packages) +echo "deb [trusted=yes] file:$TDE_DEBS_DIR ./" >> /etc/apt/sources.list +END_D05_01 + if [[ "$USE_PREBUILD_EXTRA_DEPS" = "y" ]]; then + # Get building branch from .tdescmrevision file + if [[ -f "$MOD_BUILD_PATH/.tdescmrevision" ]]; then + BUILD_BRANCH=`sed -r "s/([^-]+)-.*/\1/" "$MOD_BUILD_PATH/.tdescmrevision"` + while read l_branch l_repo l_component; do + if [ "$l_branch" = "$BUILD_BRANCH" ]; then + cat <<END_D05_02 >> "$PBUILDER_DEPS_HOOK" +echo "deb [trusted=yes] $l_repo $DISTRO_NAME $l_component" >> /etc/apt/sources.list +END_D05_02 + break + fi + done <<< $(cat "$SCRIPT_DIR/internals/extra_deps.txt" | grep -E "^[[:space:]]*[^#[:space:]]+[[:space:]]+[^[:space:]]+.*$") + fi + fi + cat <<END_D05_03 >> "$PBUILDER_DEPS_HOOK" +apt-get update +END_D05_03 + chmod a+x "$PBUILDER_DEPS_HOOK" + # Build + eval pdebuild $OPT_INTERNAL_PBUILDER $OPT_SIGN_PKG_PBUILDER \ + --architecture $ARCHITECTURE \ + --buildresult \"$MOD_DEB_PATH\" \ + --pbuilderroot \"sudo DIST=$DISTRO_NAME ARCH=$ARCHITECTURE\" \ + --logfile \"$BUILDING_LOG_FILE\" \ + -- \ + --bindmounts \"$TDE_DEBS_DIR\" \ + --hookdir \"$PBUILDER_HOOK_DIR\" \ + $OPT_SHOW_LOGS\"$BUILDING_LOG_FILE\" + PBUILDER_RETVAL=$? + # Remove shell hook if it was installed before the build + if [ -x "$PBUILDER_SHELL_HOOK" ]; then + rm "$PBUILDER_SHELL_HOOK" + fi + # Remove deps hook + if [ -x "$PBUILDER_DEPS_HOOK" ]; then + rm "$PBUILDER_DEPS_HOOK" + fi + # Return pdebuild return value to calling function + return $PBUILDER_RETVAL +} + + +#---------------------------- +# The actual code is inside a function to allow the pdebuild return value to be +# correctly passed back to the calling script in all cases (root and non root users) +run_pdebuild
\ No newline at end of file |