From 0a66130671273f398ed342efd6fbdfd342d89818 Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Fri, 12 Mar 2021 23:01:08 +0000 Subject: Fri Mar 12 23:01:08 UTC 2021 a/acl-2.3.0-x86_64-1.txz: Upgraded. a/attr-2.5.0-x86_64-1.txz: Upgraded. ap/hplip-3.20.5-x86_64-3.txz: Rebuilt. Switched to hplip-3.20.5 to fix regressions in the hp-plugin subsystem. Patched to use is_alive() rather than the deprecated isAlive(). Thanks to Andypoo. Newer versions than 3.20.6 require avahi. We'll stick with this version for now and leave the decision about whether we love HP more than we hate avahi for another day. d/doxygen-1.9.1-x86_64-1.txz: Upgraded. xap/mozilla-firefox-78.8.0esr-x86_64-2.txz: Rebuilt. Rebuilt with --enable-system-nss and --enable-system-nspr. Thanks to franzen. xap/mozilla-thunderbird-78.8.1-x86_64-2.txz: Rebuilt. Rebuilt with --enable-system-nss, --enable-system-nspr, and --disable-debug-symbols. Thanks to franzen. xap/seamonkey-2.53.6-x86_64-3.txz: Rebuilt. Rebuilt with --enable-system-nss and --enable-system-nspr. Thanks to franzen. xfce/exo-4.16.1-x86_64-1.txz: Upgraded. --- source/d/doxygen/doxygen.SlackBuild | 36 +++++++----- ....9.1-crash-when-parsing-config-file-part2.patch | 22 ++++++++ ...xgen-1.9.1-crash-when-parsing-config-file.patch | 64 ++++++++++++++++++++++ .../patches/doxygen-1.9.1-Coverity_issues.patch | 49 +++++++++++++++++ .../patches/doxygen-1.9.1-crash_in_docparser.patch | 12 ++++ source/d/doxygen/slack-desc | 2 +- 6 files changed, 169 insertions(+), 16 deletions(-) create mode 100644 source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file-part2.patch create mode 100644 source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file.patch create mode 100644 source/d/doxygen/patches/doxygen-1.9.1-Coverity_issues.patch create mode 100644 source/d/doxygen/patches/doxygen-1.9.1-crash_in_docparser.patch (limited to 'source/d/doxygen') diff --git a/source/d/doxygen/doxygen.SlackBuild b/source/d/doxygen/doxygen.SlackBuild index 2564b2ac7..f4d61a8ae 100755 --- a/source/d/doxygen/doxygen.SlackBuild +++ b/source/d/doxygen/doxygen.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2018, 2021 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=doxygen VERSION=${VERSION:-$(basename $(echo doxygen-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev) .src)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -76,35 +76,41 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ +cat $CWD/patches/doxgen-1.9.1-crash-when-parsing-config-file-part2.patch | patch -p1 --verbose || exit 1 +cat $CWD/patches/doxgen-1.9.1-crash-when-parsing-config-file.patch | patch -p1 --verbose || exit 1 +cat $CWD/patches/doxygen-1.9.1-Coverity_issues.patch | patch -p1 --verbose || exit 1 +cat $CWD/patches/doxygen-1.9.1-crash_in_docparser.patch | patch -p1 --verbose || exit 1 + mkdir build cd build cmake \ + -DPYTHON_EXECUTABLE=/usr/bin/python3 \ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DDOC_INSTALL_DIR:STRING="/doc/doxygen-$VERSION" \ - -Dbuild_app=yes \ - -Dbuild_doc=yes \ - -Dbuild_parse=yes \ - -Dbuild_search=yes \ - -Dbuild_wizard=yes \ - -Dbuild_xmlparser=yes \ - -Duse_sqlite3=yes \ + -DBUILD_SHARED_LIBS=OFF \ + -Dbuild_app=ON \ + -Dbuild_doc=OFF \ + -Dbuild_parse=ON \ + -Dbuild_search=ON \ + -Dbuild_wizard=ON \ + -Dbuild_xmlparser=ON \ + -Duse_sqlite3=ON \ -G "Unix Makefiles" .. || exit 1 make $NUMJOBS || make || exit 1 - make $NUMJOBS docs || make docs || exit 1 make install DESTDIR=$PKG || exit 1 cd .. find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null -# Fix manpage location -mv $PKG/usr/share/man $PKG/usr/man - -# Removed unused /usr/share -rmdir $PKG/usr/share 2>/dev/null +# Install manpages: +mkdir -p $PKG/usr/man/man1 +cp -a doc/*.1 $PKG/usr/man/man1 +chown root:root $PKG/usr/man/man1/* +chmod 644 $PKG/usr/man/man1/* # Compress and if needed symlink the man pages: if [ -d $PKG/usr/man ]; then diff --git a/source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file-part2.patch b/source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file-part2.patch new file mode 100644 index 000000000..38465ffb8 --- /dev/null +++ b/source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file-part2.patch @@ -0,0 +1,22 @@ +diff -up doxygen/src/configimpl.l.orig doxygen/src/configimpl.l +--- doxygen/src/configimpl.l.orig 2021-01-19 17:25:00.933789247 +0100 ++++ doxygen/src/configimpl.l 2021-01-19 17:26:09.704744240 +0100 +@@ -1175,8 +1175,7 @@ static void substEnvVarsInStrList(String + for (const auto &s : sl) + { + QCString result = s.c_str(); +- // an argument with quotes will have an extra space at the end, so wasQuoted will be TRUE. +- bool wasQuoted = (result.find(' ')!=-1) || (result.find('\t')!=-1); ++ bool wasQuoted = (result.find(' ')!=-1) || (result.find('\t')!=-1) || (result.find('"')!=-1); + // here we strip the quote again + substEnvVarsInString(result); + +@@ -1229,7 +1228,7 @@ static void substEnvVarsInStrList(String + } + if (p!=l) // add the leftover as a string + { +- results.push_back(result.right(l-p).data()); ++ results.push_back(result.right(l-p).str()); + } + } + else // just goto the next element in the list diff --git a/source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file.patch b/source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file.patch new file mode 100644 index 000000000..848750d64 --- /dev/null +++ b/source/d/doxygen/patches/doxgen-1.9.1-crash-when-parsing-config-file.patch @@ -0,0 +1,64 @@ +commit 3b15963316b59cd1af3468a43535d90343916ffb +Author: Dimitri van Heesch +Date: Mon Jan 18 19:59:16 2021 +0100 + + issue #8343: doxygen-1.9.1 crashes when parsing config file + +diff --git a/src/configimpl.l b/src/configimpl.l +index 7f73ec01..56a2e108 100644 +--- a/src/configimpl.l ++++ b/src/configimpl.l +@@ -1210,7 +1210,7 @@ static void substEnvVarsInStrList(StringVector &sl) + c=result.at(i); + if (c=='"') // end quote + { +- results.push_back(result.mid(p,i-p).data()); ++ results.push_back(result.mid(p,i-p).str()); + p=i+1; + break; + } +@@ -1222,7 +1222,7 @@ static void substEnvVarsInStrList(StringVector &sl) + } + else if (c==' ' || c=='\t') // separator + { +- if (i>p) results.push_back(result.mid(p,i-p).data()); ++ if (i>p) results.push_back(result.mid(p,i-p).str()); + p=i+1; + } + } +@@ -1234,7 +1234,7 @@ static void substEnvVarsInStrList(StringVector &sl) + } + else // just goto the next element in the list + { +- if (!result.isEmpty()) results.push_back(result.data()); ++ if (!result.isEmpty()) results.push_back(result.str()); + } + } + sl = results; +@@ -1409,7 +1409,7 @@ static void cleanUpPaths(StringVector &str) + QFileInfo fi(path.c_str()); + if (fi.exists() && fi.isDir()) + { +- path = fi.absFilePath().utf8().data(); ++ path = fi.absFilePath().utf8().str(); + if (path[path.size()-1]!='/') path+='/'; + } + } +@@ -1545,7 +1545,7 @@ void Config::checkAndCorrect() + QString p = QDir::currentDirPath(); + if (p.at(p.length()-1)!='/') + p.append('/'); +- stripFromPath.push_back(p.utf8().data()); ++ stripFromPath.push_back(p.utf8().str()); + } + else + { +@@ -1882,7 +1882,7 @@ void Config::checkAndCorrect() + if (inputSources.empty()) + { + // use current dir as the default +- inputSources.push_back(QDir::currentDirPath().utf8().data()); ++ inputSources.push_back(QDir::currentDirPath().utf8().str()); + } + else + { diff --git a/source/d/doxygen/patches/doxygen-1.9.1-Coverity_issues.patch b/source/d/doxygen/patches/doxygen-1.9.1-Coverity_issues.patch new file mode 100644 index 000000000..a1848e623 --- /dev/null +++ b/source/d/doxygen/patches/doxygen-1.9.1-Coverity_issues.patch @@ -0,0 +1,49 @@ +diff -up doxygen-1.9.1/src/context.cpp.me doxygen-1.9.1/src/context.cpp +--- doxygen-1.9.1/src/context.cpp.me 2021-02-10 10:56:44.575251899 +0100 ++++ doxygen-1.9.1/src/context.cpp 2021-02-10 10:57:54.522809720 +0100 +@@ -4062,11 +4062,11 @@ class MemberContext::Private : public De + s_inst.addProperty("nameWithContextFor", &Private::nameWithContextFor); + init=TRUE; + } +- if (md && !md->cookie()) { md->setCookie(new MemberContext::Private::Cachable(md)); } ++ if (!md->cookie()) { md->setCookie(new MemberContext::Private::Cachable(md)); } + + Cachable &cache = getCache(); + cache.propertyAttrs.reset(TemplateList::alloc()); +- if (md && md->isProperty()) ++ if (md->isProperty()) + { + if (md->isGettable()) cache.propertyAttrs->append("get"); + if (md->isPrivateGettable()) cache.propertyAttrs->append("private get"); +@@ -4076,7 +4076,7 @@ class MemberContext::Private : public De + if (md->isProtectedSettable()) cache.propertyAttrs->append("protected set"); + } + cache.eventAttrs.reset(TemplateList::alloc()); +- if (md && md->isEvent()) ++ if (md->isEvent()) + { + if (md->isAddable()) cache.eventAttrs->append("add"); + if (md->isRemovable()) cache.eventAttrs->append("remove"); +diff -up doxygen-1.9.1/src/docparser.cpp.me doxygen-1.9.1/src/docparser.cpp +--- doxygen-1.9.1/src/docparser.cpp.me 2021-02-10 10:58:11.491500540 +0100 ++++ doxygen-1.9.1/src/docparser.cpp 2021-02-10 11:00:35.905512597 +0100 +@@ -1524,7 +1524,7 @@ reparsetoken: + { + QCString scope; + doctokenizerYYsetStateSetScope(); +- doctokenizerYYlex(); ++ (void)doctokenizerYYlex(); + scope = g_token->name; + g_context = scope; + //printf("Found scope='%s'\n",scope.data()); +diff -up doxygen-1.9.1/src/dotgroupcollaboration.cpp.me doxygen-1.9.1/src/dotgroupcollaboration.cpp +--- doxygen-1.9.1/src/dotgroupcollaboration.cpp.me 2021-02-10 11:01:10.588530954 +0100 ++++ doxygen-1.9.1/src/dotgroupcollaboration.cpp 2021-02-10 11:02:54.216221350 +0100 +@@ -309,6 +309,7 @@ void DotGroupCollaboration::Edge::write( + { + if (first) first=FALSE; else t << "\\n"; + t << DotNode::convertLabel(link->label); ++ count++; + } + if (count==maxLabels) t << "\\n..."; + t << "\""; diff --git a/source/d/doxygen/patches/doxygen-1.9.1-crash_in_docparser.patch b/source/d/doxygen/patches/doxygen-1.9.1-crash_in_docparser.patch new file mode 100644 index 000000000..adcd1440b --- /dev/null +++ b/source/d/doxygen/patches/doxygen-1.9.1-crash_in_docparser.patch @@ -0,0 +1,12 @@ +diff -up doxygen-1.9.1/src/docparser.cpp.me doxygen-1.9.1/src/docparser.cpp +--- doxygen-1.9.1/src/docparser.cpp.me 2021-02-10 10:52:09.481086282 +0100 ++++ doxygen-1.9.1/src/docparser.cpp 2021-02-10 10:55:32.418781686 +0100 +@@ -951,7 +951,7 @@ static void handlePendingStyleCommands(D + children.append(new DocStyleChange(parent,g_nodeStack.count(),sc->style(),sc->tagName(),FALSE)); + g_initialStyleStack.push(sc); + g_styleStack.pop(); +- sc = g_styleStack.top(); ++ sc = !g_styleStack.isEmpty() ? g_styleStack.top() : 0; + } + } + } diff --git a/source/d/doxygen/slack-desc b/source/d/doxygen/slack-desc index 8220d232f..114a4529d 100644 --- a/source/d/doxygen/slack-desc +++ b/source/d/doxygen/slack-desc @@ -15,5 +15,5 @@ doxygen: keeping docs and code in sync. Doxygen produces documentation in doxygen: several output formats, including HTML, LaTeX, man pages, RTF, XML, doxygen: compressed HTML, PostScript, and PDF. doxygen: -doxygen: +doxygen: Homepage: https://www.doxygen.org doxygen: -- cgit v1.2.3