From 01e26b007b888ff0b0931f41531319de2a8fbb8f Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Thu, 10 Dec 2015 17:25:08 -0600 Subject: app-doc/doxygen: fix version check for sys-devel/flex-2.6.0 Apply a patch to fix doxygen's build system to successfully detect flex-2.6.0 as sufficiently modern version. The build system accidentally only compared the minor version number... Upstream: https://github.com/doxygen/doxygen/pull/413 Gentoo-Bug: 567018 Package-Manager: portage-2.2.26 --- app-doc/doxygen/doxygen-1.8.10-r1.ebuild | 2 +- .../files/doxygen-1.8.10-fix_flex_check.patch | 96 ++++++++++++++++++++++ 2 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 app-doc/doxygen/files/doxygen-1.8.10-fix_flex_check.patch (limited to 'app-doc') diff --git a/app-doc/doxygen/doxygen-1.8.10-r1.ebuild b/app-doc/doxygen/doxygen-1.8.10-r1.ebuild index 46824216dab0..54a13b32fc21 100644 --- a/app-doc/doxygen/doxygen-1.8.10-r1.ebuild +++ b/app-doc/doxygen/doxygen-1.8.10-r1.ebuild @@ -101,8 +101,8 @@ src_prepare() { # Call dot with -Teps instead of -Tps for EPS generation - bug #282150 sed -i -e '/addJob("ps"/ s/"ps"/"eps"/g' src/dot.cpp || die - # prefix search tools patch, plus OSX fixes epatch "${FILESDIR}"/${PN}-1.8.9.1-empty-line-sigsegv.patch #454348 + epatch "${FILESDIR}"/${P}-fix_flex_check.patch #567018 epatch "${FILESDIR}"/${P}-link_with_pthread.patch diff --git a/app-doc/doxygen/files/doxygen-1.8.10-fix_flex_check.patch b/app-doc/doxygen/files/doxygen-1.8.10-fix_flex_check.patch new file mode 100644 index 000000000000..24a3b64ad3e1 --- /dev/null +++ b/app-doc/doxygen/files/doxygen-1.8.10-fix_flex_check.patch @@ -0,0 +1,96 @@ +From 5fcb13572417a3b4a05217e9023c683864f35643 Mon Sep 17 00:00:00 2001 +From: Heiko Becker +Date: Thu, 19 Nov 2015 12:00:54 +0100 +Subject: [PATCH] Support flex-2.6.0 + +The version checks only considered YY_FLEX_SUBMINOR_VERSION and did not +take YY_FLEX_MINOR_VERSION into account, which made them fail with +flex-2.6.0. + +diff --git a/src/code.l b/src/code.l +index 3323580..25719af 100644 +--- a/src/code.l ++++ b/src/code.l +@@ -3700,7 +3700,7 @@ void codeFreeScanner() + extern "C" { // some bogus code to keep the compiler happy + void codeYYdummy() { yy_flex_realloc(0,0); } + } +-#elif YY_FLEX_SUBMINOR_VERSION<33 ++#elif YY_FLEX_MINOR_VERSION<6 && YY_FLEX_SUBMINOR_VERSION<33 + #error "You seem to be using a version of flex newer than 2.5.4 but older than 2.5.33. These versions do NOT work with doxygen! Please use version <=2.5.4 or >=2.5.33 or expect things to be parsed wrongly!" + #endif + +diff --git a/src/commentscan.l b/src/commentscan.l +index cf892a0..2629857 100644 +--- a/src/commentscan.l ++++ b/src/commentscan.l +@@ -1128,7 +1128,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" + // but we need to know the position in the input buffer where this + // rule matched. + // for flex 2.5.33+ we should use YY_CURRENT_BUFFER_LVALUE +-#if YY_FLEX_MINOR_VERSION>=5 && YY_FLEX_SUBMINOR_VERSION>=33 ++#if YY_FLEX_MINOR_VERSION>5 || YY_FLEX_MINOR_VERSION>=5 && YY_FLEX_SUBMINOR_VERSION>=33 + inputPosition=prevPosition + (int)(yy_bp - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf); + #else + inputPosition=prevPosition + (int)(yy_bp - yy_current_buffer->yy_ch_buf); +@@ -1190,7 +1190,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" + g_memberGroupHeader.resize(0); + parseMore=TRUE; + needNewEntry = TRUE; +-#if YY_FLEX_MINOR_VERSION>=5 && YY_FLEX_SUBMINOR_VERSION>=33 ++#if YY_FLEX_MINOR_VERSION>5 || YY_FLEX_MINOR_VERSION>=5 && YY_FLEX_SUBMINOR_VERSION>=33 + inputPosition=prevPosition + (int)(yy_bp - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) + strlen(yytext); + #else + inputPosition=prevPosition + (int)(yy_bp - yy_current_buffer->yy_ch_buf) + strlen(yytext); +diff --git a/src/fortrancode.l b/src/fortrancode.l +index fb91a83..352912b 100644 +--- a/src/fortrancode.l ++++ b/src/fortrancode.l +@@ -1306,7 +1306,7 @@ void parseFortranCode(CodeOutputInterface &od,const char *className,const QCStri + extern "C" { // some bogus code to keep the compiler happy + void fortrancodeYYdummy() { yy_flex_realloc(0,0); } + } +-#elif YY_FLEX_SUBMINOR_VERSION<33 ++#elif YY_FLEX_MINOR_VERSION<6 && YY_FLEX_SUBMINOR_VERSION<33 + #error "You seem to be using a version of flex newer than 2.5.4 but older than 2.5.33. These versions do NOT work with doxygen! Please use version <=2.5.4 or >=2.5.33 or expect things to be parsed wrongly!" + #else + extern "C" { // some bogus code to keep the compiler happy +diff --git a/src/pycode.l b/src/pycode.l +index 3c41a69..f58f7c1 100644 +--- a/src/pycode.l ++++ b/src/pycode.l +@@ -1503,7 +1503,7 @@ void parsePythonCode(CodeOutputInterface &od,const char * /*className*/, + extern "C" { // some bogus code to keep the compiler happy + void pycodeYYdummy() { yy_flex_realloc(0,0); } + } +-#elif YY_FLEX_SUBMINOR_VERSION<33 ++#elif YY_FLEX_MINOR_VERSION<6 && YY_FLEX_SUBMINOR_VERSION<33 + #error "You seem to be using a version of flex newer than 2.5.4. These are currently incompatible with 2.5.4, and do NOT work with doxygen! Please use version 2.5.4 or expect things to be parsed wrongly! A bug report has been submitted (#732132)." + #endif + +diff --git a/src/vhdlcode.l b/src/vhdlcode.l +index 369ae48..6957048 100644 +--- a/src/vhdlcode.l ++++ b/src/vhdlcode.l +@@ -1613,7 +1613,7 @@ void codeFreeVhdlScanner() + extern "C" { // some bogus code to keep the compiler happy + void vhdlcodeYYdummy() { yy_flex_realloc(0,0); } + } +-#elif YY_FLEX_SUBMINOR_VERSION<33 ++#elif YY_FLEX_MINOR_VERSION<6 && YY_FLEX_SUBMINOR_VERSION<33 + #error "You seem to be using a version of flex newer than 2.5.4 but older than 2.5.33. These versions do NOT work with doxygen! Please use version <=2.5.4 or >=2.5.33 or expect things to be parsed wrongly!" + #endif + +diff --git a/src/xmlcode.l b/src/xmlcode.l +index 15b5d7e..2bef4a0 100644 +--- a/src/xmlcode.l ++++ b/src/xmlcode.l +@@ -407,7 +407,7 @@ void resetXmlCodeParserState() + extern "C" { // some bogus code to keep the compiler happy + void xmlcodeYYdummy() { yy_flex_realloc(0,0); } + } +-#elif YY_FLEX_SUBMINOR_VERSION<33 ++#elif YY_FLEX_MINOR_VERSION<6 && YY_FLEX_SUBMINOR_VERSION<33 + #error "You seem to be using a version of flex newer than 2.5.4. These are currently incompatible with 2.5.4, and do NOT work with doxygen! Please use version 2.5.4 or expect things to be parsed wrongly! A bug report has been submitted (#732132)." + #endif + -- cgit v1.2.3-65-gdbad