diff options
Diffstat (limited to '999.tarballs.build')
-rwxr-xr-x | 999.tarballs.build | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/999.tarballs.build b/999.tarballs.build new file mode 100755 index 00000000..11b47e62 --- /dev/null +++ b/999.tarballs.build @@ -0,0 +1,63 @@ +# +# . ./build.vars and set -o errexit are assumed. +# + +if [ ${ARG_TARBALL:-0} -eq 0 ]; then + log_msg "Skipping distribution tarball creation."; + exit 0; +else + log_msg info "Building distribution tarballs..."; + update_build_status build_finish tarball_start; + cd ${PREFIX}; + if [ "${TARBALL_SUFFIX}" = "bz2" ]; then + TARBALL_COMPRESS_CMD="bzip2"; + elif [ "${TARBALL_SUFFIX}" = "gz" ]; then + TARBALL_COMPRESS_CMD="gzip"; + elif [ "${TARBALL_SUFFIX}" = "xz" ]; then + TARBALL_COMPRESS_CMD="xz"; + else + log_msg failexit "Unknown tarball suffix \`.${TARBALL_SUFFIX}'."; + fi; + TARBALL_FNAME=${TARBALL_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; + TARBALL_SRC_FNAME=${TARBALL_SRC_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; +fi; + + +PREFIX_BASENAME=${PREFIX_NATIVE##*/}; +rm_if_exists -m ${PREFIX_BASENAME}/lib.bak; +tar -C ${PREFIX_BASENAME}/lib -cpf - . | tar -C ${PREFIX_BASENAME}/lib.bak -xpf -; +log_msg info "Backed up ${PREFIX_BASENAME}/lib."; +find native/lib -maxdepth 1 -type l \ + -exec sh -c '[ -f "${DEST:=native/lib/$(readlink -- "${0}")}" ] && \ + rm -f -- "${0}" && ln -f -- "${DEST}" "${0}"' {} \;; +log_msg info "Converted symbolic links in ${PREFIX_BASENAME}/lib to hard links."; + +tar -cpf - $(find_with_no_paths "${TARBALL_EXCLUDE_PATHS} native/lib.bak" . \ + -mindepth 1 -maxdepth 2 -type d -not -path ./native) \ + "Create \`Midipix mintty shell' shortcut.vbs" midipix.sh |\ +${TARBALL_COMPRESS_CMD} -c > ${TARBALL_FNAME}; +log_msg info "Finished building binary distribution tarball."; +if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_SIGN_GPG_KEY}" ] &&\ + gpg --list-keys "${TARBALL_SIGN_GPG_KEY}" >/dev/null 2>&1; then + gpg --armor --passphrase-file /dev/null \ + --local-user "${TARBALL_SIGN_GPG_KEY}" --sign ${TARBALL_FNAME}; + log_msg info "Signed binary distribution tarball."; +fi; +rm -rf ${PREFIX_BASENAME}/lib; mv ${PREFIX_BASENAME}/lib.bak ${PREFIX_BASENAME}/lib; +log_msg info "Restored ${PREFIX_BASENAME}/lib."; + + +log_msg info "Building source tarball..."; +tar -cpf - $(find tmp -mindepth 1 -maxdepth 1 -type d) |\ +${TARBALL_COMPRESS_CMD} -c > ${TARBALL_SRC_FNAME}; +log_msg info "Finished building source tarball."; +if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_SRC_SIGN_GPG_KEY}" ] &&\ + gpg --list-keys "${TARBALL_SRC_SIGN_GPG_KEY}" >/dev/null 2>&1; then + gpg --armor --passphrase-file /dev/null \ + --local-user "${TARBALL_SRC_SIGN_GPG_KEY}" --sign ${TARBALL_SRC_FNAME}; + log_msg info "Signed source tarball."; +fi; + +update_build_status tarball_finish; + +# vim:filetype=sh |