OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 27-Mar-2005 21:12:28
Branch: HEAD Handle: 2005032720122800
Added files:
openpkg-src/flexelint flexelint.lnt flexelint.sh flexelint.spec
flexelint.txt
Log:
new package: flexelint 8.00p (Flexible C/C++ Lint)
Summary:
Revision Changes Path
1.1 +11 -0 openpkg-src/flexelint/flexelint.lnt
1.1 +31 -0 openpkg-src/flexelint/flexelint.sh
1.1 +137 -0 openpkg-src/flexelint/flexelint.spec
1.1 +216 -0 openpkg-src/flexelint/flexelint.txt
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/flexelint/flexelint.lnt
============================================================================
$ cvs diff -u -r0 -r1.1 flexelint.lnt
--- /dev/null 2005-03-27 21:11:01 +0200
+++ flexelint.lnt 2005-03-27 21:12:28 +0200
@@ -0,0 +1,11 @@
+//
+// flexelint.lnt -- FlexeLint global default configuration
+//
+// NOTICE: this file is read in automatically if no ~/.flexelint.lnt
+// exist. An existing ~/.flexelint.lnt would have to include
+// this file manually.
+//
+
+co-generic.lnt
+co-unix.lnt
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/flexelint/flexelint.sh
============================================================================
$ cvs diff -u -r0 -r1.1 flexelint.sh
--- /dev/null 2005-03-27 21:11:01 +0200
+++ flexelint.sh 2005-03-27 21:12:28 +0200
@@ -0,0 +1,31 @@
+#!/bin/sh
+##
+## flexelint.sh -- FlexeLint run-time wrapper
+##
+
+# paths
+flexelint_binary="@l_prefix@/libexec/flexelint/flexelint"
+flexelint_cfgdir="@l_prefix@/etc/flexelint"
+flexelint_incdir="@l_prefix@/share/flexelint/lnt"
+
+# determine default configuration
+# (hint: extension .lnt is specially recognized by FlexeLint)
+flexelint_config=""
+if [ ".$1" = ".-C" ]; then
+ shift
+elif [ -f ${HOME}/.flexelint.lnt ]; then
+ flexelint_config="${HOME}/.flexelint.lnt"
+else
+ flexelint_config="${flexelint_cfgdir}/flexelint.lnt"
+fi
+
+# execute program
+if [ $# -eq 0 ]; then
+ eval ${flexelint_binary}
+else
+ eval ${flexelint_binary} \
+ -I${flexelint_incdir} \
+ ${flexelint_config} \
+ ${1+"$@"}
+fi
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/flexelint/flexelint.spec
============================================================================
$ cvs diff -u -r0 -r1.1 flexelint.spec
--- /dev/null 2005-03-27 21:11:01 +0200
+++ flexelint.spec 2005-03-27 21:12:28 +0200
@@ -0,0 +1,137 @@
+##
+## flexelint.spec -- OpenPKG RPM Package Specification
+## Copyright (c) 2000-2005 OpenPKG Foundation e.V. <http://openpkg.net/>
+## Copyright (c) 2000-2005 Ralf S. Engelschall <http://engelschall.com/>
+##
+## Permission to use, copy, modify, and distribute this software for
+## any purpose with or without fee is hereby granted, provided that
+## the above copyright notice and this permission notice appear in all
+## copies.
+##
+## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+## SUCH DAMAGE.
+##
+
+# package information
+Name: flexelint
+Summary: Flexible C/C++ Lint
+URL: http://www.gimpel.com/html/flex.htm
+Vendor: Gimpel Software
+Packager: OpenPKG
+Distribution: OpenPKG
+Class: EVAL
+Group: Language
+License: Commercial
+Version: 8.00p
+Release: 20050327
+
+# list of sources
+Source0: http://www.gimpel.com/::/flexelint-%{version}.tar.gz
+Source1: http://www.gimpel.com/html/pub80/env-xml.lnt
+Source2: http://www.gimpel.com/html/pub80/lib-nstd.lnt
+Source3: flexelint.sh
+Source4: flexelint.lnt
+Source5: flexelint.txt
+%NoSource 0
+
+# build information
+Prefix: %{l_prefix}
+BuildRoot: %{l_buildroot}
+BuildPreReq: OpenPKG, openpkg >= 20040130
+PreReq: OpenPKG, openpkg >= 20040130
+AutoReq: no
+AutoReqProv: no
+
+%description
+ FlexeLint is a flexible C/C++ source code checker. It thoroughlys
+ check the C/C++ source code for bugs, glitches, inconsistencies,
+ non-portable constructs, and much more. FlexeLint is a commercial
+ software product.
+
+%track
+ prog flexelint = {
+ version = %{version}
+ url = http://www.gimpel.com/html/ptch80.htm
+ regex = to\s+(8.00[a-z])
+ }
+
+%prep
+ %setup -q -c
+
+ # fixup directory permissions, so RPM can remove the files later on
+ find . -type d -print | xargs chmod u+w
+
+%build
+ # build program from obfuscated source code
+ ( cd flexelint/src
+ %{l_cc} %{l_cflags -O} -I. -o flexelint *.c
+ ) || exit $?
+
+%install
+ # create installation hierarchy
+ rm -rf $RPM_BUILD_ROOT
+ %{l_shtool} mkdir -f -p -m 755 \
+ $RPM_BUILD_ROOT%{l_prefix}/bin \
+ $RPM_BUILD_ROOT%{l_prefix}/etc/flexelint \
+ $RPM_BUILD_ROOT%{l_prefix}/libexec/flexelint \
+ $RPM_BUILD_ROOT%{l_prefix}/include/flexelint \
+ $RPM_BUILD_ROOT%{l_prefix}/share/flexelint/doc \
+ $RPM_BUILD_ROOT%{l_prefix}/share/flexelint/lnt \
+ $RPM_BUILD_ROOT%{l_prefix}/man/cat1
+
+ # install program and run-time wrapper
+ %{l_shtool} install -c -s -m 755 \
+ flexelint/src/flexelint $RPM_BUILD_ROOT%{l_prefix}/libexec/flexelint/
+ %{l_shtool} install -c -m 755 %{l_value -s -a} \
+ %{SOURCE flexelint.sh} $RPM_BUILD_ROOT%{l_prefix}/bin/flexelint
+
+ # install minimum manual page and reference document
+ %{l_shtool} install -c -m 644 %{l_value -s -a} \
+ %{SOURCE flexelint.txt}
$RPM_BUILD_ROOT%{l_prefix}/man/cat1/flexelint.1
+ %{l_shtool} install -c -m 644 \
+ flexelint/flex.pdf
$RPM_BUILD_ROOT%{l_prefix}/share/flexelint/doc/flexelint.pdf
+
+ # install default configuration
+ %{l_shtool} install -c -m 644 %{l_value -s -a} \
+ %{SOURCE flexelint.lnt} $RPM_BUILD_ROOT%{l_prefix}/etc/flexelint/
+
+ # install additional prepared configurations
+ ( cd flexelint/supp
+ cp -r ansi posix $RPM_BUILD_ROOT%{l_prefix}/include/flexelint/
+ %{l_shtool} install -c -m 644 \
+ generic/co.lnt
$RPM_BUILD_ROOT%{l_prefix}/share/flexelint/lnt/co-generic.lnt
+ %{l_shtool} install -c -m 644 \
+ linux/co-gnu3.lnt
$RPM_BUILD_ROOT%{l_prefix}/share/flexelint/lnt/co-gcc.lnt
+ %{l_shtool} install -c -m 644 \
+ sun/co-sun6.lnt
$RPM_BUILD_ROOT%{l_prefix}/share/flexelint/lnt/co-sun.lnt
+ %{l_shtool} install -c -m 644 \
+ hp/co-hpacc.lnt
$RPM_BUILD_ROOT%{l_prefix}/share/flexelint/lnt/co-hpacc.lnt
+ %{l_shtool} install -c -m 644 \
+ unix/co-unix.lnt unix/lib-curs.lnt stl/lib-stl.lnt \
+ $RPM_BUILD_ROOT%{l_prefix}/share/flexelint/lnt/
+ %{l_shtool} install -c -m 644 \
+ %{SOURCE env-xml.lnt} %{SOURCE lib-nstd.lnt} \
+ $RPM_BUILD_ROOT%{l_prefix}/share/flexelint/lnt/
+ ) || exit $?
+
+ # determine installation files
+ %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+ %{l_files_std} \
+ '%config %{l_prefix}/etc/flexelint/flexelint.lnt' \
+ '%doc %{l_prefix}/share/flexelint/doc/flexelint.pdf'
+
+%files -f files
+
+%clean
+ rm -rf $RPM_BUILD_ROOT
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/flexelint/flexelint.txt
============================================================================
$ cvs diff -u -r0 -r1.1 flexelint.txt
--- /dev/null 2005-03-27 21:11:01 +0200
+++ flexelint.txt 2005-03-27 21:12:28 +0200
@@ -0,0 +1,216 @@
+
+FlexeLint for C/C++ (U32) Ver. 8.00p, Copyright Gimpel Software 1985-2004
+
+ Error Inhibition Options (- inhibits and + enables error messages)
+ (# may include wild-card characters '?' and '*')
+
+-e# inhibit message number # !e# inhibit message # this line
+-e(#) inhibit for next expression --e(#) for entire current expression
+-e{#} inhibit for next {region} --e{#} for entire current {region}
+-eai args differ sub-integer -ean args differ nominally
+-eas args same size -eau args differ signed-unsigned
+-efile(#,<File>) by number, file -efunc(#,<Func>) by number, function
+-elib(#) within library headers -elibsym(#) for all library symbols
+-emacro(#,Symbol) within macro -emacro((#),Symbol) within expr macro
+--emacro((#),Symbol) within expr macro -emacro({#},Symbol) next stmt macro
+--emacro({#},Symbol) within stmt macro -epn pointers to nominal
+-epnc pointers to nominal chars -epp pointers are pointers
+-eps pointers to same size -epu pointers to signed-unsigned
+-epuc pointers to sgnd-unsgnd chars -esym(#,Symbol) by number, symbol
+-etd(<TypeDiff>) ignore type diff. -etemplate(#) within template
expansion
+-w<Lev> set warning level (0,1,2,3,4) -wlib(<Lev>) library warning level
+
+ Size and Alignment Options (default value(s))
+
+-sb# bits in a byte (8) -sbo# sizeof(bool) (1)
+-sc# sizeof(char) (1) -slc# sizeof(long char) (2)
+-ss# sizeof(short) (2) -si# sizeof(int) (4)
+-sl# sizeof(long) (4) -sll# sizeof(long long) (8)
+-sf# sizeof(float) (4) -sd# sizeof(double) (8)
+-sld# sizeof(long double) (16) -smp# size of all member ptrs (4)
+-smpD# size of mem ptr (data) (4) -smpP# size of mem ptrs (prog) (4)
+-sp# sizeof(all pointers) (4) -spD# size of both data ptrs (4)
+-spP# size of both program ptrs (4) -sw# size of wide char (2)
+
+-a<code># specifies alignment, <code> any code used for size
+ # = 1, no alignment; # = 2, 2-byte boundary; etc. By default, a type's
+ alignment is the largest power of 2 that divides the size of the type
+
+ Verbosity Options (- output to stdout only, + to stderr and stdout)
+ Format: {-+}v[cdh-iostw#][mf<int>]
+
+Zero or more of:
+ c: unique Calls d: module Dialect h: dump strong type Hierarchy
+ h-: h in compressed form i: Indirect files o: Options
+ s: Storage consumed t: Template expansions w: specific Walks
+ #: append file ID nos.
+One of:
+ m: Module names f: header Files (implies m)
+ <int>: every <int> lines (implies f)
+Special cases (no suboptions):
+ -v Turn off verbosity +v direct verbosity to both
+
+ Flag Options
+ (+ sets,- resets, ++ increments and -- decrements flag)
+
[EMAIL PROTECTED] @ is a modifier (OFF) fab ABbreviated
structures (OFF)
+fai pointed-to Arg is Initialized(ON) fan ANonymous unions (OFF)
+fas Anonymous Structures (OFF) fba Bit Addressability (OFF)
+fbc Boolean Constants 0b... (OFF) fbo Activate bool, true, false (ON)
+fbu force Bit fields Unsigned (OFF) fce continue-on-error (OFF)
+fcp (C++) Force C++ processing (OFF) fct Create Tags (OFF)
+fcu char-is-unsigned (OFF) fdc (C++) Distinguish plain Char
(ON)
+fdh append '.h' to header names (OFF) fdi Directory of Including file(ON)
+fdl pointer-diff.-is-long (OFF) fdr deduce-return-mode (OFF)
+feb enum's can be Bitfields (ON) fem allow Early Modifiers (OFF)
+fep Extended Preprocessor exps. (OFF) fet requires Explicit Throws (OFF)
+ffb for clause creates Block (ON) ffc Function takes Custody (ON)
+ffd promote floats to double (OFF) ffn full file name (OFF)
+ffo flush output each msg (ON) fhd hierarchy down warning (ON)
+fhg hierarchy uses graph. chars (OFF) fhs hierarchy of strong types (ON)
+fhx hierarchy of index types (ON) fie integer-model-for-enums (OFF)
+fii inhibit inference (OFF) fil indentation check of labels
(OFF)
+fim -i can have multiple dirs. (ON) fiq ignore default qualifier (OFF)
+fis integral consts. are signed (OFF) fkp K&R preprocessor (OFF)
+flb library (OFF) flc allow long char (OFF)
+flf (C++) process lib func defs (OFF) fll allow long long int (OFF)
+flm Lock Message format (OFF) fln activate #line (ON)
+fmc macro concatenation (OFF) fmd multiple definitons (OFF)
+fna (C++) allow 'operator new[]' (ON) fnc nested comments (OFF)
+fnn (C++) new can return NULL (OFF) fnt (C++) Nested Tags (ON)
+fod Output Declared to object (OFF) fol Output Library to object (OFF)
+fpa PAuse before exiting (OFF) fpc Pointer Casts retain lvalue(OFF)
+fpm Precision is Max of args (OFF) fpn pointer param may be NULL (OFF)
+fps Parameters within Strings (OFF) frb Files fopen'ed with "rb" (OFF)
+frl Reference Location info (ON) frn Treat CR as new-line (OFF)
+fsa structure-assignment (ON) fsc strings are const char * (OFF)
+fsp SPecific function calls (ON) fss regard Sub-Struct as base (ON)
+fsu string unsigned (OFF) ftf raw template functions (OFF)
+ftg permit Tri Graphs (ON) ftr truncate filenames to 8x3 (OFF)
+ful unsigned long (ON) fva variable arguments (OFF)
+fvo void data type (ON) fvr varying-return-mode (OFF)
+fwc use internal wchar_t (OFF) fwu wchar_t is unsigned (OFF)
+fxa eXact array arg. (OFF) fxc eXact char arg. (OFF)
+fxf eXact float arg. (OFF) fxs eXact short arg. (OFF)
+fzl sizeof-is-long (OFF) fzu sizeof-is-unsigned (ON)
+
+ Message Presentation Options
+
+-append(#,msg) Appends msg for error #
+-h[abfFrsm/<M>/]<I>]<ht> message height (default = -ha_3)
+ (<ht> is msg ht., position indicator <I> placed a=above or b=below line,
+ f= more file info, F= always file info, r= repeat line, s= space between
+ messages, m/<M>/ Macro Indicator is <M>, mn= no macros )
+-width(<Width>,<Indent>) message width (default = -width(79,4))
+-format=... specifies message format
+-format4a=, -format4b= specifies format if msg. ht. = 4
+-format_specific=... prologue to specific Walk messages
+ format codes: %f filename, %l line no, %(...%) use ... if filename,
+ %t msg type, %n msg no, %m message, %c col no, %C col no +1, %i function,
+ \n newline, \t tab, \s space, \a alarm \q quote, \\ backslash
+
+ Other Options
+
+-A only ANSI keywords
+-/+b No/Redirect Banner line
+-c<code> compiler code
+-/+cpp(extension) remove/add .ext for C++ files
+-d<name>[=<value>] defines symbol
+-D<nm>[=<val>][;<nm>[=<val>]]... define set of symbols
++d... or +D... same as -d or -D except it locks in definitions
++ext(ext[,ext]...) extensions -- defaults to +ext(lnt,cpp,c)
+-fallthrough a case of a switch allowing flow from above
+-father(Parent,Children) a stricter verson of parent
+-function(f0,f1[,f2]...) make function f1 (, f2 ...) like
+ f0; f0 is any function bearing a user or built-in semantic
+-header(file) auto-includes file in each module
++headerwarn(file) Causes Msg 829 to be issued for a given file
+-i<directory> #include directory
+-ident(<chars>) add identifier characters
+-ident1(<char>) define 1-char identifier
+-idlen(<n>[,opt]) report identifier clashes in <n> chars
+ opt: x=external, p=preprocessor, c=compiler
+-incvar(name) change name of INCLUDE environment variable
+-index(flags,ixtype,type(s)) establish ixtype as index type
+ flags: c == allow Constants, d == allow Dimensions
++libclass([all,angle,ansi,foreign]...) default library headers
+-/+libdir(directory[,...]) deny or specify library directory
+-/+libh(header[,...]) deny or specify library header by name
+-library sets library flag
+-limit(<n>) limits the number of messages
++linebuf doubles size of line buffer
++lnt(ext) file.ext is treated like file.lnt
+-lobbase(filename) establish a lob base file
+-/+macros halve/double the maximum macro size
+-maxopen(<n>) assumed number of openable files
+-od[options](filename) Output declarations of defined external
+ objects and functions including prototypes,
+ options: f=only functions, i=internal functions, s=structs
+ <width>=specify break width
+-oe(filename) Redirect to standard Error (+oe appends)
+-ol(filename) Output library file
+-oo[(filename)] Output to lint object file
+-os(filename) Redirect to standard out (+os appends)
+-p[(n)] just preprocess, n == max output width
+-passes(k[,Opt1[,Opt2]]) requests k passes
+-parent(Parent,Children) augment strong type hierarchy
+-ppw(word[,...]) disables(-) or enables(+) pre-processor ...
++ppw(word[,...]) keywords, eg: +ppw(ident) enables #ident
+--ppw(word[,...]) removes built-in meaning of word
+-ppw_asgn(w1,w2) assigns pre-proc meaning of w2 to w1
++pragma(name,action) associates action with name
+ action is one of: 'on', 'off', 'once', 'message'
+-pragma(name) disables pragma
+-printf(#,id[,...]) id is printf-like, # is arg. no. of format
+-printf_code(Code[,Type]) allows user-defined printf codes
+-restore resets error inhibitions
+-rw(word[,...]) disables(-) or enables(+) reserved words ...
++rw(word[,...]) word = '*ms' implies all MS keywords
+--rw(word[,...]) removes built-in meaning of word
+-rw_asgn(w1,w2) assigns reserved word meaning of w2 to w1
+-save saves error inhibitions
+-scanf(#,id[,...]) scanf-like, # is arg. no. of format
+-scanf_code(Code[,Type]) allows user-defined scanf codes
+-sem(name,sem[,sem]...) associates a set of semantics with a function
+-size(flags,amount) report large aggregates; flags: a auto, s static
+-specific(op1[,op2]) Options op1 before and op2 after every specific walk
+-specific_climit(n) Per function Limit on the no. of recorded calls
+-specific_wlimit(n) Walk limit on the number of recursively generated
calls
+-specific_retry(n) n == 0 implies inhibiting rewalking with same
parameters
+-strong(Flags,Type(s)) check strong types ..., Flags are:
+ A[irpacz] == on Asgn to (except Init, Ret, Param, Asgn op, Consts, Zero);
+ J[erocz] == on Joining (except Eqlty, Rel, Other ops, Constants, Zero);
+ X == on eXtraction; l == allow library; B[f] or b[f] == strong and
+ weak Boolean (f == length-1 bit fields are NOT Boolean)
+-t# set tab size to #
+-u unit checkout
+--u -u and ignore modules at lower .lnt level
+-unreachable a point in a program is unreachable
+-u<name> undefines <name>
+--u<name> ignore past and future defines of <name>
+-w<level> set warning level (0,1,2,3,4)
+-wlib(<level>) set warning level for msgs. within library
+-wprintf(#,id[,...]) wide char version of -printf
+-wscanf(#,id[,...]) wide char version of -scanf
+-zero[(#)] sets exit code to 0, unless msg. no. < #
+-$ permits $ in identifiers
+
+ Compiler-adaptation Options
+
+-a#<predicate>(tokens) (Unix) Assert the truth of #<predicate> for tokens
+-d<name>()[=<value>] define function-like macro
+-#d<name>[=<value>] defines symbol (for #include only)
+-overload(X) hex constant X sets esoteric overload resolution flags
+-plus(Char) identifies Char as an alternate option char equiv to +
+-template(X) hex constant X sets esoteric template flags
+
+ Compiler-adaptation Keywords
+
+@ ignore expression to the right
+_bit 1 bit wide type
+_gobble ignore next token
+_ignore_init ignore initializer for data and function body for functions
+_to_brackets ignore next parenthesized (or bracketed) expression
+_to_semi ignore until ;
+_to_eol ignore until end-of-line
+
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]