summaryrefslogtreecommitdiffstats
path: root/debian/_buildscripts/local/internals
diff options
context:
space:
mode:
Diffstat (limited to 'debian/_buildscripts/local/internals')
-rwxr-xr-xdebian/_buildscripts/local/internals/C10shell18
-rwxr-xr-xdebian/_buildscripts/local/internals/_build_common.sh248
-rwxr-xr-xdebian/_buildscripts/local/internals/_build_set_common.sh75
-rw-r--r--debian/_buildscripts/local/internals/_config_template.sh34
-rwxr-xr-xdebian/_buildscripts/local/internals/_pbuilder.sh91
-rw-r--r--debian/_buildscripts/local/internals/distro_list.txt31
-rw-r--r--debian/_buildscripts/local/internals/extra_deps.txt7
7 files changed, 504 insertions, 0 deletions
diff --git a/debian/_buildscripts/local/internals/C10shell b/debian/_buildscripts/local/internals/C10shell
new file mode 100755
index 000000000..7c6a8761b
--- /dev/null
+++ b/debian/_buildscripts/local/internals/C10shell
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# Color table
+CPurple='\e[0;35m'
+CWhite='\e[1;37m'
+CNone='\e[0m'
+
+# Invoke shell if build fails.
+apt-get install -y --force-yes vim less bash mc
+cd /tmp/buildd/*/debian/..
+echo "${CPurple}---------------------------------------------------------${CNone}" >/dev/tty
+echo "${CPurple} !!! Build FAILED !!! ${CNone}" >/dev/tty
+echo "${CPurple} You are now inside a shell in the building environment. ${CNone}" >/dev/tty
+echo "${CPurple} ${CWhite}mc, vim, less${CPurple} are available for your convenience. ${CNone}" >/dev/tty
+echo "${CPurple} Type ${CWhite}exit${CPurple} to leave the shell when you are done. ${CNone}" >/dev/tty
+echo "${CPurple}---------------------------------------------------------${CNone}" >/dev/tty
+/bin/bash </dev/tty >/dev/tty 2>/dev/tty
+
diff --git a/debian/_buildscripts/local/internals/_build_common.sh b/debian/_buildscripts/local/internals/_build_common.sh
new file mode 100755
index 000000000..5e4ba67fe
--- /dev/null
+++ b/debian/_buildscripts/local/internals/_build_common.sh
@@ -0,0 +1,248 @@
+#!/bin/bash
+
+set -a
+
+#----------------------------
+# Color table
+# Black 0;30 Dark Gray 1;30
+# Blue 0;34 Light Blue 1;34
+# Green 0;32 Light Green 1;32
+# Cyan 0;36 Light Cyan 1;36
+# Red 0;31 Light Red 1;31
+# Purple 0;35 Light Purple 1;35
+# Brown 0;33 Yellow 1;33
+# Light Gray 0;37 White 1;37
+# No Color 0
+#----------------------------
+CBlack='\e[0;30m'
+CDarkGray='\e[1;30m'
+CBlue='\e[0;34m'
+CLightBlue='\e[1;34m'
+CGreen='\e[0;32m'
+CLightGreen='\e[1;32m'
+CCyan='\e[0;36m'
+CLightCyan='\e[1;36m'
+CRed='\e[0;31m'
+CLightRed='\e[1;31m'
+CPurple='\e[0;35m'
+CLightPurple='\e[1;35m'
+CBrown='\e[0;33m'
+CYellow='\e[1;33m'
+CGray='\e[0;37m'
+CWhite='\e[1;37m'
+CNone='\e[0m'
+
+set +a
+
+#----------------------------
+# Echo a colored string to tty and tee-append it to a file without color codes
+# Parameters:
+# $1 - string to echo
+# $2 - log filename
+# $3 - if "y" create a new file.
+function echo_and_tee()
+{
+ if [ "$3" = "y" ]; then
+ echo -e "$1" | tee /dev/tty | sed -r "s|\x1b\[[0-9]+(;[0-9]+)?m||g" >"$2"
+ else
+ echo -e "$1" | tee /dev/tty | sed -r "s|\x1b\[[0-9]+(;[0-9]+)?m||g" >>"$2"
+ fi
+}
+
+#----------------------------
+function _set_path_varables()
+{
+ # Set useful path variables
+ set -a
+ REPO_DIR="$TDE_DIR/$CFG_GIT_DIR"
+ REPO_TDE="$TDE_DIR/$CFG_GIT_DIR/tde"
+ REPO_TDE_MAIN="$REPO_TDE/main"
+ REPO_TDE_PACKAGING="$TDE_DIR/$CFG_GIT_DIR/tde-packaging/$DISTRO/$DISTRO_NAME"
+ REPO_EXTRA_DEPENDENCIES="$TDE_DIR/$CFG_GIT_DIR/$CFG_EXTRA_DEPS_DIR"
+
+ BUILD_DIR="$TDE_DIR/$CFG_BUILD_DIR"
+ TDE_BUILD_DIR="$TDE_DIR/$CFG_BUILD_DIR/build"
+ TDE_DEBS_DIR="$TDE_DIR/$CFG_BUILD_DIR/debs"
+
+ HOOK_DIR="$TDE_DIR/$CFG_GIT_DIR/$CFG_HOOKS_DIR"
+
+ SCRIPT_LOG_DIR="$TDE_DIR/$CFG_SCRIPT_LOG_DIR"
+ LOG_BUILD_RESULT_FILENAME="$SCRIPT_LOG_DIR/build_result.log" # Common build logfile
+ LOG_UPDATE_REPO_FILENAME="$SCRIPT_LOG_DIR/update_repo.log" # Update repository logfile
+ set +a
+}
+
+#----------------------------
+function init_common()
+{
+ # Check script folder
+ export SCRIPT_DIR=$(dirname $(readlink -f "$0"))
+
+ # Prevent the script to be run from TDE packaging repo
+ REPO_URL=$(git config --get remote.origin.url 2>/dev/null)
+ if [ ! -z "$REPO_URL" ] && [ -z "${REPO_URL##*tde-packaging}" ]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo "This script cannot be run from the TDE packaging repository."
+ echo "Please follow the instructions provided, then rerun this script."
+ exit 1
+ fi
+
+ # Read config settings
+ CFG_FILE=$SCRIPT_DIR/_config.sh
+ if [ -f "$CFG_FILE" ]; then
+ . "$CFG_FILE"
+ _set_path_varables
+ else
+ echo -e "${CLightRed} --- NOTE ---${CNone}"
+ echo -e "Creating TDE build configuration file from template as ${CLightPurple}$CFG_FILE${CNone}."
+ echo "Please check and modify as required, then rerun this script."
+ cp "$SCRIPT_DIR/internals/_config_template.sh" "$CFG_FILE"
+ exit 2
+ fi
+
+ # Make sure we have selected a supported distribution
+ DISTS_FILE="$SCRIPT_DIR/internals/distro_list.txt"
+ if [ ! -f "$DISTS_FILE" ]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo "Could not find the list of supported distributions."
+ echo -e "Please check the file ${CLightPurple}$DISTS_FILE${CNone} exists, then rerun this script."
+ exit 3
+ fi
+ # -- Need to use a "here string" otherwise if the DISTRO_FOUND value is modified
+ # -- inside the while loop, this would not remember after the loop.
+ DISTRO_FOUND="n"
+ while read l_distro l_version l_name l_rel_suffix; do
+ if [ "$l_distro" = "$DISTRO" -a "$l_name" = "$DISTRO_NAME" ]; then
+ DISTRO_FOUND="y"
+ export DISTRO_VERSION="$l_version"
+ export REL_SUFFIX="$l_rel_suffix"
+ break
+ fi
+ done <<< $(cat $DISTS_FILE | grep -E "^(\s*[^#\s]+\s+[^\s]+.*)$")
+ if [ "$DISTRO_FOUND" != "y" ]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo -e "The specified distribution (${CYellow}$DISTRO $DISTRO_NAME${CNone}) is not supported."
+ echo -e "Something is wrong with your configuration (${CLightPurple}$CFG_FILE${CNone})"
+ echo -e "or with the list of supported distributions (${CLightPurple}$DISTS_FILE${CNone})."
+ echo -e "Please check the ${CLightCyan}DISTRO${CNone} and ${CLightCyan}DISTRO_NAME${CNone} variables, then rerun this script."
+ exit 4
+ fi
+
+ # TDE root folder must exist
+ if [ ! -d "$TDE_DIR" ]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo "A valid TDE root folder could not be located. Something is wrong with your configuration"
+ echo -e "in the config file ${CLightPurple}$CFG_FILE${CNone}"
+ echo -e "Please check and modify the ${CLightCyan}TDE_DIR${CNone} variable as required, then rerun this script."
+ exit 5
+ fi
+
+ # Search for main TDE repo
+ CURR_DIR=""
+ [ -d "$REPO_TDE_MAIN" ] && cd "$REPO_TDE_MAIN" &>/dev/null && \
+ CURR_DIR=$(git rev-parse --show-toplevel 2>/dev/null)
+ if [ -z "$CURR_DIR" ]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo "The main TDE repo could not be located. Something is wrong with your configuration"
+ echo -e "in the config file ${CLightPurple}$CFG_FILE${CNone}"
+ echo -e "Please check and modify the ${CLightCyan}TDE_DIR${CNone} variable as required, then rerun this script."
+ exit 6
+ fi
+
+ # Search for TDE packaging repo
+ CURR_DIR=""
+ [ -d "$REPO_TDE_PACKAGING" ] && cd "$REPO_TDE_PACKAGING" &>/dev/null && \
+ CURR_DIR=$(git rev-parse --show-toplevel 2>/dev/null)
+ if [ -z "$CURR_DIR" ]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo "The TDE packaging repo could not be located. Something is wrong with your configuration"
+ echo -e "in the config file ${CLightPurple}$CFG_FILE${CNone}"
+ echo -e "Please check and modify the ${CLightCyan}TDE_DIR${CNone} variable as required, then rerun this script."
+ exit 7
+ fi
+
+ # Check branch configuration
+ # - branch existance
+ cd "$REPO_TDE"
+ BRANCHES=()
+ REMOTE_BRANCHES=(`git branch --remote | grep -v "HEAD" | sed "s|origin/||g"`)
+ for br in $UPDATE_BRANCHES; do
+ branch=`echo "$br" | sed -e "s|^[[:space:]]*||" -e "s|[[:space:]]*$||"`
+ found=0
+ for rem_br in "${REMOTE_BRANCHES[@]}"; do
+ if [[ "$rem_br" == "$branch" ]]; then
+ found=1
+ break
+ fi
+ done
+ if [[ found -eq 1 ]]; then
+ BRANCHES+=($branch)
+ else
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo -e "Invalid branch specified (${CYellow}$branch${CNone}). Something is wrong with your configuration"
+ echo -e "in the config file ${CLightPurple}$CFG_FILE${CNone}"
+ echo -e "Please check and modify the ${CLightCyan}UPDATE_BRANCHES${CNone} variable as required, then rerun this script."
+ exit 8
+ fi
+ done
+ if [ ${#BRANCHES[@]} -eq 0 ]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo -e "No valid branch was specified. Something is wrong with your configuration"
+ echo -e "in the config file ${CLightPurple}$CFG_FILE${CNone}"
+ echo -e "Please check and modify the ${CLightCyan}UPDATE_BRANCHES${CNone} variable as required, then rerun this script."
+ exit 9
+ fi
+ export BRANCHES
+ # - default branch
+ DEFAULT_REPO_BRANCH=${OVERRIDE_DEFAULT_REPO_BRANCH:-"$DEFAULT_REPO_BRANCH"}
+ found=0
+ for branch in "${BRANCHES[@]}"; do
+ if [[ "$DEFAULT_REPO_BRANCH" == "$branch" ]]; then
+ found=1
+ break
+ fi
+ done
+ if [[ found -ne 1 ]]; then
+ echo -e "${CLightRed} --- ERROR ---${CNone}"
+ echo -e "Invalid default repo branch specified (${CYellow}$DEFAULT_REPO_BRANCH${CNone}). Something is wrong with your configuration"
+ echo -e "in the config file ${CLightPurple}$CFG_FILE${CNone}"
+ echo -e "Please check and modify the ${CLightCyan}DEFAULT_REPO_BRANCH${CNone} variable as required, then rerun this script."
+ exit 10
+ fi
+
+ cd "$SCRIPT_DIR"
+}
+
+
+#----------------------------
+# Save execution start time
+# Parameters:
+# $1 - timer number
+function exec_time_start()
+{
+ _ET_start_var="_ET_start_$1"
+ eval "$_ET_start_var=`date +%s.%N`"
+}
+
+
+#----------------------------
+# Save execution stop time and set $2 to the execution time
+# in the format: dd/hh:mm:ss.mmm
+# Parameters:
+# $1 - timer number
+# $2 - result variable name
+function exec_time_stop()
+{
+ _ET_start_var="_ET_start_$1"
+ _ET_stop_var="_ET_stop_$1"
+ eval "$_ET_stop_var=`date +%s.%N`"
+ _ET_diff=`echo "${!_ET_stop_var} - ${!_ET_start_var}" | bc`
+ _ET_days=`echo "$_ET_diff/86400" | bc`
+ _ET_diff_day=`echo "$_ET_diff-86400*$_ET_days" | bc`
+ _ET_hours=`echo "$_ET_diff_day/3600" | bc`
+ _ET_diff_hour=`echo "$_ET_diff_day-3600*$_ET_hours" | bc`
+ _ET_mins=`echo "$_ET_diff_hour/60" | bc`
+ _ET_secs=`echo "$_ET_diff_hour-60*$_ET_mins" | bc`
+ local _resultvar=$2
+ eval "$_resultvar=`printf \"%02d/%02d:%02d:%06.3f\" $_ET_days $_ET_hours $_ET_mins $_ET_secs`"
+}
diff --git a/debian/_buildscripts/local/internals/_build_set_common.sh b/debian/_buildscripts/local/internals/_build_set_common.sh
new file mode 100755
index 000000000..4bc1ea3e8
--- /dev/null
+++ b/debian/_buildscripts/local/internals/_build_set_common.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+# Load common code and initialization
+. ./internals/_build_common.sh
+init_common
+
+_BUILDSET_TIMER=1
+_BUILDSET_TIME="--/--:--:--:---"
+
+parm_SKIP_FETCH="n" # if "y" skips N packages from the list
+parm_SKIP_N=0 # this argument represents the number of packages to skip
+SKIP_cnt=0
+
+
+#----------------------------
+# do_exit for set building
+function do_exit()
+{
+ cd "$SCRIPT_DIR"
+ if [ $1 -eq 0 ]; then
+ echo -e "${CGray}#### Building process for set \"${0##*/}\" completed ####${CNone}"
+ else
+ echo -e "${CGray}#### Building process for set \"${0##*/}\" interrupted ($1) ####${CNone}"
+ fi
+ exit $1
+}
+
+
+#----------------------------
+function set_log_start()
+{
+ echo -e "${CGray}#### Starting building process for set \"${0##*/}\" ####${CNone}"
+ echo
+ echo "---------- ${0##*/} ----------" >>"$LOG_BUILD_RESULT_FILENAME"
+ exec_time_start $_BUILDSET_TIMER
+}
+
+
+#----------------------------
+function set_log_end()
+{
+ exec_time_stop $_BUILDSET_TIMER "_BUILDSET_TIME"
+ echo " [$_BUILDSET_TIME] SET ${0##*/}" >>"$LOG_BUILD_RESULT_FILENAME"
+ echo >>"$LOG_BUILD_RESULT_FILENAME"
+ do_exit 0
+}
+
+
+#----------------------------
+function build_module()
+{
+ if [ $parm_SKIP_N -gt 0 -a $SKIP_cnt -lt $parm_SKIP_N ]; then
+ SKIP_cnt=$((SKIP_cnt+1))
+ else
+ ./build_module.sh "$BUILD_DEFAULT_OPTIONS $@"
+ echo
+ fi
+}
+
+
+#----------------------------
+# Check command line arguments
+#----------------------------
+for arg in $@; do
+ if [ "$parm_SKIP_FETCH" = "y" ]; then
+ parm_SKIP_N=$arg
+ parm_SKIP_FETCH="n"BUILD_DEFAULT_OPTIONS
+ elif [ "$arg" = "-s" ]; then # skip first N packages
+ parm_SKIP_FETCH="y"
+ fi
+done
+if [ "$parm_SKIP_FETCH" = "y" ]; then
+ echo "Invalid command line arguments ($@)"
+ do_exit 3
+fi
diff --git a/debian/_buildscripts/local/internals/_config_template.sh b/debian/_buildscripts/local/internals/_config_template.sh
new file mode 100644
index 000000000..be992d297
--- /dev/null
+++ b/debian/_buildscripts/local/internals/_config_template.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+set -a
+
+#----------------------------
+# Repo information
+#----------------------------
+TDE_DIR="" # TDE root folder
+UPDATE_BRANCHES="master" # Space separated list. Available choices: master, r14.0.x
+DEFAULT_REPO_BRANCH="master" # After update in completed, switch repo to this branch. Must be
+ # one of the branches specified in UPDATE_BRANCHES
+
+#----------------------------
+# Build information
+#----------------------------
+TDE_RELEASE="14.1.0" # TDE release number
+DISTRO="debian" # Distro family
+DISTRO_NAME="buster" # Distro name of specific version
+ARCHITECTURE="amd64" # Build for this architecture
+USE_PREBUILD_EXTRA_DEPS="y" # If == "y", use pre-built extra dependency packages
+BUILD_DEFAULT_OPTIONS="-g -lr" # Default building options (pbuilder)
+GPG_SIGN_KEYID="" # Use this GPG key to sign packages. If null, packages will not be signed
+
+#----------------------------
+# Base directories
+#----------------------------
+CFG_SCRIPT_LOG_DIR="0_logs"
+CFG_GIT_DIR="1_git"
+CFG_BUILD_DIR="2_build"
+CFG_REPO_DIR="3_repo"
+CFG_EXTRA_DEPS_DIR="edeps" # Relative to CFG_GIT_DIR folder
+CFG_HOOKS_DIR="hooks" # Relative to CFG_GIT_DIR folder
+
+set +a
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
diff --git a/debian/_buildscripts/local/internals/distro_list.txt b/debian/_buildscripts/local/internals/distro_list.txt
new file mode 100644
index 000000000..0ca037eb0
--- /dev/null
+++ b/debian/_buildscripts/local/internals/distro_list.txt
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+# List of supported distributions
+DISTROS="
+ debian 5.0 lenny
+ debian 6.0 squeeze
+ debian 7.0 wheezy
+ debian 8.0 jessie
+ debian 9.0 stretch
+ debian 10.0 buster ~a
+ debian 10.0 sid ~b
+ raspbian 7.0 raspbian-wheezy
+ raspbian 8.0 raspbian-jessie
+ ubuntu 10.04 lucid
+ ubuntu 10.10 maverick
+ ubuntu 11.04 natty
+ ubuntu 11.10 oneiric
+ ubuntu 12.04 precise
+ ubuntu 12.10 quantal
+ ubuntu 13.04 raring
+ ubuntu 13.10 saucy
+ ubuntu 14.04 trusty
+ ubuntu 14.10 utopic
+ ubuntu 15.04 vivid
+ ubuntu 15.10 wily
+ ubuntu 16.04 xenial
+ ubuntu 16.10 yakkety
+ ubuntu 17.04 zesty
+ ubuntu 17.10 artful
+ ubuntu 18.04 bionic ~a
+"
diff --git a/debian/_buildscripts/local/internals/extra_deps.txt b/debian/_buildscripts/local/internals/extra_deps.txt
new file mode 100644
index 000000000..12cd3b395
--- /dev/null
+++ b/debian/_buildscripts/local/internals/extra_deps.txt
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# List of repositories for extra dependency packages
+EDEPS_REPO="
+ master http://mirror.xcer.cz/trinity-tb deps
+ r14.0.x http://mirror.xcer.cz/trinity-sb deps-r14
+"