72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
|  | #!/bin/bash
 | ||
|  | # Export sources from a git tree and prepare it for a public release. | ||
|  | # Jose Luis Blanco Claraco, 2019 (for GTSAM) | ||
|  | # Jose Luis Blanco Claraco, 2008-2018 (for MRPT) | ||
|  | 
 | ||
|  | set -e  # exit on error | ||
|  | #set -x  # for debugging | ||
|  | 
 | ||
|  | # Checks | ||
|  | # -------------------------------- | ||
|  | if [ -f version_prefix.txt ]; | ||
|  | then | ||
|  | 	if [ -z ${GTSAM_VERSION_STR+x} ]; | ||
|  | 	then | ||
|  | 		source package_scripts/prepare_debian_gen_snapshot_version.sh | ||
|  | 	fi | ||
|  | 	echo "ERROR: Run this script from the GTSAM source tree root directory." | ||
|  | 	exit 1 | ||
|  | fi | ||
|  | 
 | ||
|  | GTSAM_SRC=`pwd` | ||
|  | OUT_RELEASES_DIR="$HOME/gtsam_release" | ||
|  | 
 | ||
|  | OUT_DIR=$OUT_RELEASES_DIR/gtsam-${GTSAM_VERSION_STR} | ||
|  | 
 | ||
|  | echo "=========== Generating GTSAM release ${GTSAM_VER_MMP} ==================" | ||
|  | echo "GTSAM_VERSION_STR   : ${GTSAM_VERSION_STR}" | ||
|  | echo "OUT_DIR            : ${OUT_DIR}" | ||
|  | echo "============================================================" | ||
|  | echo | ||
|  | 
 | ||
|  | # Prepare output directory: | ||
|  | rm -fR $OUT_RELEASES_DIR  || true | ||
|  | mkdir -p ${OUT_DIR} | ||
|  | 
 | ||
|  | # Export / copy sources to target dir: | ||
|  | if [ -d "$GTSAM_SRC/.git" ]; | ||
|  | then | ||
|  | 	echo "# Exporting git source tree to ${OUT_DIR}" | ||
|  | 	git archive --format=tar HEAD | tar -x -C ${OUT_DIR} | ||
|  | 
 | ||
|  | 	# Remove VCS control files: | ||
|  | 	find ${OUT_DIR} -name '.gitignore' | xargs rm | ||
|  | 
 | ||
|  | 	# Generate ./SOURCE_DATE_EPOCH with UNIX time_t | ||
|  | 	SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) | ||
|  | else | ||
|  | 	echo "# Copying sources to ${OUT_DIR}" | ||
|  | 	cp -R . ${OUT_DIR} | ||
|  | 
 | ||
|  | 	# Generate ./SOURCE_DATE_EPOCH with UNIX time_t | ||
|  | 	SOURCE_DATE_EPOCH=$(date +%s) | ||
|  | fi | ||
|  | 
 | ||
|  | # See https://reproducible-builds.org/specs/source-date-epoch/ | ||
|  | echo $SOURCE_DATE_EPOCH > ${OUT_DIR}/SOURCE_DATE_EPOCH | ||
|  | 
 | ||
|  | cd ${OUT_DIR} | ||
|  | 
 | ||
|  | # Dont include Debian files in releases: | ||
|  | rm -fR package_scripts | ||
|  | 
 | ||
|  | # Orig tarball: | ||
|  | cd .. | ||
|  | echo "# Creating orig tarball: gtsam-${GTSAM_VERSION_STR}.tar.gz" | ||
|  | tar czf gtsam-${GTSAM_VERSION_STR}.tar.gz gtsam-${GTSAM_VERSION_STR} | ||
|  | 
 | ||
|  | rm -fr gtsam-${GTSAM_VERSION_STR} | ||
|  | 
 | ||
|  | # GPG signature: | ||
|  | gpg --armor --detach-sign gtsam-${GTSAM_VERSION_STR}.tar.gz |