Summary: | dev-tex/mplib-1.110 build fails, using varargs.h | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Markus Peloquin <markus> |
Component: | Current packages | Assignee: | TeX project <tex> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | CC: | Adrian.Bassett, bugs, daidxor+bugz, erwan, fkrogh, grobian, grozin, HAJEK1, jrmalaq, lmmsci, mmokrejs, rose, tetromino |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 249226, 302468 | ||
Attachments: |
build log
patch for texlive 2009 ebuild to fix the bugs |
Description
Markus Peloquin
2010-01-11 15:31:48 UTC
I couldn't find a solution, but here's what I did find. kpathsea/common.ac has a check 'whether the compiler accepts prototypes', defining HAVE_PROTOTYPES. The file that fails compilation is mpost.c from directory web2c/mpdir because it ends up including kpathsea/c-varargs.h. This header is conditionally including varargs.h when HAVE_PROTOTYPES is not defined. The check 'whether the compiler accepts prototypes' does not show up in the configure output. Created attachment 216078 [details]
build log
I suppose this should be useful.
Good news everyone. For me anyway. It looks like mplib showed up in my --depclean packages. Maybe it will be removed? (In reply to comment #3) > Good news everyone. For me anyway. It looks like mplib showed up in my > --depclean packages. Maybe it will be removed? yes, once we get a new luatex stable. Same error here. revdep-rebuild shows broken mplib (requires libkpathsea.so.4), but it fails to reemerge. What should we do? (In reply to comment #5) > Same error here. revdep-rebuild shows broken mplib (requires > libkpathsea.so.4), but it fails to reemerge. What should we do? > Same problem here - of course. I have no experiance in programming - but i read the last changelog of gcc. Could it have something to do with that? So the code murt be rewritten as the error message said -right? Caveats * __builtin_stdarg_start has been completely removed from GCC. Support for <varargs.h> had been deprecated since GCC 4.0. Use __builtin_va_start as a replacement. What is this changelog entry you are referring to? About the deprecation: mplib is only conditionally using varargs.h, and the check for whether it should use varargs.h or stdarg.h is failing. See comment 1. Also, be aware that you may be able to sidestep the issue if mplib shows up in `emerge --depclean` like it did for me. Juergen, Randy: did you try this? (And for all I know, maybe the build failure is directly related to it not being needed anymore. If it does not show up with --depclean, then the previous sentence is wrong.) WHOOPS I see it now (confused as my amd64 system had a newer gcc). gcc-4.4 deprecates varargs.h, and mplib's HAVE_PROTOTYPES check has likely been broken all along. mplib-1.110 currently suffers from 2 issues. First, due to incorrect include order in the makefile, it uses the header files from its internal (and completely obsolete) version of kpathsea, causing the error described by Markus Peloquin. Second, even with the correct include order, it is incompatible with kpathsea headers from texlive-core-2009. Created attachment 217554 [details, diff]
patch for texlive 2009
This patch fixes compiling with kpathsea-5 headers from texlive-core-2009; the issue is that kpathsea_version_string in texlive-core-2009 is a macro, not a variable.
Created attachment 217555 [details]
ebuild to fix the bugs
Here is an ebuild that
* uses the correct include order to make sure that system kpathsea headers are used instead of obsolete headers included in the mplib package, thus fixing this bug;
* applies the patch for texlive-2009 compatibility;
* is updated to EAPI 2.
@Alexandre Than you for the patch, it works for me! @Markus Peloquin 2010-01-26 18:30:28 0000 Sorry for the delay, i tried pretend depclean today, but mplib doesn't shows up, Only for your information. Also, be aware that you may be able to sidestep the issue if mplib shows up in `emerge --depclean` like it did for me. Juergen, Randy: did you try this? 'emerge -p --depclean | grep mplib' show mplib at least on two computers. So I did 'emerge -C mplib' on these computers. hmmm, what's the status here? Can we get rid of this package, or is it better fixed? (In reply to comment #16) > hmmm, what's the status here? Can we get rid of this package, or is it better > fixed? The supplied ebuild and patch from Alexandre in comment #13 work fine here. revdep-rebuild now finds nothing regarding mplib. Same bug here, which the patch and ebuild resolve. Can this please be applied in tree? The existing mplib not only shows this error with newer versions of GCC but it does so because in all cases it builds against the system kpathsea library but uses local kpathsea include files. Hello. I came across this too and noticed that nothing in my tree actually needs this. emerge -C and life happy ever after. (In reply to comment #13) > Created an attachment (id=217555) [details] > ebuild to fix the bugs > > Here is an ebuild that > * uses the correct include order to make sure that system kpathsea headers are > used instead of obsolete headers included in the mplib package, thus fixing > this bug; > * applies the patch for texlive-2009 compatibility; > * is updated to EAPI 2. > Works for me! Thank you! ~daid *** Bug 302421 has been marked as a duplicate of this bug. *** gone |