pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/cppcheck Updated cppcheck to 1.75.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/b931569bc433
branches:  trunk
changeset: 352846:b931569bc433
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Mon Sep 19 11:05:53 2016 +0000

description:
Updated cppcheck to 1.75.

pkgsrc change: switch from qt4 to qt5 for GUI option.

Cppcheck-1.75 has been released

General changes:
- Replaced internal preprocessor by the brand-new preprocessor 'simplecpp'
- Improved Windows installer: Install a copy of the license instead of asking to accept it
- The Windows x64 binaries are now compiled with profile guided optimization, resulting in a speedup of 11%
- Improved manual, especially the chapter about Libraries
- Improved CWE mapping
- --append is deprecated and will be removed in 1.80

New checks:
- Detect passed by value for non-const variables and print message only if type size justifies optimization

Checking improvements:
- Implemented support for trailing return types (C++11)
- Improved support for digit separators (C++14)
- Improved support for enum types in buffer overflow checking
- Better handling of volatile variables when checking for redundant assignments
- Properly support integer suffixes i64 and ui64
- Support function arguments with default value in Libraries
- Always set file0 attribute of error messages to identify the source file cppcheck was checking

Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.

Cppcheck-1.74 has been released

General changes:
- Improved CWE mapping of messages
- Git pre-commit hook checks only added or modified files

Checking improvements:
- Replaced simplification of enums by keeping and parsing them in the SymbolDatabase
- Added support to Library for specifying the parameter used by allocating/deallocating functions
- Improved support for integers defined in Libraries
- Improved accuracy of ValueType analysis
- Improved accuracy of VarID assignment, especially when dealing with structs and unions
- Improved performance of VarID assignment, checking for struct member usage, buffer overrun checking and several simplifications
- Added support for lots functions to windows.cfg and posix.cfg
- Better support for operator overloads
- Detect buffer overflows when %c is used with a width
- Improved checking for sizeof() taken of wrong type
- Support char literals when checking for conditions being always true or false
- Reimplemented check for usage of boolean results used in bitwise operations based on ValueType
- Improved checking for c_str() usage

Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.

Cppcheck-1.73 has been released

General changes:
- CWE mapping of messages
- Translated manual to Japanese language

Removed checks:
- Checks for variables hiding enums or typedefs have been removed

New checks:

Checking improvements:
- Improved ValueType a lot, use it in more checks
- Improved VarId support for template constructors, namespaces and references as class members
- Improved libraries, especially gnu.cfg, posix.cfg and windows.cfg
- Improved simplification of enums and templates
- Better distinguishing between possible and known null pointer dereferenciations
- Assume integers to be signed by default
- better support for cplusplus macro in preprocessor
- Preprocessor directives for addons
- New tools: times-vs.py, reduce.py

GUI:
- Detect Geany and QtCreator
- Make statistics dialog shown when checking is finished optional

Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.

Cppcheck-1.72 has been released.

General changes:
- Added platform files to customize characteristics of different target platforms
- Added setting to configure the default sign of integral variables and bit size of type 'char'
- Added option -E (only preprocess the code)
- Option --dump now outputs data for each configurations, not only the last one
- Several qmake project files have been removed

Removed checks:
- Check for unnecessary forward declaration has been removed

New checks:
- Warn about shifting negative values
- Detect statements with undefined execution order (pre-C++11 code)
- Added a generic check to discourage usage of specific functions, replacing CheckNonReentrantFunctions and CheckObsoleteFunctions

Checking improvements:
- Several improvmenets to ValueFlow analysis
- Improved ValueType handling, refactored several checks to make use of it
- Improved memory leak checking
- Improved Container specification in Library files, rewrote some checks based on it
- Improved handling of character literals
- Improved checking for non-interlocked accesses
- Properly support <cstdint> types in namespace std
- Added some validation mechamisms to avoid crashs

GUI:
- Improved Library editor
- Support "Enter" key in results tree
- Properly detect editors on 64-Bit Windows
- Added Japanese translation
- Allow opening project file without extra parameter from command line

Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.

