return ''
+def checkMacOSappInstalled(prog):
+ '''
+ Use metadata lookup to search for an "installed" macOS application bundle.
+ '''
+ if sys.platform == 'darwin' and len(prog) >= 1:
+ command = r'mdfind "kMDItemContentTypeTree == \"com.apple.application\"c && kMDItemFSName == \"%s\""' % prog
+ result = cmdOutput(command)
+ logger.debug(command + ": " + result)
+ return result != ''
+ return False
+
+
def checkProgAlternatives(description, progs, rc_entry=None,
alt_rc_entry=None, path=None, not_found=''):
'''
continue
msg = '+checking for "' + ac_word + '"... '
found_alt = False
+ if len(alt_rc_entry) >= 1 and ac_word.endswith('.app') and checkMacOSappInstalled(ac_word):
+ logger.info('+add alternative app ' + ac_word)
+ addToRC(alt_rc_entry[0].replace('%%', ac_word))
+ found_alt = True
for ac_dir in path:
if hasattr(os, "access") and not os.access(ac_dir, os.F_OK):
continue
checkViewer('a PDF previewer',
['pdfview', 'kpdf', 'okular', 'qpdfview --unique',
'evince', 'xreader', 'kghostview', 'xpdf', 'SumatraPDF',
- 'acrobat', 'acroread', 'mupdf',
+ 'acrobat', 'acroread', 'mupdf', 'Skim.app',
'gv', 'ghostview', 'AcroRd32', 'gsview64', 'gsview32'],
rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" "" "document,vector,menu=export" ""
\Format pdf2 pdf "PDF (pdflatex)" F "%%" "" "document,vector,menu=export" ""
# Only define a converter from pdf6 for graphics
checkProg('a PDF to EPS converter', ['pdftops -eps -f 1 -l 1 $$i $$o'],
rc_entry = [ r'\converter pdf6 eps "%%" ""' ])
- # Define a converter from pdf6 to png for Macs where pdftops is missing.
+ # sips:Define a converter from pdf6 to png for Macs where pdftops is missing.
# The converter utility sips allows to force the dimensions of the resulting
# png image. The value of 800 pixel for the width is arbitrary and not
# related to the current screen resolution or width.
# There is no converter parameter for this information.
+ #
+ #pdftoppm: Some systems ban IM eps->png conversion. We will offer eps->pdf->png route instead.
checkProg('a PDF to PNG converter',
- ['sips --resampleWidth 800 --setProperty format png $$i --out $$o'],
+ ['sips --resampleWidth 800 --setProperty format png $$i --out $$o' , 'pdftoppm -r 72 -png -singlefile $$i > $$o'],
rc_entry = [ r'\converter pdf6 png "%%" ""' ])
# Create one converter for a PDF produced using TeX fonts and one for a
# PDF produced using non-TeX fonts. This does not produce non-unique
checkProg('an EPS -> PDF converter', ['epstopdf'],
rc_entry = [ r'\converter eps pdf6 "epstopdf --outfile=$$o $$i" ""'])
#
- checkProg('an EPS -> PNG converter', ['magick $$i[0] $$o', 'convert $$i[0] $$o'],
- rc_entry = [ r'\converter eps png "%%" ""'])
+ # Due to more restrictive policies, it is possible that (image)magick
+ # does not allow conversions from eps to png.
+ # So before setting the converter test it it on a mock file
+ _, cmd = checkProg('an EPS -> PNG converter', ['magick', 'convert'])
+ if cmd:
+ writeToFile('mock.eps', r'%!PS')
+ try:
+ subprocess.check_call([cmd, "mock.eps", "mock.png"])
+ removeFiles(['mock.eps', 'mock.png'])
+ rc_entry = r'\converter eps png "%s $$i[0] $$o" ""'
+ addToRC(rc_entry % cmd)
+ except:
+ removeFiles(['mock.eps'])
+ #needs empty record otherwise default converter will be issued
+ rc_entry = r'\converter eps png "" ""'
+ addToRC(rc_entry)
+ logger.info('ImageMagick seems to ban conversions from EPS. Disabling direct EPS->PNG.')
#
# no agr -> pdf6 converter, since the pdf library used by gracebat is not
# free software and therefore not compiled in in many installations.
lyx_check_config = True
lyx_kpsewhich = True
outfile = 'lyxrc.defaults'
- lyxrc_fileformat = 36
+ lyxrc_fileformat = 37
rc_entries = ''
lyx_keep_temps = False
version_suffix = ''