diff --git a/doxygen-1.8.17-buffer-overflow.patch b/doxygen-1.8.17-buffer-overflow.patch deleted file mode 100644 index abcad1b..0000000 --- a/doxygen-1.8.17-buffer-overflow.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit 81cda478974e4198b10054a5ef49bc250c1a3cf7 -Author: albert-github -Date: Sat May 2 20:24:38 2020 +0200 - - Input buffer overflow in php input code (#7745) - - When having a very long initialization line in php code we get the message: - ``` - input buffer overflow, can't enlarge buffer because scanner uses REJECT - ``` - - In this case the, easy, solution is to split, in the lexer, the input based on the commas. - -diff --git a/src/scanner.l b/src/scanner.l -index 8ceb4adb..e9cad5f8 100644 ---- a/src/scanner.l -+++ b/src/scanner.l -@@ -2898,7 +2898,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) - *yyextra->pCopyRoundString+=yytext; - } - } --[^"'()\n]+ { -+[^"'()\n,]+ { - *yyextra->pCopyRoundString+=yytext; - } - . { -@@ -2948,7 +2948,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) - *yyextra->pCopyRoundGString+=yytext; - } - } --[^"'()\n/]+ { -+[^"'()\n\/,]+ { - *yyextra->pCopyRoundGString+=yytext; - } - . { -@@ -2998,7 +2998,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) - *yyextra->pCopySquareGString+=yytext; - } - } --[^"\[\]\n/]+ { -+[^"\[\]\n\/,]+ { - *yyextra->pCopySquareGString+=yytext; - } - . { -@@ -3039,7 +3039,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) - *yyextra->pCopyCurlyString+=yytext; - } - } --[^"'{}\/\n]+ { -+[^"'{}\/\n,]+ { - *yyextra->pCopyCurlyString+=yytext; - } - "/" { *yyextra->pCopyCurlyString+=yytext; } diff --git a/doxygen-1.8.18-clang.patch b/doxygen-1.8.18-clang.patch deleted file mode 100644 index 49f7252..0000000 --- a/doxygen-1.8.18-clang.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up doxygen-1.8.18/CMakeLists.txt.old doxygen-1.8.18/CMakeLists.txt -diff -up doxygen-1.8.18/src/CMakeLists.txt.old doxygen-1.8.18/src/CMakeLists.txt ---- doxygen-1.8.18/src/CMakeLists.txt.old 2020-07-08 13:37:31.646148957 +0200 -+++ doxygen-1.8.18/src/CMakeLists.txt 2020-07-08 13:45:53.470517795 +0200 -@@ -308,7 +308,7 @@ if (use_libclang) - add_definitions(${LLVM_DEFINITIONS}) - llvm_map_components_to_libnames(llvm_libs support core option) - target_compile_definitions(doxygen PRIVATE ${LLVM_DEFINITIONS}) -- set(CLANG_LIBS libclang clangTooling ${llvm_libs}) -+ set(CLANG_LIBS libclang clang-cpp -lLLVM-10) - endif() - - target_link_libraries(doxygen diff --git a/doxygen-1.8.18-md5-hash-does-not-match-for-two-different-runs.patch b/doxygen-1.8.18-md5-hash-does-not-match-for-two-different-runs.patch deleted file mode 100644 index d5ac6b5..0000000 --- a/doxygen-1.8.18-md5-hash-does-not-match-for-two-different-runs.patch +++ /dev/null @@ -1,441 +0,0 @@ -commit f3ebc866c88b31ab393637e30189d41ddb7f84f0 -Author: Dimitri van Heesch -Date: Fri Apr 17 21:39:13 2020 +0200 - - issue #7706: Md5 hash does not match for two different runs - -diff --git a/src/memberlist.cpp b/src/memberlist.cpp -index 8a76a1d7..b5377a49 100644 ---- a/src/memberlist.cpp -+++ b/src/memberlist.cpp -@@ -1,12 +1,12 @@ - /****************************************************************************** - * -- * -+ * - * - * Copyright (C) 1997-2015 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its -- * documentation under the terms of the GNU General Public License is hereby -- * granted. No representations are made about the suitability of this software -+ * documentation under the terms of the GNU General Public License is hereby -+ * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * -@@ -63,10 +63,11 @@ MemberList::~MemberList() - delete memberGroupList; - } - --int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const -+static int genericCompareMembers(const MemberDef *c1,const MemberDef *c2) - { -- static bool sortConstructorsFirst = Config_getBool(SORT_MEMBERS_CTORS_1ST); -- if (sortConstructorsFirst) { -+ bool sortConstructorsFirst = Config_getBool(SORT_MEMBERS_CTORS_1ST); -+ if (sortConstructorsFirst) -+ { - int ord1 = c1->isConstructor() ? 2 : (c1->isDestructor() ? 1 : 0); - int ord2 = c2->isConstructor() ? 2 : (c2->isDestructor() ? 1 : 0); - if (ord1 > ord2) -@@ -74,11 +75,19 @@ int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const - else if (ord2 > ord1) - return 1; - } -+ // sort on name - int cmp = qstricmp(c1->name(),c2->name()); -+ // then on argument list - if (cmp==0 && c1->argsString() && c2->argsString()) - { - cmp = qstricmp(c1->argsString(),c2->argsString()); - } -+ // then on file in which the item is defined -+ if (cmp==0) -+ { -+ cmp = qstricmp(c1->getDefFileName(),c2->getDefFileName()); -+ } -+ // then on line number at which the member is defined - if (cmp==0) - { - cmp = c1->getDefLine()-c2->getDefLine(); -@@ -86,6 +95,11 @@ int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const - return cmp; - } - -+int MemberList::compareValues(const MemberDef *c1, const MemberDef *c2) const -+{ -+ return genericCompareMembers(c1,c2); -+} -+ - int MemberList::countInheritableMembers(const ClassDef *inheritedFrom) const - { - int count=0; -@@ -295,7 +309,7 @@ MemberDef *MemberList::take(uint index) - } - - MemberListIterator::MemberListIterator(const MemberList &l) : -- QListIterator(l) -+ QListIterator(l) - { - } - -@@ -385,9 +399,9 @@ bool MemberList::declVisible() const - case MemberType_Service: // fall through - case MemberType_Sequence: // fall through - case MemberType_Dictionary: // fall through -- case MemberType_Event: -+ case MemberType_Event: - return TRUE; -- case MemberType_Enumeration: -+ case MemberType_Enumeration: - { - // if this is an anonymous enum and there are variables of this - // enum type (i.e. enumVars>0), then we do not show the enum here. -@@ -399,7 +413,7 @@ bool MemberList::declVisible() const - break; - case MemberType_Friend: - return TRUE; -- case MemberType_EnumValue: -+ case MemberType_EnumValue: - { - if (m_inGroup) - { -@@ -431,7 +445,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, - } - //printf(" --> writePlainDeclaration() numDecMembers()=%d\n", - // numDecMembers()); -- -+ - ol.pushGeneratorState(); - - bool first=TRUE; -@@ -460,13 +474,13 @@ void MemberList::writePlainDeclarations(OutputList &ol, - case MemberType_Service: // fall through - case MemberType_Sequence: // fall through - case MemberType_Dictionary: // fall through -- case MemberType_Event: -+ case MemberType_Event: - { - if (first) ol.startMemberList(),first=FALSE; - md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup,inheritedFrom,inheritId); - break; - } -- case MemberType_Enumeration: -+ case MemberType_Enumeration: - { - // if this is an anonymous enum and there are variables of this - // enum type (i.e. enumVars>0), then we do not show the enum here. -@@ -531,7 +545,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, - case MemberType_Friend: - if (inheritedFrom==0) - { -- if (first) -+ if (first) - { - ol.startMemberList(); - first=FALSE; -@@ -539,7 +553,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, - md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup,inheritedFrom,inheritId); - break; - } -- case MemberType_EnumValue: -+ case MemberType_EnumValue: - { - if (m_inGroup) - { -@@ -565,7 +579,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, - //printf("anonymous compound members\n"); - if (md->isBriefSectionVisible()) - { -- if (first) -+ if (first) - { - ol.startMemberList(); - first=FALSE; -@@ -576,10 +590,10 @@ void MemberList::writePlainDeclarations(OutputList &ol, - } - } - } -- -- if (!first) -+ -+ if (!first) - { -- ol.endMemberList(); -+ ol.endMemberList(); - } - - ol.popGeneratorState(); -@@ -635,7 +649,7 @@ void MemberList::writeDeclarations(OutputList &ol, - if (title) - { - ol.writeInheritedSectionTitle(inheritId,cd->getReference(), -- cd->getOutputFileBase(), -+ cd->getOutputFileBase(), - cd->anchor(),title,cd->displayName()); - } - ol.popGeneratorState(); -@@ -643,7 +657,7 @@ void MemberList::writeDeclarations(OutputList &ol, - } - else if (num>numEnumValues) - { -- if (title) -+ if (title) - { - if (showInline) - { -@@ -663,7 +677,7 @@ void MemberList::writeDeclarations(OutputList &ol, - ol.endMemberHeader(); - } - } -- if (subtitle) -+ if (subtitle) - { - QCString st=subtitle; - st = st.stripWhiteSpace(); -@@ -728,7 +742,7 @@ void MemberList::writeDeclarations(OutputList &ol, - } - } - } -- if (inheritedFrom && cd) -+ if (inheritedFrom && cd) - { - // also add members that of this list type, that are grouped together - // in a separate list in class 'inheritedFrom' -@@ -772,7 +786,7 @@ void MemberList::writeDocumentation(OutputList &ol, - overloadCountDict.setAutoDelete(TRUE); - for (mli.toFirst() ; (md=mli.current()) ; ++mli) - { -- if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) && -+ if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) && - !(md->isEnumValue() && !showInline)) - { - uint *pCount = overloadTotalDict.find(md->name()); -@@ -790,7 +804,7 @@ void MemberList::writeDocumentation(OutputList &ol, - - for (mli.toFirst() ; (md=mli.current()) ; ++mli) - { -- if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) && -+ if (md->isDetailedSectionVisible(m_inGroup,container->definitionType()==Definition::TypeFile) && - !(md->isEnumValue() && !showInline)) - { - uint overloadCount = *overloadTotalDict.find(md->name()); -@@ -949,7 +963,7 @@ void MemberList::addListReferences(Definition *def) - MemberDef *vmd; - for ( ; (vmd=vmli.current()) ; ++vmli) - { -- //printf(" adding %s\n",vmd->name().data()); -+ //printf(" adding %s\n",vmd->name().data()); - vmd->addListReference(def); - } - } -@@ -990,7 +1004,7 @@ void MemberList::setNeedsSorting(bool b) - m_needsSorting = b; - } - --QCString MemberList::listTypeAsString(MemberListType type) -+QCString MemberList::listTypeAsString(MemberListType type) - { - switch(type) - { -@@ -1087,16 +1101,7 @@ void MemberList::writeTagFile(FTextStream &tagFile) - - int MemberSDict::compareValues(const MemberDef *c1, const MemberDef *c2) const - { -- //printf("MemberSDict::compareValues(%s,%s)\n",c1->name().data(),c2->name().data()); -- int cmp = qstricmp(c1->name(),c2->name()); -- if (cmp) -- { -- return cmp; -- } -- else -- { -- return c1->getDefLine()-c2->getDefLine(); -- } -+ return genericCompareMembers(c1,c2); - } - - -commit cd581388f3d013c501e3cefbaf3e81cf93d46fcb -Author: Dimitri van Heesch -Date: Sun Apr 19 14:21:18 2020 +0200 - - issue #7706: Md5 hash does not match for two different runs (part 2) - -diff --git a/src/dotfilepatcher.cpp b/src/dotfilepatcher.cpp -index e386af98..20ce4c1b 100644 ---- a/src/dotfilepatcher.cpp -+++ b/src/dotfilepatcher.cpp -@@ -132,7 +132,7 @@ static QCString replaceRef(const QCString &buf,const QCString relPath, - //bool isXLink=FALSE; - int len = 6; - int indexS = buf.find("href=\""), indexE; -- bool setTarget = FALSE; -+ bool targetAlreadySet = buf.find("target=")!=-1; - if (indexS>5 && buf.find("xlink:href=\"")!=-1) // XLink href (for SVG) - { - indexS-=6; -@@ -152,9 +152,9 @@ static QCString replaceRef(const QCString &buf,const QCString relPath, - // fake ref node to resolve the url - DocRef *df = new DocRef( (DocNode*) 0, link.mid(5), context ); - result+=externalRef(relPath,df->ref(),TRUE); -- if (!df->file().isEmpty()) -+ if (!df->file().isEmpty()) - result += df->file().data() + Doxygen::htmlFileExtension; -- if (!df->anchor().isEmpty()) -+ if (!df->anchor().isEmpty()) - result += "#" + df->anchor(); - delete df; - result += "\""; -@@ -174,7 +174,6 @@ static QCString replaceRef(const QCString &buf,const QCString relPath, - if (!ref.isEmpty()) - { - result = externalLinkTarget(true); -- if (result != "") setTarget = TRUE; - } - result+= href+"=\""; - result+=externalRef(relPath,ref,TRUE); -@@ -185,12 +184,14 @@ static QCString replaceRef(const QCString &buf,const QCString relPath, - result = href+"=\"" + link + "\""; - } - } -- if (!target.isEmpty() && !setTarget) -+ if (!target.isEmpty() && !targetAlreadySet) - { - result+=" target=\""+target+"\""; - } - QCString leftPart = buf.left(indexS); - QCString rightPart = buf.mid(indexE+1); -+ //printf("replaceRef(\n'%s'\n)->\n'%s+%s+%s'\n", -+ // buf.data(),leftPart.data(),result.data(),rightPart.data()); - return leftPart + result + rightPart; - } - else -@@ -215,7 +216,7 @@ bool DotFilePatcher::convertMapFile(FTextStream &t,const char *mapName, - const QCString &context) - { - QFile f(mapName); -- if (!f.open(IO_ReadOnly)) -+ if (!f.open(IO_ReadOnly)) - { - err("problems opening map file %s for inclusion in the docs!\n" - "If you installed Graphviz/dot after a previous failing run, \n" -@@ -250,7 +251,7 @@ bool DotFilePatcher::convertMapFile(FTextStream &t,const char *mapName, - return TRUE; - } - --DotFilePatcher::DotFilePatcher(const char *patchFile) -+DotFilePatcher::DotFilePatcher(const char *patchFile) - : m_patchFile(patchFile) - { - m_maps.setAutoDelete(TRUE); -@@ -346,7 +347,7 @@ bool DotFilePatcher::run() const - } - QFile fi(tmpName); - QFile fo(patchFile); -- if (!fi.open(IO_ReadOnly)) -+ if (!fi.open(IO_ReadOnly)) - { - err("problem opening file %s for patching!\n",tmpName.data()); - QDir::current().rename(tmpName,patchFile); -@@ -380,7 +381,7 @@ bool DotFilePatcher::run() const - ASSERT(numBytes600) height=600; // clip to maximum height of 600 pixels - out << "
"; -- //out << ""; - } - else - { -- //out << ""; - } - writeSVGNotSupported(out); -@@ -650,7 +651,7 @@ bool DotFilePatcher::writeVecGfxFigure(FTextStream &out,const QCString &baseName - } - //printf("Got PDF/EPS size %d,%d\n",width,height); - int maxWidth = 350; /* approx. page width in points, excl. margins */ -- int maxHeight = 550; /* approx. page height in points, excl. margins */ -+ int maxHeight = 550; /* approx. page height in points, excl. margins */ - out << "\\nopagebreak\n" - "\\begin{figure}[H]\n" - "\\begin{center}\n" -diff --git a/src/dotgraph.cpp b/src/dotgraph.cpp -index e622dd4f..c0cc4fdf 100644 ---- a/src/dotgraph.cpp -+++ b/src/dotgraph.cpp -@@ -74,15 +74,6 @@ static bool checkDeliverables(const QCString &file1, - return file1Ok && file2Ok; - } - --static void removeDotGraph(const QCString &dotName) --{ -- if (Config_getBool(DOT_CLEANUP)) -- { -- QDir d; -- d.remove(dotName); -- } --} -- - static bool insertMapFile(FTextStream &out,const QCString &mapFile, - const QCString &relPath,const QCString &mapLabel) - { -@@ -108,7 +99,7 @@ static bool insertMapFile(FTextStream &out,const QCString &mapFile, - QCString DotGraph::imgName() const - { - return m_baseName + ((m_graphFormat == GOF_BITMAP) ? -- ("." + getDotImageExtension()) : (Config_getBool(USE_PDFLATEX) ? ".pdf" : ".eps")); -+ ("." + getDotImageExtension()) : (Config_getBool(USE_PDFLATEX) ? ".pdf" : ".eps")); - } - - QCString DotGraph::writeGraph( -@@ -166,7 +157,6 @@ bool DotGraph::prepareDotFile() - ) - { - // all needed files are there -- removeDotGraph(absDotName()); - return FALSE; - } - diff --git a/doxygen-1.8.18-memory-leaks.patch b/doxygen-1.8.18-memory-leaks.patch deleted file mode 100644 index b45895a..0000000 --- a/doxygen-1.8.18-memory-leaks.patch +++ /dev/null @@ -1,66 +0,0 @@ -commit 30f8609975062896b0cd43b739310ab8d667ea82 -Author: Dimitri van Heesch -Date: Sun Apr 26 20:44:17 2020 +0200 - - Fixed 2 small memory leaks - -diff --git a/src/doxygen.cpp b/src/doxygen.cpp -index 1d15a91b..2ceece91 100644 ---- a/src/doxygen.cpp -+++ b/src/doxygen.cpp -@@ -1900,25 +1900,22 @@ static void findUsingDeclImports(const Entry *root) - if (md && md->protection()!=Private) - { - //printf("found member %s\n",mni->memberName()); -- MemberDef *newMd = 0; -+ QCString fileName = root->fileName; -+ if (fileName.isEmpty() && root->tagInfo()) - { -- QCString fileName = root->fileName; -- if (fileName.isEmpty() && root->tagInfo()) -- { -- fileName = root->tagInfo()->tagName; -- } -- const ArgumentList &templAl = md->templateArguments(); -- const ArgumentList &al = md->templateArguments(); -- newMd = createMemberDef( -- fileName,root->startLine,root->startColumn, -- md->typeString(),memName,md->argsString(), -- md->excpString(),root->protection,root->virt, -- md->isStatic(),Member,md->memberType(), -- templAl,al,root->metaData -- ); -+ fileName = root->tagInfo()->tagName; - } -+ const ArgumentList &templAl = md->templateArguments(); -+ const ArgumentList &al = md->templateArguments(); -+ std::unique_ptr newMd { createMemberDef( -+ fileName,root->startLine,root->startColumn, -+ md->typeString(),memName,md->argsString(), -+ md->excpString(),root->protection,root->virt, -+ md->isStatic(),Member,md->memberType(), -+ templAl,al,root->metaData -+ ) }; - newMd->setMemberClass(cd); -- cd->insertMember(newMd); -+ cd->insertMember(newMd.get()); - if (!root->doc.isEmpty() || !root->brief.isEmpty()) - { - newMd->setDocumentation(root->doc,root->docFile,root->docLine); -@@ -1946,6 +1943,8 @@ static void findUsingDeclImports(const Entry *root) - newMd->setMemberSpecifiers(md->getMemberSpecifiers()); - newMd->setLanguage(root->lang); - newMd->setId(root->id); -+ MemberName *mn = Doxygen::memberNameLinkedMap->add(memName); -+ mn->push_back(std::move(newMd)); - } - } - } -@@ -9739,6 +9738,7 @@ void initDoxygen() - Doxygen::exampleSDict->setAutoDelete(TRUE); - Doxygen::memGrpInfoDict.setAutoDelete(TRUE); - Doxygen::tagDestinationDict.setAutoDelete(TRUE); -+ Doxygen::namespaceAliasDict.setAutoDelete(TRUE); - Doxygen::dirRelations.setAutoDelete(TRUE); - Doxygen::genericsDict = new GenericsSDict; - Doxygen::indexList = new IndexList; diff --git a/doxygen.spec b/doxygen.spec index b114dac..e708856 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -1,3 +1,9 @@ +# doxygen is known not to work properly with LTO at this point. Some of the issues +# are being worked on upstream and disabling LTO should be re-evaluated as +# we update this change. Until such time... +# Disable LTO +%global _lto_cflags %{nil} + %if 0%{?fedora} %global xapian_core_support ON %global clang_support ON @@ -5,13 +11,12 @@ %global xapian_core_support OFF %global clang_support OFF %endif -%global BuildDir Out Summary: A documentation system for C/C++ Name: doxygen Epoch: 1 -Version: 1.8.18 -Release: 6%{?dist} +Version: 1.8.20 +Release: 1%{?dist} # No version is specified. License: GPL+ @@ -19,13 +24,7 @@ Url: http://www.doxygen.nl Source0: http://doxygen.nl/files/%{name}-%{version}.src.tar.gz # this icon is part of kdesdk Source1: doxywizard.desktop -%if 0%{?fedora} >= 32 -Patch0: doxygen-1.8.18-clang.patch -%endif # upstream patches -Patch100: doxygen-1.8.17-buffer-overflow.patch -Patch101: doxygen-1.8.18-memory-leaks.patch -Patch103: doxygen-1.8.18-md5-hash-does-not-match-for-two-different-runs.patch BuildRequires: %{_bindir}/python3 BuildRequires: ImageMagick @@ -213,8 +212,6 @@ mv LANGUAGE.HOWTO.new LANGUAGE.HOWTO %build -mkdir -p %{BuildDir} -pushd %{BuildDir} %if ! 0%{?_module_build} %cmake \ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ @@ -226,7 +223,6 @@ pushd %{BuildDir} -DMAN_INSTALL_DIR=%{_mandir}/man1 \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ -DBUILD_SHARED_LIBS=OFF \ - .. %else %cmake \ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ @@ -238,14 +234,12 @@ pushd %{BuildDir} -DMAN_INSTALL_DIR=%{_mandir}/man1 \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ -DBUILD_SHARED_LIBS=OFF \ - .. %endif -popd -make %{?_smp_mflags} -C %{BuildDir} +%cmake_build %{?_smp_mflags} %install -make install DESTDIR=%{buildroot} -C %{BuildDir} +%cmake_install # convert icons convert addon/doxywizard/doxywizard.ico doxywizard.png @@ -277,7 +271,7 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} %endif %check -make tests -C %{BuildDir} +%ctests %files %doc LANGUAGE.HOWTO README.md @@ -308,6 +302,9 @@ make tests -C %{BuildDir} %endif %changelog +* Tue Aug 25 2020 Than Ngo - 1.8.20-1 +- update to 1.8.20 + * Sat Aug 01 2020 Fedora Release Engineering - 1:1.8.18-6 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild diff --git a/sources b/sources index bc67412..e875167 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (doxygen-1.8.18.src.tar.gz) = 0be26f58e33e564318629bedefb1257f478bfcb78f6a363b066d46ff6e457c15e79fe8d5c36032ee3f9b200cca91690166c388234ba6a28b6669f19af364eed5 +SHA512 (doxygen-1.8.20.src.tar.gz) = 15dc95850440aed2a56971d8c04bf3bdfac861bcc38c60c7be22fd3b922b9fe2a750ea8877cb0716832bb6ad7901afcdf4950ba985b09890027030bdf828eee3