Cppcheck-1.71 has been released

General changes:
- The deprecated options --suppressions and --exitcode-suppressions have been removed
- .hh and .hxx files are now treated as C++ files
- Improved documentation (readmes and manuals)
- Internal errors (for example syntax error) are now suppressable

Removed checks:
- Check for unnecessary qualification has been removed

Checking improvements:
- Support range-based for-loops (C++11)
- Better support for C++11 style initialization
- Better support for lambdas (C++11)
- Support digit separators (C++14)
- Added determination of the type of an expression (ValueType)
- Support case ranges (GCC extension)
- Improved AST generation and added validation
- Improved value flow analysis
- Improved checking for unitialized arrays
- Improved VarId assignment for member variables
- Rewrote checking of char variables
- Known variable simplification has been removed partially in favour of value flow analysis

GUI:
- Added library editor
- Improved display of inconclusive messages
- Added option to enforce parsing as C or C++ code
- Show file that included a header in details view
- Added "Recheck all files" button, "Recheck files " renamed to "Rechecked modified files"

Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.

Cppcheck-1.70 has been released

General changes:
- New version of .cfg file format, adding support for namespaces and declaring several functions at once
- Support building x64 installer for Windows; Both x64 and x86 builds are now provided
- Warn about deprecated options --suppressions and --exitcode-suppressions. They will be removed in future
- Added debugging option --debug-normal, which prints out debug output before second stage simplification

New checks:
- Warn about modifying string literals
- Detect declaration of variable length arrays with negative size
- Warn about implicit type conversion from int to long
- Warn about redundant code in conditions like (y || (!y && z))
- Detect conditions with known result
- Race condition: non-interlocked access after InterlockedDecrement()
- Detect unused 'goto' labels

Removed checks:
- Do no longer warn about a bug in scanf implementation of ancient glibc versions
- Multifile analysis (added in 1.69) has been removed because it did not work
- Removed ExecutionPath checker, which has been superseeded by ValueFlow analysis

Improvements:
- Support hexadecimal floating point numbers (C99)
- Support [[deprecated]] (C++14)
- Improved handling of sizeof()
- Improved handling of reserved keywords
- Better handling of C declaration specifiers; support complex/_Complex (C99)
- Better handling of ternary operator in ValueFlow analysis
- Lots of improvements to .cfg files, especially std.cfg, which now supports namespace std
- Improved performance and memory usage of Preprocessor
- Improved performance of matchcompiler
- Reduced Disk IO when ignoring paths
- Removed several obsolete simplifications
- Added python addons: naming.py, threadsafety.py and cert.py

GUI:
- Support printing
- Added item "Open containing folder" to context menu

Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.

diffstat:

 devel/cppcheck/Makefile   |  37 +++++++++++++++----------------------
 devel/cppcheck/PLIST      |  10 ++++++++--
 devel/cppcheck/distinfo   |  10 +++++-----
 devel/cppcheck/options.mk |  20 ++++++++++++--------
 4 files changed, 40 insertions(+), 37 deletions(-)

diffs (144 lines):

diff -r 4d86f7ce48f5 -r b931569bc433 devel/cppcheck/Makefile
--- a/devel/cppcheck/Makefile   Mon Sep 19 10:48:25 2016 +0000
+++ b/devel/cppcheck/Makefile   Mon Sep 19 11:05:53 2016 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.37 2016/03/05 11:28:21 jperkin Exp $
+# $NetBSD: Makefile,v 1.38 2016/09/19 11:05:53 wiz Exp $
 
-DISTNAME=      cppcheck-1.69
-PKGREVISION=   1
+DISTNAME=      cppcheck-1.75
 CATEGORIES=    devel
 MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=cppcheck/}
 EXTRACT_SUFX=  .tar.bz2
@@ -17,6 +16,7 @@
 
 USE_LANGUAGES=         c c++
 USE_TOOLS+=            gmake
