Merge pull request #146 from warner/versioned-osx-pkg

put a version string in the name of the OS-X .pkg file
This commit is contained in:
Daira Hopwood 2015-03-24 16:11:30 +00:00
commit 610ba0e69b
3 changed files with 39 additions and 26 deletions

View File

@ -33,36 +33,16 @@ build:
touch .built
# Build OS X pkg packages.
# The editing of .egg-link and .pth files ensures that we reference the source at the correct path.
.PHONY: build-osx-pkg
.PHONY: build-osx-pkg test-osx-pkg upload-osx-pkg
build-osx-pkg: build
find support -name $(APPNAME).egg-link -execdir sh -c "echo >> {}; echo /Applications/tahoe.app/src >> {}" \;
find support -name easy-install.pth -execdir sed -i.bak 's|^.*/src$$|../../../../src|' '{}' \;
misc/build_helpers/build-osx-pkg.sh $(APPNAME) $(shell sh -c "cat src/allmydata/_version.py | grep verstr | head -n 1 | cut -d' ' -f 3")
# create component pkg
pkgbuild --root $(shell pwd) \
--identifier com.leastauthority.tahoe \
--version $(shell sh -c "cat src/allmydata/_version.py | grep verstr | head -n 1 | cut -d' ' -f 3") \
--ownership recommended \
--install-location /Applications/tahoe.app \
--scripts $(shell pwd)/misc/build_helpers/osx/scripts \
tahoe-lafs.pkg
# create product archive
productbuild --distribution $(shell pwd)/misc/build_helpers/osx/Distribution.xml \
--package-path . \
tahoe-lafs-osx.pkg
# remove intermediate pkg
rm -f tahoe-lafs.pkg
# test the result
test-osx-pkg:
$(PYTHON) misc/build_helpers/test-osx-pkg.py
.PHONY: upload-osx-pkg
upload-osx-pkg:
@if [ "X${BB_BRANCH}" = "Xmaster" ] || [ "X${BB_BRANCH}" = "X" ]; then \
flappclient --furlfile ~/.tahoe-osx-pkg-upload.furl upload-file tahoe-lafs-osx.pkg; \
flappclient --furlfile ~/.tahoe-osx-pkg-upload.furl upload-file tahoe-lafs-*-osx.pkg; \
else \
echo not uploading tahoe-lafs-osx-pkg because this is not trunk but is branch \"${BB_BRANCH}\" ; \
fi

View File

@ -0,0 +1,29 @@
#!/bin/sh
APPNAME=$1
VERSION=$2
PWD=`pwd`
# The editing of allmydata-tahoe.egg-link and easy-install.pth files
# (*in-place*) ensures that we reference the source at the correct path,
# removing the hard-coded local source tree directory names.
#
find support -name $APPNAME.egg-link -execdir sh -c "echo >> {}; echo /Applications/tahoe.app/src >> {}" \;
find support -name easy-install.pth -execdir sed -i.bak 's|^.*/src$|../../../../src|' '{}' \;
# create component pkg
pkgbuild --root $PWD \
--identifier com.leastauthority.tahoe \
--version $VERSION \
--ownership recommended \
--install-location /Applications/tahoe.app \
--scripts $PWD/misc/build_helpers/osx/scripts \
tahoe-lafs.pkg
# create product archive
productbuild --distribution $PWD/misc/build_helpers/osx/Distribution.xml \
--package-path . \
tahoe-lafs-$VERSION-osx.pkg
# remove intermediate pkg
rm -f tahoe-lafs.pkg

View File

@ -85,7 +85,11 @@ def test_osx_pkg(pkgfile):
if __name__ == '__main__':
print "Testing..."
test_osx_pkg('tahoe-lafs-osx.pkg')
pkgs = [fn for fn in os.listdir(".") if fn.endswith("-osx.pkg")]
if len(pkgs) != 1:
print "ERR: unable to find a single .pkg file:", pkgs
sys.exit(1)
print "Testing %s ..." % pkgs[0]
test_osx_pkg(pkgs[0])
print "Looks OK!"