This patch improves the cmake bundling process:
- reworked bundle handling for OS X: only when installing resources are copied, otherwise
only the smallest bundle is built
- on OS X, the utility programs (tex2lyx) are now installed in the right location
- it removes some unneeded BUNDLE DESTINATION
- it provides a basic support for QT plugins inclusion
- it properly builds a disk image on OS X (only the background image is missing)
- it fixes the library paths for all executables (not only LyX)
- Use the COPYING file for cmake install license
These started failing after we implemented tests for formats
that are in the complement set to the default format (7ecbb068).
It might be worth it in the future to take a look at each individually
and see whether they are supposed to fail or if there is something LyX
can do to add support for exporting them.
As discussed with Vincent I added 3 new features:
* LyX can now also be installed over an existing installation of the same LyX version if the users really wants this.
(A message box appears recommending not to do so for test releases and when there are problems with an existing installation of the same release.)
* LyX can now also be installed if the uninstaller executable of a former LyX was accidentally deleted.
(That this case was not handled was more a bug. Thanks Vicent for the pointer.)
* If a user set MiKTeX's automatic package installation to "No" the installer will.
(As discussed with Vincent, if a user has disabled this MiKTeX feature he most probably know the consequences. So respect his decision.)
respect that and not re-enable it.
I would be happy if anybody can spend a translation of the changed installer message.
- known problem: if LyX 2.0.x is installed and you install 2.1rc1, the .lyx file associations will not be updated but if LyX 2.1 is installed on a new PC the file associations work (work is in progress)
Define new policy of what export formats to check.
Depending on default_output_format
default or unset xhtml, dvi*, pdf*
xhtml xhtml
any of pfd variants xhtml, pdf*
any of dvi variants xhtml, dvi*
each other (like eps3) as specified
- it turned out that the hack to install a stripped-down Perl directly to MiKTEX is not only error-prone, requires admin permission but that it is also not safe because MiKTeX changes the folder structure from time to time. With the new solution Perl is installed directly for LyX like we do for ImageMagick, Python etc.
- for pdfcrop support there is a bug in pdfcriop that the requirement is hardcoded to Ghostscript 32bit - I contacted the pdfcrop author to fix this
This test was broken after wrap-around search was implemented. From
what I understand, the point of the test is that search should _not_
match in this case because "ignore format" is checked by default.
Thus, a new way of testing that there was no match is to check whether
the wrap around message shows up, because the cursor is initially at
the beginning so that would mean that the entire buffer was checked.
I confirmed that the test now works by checking that it passes and
checking that it fails if "ignore format" is unchecked. Although this
test is still fragile, it is fragile in a conservative way (i.e. it
will give false failures rather than false passes). It will fail if
the Italian translation changes, if "ignore format" is unchecked by
default, or if the wrap-around mechanism changes (e.g. does not ask if
the cursor started at the beginning of the buffer).
The tqrget now works properly when out of source directory qnd uses the $(PYTHON) variable. Also, the use of the error() function has been fixed in the gen_lfun.py script.
This target will update the gmo files if and only if the associated
po-file is modified. To determine whether a file is modified, 'git
status --porcelain' is used.
This follows up on commit 06782542.
This patch changes the user agent and results in the openoffice.org
tests correctly passing. Before, they would give the following error:
Failed, caught error: Status read failed: Connection reset by peer
All the other tests work as before.
Kornel and I are not sure why this change works.
If a perl-submodule exits with 'die()', the process would stop
and the following urls would not be tested.
The bug detection and idea how to solve it: Scott Kostyshak.
The JASATeX class is currently unmaintained. Also, this
commit moves the system font tests from inverted to ignored
(otherwise lualatex and xelatex run in infinite loops).
For many of these XeTeX or LuaTeX does not yet support
using TeX fonts for certain languages. The others fail
because, as Jürgen explains, they have excessive preamble
code that is only targeted at (pdf)latex.
Citing Scott:
In our current set up, we are currently testing XeTeX and LuaTeX
either with system fonts or with TeX fonts but never both. We should
test with both in my opinion. We will have to ignore/invert many tests
but it still seems useful. For example Günter fixed babel-greek so
that it works now with TeX fonts; and Jürgen found some errors in LyX
that were causing some of the English docs to fail with system fonts.
Currently we only test greek documents with system fonts and we only
test English documents with TeX fonts.
This change adds the missing test-cases.
See (thanks to Uwe for the link):
ccb0e9e2c6
We thus invert the LuaTeX Farsi tests.
All inverted tests now have explanations for why they are not
currently expected to work.
We can now test for regressions in the Greek docs for
XeTeX and LuaTeX export with FreeSans.
(Also some Indonesian tests were missing from revertedTests.)
As Kornel has explained:
There is an incompatibility between luainputenc.sty and ectaart.cls.
luainputenc.sty loads luatex.sty. Both files (luatex.sty and
ectaart.cls) define the latex-command \setattribute.
These tests should be inverted because the conflict may one day be
resolved at which point we can begin testing for regressions.
(This commit also rearranges the europeCV lines to below the
corresponding explanation comment.)
Export with XeTeX and LuaTeX (with either non-tex fonts or 8-bit
compatibility mode) does not work because the loading of inputenc with
utf8x is hardcoded in europecv.cls at this time.
This commit adds a note to es/europeCV.lyx explaining the problem and
inverts the XeTeX and LuaTeX tests.
See
http://comments.gmane.org/gmane.editors.lyx.devel/145896
Thanks to Günter Milde for the advice and to Ignacio García
for the translation of the note.
This is a manual lyx2lyx fix. Some of the problematic chunks
are not correctly converted with lyx2lyx so this commit manually
converts them to ERT.
For more details, see:
http://marc.info/?t=137702744100010&r=1&w=2
Similar to Indonesian LuaTeX support (see 7d705438),
"magyar" is not supported. After 2.1 is released,
the babel name of "magyar" should be changed to
"hungarian" (if others disagree then these tests
still should stay inverted).
The babel name of Indonesian should be changed from "bahasa"
to "indonesian". This should be done after 2.1 is released so as
to minimize potential problems such as Jürgen's example of
\addto\captionsbahasa{\renewcommand\chaptername{Foo}}
For more info, see:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg181595.html
From Jürgen:
LuaTeX support in polyglossia is still very new and experimental.
I have this enhancement on the agenda for 2.2, but not for 2.1.
For more details, see:
http://marc.info/?l=lyx-devel&m=138506346715339&w=2
In successful cooperation with Scott Kostyshak.
We provide many lyx-documents which are not compilable with luatex or xetex.
But some of them compile, if we change the font use to non_tex_fonts.
Since this would change the appropriate source, we have to convert
it first into a save location. To make it there compilable,
we have to convert also all file references.
languages used font
he|el|ru|uk 'FreeSans'
fa 'FreeFarsi'
zh_CN 'WenQuanYi Micro Hei'
The whole job is done with a perl script.
The problems the comments in the build systems refer to seem to have been
fixed for years. [1] says the checks in libstdc++ have been improved, and
all supported FreeBSD versions enable wchar_t support unconditionally in
libstdc++. Additionally, this needlessly impacts FreeBSD when libc++ is used
instead of libstdc++.
[1] http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.freebsd_wchar
Given erroneous <lang>.po file, this yields to error on first call
to make. Nonetheless a new <lang>.gmo file is created. The following
calls to make do not get an error.
This patch prevents the <lang>.gmo creation on error.
Problem spotted by Scott.
The tests are now more robust if ctest uses '-j' (number of threads) parameter.
a.) keytests are running in sequence and in one thread only, no other thread running
b.) tex2lyx tests are locking in respect to each other
c.) Test gets one or more labels, so that we can select
ctest -L url
to run tests labeled url
d.) New macro settestlabel() to add labels to a test
Now all urls we use in our provided lyx-files
(doc, examples, templates)
use urls which really exist.
(If a url was meant merely as an example,
it was not touched, but added to file 'knownInvalidURLS'.)
These tests check for broken URLs in the URL insets of
the manuals, examples, and templates.
The tests are disabled by default because the Perl interpreter
is needed.
Later on they can be activated with a flag, as follows:
cmake ... -DLYX_ENABLE_URLTESTS=ON
but for now the connection from the TOP-CMakeLists.txt is left out.
Missing part:
1.) Declaring an setting the option
LYX_OPTION(ENABLE_URLTESTS "Enable for URL tests" OFF ALL)
2.) make the connection
if(LYX_ENABLE_URLTESTS)
add_subdirectory(development/checkurls "${TOP_BINARY_DIR}/checkurls")
endif()
Files, which contain names of ctest-tests controling
whether they should be inverted, or ignored.
We have two such files ATM: revertedTests + ignoredTests
These tests load the .lyx files to see if there are
any parsing errors or other LyX errors/warnings. The
tests fail if LyX writes a line to STDERR that does not
match any of the regexes stored in filterCheckWarnings.
Thanks to Kornel for the CMake expertise and corrections.
This patch was written jointly with him.
a) test export/templates/ectaart_pdf5 removed, because
of incompatibility between ectart.cls and luatex.sty
b) renamed some tests to reflect their purpose
tex2lyx2lyx/roundtrip/ => tex2lyx/cmplyx/
# the tests are comparing files written by lyx (not by tex2lyx)
autotests/ => keytest/
# we are testing reactions of lyx to some key strokes
c) add tests for lyx2lyx. This is rather rudimental, in that it only
checks for created output, error codes and error output.
d) use correct environment variable to set up the userdir for testing
Some export test are known to fail. Checking them every time is cumbersome.
Now, the tests marked in file revertedTests will invert the success condition
and mark the test as INVERTED_SEE-README.ctest.
If some of the tests in revertedTests fails, this is good, and the testname
can be removed from it.
If no libraries are found, XVFBDLIBS is not initialized and the command "list(REMOVE_DUPLICATES XVFBDLIBS)" fails. So, initialize XVFBDLIBS beforehand.
(unless it's already there, in which case it should move to the end of the next paragraph).
Change the preference setting name (mac_like_word_movement to mac_like_cursor_movement)
to better reflect its function.
Patch and description from Bennett Helm
* InsetBox and GuiBox: Use proper empty length instead of the broken -9.99col% trick
* some slight changes to the logic of GuiBox to make sure that values are set as needed.
* lengthToWidget(): handle properly the empty length case. All the other related Qt helpers did it already, it was probably an oversight. Also set the default_unit parameter as optional (not needed in this patch actually, but I got carried away :)
* allow generating LaTeX code for an empty length, since some broken code does that.