diff --git a/sources/PDFfolder.iconset/icon_128x128.png b/sources/PDFfolder.iconset/icon_128x128.png new file mode 100644 index 0000000..3079b33 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_128x128.png differ diff --git a/sources/PDFfolder.iconset/icon_128x128@2x.png b/sources/PDFfolder.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..c67cc80 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_128x128@2x.png differ diff --git a/sources/PDFfolder.iconset/icon_16x16.png b/sources/PDFfolder.iconset/icon_16x16.png new file mode 100644 index 0000000..0d54f63 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_16x16.png differ diff --git a/sources/PDFfolder.iconset/icon_16x16@2x.png b/sources/PDFfolder.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..441707f Binary files /dev/null and b/sources/PDFfolder.iconset/icon_16x16@2x.png differ diff --git a/sources/PDFfolder.iconset/icon_256x256.png b/sources/PDFfolder.iconset/icon_256x256.png new file mode 100644 index 0000000..ffc9b87 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_256x256.png differ diff --git a/sources/PDFfolder.iconset/icon_256x256@2x.png b/sources/PDFfolder.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..6cfb0b5 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_256x256@2x.png differ diff --git a/sources/PDFfolder.iconset/icon_32x32.png b/sources/PDFfolder.iconset/icon_32x32.png new file mode 100644 index 0000000..aff7800 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_32x32.png differ diff --git a/sources/PDFfolder.iconset/icon_32x32@2x.png b/sources/PDFfolder.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..fbd7e0d Binary files /dev/null and b/sources/PDFfolder.iconset/icon_32x32@2x.png differ diff --git a/sources/PDFfolder.iconset/icon_512x512.png b/sources/PDFfolder.iconset/icon_512x512.png new file mode 100644 index 0000000..ee24ac0 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_512x512.png differ diff --git a/sources/PDFfolder.iconset/icon_512x512@2x.png b/sources/PDFfolder.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..58f0229 Binary files /dev/null and b/sources/PDFfolder.iconset/icon_512x512@2x.png differ diff --git a/sources/PDFwriter.iconset/icon_128x128.png b/sources/PDFwriter.iconset/icon_128x128.png index f5bfa3f..e080131 100644 Binary files a/sources/PDFwriter.iconset/icon_128x128.png and b/sources/PDFwriter.iconset/icon_128x128.png differ diff --git a/sources/PDFwriter.iconset/icon_128x128@2x.png b/sources/PDFwriter.iconset/icon_128x128@2x.png index ef111b4..6a84883 100644 Binary files a/sources/PDFwriter.iconset/icon_128x128@2x.png and b/sources/PDFwriter.iconset/icon_128x128@2x.png differ diff --git a/sources/PDFwriter.iconset/icon_16x16.png b/sources/PDFwriter.iconset/icon_16x16.png index bf29e30..0475d90 100644 Binary files a/sources/PDFwriter.iconset/icon_16x16.png and b/sources/PDFwriter.iconset/icon_16x16.png differ diff --git a/sources/PDFwriter.iconset/icon_16x16@2x.png b/sources/PDFwriter.iconset/icon_16x16@2x.png index 9d27deb..8c619dc 100644 Binary files a/sources/PDFwriter.iconset/icon_16x16@2x.png and b/sources/PDFwriter.iconset/icon_16x16@2x.png differ diff --git a/sources/PDFwriter.iconset/icon_256x256.png b/sources/PDFwriter.iconset/icon_256x256.png index ef111b4..3a6fb11 100644 Binary files a/sources/PDFwriter.iconset/icon_256x256.png and b/sources/PDFwriter.iconset/icon_256x256.png differ diff --git a/sources/PDFwriter.iconset/icon_256x256@2x.png b/sources/PDFwriter.iconset/icon_256x256@2x.png index 3670ac0..3c1746b 100644 Binary files a/sources/PDFwriter.iconset/icon_256x256@2x.png and b/sources/PDFwriter.iconset/icon_256x256@2x.png differ diff --git a/sources/PDFwriter.iconset/icon_32x32.png b/sources/PDFwriter.iconset/icon_32x32.png index 9d27deb..1a04a70 100644 Binary files a/sources/PDFwriter.iconset/icon_32x32.png and b/sources/PDFwriter.iconset/icon_32x32.png differ diff --git a/sources/PDFwriter.iconset/icon_32x32@2x.png b/sources/PDFwriter.iconset/icon_32x32@2x.png index 7b90b5f..8425ebf 100644 Binary files a/sources/PDFwriter.iconset/icon_32x32@2x.png and b/sources/PDFwriter.iconset/icon_32x32@2x.png differ diff --git a/sources/PDFwriter.iconset/icon_512x512.png b/sources/PDFwriter.iconset/icon_512x512.png index 3670ac0..ebd3e03 100644 Binary files a/sources/PDFwriter.iconset/icon_512x512.png and b/sources/PDFwriter.iconset/icon_512x512.png differ diff --git a/sources/PDFwriter.iconset/icon_512x512@2x.png b/sources/PDFwriter.iconset/icon_512x512@2x.png index 00c334a..86e38ce 100644 Binary files a/sources/PDFwriter.iconset/icon_512x512@2x.png and b/sources/PDFwriter.iconset/icon_512x512@2x.png differ diff --git a/sources/PDFwriterFolder.icns b/sources/PDFwriterFolder.icns deleted file mode 100644 index 85f50f2..0000000 Binary files a/sources/PDFwriterFolder.icns and /dev/null differ diff --git a/sources/buildscript.sh b/sources/buildscript.sh index 60ee1c6..91fb6b5 100755 --- a/sources/buildscript.sh +++ b/sources/buildscript.sh @@ -6,12 +6,15 @@ # Created by Rodney I. Yager on 27.05.16 # Copyright 2016 Rodney I. Yager. All rights reserved -signstring="" + +PDFWRITERDIR="pkgroot/Library/Printers/RWTS/PDFwriter" +PPDDIR="pkgroot/Library/Printers/PPDs/Contents/Resources" +PPDFILE="RWTS PDFwriter" while getopts s: opt; do case ${opt} in s) - signstring=${OPTARG} + SIGNSTRING=${OPTARG} ;; *) echo "usage: buildscript [-s \"\"]" @@ -22,64 +25,58 @@ done cd "$(dirname "$0")" echo "#### making directory structure" -mkdir temp temp/pkgroot -cd temp -mkdir -m 775 pkgroot/Library pkgroot/Library/Printers pkgroot/Library/Printers/RWTS -mkdir -m 755 pkgroot/Library/Printers/RWTS/PDFwriter pkgroot/Library/Printers/PPDs pkgroot/Library/Printers/PPDs/Contents pkgroot/Library/Printers/PPDs/Contents/Resources pkgroot/Users +mkdir pkgroot resources scripts +mkdir -m 775 pkgroot/Library pkgroot/Library/Printers pkgroot/Library/Printers/RWTS +mkdir -m 755 $PDFWRITERDIR pkgroot/Library/Printers/PPDs pkgroot/Library/Printers/PPDs/Contents $PPDDIR pkgroot/Users mkdir -m 775 pkgroot/Users/Shared -mkdir resources scripts + echo "#### populating directory structure" -iconutil -c icns -o pkgroot/Library/Printers/RWTS/PDFwriter/PDFwriter.icns ../PDFwriter.iconset -cp ../PDFwriterFolder.icns pkgroot/Library/Printers/RWTS/PDFwriter/ -clang -Oz -o pkgroot/Library/Printers/RWTS/PDFwriter/pdfwriter -framework appkit ../pdfwriter.m -cp ../uninstall.sh pkgroot/Library/Printers/RWTS/PDFwriter/uninstall.sh -gzip -c ../RWTS\ PDFwriter.ppd > pkgroot/Library/Printers/PPDs/Contents/Resources/RWTS\ PDFwriter.gz +iconutil -c icns -o $PDFWRITERDIR/PDFwriter.icns PDFwriter.iconset +iconutil -c icns -o $PDFWRITERDIR/PDFfolder.icns PDFfolder.iconset +clang -Oz -o $PDFWRITERDIR/pdfwriter -framework appkit -arch x86_64 -mmacosx-version-min=10.9 pdfwriter.m +cp uninstall.sh $PDFWRITERDIR/uninstall.sh +gzip -c "$PPDFILE".ppd > $PPDDIR/"$PPDFILE".gz ln -s /var/spool/pdfwriter pkgroot/Users/Shared/PDFwriter -chmod 700 pkgroot/Library/Printers/RWTS/PDFwriter/pdfwriter -chmod 755 pkgroot/Library/Printers/RWTS/PDFwriter/uninstall.sh # will be root:admin 750 after postinstall, but this will be ok if permissions are "repaired" -chmod 644 pkgroot/Library/Printers/PPDs/Contents/Resources/RWTS\ PDFwriter.gz +chmod 700 $PDFWRITERDIR/pdfwriter +chmod 755 $PDFWRITERDIR/uninstall.sh # will be root:admin 750 after postinstall, but this will be ok if permissions are "repaired" +chmod 644 $PPDDIR/"$PPDFILE".gz -cp ../PDFWriter.iconset/icon_256x256.png resources/background.png -cp ../../License resources/ -cp ../postinstall ../preinstall scripts/ +cp PDFWriter.iconset/icon_256x256.png resources/background.png +cp ../License resources/ +cp postinstall preinstall scripts/ echo "#### building installer package" pkgbuild --root pkgroot --identifier au.rwts.pdfwriter --ownership recommended --scripts scripts --version 1.0 pdfwriter.pkg echo "#### building distribution file" -productbuild --synthesize --resources resources --product ../requirements --package pdfwriter.pkg distribution.dist +productbuild --synthesize --resources resources --product requirements --package pdfwriter.pkg distribution.dist -sed -i "" '3 a\ -\ RWTS PDFwriter -' distribution.dist -sed -i "" '4 a\ -\ -' distribution.dist -sed -i "" '5 a\ +sed -i '' '3 a\ +\ RWTS PDFwriter\ +\ \ \ - ' distribution.dist +' distribution.dist echo "#### building product" -productbuild --distribution distribution.dist --resources resources --product requirements temp.pkg +productbuild --distribution distribution.dist --resources resources --product requirements product.pkg -# Have to add to installer separately as productbuild can't handle rtfd resources -pkgutil --expand temp.pkg temp-expanded -sed -i "" '6 a\ +# Have to add README to installer separately as productbuild can't handle rtfd resources +pkgutil --expand product.pkg expanded +sed -i '' '6 a\ \ - ' temp-expanded/Distribution +' expanded/Distribution -cp -r ../README.rtfd temp-expanded/Resources/ -pkgutil --flatten temp-expanded temp2.pkg +cp -r README.rtfd expanded/Resources/ +pkgutil --flatten expanded RWTS-PDFwriter.pkg -if [ "$signstring" != "" ]; then echo "#### signing product"; productsign --sign "$signstring" temp2.pkg ../../RWTS-PDFwriter.pkg -else mv temp2.pkg ../../RWTS-PDFwriter.pkg; fi +if [ "$SIGNSTRING" ]; then echo "#### signing product"; productsign --sign "$SIGNSTRING" RWTS-PDFwriter.pkg ../RWTS-PDFwriter.pkg +else mv RWTS-PDFwriter.pkg ../RWTS-PDFwriter.pkg; fi echo "#### cleaning up" -cd .. -rm -r temp +rm -r pkgroot resources scripts expanded *.pkg distribution.dist exit 0 diff --git a/sources/pdfwriter.m b/sources/pdfwriter.m index db10cb0..4a4ca4b 100644 --- a/sources/pdfwriter.m +++ b/sources/pdfwriter.m @@ -1,3 +1,12 @@ +/* pdfwriter.m + * + * (c) 2016 Rodney I. Yager + * GPL version 2 or later + * + * Principal change from earlier versions in the addition of an icon to the user spool folder. + * +*/ + /* pdfwriter.c * * PDFwriter is a CUPS backend for Mac OS X to save a document as PDF file @@ -207,7 +216,7 @@ static int create_userdir(struct passwd *passwd, char *userdirname) { } // set icon for userdirname - [NSWorkspace.sharedWorkspace setIcon:[NSImage.alloc initByReferencingFile:@"/Library/Printers/RWTS/PDFwriter/PDFwriterFolder.icns"] forFile:[NSString stringWithUTF8String:dirname] options:NSExcludeQuickDrawElementsIconCreationOption]; + [NSWorkspace.sharedWorkspace setIcon:[NSImage.alloc initByReferencingFile:@"/Library/Printers/RWTS/PDFwriter/PDFfolder.icns"] forFile:[NSString stringWithUTF8String:dirname] options:NSExcludeQuickDrawElementsIconCreationOption]; log_event(CPDEBUG, "output directory created", dirname);