diff options
Diffstat (limited to 'make_osx_package.sh')
-rwxr-xr-x | make_osx_package.sh | 74 |
1 files changed, 49 insertions, 25 deletions
diff --git a/make_osx_package.sh b/make_osx_package.sh index dcf06fad4..3e4317140 100755 --- a/make_osx_package.sh +++ b/make_osx_package.sh @@ -1,64 +1,88 @@ -#!/bin/sh -e +#!/bin/bash -e -DIST=osx_package +DIST=`pwd`/osx_package +SANDBOX=`pwd`/.cabal-sandbox VERSION=$(grep -e '^Version' pandoc.cabal | awk '{print $2}') RESOURCES=$DIST/Resources ROOT=$DIST/pandoc -SCRIPTS=osx-resources +DEST=$ROOT/usr/local +OSX=osx +SCRIPTS=$OSX/osx-resources BASE=pandoc-$VERSION -ME=jgm +ME=$(whoami) CODESIGNID="Developer ID Application: John Macfarlane" -PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker +PACKAGEMAKER=/Applications/PackageMaker.app/Contents/MacOS/PackageMaker +EXES="pandoc pandoc-citeproc" + +read -s -p "sudo password: " PASSWORD +echo $PASSWORD | sudo -S echo "Password valid, continuing." echo Removing old files... rm -rf $DIST mkdir -p $RESOURCES +cabal sandbox init +# echo Updating database +# cabal update + echo Building pandoc... -cabal-dev install-deps -cabal-dev install --reinstall --force-reinstalls --flags="embed_data_files" citeproc-hs -cabal-dev configure --prefix=/usr/local --datasubdir=$BASE --docdir=/usr/local/doc/$BASE -cabal-dev build -cabal-dev copy --destdir=$ROOT -# remove library files -rm -r $ROOT/usr/local/lib -chown -R $ME:staff $DIST +cabal clean +# Use cpphs to avoid problems with clang cpp on ghc 7.8 osx: +cabal install cpphs alex happy hsb2hs +cabal install --ghc-options="-optl-mmacosx-version-min=10.6" --reinstall --flags="embed_data_files" --ghc-options '-pgmPcpphs -optP--cpp' +cabal install --ghc-options="-optl-mmacosx-version-min=10.6" --reinstall --flags="embed_data_files" pandoc-citeproc --ghc-options '-pgmPcpphs -optP--cpp' -gzip $ROOT/usr/local/share/man/man?/*.* +mkdir -p $DEST/bin +mkdir -p $DEST/share/man/man1 +mkdir -p $DEST/share/man/man5 +for f in $EXES; do + cp $SANDBOX/bin/$f $DEST/bin/; + cp $SANDBOX/share/man/man1/$f.1 $DEST/share/man/man1/ +done +cp $SANDBOX/share/man/man5/pandoc_markdown.5 $DEST/share/man/man5/ + +chown -R $ME:staff $DIST +# gzip $DEST/share/man/man?/*.* # cabal gives man pages the wrong permissions -chmod +r $ROOT/usr/local/share/man/man?/*.* +chmod +r $DEST/share/man/man?/*.* echo Copying license... -dist/build/pandoc/pandoc --data data -t rtf -s COPYING -o $RESOURCES/License.rtf +$SANDBOX/bin/pandoc --data data -t rtf -s COPYING -o $RESOURCES/License.rtf echo Signing pandoc executable... -codesign --force --sign "$CODESIGNID" $ROOT/usr/local/bin/pandoc +codesign --force --sign "$CODESIGNID" $DEST/bin/pandoc # make sure it's valid... returns nonzero exit code if it isn't: -spctl --assess --type execute $ROOT/usr/local/bin/pandoc +spctl --assess --type execute $DEST/bin/pandoc echo Creating OSX package... +# remove old package first +echo $PASSWORD | sudo -S rm -rf $BASE.pkg $BASE.dmg sudo $PACKAGEMAKER \ --root $ROOT \ --id net.johnmacfarlane.pandoc \ --resources $RESOURCES \ --version $VERSION \ - --no-relocate \ --scripts $SCRIPTS \ --out $BASE.pkg + # --no-relocate + echo Signing package... sudo codesign --force --sign "$CODESIGNID" $BASE.pkg # make sure it's valid... spctl --assess --type install $BASE.pkg -echo Creating disk image... +echo Creating zip... +zip -9 -r $BASE-osx.zip $BASE.pkg +zip -9 -j -r $BASE-osx.zip $OSX/uninstall-pandoc.pl -sudo hdiutil create "$BASE.dmg" \ - -format UDZO -ov \ - -volname "pandoc $VERSION" \ - -srcfolder $BASE.pkg -sudo hdiutil internet-enable "$BASE.dmg" +# echo Creating disk image... +# sudo hdiutil create "$BASE.dmg" \ +# -format UDZO -ov \ +# -volname "pandoc $VERSION" \ +# -srcfolder $BASE.pkg +# sudo hdiutil internet-enable "$BASE.dmg" |