aboutsummaryrefslogtreecommitdiff
path: root/make_osx_package.sh
diff options
context:
space:
mode:
Diffstat (limited to 'make_osx_package.sh')
-rwxr-xr-xmake_osx_package.sh74
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"