From 2249b433e79d7f6a39723c283f189fd38e383c67 Mon Sep 17 00:00:00 2001 From: Julien Rioux Date: Tue, 20 Sep 2011 18:29:18 +0000 Subject: [PATCH] * configure.py : Detect java and perl scripts in a general way. - Fix the detection of htmltolatex (#6339). - Fix the detection of splitindex (#7579). - Fix the detection of jfig3-itext and jfig3. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@39716 a592a061-630c-0410-9148-cb99ea01b6c8 --- lib/configure.py | 42 +++++++++++++++++++++++++++++++++--------- status.20x | 6 ++++++ 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/lib/configure.py b/lib/configure.py index 7e989a3ea8..d9e1960f62 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -170,10 +170,15 @@ def checkProg(description, progs, rc_entry = [], path = [], not_found = ''): sys.exit(2) logger.info('checking for ' + description + '...') ## print '(' + ','.join(progs) + ')', + global java, perl for idx in range(len(progs)): # ac_prog may have options, ac_word is the command name ac_prog = progs[idx] ac_word = ac_prog.split(' ')[0] + if (ac_word.endswith('.class') or ac_word.endswith('.jar')) and java == '': + continue + if ac_word.endswith('.pl') and perl == '': + continue msg = '+checking for "' + ac_word + '"... ' path = os.environ["PATH"].split(os.pathsep) + path extlist = [''] @@ -183,6 +188,13 @@ def checkProg(description, progs, rc_entry = [], path = [], not_found = ''): for ext in extlist: if os.path.isfile( os.path.join(ac_dir, ac_word + ext) ): logger.info(msg + ' yes') + # deal with java and perl + if ac_word.endswith('.class'): + ac_prog = ac_prog.replace(ac_word, r'%s \"%s\"' % (java, os.path.join(ac_dir, ac_word[:-6]))) + elif ac_word.endswith('.jar'): + ac_prog = ac_prog.replace(ac_word, r'%s -jar \"%s\"' % (java, os.path.join(ac_dir, ac_word))) + elif ac_word.endswith('.pl'): + ac_prog = ac_prog.replace(ac_word, r'%s -w \"%s\"' % (perl, os.path.join(ac_dir, ac_word))) # write rc entries for this command if len(rc_entry) == 1: addToRC(rc_entry[0].replace('%%', ac_prog)) @@ -211,10 +223,15 @@ def checkProgAlternatives(description, progs, rc_entry = [], alt_rc_entry = [], found_prime = False real_ac_dir = '' real_ac_word = not_found + global java, perl for idx in range(len(progs)): # ac_prog may have options, ac_word is the command name ac_prog = progs[idx] ac_word = ac_prog.split(' ')[0] + if (ac_word.endswith('.class') or ac_word.endswith('.jar')) and java == '': + continue + if ac_word.endswith('.pl') and perl == '': + continue msg = '+checking for "' + ac_word + '"... ' path = os.environ["PATH"].split(os.pathsep) + path extlist = [''] @@ -227,6 +244,13 @@ def checkProgAlternatives(description, progs, rc_entry = [], alt_rc_entry = [], logger.info(msg + ' yes') pr = re.compile(r'(\\\S+)(.*)$') m = None + # deal with java and perl + if ac_word.endswith('.class'): + ac_prog = ac_prog.replace(ac_word, r'%s \"%s\"' % (java, os.path.join(ac_dir, ac_word[:-6]))) + elif ac_word.endswith('.jar'): + ac_prog = ac_prog.replace(ac_word, r'%s -jar \"%s\"' % (java, os.path.join(ac_dir, ac_word))) + elif ac_word.endswith('.pl'): + ac_prog = ac_prog.replace(ac_word, r'%s -w \"%s\"' % (perl, os.path.join(ac_dir, ac_word))) # write rc entries for this command if found_prime == False: if len(rc_entry) == 1: @@ -275,13 +299,13 @@ def addViewerAlternatives(rcs): if len(rcs) == 1: m = r.match(rcs[0]) if m: - alt = r'\viewer_alternatives ' + m.group(1) + " %%" + alt = r'\viewer_alternatives ' + m.group(1) + ' "%%"' elif len(rcs) > 1: m = r.match(rcs[idxx]) if m: if idxx > 0: alt += '\n' - alt += r'\viewer_alternatives ' + m.group(1) + " %%" + alt += r'\viewer_alternatives ' + m.group(1) + ' "%%"' return alt @@ -687,8 +711,8 @@ def checkConverterEntries(): checkProg('a Sweave -> R/S code converter', ['Rscript --verbose --no-save --no-restore $$s/scripts/lyxstangle.R $$i $$e $$r'], rc_entry = [ r'\converter sweave r "%%" ""' ]) # - checkProg('an HTML -> LaTeX converter', ['html2latex $$i', 'gnuhtml2latex $$i', \ - 'htmltolatex -input $$i -output $$o', 'java -jar htmltolatex.jar -input $$i -output $$o'], + checkProg('an HTML -> LaTeX converter', ['html2latex $$i', 'gnuhtml2latex $$i', + 'htmltolatex -input $$i -output $$o', 'htmltolatex.jar -input $$i -output $$o'], rc_entry = [ r'\converter html latex "%%" ""' ]) # checkProg('an MS Word -> LaTeX converter', ['wvCleanLatex $$i $$o'], @@ -993,11 +1017,8 @@ def checkOtherEntries(): alt_rc_entry = [ r'\index_alternatives "%%"' ]) checkProg('an index processor appropriate to Japanese', ['mendex -c -q', 'jmakeindex -c -q', 'makeindex -c -q'], rc_entry = [ r'\jindex_command "%%"' ]) - path, splitindex = checkProg('the splitindex processor', ['splitindex.pl', 'splitindex'], - rc_entry = [ r'\splitindex_command "%%"' ]) - if splitindex == '': - checkProg('the splitindex processor (java version)', ['splitindex.class'], - rc_entry = [ r'\splitindex_command "java splitindex"' ]) + checkProg('the splitindex processor', ['splitindex.pl', 'splitindex', + 'splitindex.class'], rc_entry = [ r'\splitindex_command "%%"' ]) checkProg('a nomenclature processor', ['makeindex'], rc_entry = [ r'\nomencl_command "makeindex -s nomencl.ist"' ]) ## FIXME: OCTAVE is not used anywhere @@ -1391,6 +1412,9 @@ Format %i ''' % lyxrc_fileformat) # check latex LATEX = checkLatex(dtl_tools) + # check java and perl before any checkProg that may require them + java = checkProg('a java interpreter', ['java'])[1] + perl = checkProg('a perl interpreter', ['perl'])[1] checkFormatEntries(dtl_tools) checkConverterEntries() (chk_docbook, bool_docbook, docbook_cmd) = checkDocBook() diff --git a/status.20x b/status.20x index 40cddb1f80..b65dd8895f 100644 --- a/status.20x +++ b/status.20x @@ -116,3 +116,9 @@ What's new - Fix compile error with gcc 4.5.3 when using the included mythes library. - Fix the detection of the tex2lyx converter (bug 3308). + +- Fix the detection of htmltolatex (bug 6339). + +- Fix the detection of splitindex (bug 7579). + +- Fix the detection of jfig3-itext, jfig3. -- 2.39.5