+
 BUILD_TARGET=          all man
 BUILD_MAKE_FLAGS+=     DB2MAN=${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl
 # tell cppcheck where its config is
@@ -25,39 +25,32 @@
 MAKE_FLAGS+=           HAVE_RULES=yes
 
 # use pkgsrc tinyxml2 instead of included copy
-MAKE_FLAGS+=           TINYXML= INCLUDE_FOR_LIB=-Ilib 
-MAKE_FLAGS+=           INCLUDE_FOR_CLI=-Ilib
-MAKE_FLAGS+=           INCLUDE_FOR_TEST=-Ilib\ -Icli
+MAKE_FLAGS+=           TINYXML=
+MAKE_FLAGS+=           INCLUDE_FOR_LIB="-Ilib -Iexternals/simplecpp"
+MAKE_FLAGS+=           INCLUDE_FOR_CLI="-Ilib -Iexternals/simplecpp"
+MAKE_FLAGS+=           INCLUDE_FOR_TEST="-Ilib -Icli -Iexternals/simplecpp"
 CPPFLAGS+=             -I${BUILDLINK_PREFIX.tinyxml2}/include
 LDFLAGS+=              ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.tinyxml2}/lib -L${BUILDLINK_PREFIX.tinyxml2}/lib -ltinyxml2
 
-# http://5.150.254.56:443/trac-cppcheck/ticket/6026#ticket
-.include "../../mk/bsd.fast.prefs.mk"
-.if !empty(MACHINE_PLATFORM:MNetBSD-[0-6].*-*) || empty(MACHINE_PLATFORM:MNetBSD-*)
-# no backtrace() on NetBSD<7 (6.99.8 actually); add other systems with backtrace() when you find them
-CPPFLAGS+=             -DNO_UNIX_BACKTRACE_SUPPORT=1
-.else
-LDFLAGS+=              -lexecinfo
-.endif
+# needs C++0x
+CXXFLAGS+=             -std=c++0x
 
 .include "../../mk/compiler.mk"
 .if !empty(CC_VERSION:Mgcc-4.[0-5]*) || !empty(CC_VERSION:Mgcc-3.*)
 CXXFLAGS+= -include lib/cxx11emu.h
 .endif
 
-INSTALLATION_DIRS=     ${PKGMANDIR}/man1
+INSTALLATION_DIRS+=    ${PKGMANDIR}/man1
 
 REPLACE_PYTHON+=       htmlreport/cppcheck-htmlreport
+REPLACE_PYTHON+=       addons/y2038/y2038.py
 
 .include "options.mk"
 
-post-install:
-       ${INSTALL_MAN} ${WRKSRC}/cppcheck.1 \
-               ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
-.if !empty(PKG_OPTIONS:Mqt)
-       ${INSTALL_PROGRAM} ${WRKSRC}/gui/cppcheck-gui \
-               ${DESTDIR}${PREFIX}/bin
-.endif
+.PHONY: man-install
+post-install: man-install
+man-install:
+       ${INSTALL_DATA} ${WRKSRC}/cppcheck.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
 
 .include "../../lang/python/application.mk"
 .include "../../devel/pcre/buildlink3.mk"
diff -r 4d86f7ce48f5 -r b931569bc433 devel/cppcheck/PLIST
--- a/devel/cppcheck/PLIST      Mon Sep 19 10:48:25 2016 +0000
+++ b/devel/cppcheck/PLIST      Mon Sep 19 11:05:53 2016 +0000
@@ -1,7 +1,13 @@
-@comment $NetBSD: PLIST,v 1.5 2015/05/08 19:35:33 bsiegert Exp $
+@comment $NetBSD: PLIST,v 1.6 2016/09/19 11:05:53 wiz Exp $
+bin/cert.py
 bin/cppcheck
-${PLIST.qt}bin/cppcheck-gui
+${PLIST.qt5}bin/cppcheck-gui
 bin/cppcheck-htmlreport
