From 17464aa0343383afd22d2006e69172f17001c3b0 Mon Sep 17 00:00:00 2001 From: Dave Page Date: Thu, 21 Mar 2019 14:02:19 +0000 Subject: [PATCH] Don't use old-style variable notation. --- pkg/docker/build.sh | 20 ++--- pkg/mac/build.sh | 160 ++++++++++++++++++------------------ pkg/mac/codesign-bundle.sh | 2 +- pkg/mac/codesign-dmg.sh | 10 +-- pkg/mac/complete-bundle.sh | 150 ++++++++++++++++----------------- pkg/mac/create-dmg.sh | 32 ++++---- pkg/mac/framework-config.sh | 2 +- pkg/pip/build.sh | 34 ++++---- pkg/src/build.sh | 46 +++++------ 9 files changed, 228 insertions(+), 228 deletions(-) diff --git a/pkg/docker/build.sh b/pkg/docker/build.sh index 1c54ba514..998aa73d8 100755 --- a/pkg/docker/build.sh +++ b/pkg/docker/build.sh @@ -24,16 +24,16 @@ fi APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'` APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'` APP_NAME=`grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //'` -APP_LONG_VERSION=$APP_RELEASE.$APP_REVISION -APP_SHORT_VERSION=`echo $APP_LONG_VERSION | cut -d . -f1,2` +APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION} +APP_SHORT_VERSION=`echo ${APP_LONG_VERSION} | cut -d . -f1,2` APP_SUFFIX=`grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g"` -if [ ! -z $APP_SUFFIX ]; then - export APP_LONG_VERSION=$APP_LONG_VERSION-$APP_SUFFIX +if [ ! -z ${APP_SUFFIX} ]; then + export APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX} fi -CONTAINER_NAME=`echo $APP_NAME | sed 's/ //g' | awk '{print tolower($0)}'` +CONTAINER_NAME=`echo ${APP_NAME} | sed 's/ //g' | awk '{print tolower($0)}'` # Output basic details to show we're working -echo Building Docker Container for $APP_NAME version $APP_LONG_VERSION... +echo Building Docker Container for ${APP_NAME} version ${APP_LONG_VERSION}... # Create/clearout the build directory echo Creating/cleaning required directories... @@ -56,7 +56,7 @@ cp pkg/docker/Dockerfile \ docker-build/ # Build the container -docker build docker-build -t $CONTAINER_NAME \ - -t $CONTAINER_NAME:latest \ - -t $CONTAINER_NAME:$APP_RELEASE \ - -t $CONTAINER_NAME:$APP_LONG_VERSION +docker build docker-build -t ${CONTAINER_NAME} \ + -t ${CONTAINER_NAME}:latest \ + -t ${CONTAINER_NAME}:${APP_RELEASE} \ + -t ${CONTAINER_NAME}:${APP_LONG_VERSION} diff --git a/pkg/mac/build.sh b/pkg/mac/build.sh index 43dec5276..ee3e09b8a 100755 --- a/pkg/mac/build.sh +++ b/pkg/mac/build.sh @@ -3,12 +3,12 @@ # Build script to create Mac App Bundle and DMG for pgAdmin4 runtime export WD=$(cd `dirname $0` && pwd) -export SOURCEDIR=$WD/../.. -export BUILDROOT=$WD/../../mac-build -export DISTROOT=$WD/../../dist +export SOURCEDIR=${WD}/../.. +export BUILDROOT=${WD}/../../mac-build +export DISTROOT=${WD}/../../dist export VIRTUALENV=venv -if [ ! -f $SOURCEDIR/pkg/mac/framework.conf ]; then +if [ ! -f ${SOURCEDIR}/pkg/mac/framework.conf ]; then echo echo "Error: pkg/mac/framework.conf not found!" echo "Copy pkg/mac/framework.conf.in to pkg/mac/framework.conf and edit as required for the current system." @@ -17,7 +17,7 @@ if [ ! -f $SOURCEDIR/pkg/mac/framework.conf ]; then fi export SYSTEM_PYTHON=0 -if [ "x$PYTHON_HOME" == "x" ]; then +if [ "x${PYTHON_HOME}" == "x" ]; then echo "PYTHON_HOME not set. Setting it to default" export PYTHON_HOME=/System/Library/Frameworks/Python.framework/Versions/2.7 export PYTHON_VERSION=27 @@ -25,39 +25,39 @@ if [ "x$PYTHON_HOME" == "x" ]; then fi # Check if Python is working and calculate PYTHON_VERSION -if $PYTHON_HOME/bin/python2 -V > /dev/null 2>&1; then - export PYTHON_VERSION=`$PYTHON_HOME/bin/python2 -V 2>&1 | awk '{print $2}' | cut -d"." -f1-2 | sed 's/\.//'` -elif $PYTHON_HOME/bin/python3 -V > /dev/null 2>&1; then - export PYTHON_VERSION=`$PYTHON_HOME/bin/python3 -V 2>&1 | awk '{print $2}' | cut -d"." -f1-2 | sed 's/\.//'` +if ${PYTHON_HOME}/bin/python2 -V > /dev/null 2>&1; then + export PYTHON_VERSION=`${PYTHON_HOME}/bin/python2 -V 2>&1 | awk '{print $2}' | cut -d"." -f1-2 | sed 's/\.//'` +elif ${PYTHON_HOME}/bin/python3 -V > /dev/null 2>&1; then + export PYTHON_VERSION=`${PYTHON_HOME}/bin/python3 -V 2>&1 | awk '{print $2}' | cut -d"." -f1-2 | sed 's/\.//'` else echo "Error: Python installation missing!" exit 1 fi -if [ "$PYTHON_VERSION" -gt "36" -a "$PYTHON_VERSION" -lt "26" ]; then +if [ "${PYTHON_VERSION}" -gt "37" -a "${PYTHON_VERSION}" -lt "27" ]; then echo "Python version not supported" exit 1 fi -if [ "$PYTHON_VERSION" -ge "30" ]; then - export PYTHON=$PYTHON_HOME/bin/python3 +if [ "${PYTHON_VERSION}" -ge "30" ]; then + export PYTHON=${PYTHON_HOME}/bin/python3 export PIP=pip3 else - export PYTHON=$PYTHON_HOME/bin/python2 + export PYTHON=${PYTHON_HOME}/bin/python2 export PIP=pip fi -if [ "x$QTDIR" == "x" ]; then +if [ "x${QTDIR}" == "x" ]; then echo "QTDIR not set. Setting it to default" export QTDIR=~/Qt/5.8/clang_64 fi -export QMAKE=$QTDIR/bin/qmake -if ! $QMAKE --version > /dev/null 2>&1; then +export QMAKE=${QTDIR}/bin/qmake +if ! ${QMAKE} --version > /dev/null 2>&1; then echo "Error: qmake not found. QT installation is not present or incomplete." exit 1 fi -if [ "x$PGDIR" == "x" ]; then +if [ "x${PGDIR}" == "x" ]; then echo "PGDIR not set. Setting it to default" export PGDIR=/usr/local/pgsql fi @@ -66,71 +66,71 @@ _get_version() { export APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'` export APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'` export APP_NAME=`grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //'` - export APP_BUNDLE_NAME=$APP_NAME.app - export APP_LONG_VERSION=$APP_RELEASE.$APP_REVISION - export APP_SHORT_VERSION=`echo $APP_LONG_VERSION | cut -d . -f1,2` + export APP_BUNDLE_NAME=${APP_NAME}.app + export APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION} + export APP_SHORT_VERSION=`echo ${APP_LONG_VERSION} | cut -d . -f1,2` export APP_SUFFIX=`grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g"` - if [ ! -z $APP_SUFFIX ]; then - export APP_LONG_VERSION=$APP_LONG_VERSION-$APP_SUFFIX + if [ ! -z ${APP_SUFFIX} ]; then + export APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX} fi } _cleanup() { echo "Cleaning up the old environment and app bundle" - rm -rf $SOURCEDIR/runtime/pgAdmin4.app - rm -rf $BUILDROOT - rm -f $DISTROOT/pgadmin4*.dmg + rm -rf ${SOURCEDIR}/runtime/pgAdmin4.app + rm -rf ${BUILDROOT} + rm -f ${DISTROOT}/pgadmin4*.dmg } _create_python_virtualenv() { - export PATH=$PGDIR/bin:$PATH - export LD_LIBRARY_PATH=$PGDIR/lib:$_LD_LIBRARY_PATH - test -d $BUILDROOT || mkdir $BUILDROOT || exit 1 - cd $BUILDROOT + export PATH=${PGDIR}/bin:${PATH} + export LD_LIBRARY_PATH=${PGDIR}/lib:${LD_LIBRARY_PATH} + test -d ${BUILDROOT} || mkdir ${BUILDROOT} || exit 1 + cd ${BUILDROOT} - if [ $SYSTEM_PYTHON -eq 1 ]; then - test -d $VIRTUALENV || virtualenv -p $PYTHON $VIRTUALENV || exit 1 + if [ ${SYSTEM_PYTHON} -eq 1 ]; then + test -d ${VIRTUALENV} || virtualenv -p ${PYTHON} ${VIRTUALENV} || exit 1 else - test -d $VIRTUALENV || virtualenv -p $PYTHON --always-copy $VIRTUALENV || exit 1 + test -d ${VIRTUALENV} || virtualenv -p ${PYTHON} --always-copy ${VIRTUALENV} || exit 1 fi - source $VIRTUALENV/bin/activate - $PIP install --no-cache-dir --no-binary psycopg2 -r $SOURCEDIR/requirements.txt || { echo PIP install failed. Please resolve the issue and rerun the script; exit 1; } + source ${VIRTUALENV}/bin/activate + ${PIP} install --no-cache-dir --no-binary psycopg2 -r ${SOURCEDIR}/requirements.txt || { echo PIP install failed. Please resolve the issue and rerun the script; exit 1; } # Figure out some paths for use when completing the venv # Use "python" here as we want the venv path export PYMODULES_PATH=`python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"` - export DIR_PYMODULES_PATH=`dirname $PYMODULES_PATH` + export DIR_PYMODULES_PATH=`dirname ${PYMODULES_PATH}` # Use $PYTHON here as we want the system path - export PYSYSLIB_PATH=`$PYTHON -c "import sys; print('%s/lib/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))"` + export PYSYSLIB_PATH=`${PYTHON} -c "import sys; print('%s/lib/python%d.%.d' % (sys.prefix, sys.version_info.major, sys.version_info.minor))"` # Symlink in the rest of the Python libs. This is required because the runtime # will clear PYTHONHOME for safety, which has the side-effect of preventing # it from finding modules that are not explicitly included in the venv - cd $DIR_PYMODULES_PATH + cd ${DIR_PYMODULES_PATH} # Files - for FULLPATH in $PYSYSLIB_PATH/*.py; do + for FULLPATH in ${PYSYSLIB_PATH}/*.py; do FILE=${FULLPATH##*/} - if [ ! -e $FILE ]; then - if [ $SYSTEM_PYTHON -eq 1 ]; then - ln -s $FULLPATH $FILE + if [ ! -e ${FILE} ]; then + if [ ${SYSTEM_PYTHON} -eq 1 ]; then + ln -s ${FULLPATH} ${FILE} else - cp $FULLPATH $FILE + cp ${FULLPATH} ${FILE} fi fi done # Paths - for FULLPATH in $PYSYSLIB_PATH/*/; do + for FULLPATH in ${PYSYSLIB_PATH}/*/; do FULLPATH=${FULLPATH%*/} FILE=${FULLPATH##*/} - if [ ! -e $FILE ]; then - if [ $SYSTEM_PYTHON -eq 1 ]; then - ln -s $FULLPATH $FILE + if [ ! -e ${FILE} ]; then + if [ ${SYSTEM_PYTHON} -eq 1 ]; then + ln -s ${FULLPATH} ${FILE} else - cp -R $FULLPATH $FILE + cp -R ${FULLPATH} ${FILE} fi fi done @@ -141,56 +141,56 @@ _create_python_virtualenv() { find . -name "tests" -type d -exec rm -rf "{}" \; # Link the python directory to python so that the private environment path is found by the application. - if test -d $DIR_PYMODULES_PATH; then - ln -s $(basename $DIR_PYMODULES_PATH) $DIR_PYMODULES_PATH/../python + if test -d ${DIR_PYMODULES_PATH}; then + ln -s $(basename ${DIR_PYMODULES_PATH}) ${DIR_PYMODULES_PATH}/../python fi } _build_runtime() { _create_python_virtualenv || exit 1 - cd $SOURCEDIR/runtime + cd ${SOURCEDIR}/runtime make clean - $QMAKE || { echo qmake failed; exit 1; } + ${QMAKE} || { echo qmake failed; exit 1; } make || { echo make failed; exit 1; } - cp -r pgAdmin4.app "$BUILDROOT/$APP_BUNDLE_NAME" + cp -r pgAdmin4.app "${BUILDROOT}/${APP_BUNDLE_NAME}" } _build_doc() { - cd $SOURCEDIR/docs/en_US - test -d "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources" || "mkdir -p $BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources" - test -d "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/docs/en_US" || mkdir -p "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/docs/en_US" - cp -r _build/html "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/docs/en_US/" || exit 1 + cd ${SOURCEDIR}/docs/en_US + test -d "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources" || "mkdir -p ${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources" + test -d "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/docs/en_US" || mkdir -p "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/docs/en_US" + cp -r _build/html "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/docs/en_US/" || exit 1 } _complete_bundle() { - cd $SOURCEDIR/pkg/mac + cd ${SOURCEDIR}/pkg/mac # Copy the binary utilities into place - mkdir -p "$BUILDROOT/$APP_BUNDLE_NAME/Contents/SharedSupport/" || exit 1 - cp "$PGDIR/bin/pg_dump" "$BUILDROOT/$APP_BUNDLE_NAME/Contents/SharedSupport/" || exit 1 - cp "$PGDIR/bin/pg_dumpall" "$BUILDROOT/$APP_BUNDLE_NAME/Contents/SharedSupport/" || exit 1 - cp "$PGDIR/bin/pg_restore" "$BUILDROOT/$APP_BUNDLE_NAME/Contents/SharedSupport/" || exit 1 - cp "$PGDIR/bin/psql" "$BUILDROOT/$APP_BUNDLE_NAME/Contents/SharedSupport/" || exit 1 + mkdir -p "${BUILDROOT/${APP_BUNDLE_NAME}/Contents/SharedSupport/" || exit 1 + cp "${PGDIR}/bin/pg_dump" "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/SharedSupport/" || exit 1 + cp "${PGDIR}/bin/pg_dumpall" "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/SharedSupport/" || exit 1 + cp "${PGDIR}/bin/pg_restore" "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/SharedSupport/" || exit 1 + cp "${PGDIR}/bin/psql" "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/SharedSupport/" || exit 1 # Replace the place holders with the current version - sed -e "s/PGADMIN_LONG_VERSION/$APP_LONG_VERSION/g" -e "s/PGADMIN_SHORT_VERSION/$APP_SHORT_VERSION/g" pgadmin.Info.plist.in > pgadmin.Info.plist + sed -e "s/PGADMIN_LONG_VERSION/${APP_LONG_VERSION}/g" -e "s/PGADMIN_SHORT_VERSION/${APP_SHORT_VERSION}/g" pgadmin.Info.plist.in > pgadmin.Info.plist # copy Python private environment to app bundle - cp -PR $BUILDROOT/$VIRTUALENV "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/" || exit 1 + cp -PR ${BUILDROOT}/${VIRTUALENV} "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/" || exit 1 - if [ $SYSTEM_PYTHON -eq 1 ]; then + if [ ${SYSTEM_PYTHON} -eq 1 ]; then # remove the python bin and include from app bundle as it is not needed - rm -rf "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/$VIRTUALENV/bin" "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/$VIRTUALENV/include" - rm -rf "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/$VIRTUALENV/.Python" + rm -rf "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/${VIRTUALENV}/bin" "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/${VIRTUALENV}/include" + rm -rf "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/${VIRTUALENV}/.Python" fi # Remove any TCL-related files that may cause us problems - find "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/$VIRTUALENV/" -name "_tkinter*" -exec rm -f "{}" \; + find "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/${VIRTUALENV}/" -name "_tkinter*" -exec rm -f "{}" \; # run complete-bundle to copy the dependent libraries and frameworks and fix the rpaths - ./complete-bundle.sh "$BUILDROOT/$APP_BUNDLE_NAME" || { echo complete-bundle.sh failed; exit 1; } + ./complete-bundle.sh "${BUILDROOT}/${APP_BUNDLE_NAME}" || { echo complete-bundle.sh failed; exit 1; } - pushd $SOURCEDIR/web + pushd ${SOURCEDIR}/web yarn install || exit 1 yarn run bundle || exit 1 @@ -198,8 +198,8 @@ _complete_bundle() { popd # copy the web directory to the bundle as it is required by runtime - cp -r $SOURCEDIR/web "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/" || exit 1 - cd "$BUILDROOT/$APP_BUNDLE_NAME/Contents/Resources/web" + cp -r ${SOURCEDIR}/web "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/" || exit 1 + cd "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/web" rm -f pgadmin4.db config_local.* rm -rf karma.conf.js package.json node_modules/ regression/ tools/ pgadmin/static/js/generated/.cache find . -name "tests" -type d -exec rm -rf "{}" \; @@ -214,17 +214,17 @@ _complete_bundle() { echo "}" >> config_distro.py # Remove the .pyc files if any - cd "$BUILDROOT/$APP_BUNDLE_NAME" + cd "${BUILDROOT}/${APP_BUNDLE_NAME}" find . -name *.pyc | xargs rm -f } _framework_config() { - cd $SOURCEDIR/pkg/mac - ./framework-config.sh "$BUILDROOT/$APP_BUNDLE_NAME" || { echo "framework-config.sh failed"; exit 1; } + cd ${SOURCEDIR}/pkg/mac + ./framework-config.sh "${BUILDROOT}/${APP_BUNDLE_NAME}" || { echo "framework-config.sh failed"; exit 1; } } _codesign_bundle() { - cd $SOURCEDIR/pkg/mac + cd ${SOURCEDIR}/pkg/mac if [ ! -f codesign.conf ]; then echo @@ -236,18 +236,18 @@ _codesign_bundle() { return fi - ./codesign-bundle.sh "$BUILDROOT/$APP_BUNDLE_NAME" || { echo codesign-bundle.sh failed; exit 1; } + ./codesign-bundle.sh "${BUILDROOT}/${APP_BUNDLE_NAME}" || { echo codesign-bundle.sh failed; exit 1; } } _create_dmg() { - cd $SOURCEDIR + cd ${SOURCEDIR} ./pkg/mac/create-dmg.sh || { echo create-dmg.sh failed; exit 1; } # Clean the mac-build/ on successful build - rm -rf $BUILDROOT/* + rm -rf ${BUILDROOT}/* } _codesign_dmg() { - cd $SOURCEDIR/pkg/mac + cd ${SOURCEDIR}/pkg/mac if [ ! -f codesign.conf ]; then echo diff --git a/pkg/mac/codesign-bundle.sh b/pkg/mac/codesign-bundle.sh index 04abeb0eb..7a1c6f78b 100755 --- a/pkg/mac/codesign-bundle.sh +++ b/pkg/mac/codesign-bundle.sh @@ -18,7 +18,7 @@ codesign --sign "${DEVELOPER_ID}" --verbose --deep --force "${BUNDLE}" echo Verifying the signature codesign --verify --verbose --deep --force "${BUNDLE}" RETURN_STATUS=$? -if [ $RETURN_STATUS -ne 0 ]; then +if [ ${RETURN_STATUS} -ne 0 ]; then echo Code signing did not work, check the log exit 1 else diff --git a/pkg/mac/codesign-dmg.sh b/pkg/mac/codesign-dmg.sh index 445212ba1..dbbad68f7 100755 --- a/pkg/mac/codesign-dmg.sh +++ b/pkg/mac/codesign-dmg.sh @@ -1,8 +1,8 @@ -#!/bin//sh +#!/bin/bash -DMG_VOLUME_NAME=$APP_NAME -DMG_NAME=`echo $DMG_VOLUME_NAME | sed 's/ //g' | awk '{print tolower($0)}'` -DMG_IMAGE=$DISTROOT/$DMG_NAME-$APP_LONG_VERSION.dmg +DMG_VOLUME_NAME=${APP_NAME} +DMG_NAME=`echo ${DMG_VOLUME_NAME} | sed 's/ //g' | awk '{print tolower($0)}'` +DMG_IMAGE=${DISTROOT}/${DMG_NAME}-${APP_LONG_VERSION}.dmg if ! test -f "${DMG_IMAGE}" ; then echo "${DMG_IMAGE} is no disk image!" >&2 @@ -22,7 +22,7 @@ codesign --sign "${DEVELOPER_ID}" --verbose --force "${DMG_IMAGE}" echo Verifying the signature codesign --verify --verbose --force "${DMG_IMAGE}" RETURN_STATUS=$? -if [ $RETURN_STATUS -ne 0 ]; then +if [ ${RETURN_STATUS} -ne 0 ]; then echo ERROR: Code signing did not work exit 1 else diff --git a/pkg/mac/complete-bundle.sh b/pkg/mac/complete-bundle.sh index 4121f5cdb..985bbc802 100755 --- a/pkg/mac/complete-bundle.sh +++ b/pkg/mac/complete-bundle.sh @@ -3,140 +3,140 @@ bundle="$1" if ! test -d "$bundle" ; then - echo "$bundle is no bundle!" >&2 + echo "${bundle} is no bundle!" >&2 exit 1 fi -if test -z $QTDIR ; then +if test -z ${QTDIR} ; then echo "QTDIR environment variable not set" exit 1 else - echo "QTDIR=$QTDIR" + echo "QTDIR=${QTDIR}" fi -test -d "$bundle/Contents/Resources" || mkdir -p "$bundle/Contents/Resources" || exit 1 +test -d "${bundle}/Contents/Resources" || mkdir -p "${bundle}/Contents/Resources" || exit 1 # Create qt.conf so that app knows where the Plugins are present -cat >> "$bundle/Contents/Resources/qt.conf" << EOF +cat >> "${bundle}/Contents/Resources/qt.conf" << EOF [Paths] Plugins = PlugIns EOF -test -d "$bundle/Contents/Frameworks" || mkdir -p "$bundle/Contents/Frameworks" || exit 1 -test -d "$bundle/Contents/PlugIns/platforms" || mkdir -p "$bundle/Contents/PlugIns/platforms" || exit 1 -cp -f $QTDIR/plugins/platforms/libqcocoa.dylib "$bundle/Contents/PlugIns/platforms" || { echo libqcocoa.dylib not found in $QTDIR/plugins/platforms; exit 1; } -cp -f $PGDIR/lib/libpq.5.dylib "$bundle/Contents/Frameworks" || { echo libpq.5.dylib not found in $PGDIR; exit 1; } +test -d "${bundle}/Contents/Frameworks" || mkdir -p "${bundle}/Contents/Frameworks" || exit 1 +test -d "${bundle}/Contents/PlugIns/platforms" || mkdir -p "${bundle}/Contents/PlugIns/platforms" || exit 1 +cp -f ${QTDIR}/plugins/platforms/libqcocoa.dylib "${bundle}/Contents/PlugIns/platforms" || { echo libqcocoa.dylib not found in ${QTDIR}/plugins/platforms; exit 1; } +cp -f ${PGDIR}/lib/libpq.5.dylib "${bundle}/Contents/Frameworks" || { echo libpq.5.dylib not found in ${PGDIR}; exit 1; } function CompleteSingleApp() { local bundle=$1 tag=$(basename "$1") todo todo_old fw_relpath lib lib_bn nested_app na_relpath - echo "Completing app: $bundle" - pushd "$bundle" > /dev/null + echo "Completing app: ${bundle}" + pushd "${bundle}" > /dev/null #We skip nested apps here - those are treated specially todo=$(file `find ./ -perm +0111 ! -type d ! -path "*.app/*" ! -name "*.app"` | grep -E "Mach-O 64-bit" | awk -F ':| ' '{ORS=" "; print $1}') - echo "App: $tag: Found executables: $todo" - while test "$todo" != ""; do - todo_old=$todo ; + echo "App: ${tag}: Found executables: ${todo}" + while test "${todo}" != ""; do + todo_old=${todo} ; todo="" ; - for todo_obj in $todo_old; do - echo "App: $tag: Post-processing: $todo_obj" + for todo_obj in ${todo_old}; do + echo "App: ${tag}: Post-processing: ${todo_obj}" #Figure out the relative path from todo_obj to Contents/Frameworks - fw_relpath=$(echo "$todo_obj" |\ + fw_relpath=$(echo "${todo_obj}" |\ sed -n 's|^\(\.//*\)\(\([^/][^/]*/\)*\)[^/][^/]*$|\2|gp' | \ sed -n 's|[^/][^/]*/|../|gp' \ )"Contents/Frameworks" - fw_relpath_old=$fw_relpath + fw_relpath_old=${fw_relpath} fw_loc="Contents/Frameworks" #Find all libraries $todo_obj depends on, but skip system libraries for lib in $( - otool -L $todo_obj | \ + otool -L ${todo_obj} | \ grep "Qt\|dylib\|Frameworks\|PlugIns" | grep -v ":" | sed 's/(.*//' | egrep -v '(/usr/lib)|(/System)|@executable_path@' \ - ) $(otool -L $todo_obj | grep "Python" | grep -v ":" | sed 's/(.*//' \ + ) $(otool -L ${todo_obj} | grep "Python" | grep -v ":" | sed 's/(.*//' \ ); do - if echo $lib | grep "PlugIns\|libqcocoa" > /dev/null; then + if echo ${lib} | grep "PlugIns\|libqcocoa" > /dev/null; then lib_loc="Contents/PlugIns/platforms" - elif echo $lib | grep "Qt" > /dev/null; then - qtfw_path="$(dirname $lib | sed 's|.*\(Qt.*framework\)|\1|')" - lib_loc="Contents/Frameworks/$qtfw_path" - if [ "$(basename $todo_obj)" = "$lib" ]; then - lib_loc="$(dirname $todo_obj)" - qtfw_path=$(echo $lib_loc | sed 's/Contents\/Frameworks\///') + elif echo ${lib} | grep "Qt" > /dev/null; then + qtfw_path="$(dirname ${lib} | sed 's|.*\(Qt.*framework\)|\1|')" + lib_loc="Contents/Frameworks/${qtfw_path}" + if [ "$(basename ${todo_obj})" = "${lib}" ]; then + lib_loc="$(dirname ${todo_obj})" + qtfw_path=$(echo ${lib_loc} | sed 's/Contents\/Frameworks\///') fi - elif echo $lib | grep "Python" > /dev/null; then - pyfw_path="$(dirname $lib | sed 's|.*\(Python.*framework\)|\1|')" - lib_loc="Contents/Frameworks/$pyfw_path" - if [ "$(basename $todo_obj)" = "$lib" ]; then - lib_loc="$(dirname $todo_obj)" - pyfw_path=$(echo $lib_loc | sed 's/Contents\/Frameworks\///') + elif echo ${lib} | grep "Python" > /dev/null; then + pyfw_path="$(dirname ${lib} | sed 's|.*\(Python.*framework\)|\1|')" + lib_loc="Contents/Frameworks/${pyfw_path}" + if [ "$(basename ${todo_obj})" = "${lib}" ]; then + lib_loc="$(dirname ${todo_obj})" + pyfw_path=$(echo ${lib_loc} | sed 's/Contents\/Frameworks\///') fi else lib_loc="Contents/Frameworks" fi - lib_bn="$(basename "$lib")" ; - if ! test -f "$lib_loc/$lib_bn"; then + lib_bn="$(basename "${lib}")" ; + if ! test -f "${lib_loc}/${lib_bn}"; then target_file="" target_path="" - echo "App: $tag: Adding symlink: $lib_bn (because of: $todo_obj)" + echo "App: ${tag}: Adding symlink: ${lib_bn} (because of: ${todo_obj})" # Copy the QT and Python framework - if echo $lib | grep Qt > /dev/null ; then - test -d $lib_loc || mkdir -p $lib_loc - echo Copying -R $QTDIR/lib/$qtfw_path/$lib_bn to $lib_loc/ - cp $QTDIR/lib/$qtfw_path/$lib_bn $lib_loc/ - elif echo $lib | grep Python > /dev/null ; then - test -d $lib_loc || mkdir -p $lib_loc - cp -R "$lib" "$lib_loc/$lib_bn" + if echo ${lib} | grep Qt > /dev/null ; then + test -d ${lib_loc} || mkdir -p ${lib_loc} + echo Copying -R ${QTDIR}/lib/${qtfw_path}/${lib_bn} to ${lib_loc}/ + cp ${QTDIR}/lib/${qtfw_path}/${lib_bn} ${lib_loc}/ + elif echo ${lib} | grep Python > /dev/null ; then + test -d ${lib_loc} || mkdir -p ${lib_loc} + cp -R "${lib}" "${lib_loc}/${lib_bn}" else - cp -R "$lib" "$lib_loc/$lib_bn" + cp -R "${lib}" "${lib_loc}/${lib_bn}" fi - if ! test -L "$lib_loc/$lib_bn"; then - chmod 755 "$lib_loc/$lib_bn" + if ! test -L "${lib_loc}/${lib_bn}"; then + chmod 755 "${lib_loc}/${lib_bn}" else - target_file=$(readlink "$lib") - target_path=$(dirname "$lib")/$target_file - echo "App: $tag: Adding symlink target: $target_path" - cp "$target_path" "$lib_loc/$target_file" - chmod 755 "$lib_loc/$target_file" + target_file=$(readlink "${lib}") + target_path=$(dirname "${lib}")/${target_file} + echo "App: ${tag}: Adding symlink target: ${target_path}" + cp "${target_path}" "${lib_loc}/${target_file}" + chmod 755 "${lib_loc}/${target_file}" fi - echo "Rewriting ID in $lib_loc/$lib_bn to $lib_bn" - echo install_name_tool -id "$lib_bn" "$lib_loc/$lib_bn" + echo "Rewriting ID in ${lib_loc}/${lib_bn} to ${lib_bn}" + echo install_name_tool -id "${lib_bn}" "${lib_loc}/${lib_bn}" install_name_tool \ - -id "$lib_bn" \ - "$lib_loc/$lib_bn" || exit 1 - todo="$todo ./$lib_loc/$lib_bn" + -id "${lib_bn}" \ + "${lib_loc}/${lib_bn}" || exit 1 + todo="${todo} ./${lib_loc}/${lib_bn}" fi - if echo $lib | grep Qt > /dev/null ; then - fw_relpath="$fw_relpath/$qtfw_path" + if echo ${lib} | grep Qt > /dev/null ; then + fw_relpath="${fw_relpath}/${qtfw_path}" fi - if echo $lib | grep Python > /dev/null ; then - fw_relpath="$fw_relpath/$pyfw_path" + if echo ${lib} | grep Python > /dev/null ; then + fw_relpath="${fw_relpath}/${pyfw_path}" fi - chmod +w $todo_obj - echo "Rewriting library $lib to @loader_path/$fw_relpath/$lib_bn in $todo_obj" - echo install_name_tool -change "$lib" "@loader_path/$fw_relpath/$lib_bn" "$todo_obj" + chmod +w ${todo_obj} + echo "Rewriting library ${lib} to @loader_path/${fw_relpath}/${lib_bn} in ${todo_obj}" + echo install_name_tool -change "${lib}" "@loader_path/${fw_relpath}/${lib_bn}" "${todo_obj}" install_name_tool -change \ - "$lib" \ - "@loader_path/$fw_relpath/$lib_bn" \ - "$todo_obj" || exit 1 + "${lib}" \ + "@loader_path/${fw_relpath}/${lib_bn}" \ + "${todo_obj}" || exit 1 install_name_tool -change \ - "$target_path" \ - "@loader_path/$fw_relpath/$target_file" \ - "$todo_obj" || exit 1 - fw_relpath="$fw_relpath_old" + "${target_path}" \ + "@loader_path/${fw_relpath}/${target_file}" \ + "${todo_obj}" || exit 1 + fw_relpath="${fw_relpath_old}" done done done # Fix the rpaths for psycopg module - find "$bundle/Contents/Resources/venv/" -name _psycopg.so -print0 | xargs -0 install_name_tool -change libpq.5.dylib @loader_path/../../../../../../Frameworks/libpq.5.dylib - find "$bundle/Contents/Resources/venv/" -name _psycopg.so -print0 | xargs -0 install_name_tool -change libssl.1.0.0.dylib @loader_path/../../../../../../Frameworks/libssl.1.0.0.dylib - find "$bundle/Contents/Resources/venv/" -name _psycopg.so -print0 | xargs -0 install_name_tool -change libcrypto.1.0.0.dylib @loader_path/../../../../../../Frameworks/libcrypto.1.0.0.dylib + find "${bundle}/Contents/Resources/venv/" -name _psycopg.so -print0 | xargs -0 install_name_tool -change libpq.5.dylib @loader_path/../../../../../../Frameworks/libpq.5.dylib + find "${bundle}/Contents/Resources/venv/" -name _psycopg.so -print0 | xargs -0 install_name_tool -change libssl.1.0.0.dylib @loader_path/../../../../../../Frameworks/libssl.1.0.0.dylib + find "${bundle}/Contents/Resources/venv/" -name _psycopg.so -print0 | xargs -0 install_name_tool -change libcrypto.1.0.0.dylib @loader_path/../../../../../../Frameworks/libcrypto.1.0.0.dylib - echo "App completed: $bundle" + echo "App completed: ${bundle}" popd > /dev/null } -CompleteSingleApp "$bundle" +CompleteSingleApp "${bundle}" diff --git a/pkg/mac/create-dmg.sh b/pkg/mac/create-dmg.sh index c8d74492f..f10d72656 100755 --- a/pkg/mac/create-dmg.sh +++ b/pkg/mac/create-dmg.sh @@ -1,36 +1,36 @@ #!/bin/sh # move to the directory where we want to create the DMG -test -d $DISTROOT || mkdir $DISTROOT -cd $DISTROOT +test -d ${DISTROOT} || mkdir ${DISTROOT} +cd ${DISTROOT} -DMG_SOURCES="./../mac-build/$APP_BUNDLE_NAME" +DMG_SOURCES="./../mac-build/${APP_BUNDLE_NAME}" DMG_LICENCE=./../pkg/mac/licence.rtf -DMG_VOLUME_NAME=$APP_NAME -DMG_NAME=`echo $DMG_VOLUME_NAME | sed 's/ //g' | awk '{print tolower($0)}'` -DMG_IMAGE=$DMG_NAME-$APP_LONG_VERSION.dmg +DMG_VOLUME_NAME=${APP_NAME} +DMG_NAME=`echo ${DMG_VOLUME_NAME} | sed 's/ //g' | awk '{print tolower($0)}'` +DMG_IMAGE=${DMG_NAME}-${APP_LONG_VERSION}.dmg HDIUTIL=/usr/bin/hdiutil REZ="/usr/bin/Rez" -DMG_DIR=./$DMG_IMAGE.src +DMG_DIR=./${DMG_IMAGE}.src -if test -e "$DMG_DIR"; then - echo "Directory $DMG_DIR already exists. Please delete it manually." >&2 +if test -e "${DMG_DIR}"; then + echo "Directory ${DMG_DIR} already exists. Please delete it manually." >&2 exit 1 fi echo "Cleaning up" -rm -f "$DMG_IMAGE" || exit 1 -mkdir "$DMG_DIR" || exit 1 +rm -f "${DMG_IMAGE}" || exit 1 +mkdir "${DMG_DIR}" || exit 1 echo "Copying data into temporary directory" -for src in "$DMG_SOURCES"; do - cp -R "$src" "$DMG_DIR" || exit 1 +for src in "${DMG_SOURCES}"; do + cp -R "${src}" "${DMG_DIR}" || exit 1 done echo "Creating image" -$HDIUTIL create -quiet -srcfolder "$DMG_DIR" -format UDZO -volname "$DMG_VOLUME_NAME" -ov "$DMG_IMAGE" || exit 1 -rm -rf "$DMG_DIR" || exit 1 +${HDIUTIL} create -quiet -srcfolder "$DMG_DIR" -format UDZO -volname "${DMG_VOLUME_NAME}" -ov "${DMG_IMAGE}" || exit 1 +rm -rf "${DMG_DIR}" || exit 1 echo "Attaching License to image" -python ./../pkg/mac/dmg-license.py "$DMG_IMAGE" "$DMG_LICENCE" -c bz2 +python ./../pkg/mac/dmg-license.py "${DMG_IMAGE}" "${DMG_LICENCE}" -c bz2 diff --git a/pkg/mac/framework-config.sh b/pkg/mac/framework-config.sh index 3c1f21b27..20e9abeb7 100755 --- a/pkg/mac/framework-config.sh +++ b/pkg/mac/framework-config.sh @@ -21,7 +21,7 @@ find "${BUNDLE}/Contents/Frameworks"/*framework -type d -name "Versions" | while # Create framework 'Current' soft link VERSION_NUMBER=`ls -1` - ln -s $VERSION_NUMBER Current || { echo "link creation in framework-config.sh failed"; exit 1; } + ln -s ${VERSION_NUMBER} Current || { echo "link creation in framework-config.sh failed"; exit 1; } # Create "Resources" subdirectory if [ ! -d Current/Resources ]; then diff --git a/pkg/pip/build.sh b/pkg/pip/build.sh index 23600c317..7ad11ad01 100755 --- a/pkg/pip/build.sh +++ b/pkg/pip/build.sh @@ -24,16 +24,16 @@ fi APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'` APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'` APP_NAME=`grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //'` -APP_LONG_VERSION=$APP_RELEASE.$APP_REVISION -APP_SHORT_VERSION=`echo $APP_LONG_VERSION | cut -d . -f1,2` +APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION} +APP_SHORT_VERSION=`echo ${APP_LONG_VERSION} | cut -d . -f1,2` APP_SUFFIX=`grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g"` -if [ ! -z $APP_SUFFIX ]; then - export APP_LONG_VERSION=$APP_LONG_VERSION-$APP_SUFFIX +if [ ! -z ${APP_SUFFIX} ]; then + export APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX} fi -TARBALL_NAME=`echo $APP_NAME-$APP_LONG_VERSION | sed 's/ //g' | awk '{print tolower($0)}'` +TARBALL_NAME=`echo ${APP_NAME}-${APP_LONG_VERSION} | sed 's/ //g' | awk '{print tolower($0)}'` # Output basic details to show we're working -echo Building tarballs for $APP_NAME version $APP_LONG_VERSION... +echo Building tarballs for ${APP_NAME} version ${APP_LONG_VERSION}... # Create/clearout the build directory echo Creating/cleaning required directories... @@ -52,9 +52,9 @@ mkdir pip-build/pgadmin4/docs cd web for FILE in `git ls-files` do - echo Adding $FILE + echo Adding ${FILE} # We use tar here to preserve the path, as Mac (for example) doesn't support cp --parents - tar cf - $FILE | (cd ../pip-build/pgadmin4; tar xf -) + tar cf - ${FILE} | (cd ../pip-build/pgadmin4; tar xf -) done yarn install @@ -62,32 +62,32 @@ yarn run bundle for FILE in `ls -d pgadmin/static/js/generated/*` do - echo Adding $FILE - tar cf - $FILE | (cd ../pip-build/pgadmin4; tar xf -) + echo Adding ${FILE} + tar cf - ${FILE} | (cd ../pip-build/pgadmin4; tar xf -) done cd ../docs for FILE in `git ls-files` do - echo Adding $FILE + echo Adding ${FILE} # We use tar here to preserve the path, as Mac (for example) doesn't support cp --parents - tar cf - $FILE | (cd ../pip-build/pgadmin4/docs; tar xf -) + tar cf - ${FILE} | (cd ../pip-build/pgadmin4/docs; tar xf -) done for DIR in `ls -d ??_??/` do - if [ -d $DIR/_build/html ]; then - mkdir -p ../pip-build/pgadmin4/docs/$DIR/_build - cp -R $DIR/_build/html ../pip-build/pgadmin4/docs/$DIR/_build + if [ -d ${DIR}/_build/html ]; then + mkdir -p ../pip-build/pgadmin4/docs/${DIR}/_build + cp -R ${DIR}/_build/html ../pip-build/pgadmin4/docs/${DIR}/_build fi done cd ../ for FILE in LICENSE README libraries.txt do - echo Adding $FILE + echo Adding ${FILE} # We use tar here to preserve the path, as Mac (for example) doesn't support cp --parents - tar cf - $FILE | (cd pip-build/pgadmin4; tar xf -) + tar cf - ${FILE} | (cd pip-build/pgadmin4; tar xf -) done # Create the distro config diff --git a/pkg/src/build.sh b/pkg/src/build.sh index b13f05e81..1f623a371 100755 --- a/pkg/src/build.sh +++ b/pkg/src/build.sh @@ -24,17 +24,17 @@ fi APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'` APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'` APP_NAME=`grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g" | sed 's/^ //'` -APP_LONG_VERSION=$APP_RELEASE.$APP_REVISION -APP_SHORT_VERSION=`echo $APP_LONG_VERSION | cut -d . -f1,2` +APP_LONG_VERSION=${APP_RELEASE}.${APP_REVISION} +APP_SHORT_VERSION=`echo ${APP_LONG_VERSION} | cut -d . -f1,2` APP_SUFFIX=`grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g"` -if [ ! -z $APP_SUFFIX ]; then - export APP_LONG_VERSION=$APP_LONG_VERSION-$APP_SUFFIX +if [ ! -z ${APP_SUFFIX} ]; then + export APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX} fi -TARBALL_NAME=`echo $APP_NAME-$APP_LONG_VERSION | sed 's/ //g' | awk '{print tolower($0)}'` -DOC_TARBALL_NAME=`echo $APP_NAME-$APP_LONG_VERSION-docs | sed 's/ //g' | awk '{print tolower($0)}'` +TARBALL_NAME=`echo ${APP_NAME}-${APP_LONG_VERSION} | sed 's/ //g' | awk '{print tolower($0)}'` +DOC_TARBALL_NAME=`echo ${APP_NAME}-${APP_LONG_VERSION}-docs | sed 's/ //g' | awk '{print tolower($0)}'` # Output basic details to show we're working -echo Building tarballs for $APP_NAME version $APP_LONG_VERSION... +echo Building tarballs for ${APP_NAME} version ${APP_LONG_VERSION}... # Create/clearout the build directory echo Creating/cleaning required directories... @@ -42,31 +42,31 @@ if [ ! -d src-build ]; then mkdir src-build fi -if [ -d src-build/$TARBALL_NAME ]; then - rm -rf src-build/$TARBALL_NAME +if [ -d src-build/${TARBALL_NAME} ]; then + rm -rf src-build/${TARBALL_NAME} fi -mkdir src-build/$TARBALL_NAME +mkdir src-build/${TARBALL_NAME} # Create the output directory if not present if [ ! -d dist ]; then mkdir dist fi -if [ -f dist/$TARBALL_NAME.tar.gz ]; then - rm -f dist/$TARBALL_NAME.tar.gz +if [ -f dist/${TARBALL_NAME}.tar.gz ]; then + rm -f dist/${TARBALL_NAME}.tar.gz fi -if [ -f dist/$DOC_TARBALL_NAME.tar.gz ]; then - rm -f dist/$DOC_TARBALL_NAME.tar.gz +if [ -f dist/${DOC_TARBALL_NAME}.tar.gz ]; then + rm -f dist/${DOC_TARBALL_NAME}.tar.gz fi # Build the clean tree for FILE in `git ls-files` do - echo Adding $FILE + echo Adding ${FILE} # We use tar here to preserve the path, as Mac (for example) doesn't support cp --parents - tar cf - $FILE | (cd src-build/$TARBALL_NAME; tar xf -) + tar cf - ${FILE} | (cd src-build/${TARBALL_NAME}; tar xf -) done pushd web @@ -75,25 +75,25 @@ pushd web for FILE in `ls -d pgadmin/static/js/generated/*` do - echo Adding $FILE - tar cf - $FILE | (cd ../src-build/$TARBALL_NAME/web; tar xf -) + echo Adding ${FILE} + tar cf - ${FILE} | (cd ../src-build/${TARBALL_NAME}/web; tar xf -) done popd # Create the tarball echo Creating tarball... cd src-build -tar zcvf ../dist/$TARBALL_NAME.tar.gz $TARBALL_NAME +tar zcvf ../dist/${TARBALL_NAME}.tar.gz ${TARBALL_NAME} cd .. # Create the docs echo Creating docs... -cd src-build/$TARBALL_NAME/docs/en_US +cd src-build/${TARBALL_NAME}/docs/en_US make -f Makefile.sphinx html cd _build -mv html $DOC_TARBALL_NAME -tar zcvf ../../../../../dist/$DOC_TARBALL_NAME.tar.gz $DOC_TARBALL_NAME +mv html ${DOC_TARBALL_NAME} +tar zcvf ../../../../../dist/${DOC_TARBALL_NAME}.tar.gz ${DOC_TARBALL_NAME} cd ../../../../../ # Fin! -echo Created tarball dist/$TARBALL_NAME.tar.gz and dist/$DOC_TARBALL_NAME.tar.gz +echo Created tarball dist/${TARBALL_NAME}.tar.gz and dist/${DOC_TARBALL_NAME}.tar.gz