[Bf-blender-cvs] [13c5b0d] master: Utility script to create release archive

Campbell Barton noreply at git.blender.org
Tue Sep 16 03:48:07 CEST 2014


Commit: 13c5b0d54639123e7d35c1b3f71fc987ba78adef
Author: Campbell Barton
Date:   Tue Sep 16 11:37:53 2014 +1000
Branches: master
https://developer.blender.org/rB13c5b0d54639123e7d35c1b3f71fc987ba78adef

Utility script to create release archive

- only include files known to git.
- includes all submodules.
- version extracted from BKE_blender.h for naming.
- MD5 checksum generated.
- 'make tbz' convenience target.

Script by Dan McGrath with own minor edits.

===================================================================

M	GNUmakefile
A	build_files/utils/build_tgz.sh
M	doc/python_api/sphinx_doc_gen.sh

===================================================================

diff --git a/GNUmakefile b/GNUmakefile
index 91d3aa1..fb38c8a 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -192,8 +192,8 @@ help:
 	@echo ""
 	@echo "Utilities (not associated with building blender)"
 	@echo "  * icons    - updates PNG icons from SVG files."
-	@echo "  * tbz      - create a compressed svn export 'blender_archive.tar.bz2'"
-	@echo "  * update   - updates git and all submodules
+	@echo "  * tgz      - create a compressed archive of the source code."
+	@echo "  * update   - updates git and all submodules"
 	@echo ""
 	@echo "Documentation Targets (not associated with building blender)"
 	@echo "  * doc_py   - generate sphinx python api docs"
@@ -361,11 +361,8 @@ check_descriptions:
 # Utilities
 #
 
-tbz:
-	svn export . blender_archive
-	tar cjf blender_archive.tar.bz2 blender_archive/
-	rm -rf blender_archive/
-	@echo "blender_archive.tar.bz2 written"
+tgz:
+	./build_files/utils/build_tgz.sh
 
 icons:
 	"$(BLENDER_DIR)/release/datafiles/blender_icons_update.py"
diff --git a/build_files/utils/build_tgz.sh b/build_files/utils/build_tgz.sh
new file mode 100755
index 0000000..577bdb4
--- /dev/null
+++ b/build_files/utils/build_tgz.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+# This script can run from any location,
+# output is created in the $CWD
+
+BASE_DIR="$PWD"
+
+blender_srcdir=$(dirname -- $0)/../..
+blender_version=$(grep "BLENDER_VERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
+blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
+blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
+blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
+
+if [ "$blender_version_cycle" = "release" ] ; then
+	VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)$blender_version_char
+else
+	VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)_$blender_subversion
+fi
+
+MANIFEST="blender-$VERSION-manifest.txt"
+TARBALL="blender-$VERSION.tar.gz"
+
+
+# Build master list
+echo -n "Building manifest of files:  \"$BASE_DIR/$MANIFEST\" ..."
+git ls-files > $BASE_DIR/$MANIFEST
+
+# Enumerate submodules
+for lcv in $(git submodule | cut -f2 -d" "); do
+	cd "$blender_srcdir/$lcv"
+	git ls-files | awk '$0="'"$lcv"/'"$0' >> $BASE_DIR/$MANIFEST
+done
+echo "OK"
+
+
+# Create the tarball
+cd "$blender_srcdir"
+echo -n "Creating archive:            \"$BASE_DIR/$TARBALL\" ..."
+GZIP=-9 tar --transform "s,^,blender-$VERSION/,g" -zcf "$BASE_DIR/$TARBALL" -T "$BASE_DIR/$MANIFEST"
+echo "OK"
+
+
+# Create checksum file
+cd "$BASE_DIR"
+echo -n "Createing checksum:          \"$BASE_DIR/$TARBALL.md5sum\" ..."
+md5sum "$TARBALL" > "$TARBALL.md5sum"
+echo "OK"
+
+
+# Cleanup
+echo -n "Cleaning up ..."
+rm "$BASE_DIR/$MANIFEST"
+echo "OK"
+
+echo "Done!"
diff --git a/doc/python_api/sphinx_doc_gen.sh b/doc/python_api/sphinx_doc_gen.sh
index e6ff02a..c8256a1 100755
--- a/doc/python_api/sphinx_doc_gen.sh
+++ b/doc/python_api/sphinx_doc_gen.sh
@@ -26,11 +26,11 @@ SSH_UPLOAD="/data/www/vhosts/www.blender.org/documentation" # blender_python_api
 # 'Blender 2.53 (sub 1) Build' --> '2_53_1' as a shell script.
 # "_".join(str(v) for v in bpy.app.version)
 # custom blender vars
-blender_srcdir=$(dirname $0)/../../
-blender_version=$(grep "BLENDER_VERSION\s" $blender_srcdir/source/blender/blenkernel/BKE_blender.h | awk '{print $3}')
-blender_version_char=$(grep BLENDER_VERSION_CHAR $blender_srcdir/source/blender/blenkernel/BKE_blender.h | awk '{print $3}')
-blender_version_cycle=$(grep BLENDER_VERSION_CYCLE $blender_srcdir/source/blender/blenkernel/BKE_blender.h | awk '{print $3}')
-blender_subversion=$(grep BLENDER_SUBVERSION $blender_srcdir/source/blender/blenkernel/BKE_blender.h | awk '{print $3}')
+blender_srcdir=$(dirname -- $0)/../..
+blender_version=$(grep "BLENDER_VERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
+blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
+blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
+blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
 
 if [ "$blender_version_cycle" = "release" ] ; then
 	BLENDER_VERSION=$(expr $blender_version / 100)_$(expr $blender_version % 100)$blender_version_char"_release"




More information about the Bf-blender-cvs mailing list