+bin/cppcheckdata.py
+bin/findcasts.py
+bin/naming.py
+bin/threadsafety.py
+bin/y2038.py
 man/man1/cppcheck.1
 share/cppcheck/cfg/avr.cfg
 share/cppcheck/cfg/cppcheck-cfg.rng
diff -r 4d86f7ce48f5 -r b931569bc433 devel/cppcheck/distinfo
--- a/devel/cppcheck/distinfo   Mon Sep 19 10:48:25 2016 +0000
+++ b/devel/cppcheck/distinfo   Mon Sep 19 11:05:53 2016 +0000
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.12 2015/11/03 03:27:20 agc Exp $
+$NetBSD: distinfo,v 1.13 2016/09/19 11:05:53 wiz Exp $
 
-SHA1 (cppcheck-1.69.tar.bz2) = d54f5fa90abd5a3e4e581f85915d46aec5408141
-RMD160 (cppcheck-1.69.tar.bz2) = 70ac3979017d7c9618da9c3021b35d05d211a281
-SHA512 (cppcheck-1.69.tar.bz2) = 30f239bcdf4cb1fcc254271bf55f3fdc1ec22e7d26f0704218390cfce1d4cf3ef41f385f4e463ede1a1a401e87d81b1d66a462c7b07e045d46aebd2354384a01
-Size (cppcheck-1.69.tar.bz2) = 1052984 bytes
+SHA1 (cppcheck-1.75.tar.bz2) = d15523edd24dbf7a26024779526ff825237552d6
+RMD160 (cppcheck-1.75.tar.bz2) = f8133b13d8c24af6137044b163db03899b3ee6ee
+SHA512 (cppcheck-1.75.tar.bz2) = 74116a7a2cd1c8c9a06c81f3f4de3de281f24ee30692729de5506dc7572ed694e55c32d1ad72196a9b95005e9f8d749bd82655323f8ff56051997c2ffc4ed57f
+Size (cppcheck-1.75.tar.bz2) = 1152511 bytes
diff -r 4d86f7ce48f5 -r b931569bc433 devel/cppcheck/options.mk
--- a/devel/cppcheck/options.mk Mon Sep 19 10:48:25 2016 +0000
+++ b/devel/cppcheck/options.mk Mon Sep 19 11:05:53 2016 +0000
@@ -1,21 +1,25 @@
-# $NetBSD: options.mk,v 1.5 2013/04/05 15:14:03 adam Exp $
+# $NetBSD: options.mk,v 1.6 2016/09/19 11:05:53 wiz Exp $
 
 PKG_OPTIONS_VAR=       PKG_OPTIONS.cppcheck
-PKG_SUPPORTED_OPTIONS= qt
+PKG_SUPPORTED_OPTIONS= qt5
 
 .include "../../mk/bsd.options.mk"
 
-PLIST_VARS+=   qt
+PLIST_VARS+=   qt5
 
-.if !empty(PKG_OPTIONS:Mqt)
-PLIST.qt=      yes
+.if !empty(PKG_OPTIONS:Mqt5)
+PLIST.qt5=     yes
+USE_LIBTOOL=   yes
 
-.include "../../x11/qt4-libs/buildlink3.mk"
-BUILDLINK_DEPMETHOD.qt4-tools+= full
-.include "../../x11/qt4-tools/buildlink3.mk"
+.include "../../x11/qt5-qtbase/buildlink3.mk"
+.include "../../x11/qt5-qttools/buildlink3.mk"
 
 post-build:
        cd ${WRKSRC}/gui && \
                ${CONFIGURE_ENV} QTDIR=${QTDIR} HAVE_RULES=yes ${QTDIR}/bin/qmake gui.pro && \
                ${MAKE_ENV} QTDIR=${QTDIR} make
+
+post-install:
+       ${INSTALL_PROGRAM} ${WRKSRC}/gui/cppcheck-gui ${DESTDIR}${PREFIX}/bin
+
 .endif



Home | Main Index | Thread Index | Old Index