diff --git a/doxygen-1.7.1-bz#627553.patch b/doxygen-1.7.1-bz#627553.patch new file mode 100644 index 0000000..fb61758 --- /dev/null +++ b/doxygen-1.7.1-bz#627553.patch @@ -0,0 +1,14 @@ +--- doxygen-1.7.1/src/pre.l 2010-06-18 12:04:30.000000000 +0200 ++++ doxygen-1.7.1/src/pre.l.include 2010-08-26 12:36:27.000000000 +0200 +@@ -128,6 +128,11 @@ static void setFileName(const char *name + QFileInfo fi(name); + g_yyFileName=convertToQCString(fi.absFilePath()); + g_yyFileDef=findFileDef(Doxygen::inputNameDict,g_yyFileName,ambig); ++ if (g_yyFileDef==0) // if this is not an input file check if it is an ++ // include file ++ { ++ g_yyFileDef=findFileDef(Doxygen::includeNameDict,g_yyFileName,ambig); ++ } + //printf("setFileName(%s) g_yyFileName=%s g_yyFileDef=%p\n", + // name,g_yyFileName.data(),g_yyFileDef); + if (g_yyFileDef && g_yyFileDef->isReference()) g_yyFileDef=0; diff --git a/doxygen-1.7.1-dot-crash.patch b/doxygen-1.7.1-dot-crash.patch new file mode 100644 index 0000000..a146fe8 --- /dev/null +++ b/doxygen-1.7.1-dot-crash.patch @@ -0,0 +1,54 @@ +--- a/src/dot.cpp ++++ b/src/dot.cpp +@@ -734,6 +734,8 @@ + + //-------------------------------------------------------------------- + ++#define DIRECT_DOT_RUN 1 ++ + DotManager *DotManager::m_theInstance = 0; + + DotManager *DotManager::instance() +@@ -750,6 +752,7 @@ + m_dotRuns.setAutoDelete(TRUE); + m_dotMaps.setAutoDelete(TRUE); + m_queue = new DotRunnerQueue; ++#ifndef DIRECT_DOT_RUN + int i; + int numThreads = QMIN(32,Config_getInt("DOT_NUM_THREADS")); + if (numThreads==0) numThreads = QMAX(1,QThread::idealThreadCount()+1); +@@ -767,6 +770,7 @@ + } + } + ASSERT(m_workers.count()>0); ++#endif + } + + DotManager::~DotManager() +@@ -834,11 +838,17 @@ + portable_sysTimerStart(); + // fill work queue with dot operations + DotRunner *dr; ++ int prev=1; + for (li.toFirst();(dr=li.current());++li) + { ++#ifdef DIRECT_DOT_RUN ++ msg("Running dot for graph %d/%d\n",prev,numDotRuns); ++ if(!dr->run()) return FALSE; ++ prev++; ++ }; ++#else + m_queue->enqueue(dr); + } +- int prev=1; + // wait for the queue to become empty + while ((i=m_queue->count())>0) + { +@@ -865,6 +875,7 @@ + { + m_workers.at(i)->wait(); + } ++#endif + portable_sysTimerStop(); + if (setPath) + { diff --git a/doxygen-1.7.1-doxygen#625531.patch b/doxygen-1.7.1-doxygen#625531.patch new file mode 100644 index 0000000..af16c33 --- /dev/null +++ b/doxygen-1.7.1-doxygen#625531.patch @@ -0,0 +1,29 @@ +diff -up doxygen-1.7.1/src/classdef.cpp.me doxygen-1.7.1/src/classdef.cpp +--- doxygen-1.7.1/src/classdef.cpp.me 2010-09-08 14:55:33.000000000 +0200 ++++ doxygen-1.7.1/src/classdef.cpp 2010-09-08 14:58:02.000000000 +0200 +@@ -2162,20 +2162,18 @@ bool ClassDef::isBaseClass(ClassDef *bcd + } + if (baseClasses()) + { +- //BaseClassListIterator bcli(*baseClasses()); +- //for ( ; bcli.current() && !found ; ++bcli) +- BaseClassDef *bcdi = baseClasses()->first(); +- while (bcdi) ++ // Beware: trying to optimise the iterator away using ->first() & ->next() ++ // causes bug 625531 ++ BaseClassListIterator bcli(*baseClasses()); ++ for ( ; bcli.current() && !found ; ++bcli) + { +- //ClassDef *ccd=bcli.current()->classDef; +- ClassDef *ccd=bcdi->classDef; ++ ClassDef *ccd=bcli.current()->classDef; + if (!followInstances && ccd->templateMaster()) ccd=ccd->templateMaster(); + //printf("isBaseClass() baseclass %s\n",ccd->name().data()); + if (ccd==bcd) + found=TRUE; + else + found=ccd->isBaseClass(bcd,followInstances,level+1); +- bcdi = baseClasses()->next(); + } + } + return found; diff --git a/doxygen.spec b/doxygen.spec index 1a0867e..7375667 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -1,12 +1,16 @@ Summary: A documentation system for C/C++ Name: doxygen Version: 1.7.1 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 Url: http://www.stack.nl/~dimitri/doxygen/index.html Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Patch1: doxygen-1.7.1-config.patch Patch2: doxygen-1.6.2-timestamp.patch +# debian patch +Patch3: doxygen-dot-crash.patch +Patch4: doxygen-1.7.1-bz#627553.patch +Patch5: doxygen-1.7.1-doxygen#625531.patch Group: Development/Tools # No version is specified. @@ -45,6 +49,9 @@ are used by doxygen. %patch1 -p1 -b .config %patch2 -p1 -b .timestamp +%patch3 -p1 -b .crash +%patch4 -p1 -b .bz#627553 +%patch5 -p1 -b .doxygen#625531 %build unset QTDIR @@ -97,6 +104,11 @@ rm -rf %{buildroot} %{_mandir}/man1/doxywizard* %changelog +* Wed Sep 08 2010 Than Ngo - 1:1.7.1-2 +- bz#629286, apply patch to fix broken thread handling +- bz#627553, #define in included file in different directory not handled properly +- Inherited documentation doesn't work in case of multiple inheritance + * Mon Jul 19 2010 Than Ngo - 1.7.1-1 - 1.7.1