diff --git a/.gitignore b/.gitignore
index 6ca86609164e29ff46c7c6a9b9e49002966f9e9e..9774ad62aa44501c3b900a9a8dda8c64b98c656d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
 .eggs
 build
 dist
+env
 *.egg-info
-*.sw?
\ No newline at end of file
+*.sw?
+version.txt
diff --git a/MANIFEST.in b/MANIFEST.in
index bc8352c8fd312aa7e97ba839b07358e382372a5a..0b008802be4b67d267caecccd8a3ee806fef28a4 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1 +1 @@
-include edosl0util/.repostate
+include edosl0util/version.txt
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000000000000000000000000000000000000..56fe7db1381f30dcf37de562b449f00baef08ee9
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+function sdist() {
+version=$(grep version setup.py | sed 's/.*version=["\x27]//g;s/[\x27"].*//g')
+cat <<EOF > edosl0util/version.txt
+__version__ = '${version}'
+__githash__ = '$(git log --format="%H" | head -n 1)'
+__patch__ = """$(git diff)"""
+EOF
+python setup.py $@ 
+}
+
+if [ -z $1 ]
+then
+    echo "USAGE: $0 sdist"
+fi
+
+case $1 in
+    sdist)
+        sdist $@
+        ;;
+    *)
+        ;;
+esac
diff --git a/edosl0util/__init__.py b/edosl0util/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8b93517946d7ae814cf295ccc3367503f2e0ca51 100644
--- a/edosl0util/__init__.py
+++ b/edosl0util/__init__.py
@@ -0,0 +1,6 @@
+import os
+version = os.path.join(os.path.split(__file__)[0], 'version.txt')
+if os.path.exists(version):
+    execfile(version)
+del os
+del version
diff --git a/setup.py b/setup.py
index 43ab8f9867b53eab1e2f4dbec26fdeda7f838f80..35a5aa280c119343106991de090dc5407bef5ca4 100644
--- a/setup.py
+++ b/setup.py
@@ -4,6 +4,7 @@ setup(
     name='EdosL0Util',
     description='Utilities for working with EDOS L0 PDS files',
     version='0.4.dev8',
+    zip_safe=False,
     packages=find_packages(),
     install_requires=[
         'h5py',