diff options
Diffstat (limited to 'testing/flex')
-rw-r--r-- | testing/flex/PKGBUILD | 59 | ||||
-rw-r--r-- | testing/flex/flex-2.5.35-gcc44.patch | 22 | ||||
-rw-r--r-- | testing/flex/flex-2.5.35-hardening.patch | 36 | ||||
-rw-r--r-- | testing/flex/flex-2.5.35-missing-prototypes.patch | 53 | ||||
-rw-r--r-- | testing/flex/flex-2.5.35-sign.patch | 11 | ||||
-rw-r--r-- | testing/flex/flex.install | 22 | ||||
-rw-r--r-- | testing/flex/lex.sh | 3 |
7 files changed, 206 insertions, 0 deletions
diff --git a/testing/flex/PKGBUILD b/testing/flex/PKGBUILD new file mode 100644 index 000000000..828cd9b84 --- /dev/null +++ b/testing/flex/PKGBUILD @@ -0,0 +1,59 @@ +# $Id: PKGBUILD 141917 2011-11-03 06:31:54Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> + +pkgname=flex +pkgver=2.5.35 +pkgrel=5 +pkgdesc="A tool for generating text-scanning programs" +arch=('i686' 'x86_64') +url="http://flex.sourceforge.net" +license=('custom') +groups=('base-devel') +depends=('glibc' 'm4' 'sh') +install=flex.install +source=(http://downloads.sourceforge.net/sourceforge/flex/flex-$pkgver.tar.bz2 + flex-2.5.35-gcc44.patch + flex-2.5.35-hardening.patch + flex-2.5.35-missing-prototypes.patch + flex-2.5.35-sign.patch + lex.sh) +md5sums=('10714e50cea54dc7a227e3eddcd44d57' + 'e4444ef5c07db71a43280be74139bdea' + 'de952b3ed7cc074bc8c3e6ab73634048' + '6b83f56b1b654c6a321cdc530a3ec68d' + 'd87fd9e9762ba7e230d516bdcf1c8c6f' + 'f725259ec23a9e87ee29e2ef82eda9a5') + +build() { + cd $srcdir/$pkgname-$pkgver + + patch -Np1 -i $srcdir/flex-2.5.35-gcc44.patch + patch -Np1 -i $srcdir/flex-2.5.35-hardening.patch + patch -Np1 -i $srcdir/flex-2.5.35-missing-prototypes.patch + patch -Np1 -i $srcdir/flex-2.5.35-sign.patch + + ./configure --prefix=/usr \ + --mandir=/usr/share/man --infodir=/usr/share/info + make +} + +check() { + cd $srcdir/$pkgname-$pkgver + make check +} + +package() { + cd $srcdir/$pkgname-$pkgver + + make prefix=$pkgdir/usr \ + mandir=$pkgdir/usr/share/man \ + infodir=$pkgdir/usr/share/info \ + install + install -Dm755 $srcdir/lex.sh $pkgdir/usr/bin/lex + + install -Dm644 COPYING \ + $pkgdir/usr/share/licenses/$pkgname/license.txt + +} + diff --git a/testing/flex/flex-2.5.35-gcc44.patch b/testing/flex/flex-2.5.35-gcc44.patch new file mode 100644 index 000000000..7929fc092 --- /dev/null +++ b/testing/flex/flex-2.5.35-gcc44.patch @@ -0,0 +1,22 @@ +diff -urNp flex-2.5.35.orig/flex.skl flex-2.5.35/flex.skl +--- flex-2.5.35.orig/flex.skl 2009-04-20 03:09:46.000000000 +0530 ++++ flex-2.5.35/flex.skl 2009-04-20 07:46:58.000000000 +0530 +@@ -217,6 +217,7 @@ m4preproc_include(`flexint.h') + /* begin standard C++ headers. */ + #include <iostream> + #include <errno.h> ++#include <cstdio> + #include <cstdlib> + #include <cstring> + /* end standard C++ headers. */ +diff -urNp flex-2.5.35.orig/skel.c flex-2.5.35/skel.c +--- flex-2.5.35.orig/skel.c 2009-04-20 03:09:46.000000000 +0530 ++++ flex-2.5.35/skel.c 2009-04-20 07:46:40.000000000 +0530 +@@ -284,6 +284,7 @@ const char *skel[] = { + "/* begin standard C++ headers. */", + "#include <iostream> ", + "#include <errno.h>", ++ "#include <cstdio>", + "#include <cstdlib>", + "#include <cstring>", + "/* end standard C++ headers. */", diff --git a/testing/flex/flex-2.5.35-hardening.patch b/testing/flex/flex-2.5.35-hardening.patch new file mode 100644 index 000000000..7d608ea23 --- /dev/null +++ b/testing/flex/flex-2.5.35-hardening.patch @@ -0,0 +1,36 @@ +diff -u flex-2.5.35/scan.c flex-2.5.35/scan.c +--- flex-2.5.35/scan.c ++++ flex-2.5.35/scan.c +@@ -2096,7 +2096,7 @@ + /* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +-#define ECHO fwrite( yytext, yyleng, 1, yyout ) ++#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) + #endif + + /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, +diff -u flex-2.5.35/flex.skl flex-2.5.35/flex.skl +--- flex-2.5.35/flex.skl ++++ flex-2.5.35/flex.skl +@@ -1075,7 +1075,7 @@ + /* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +-#define ECHO fwrite( yytext, yyleng, 1, yyout ) ++#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) + %endif + %if-c++-only C++ definition + #define ECHO LexerOutput( yytext, yyleng ) +diff -u flex-2.5.35/skel.c flex-2.5.35/skel.c +--- flex-2.5.35/skel.c ++++ flex-2.5.35/skel.c +@@ -1142,7 +1142,7 @@ + "/* This used to be an fputs(), but since the string might contain NUL's,", + " * we now use fwrite().", + " */", +- "#define ECHO fwrite( yytext, yyleng, 1, yyout )", ++ "#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)", + "%endif", + "%if-c++-only C++ definition", + "#define ECHO LexerOutput( yytext, yyleng )", diff --git a/testing/flex/flex-2.5.35-missing-prototypes.patch b/testing/flex/flex-2.5.35-missing-prototypes.patch new file mode 100644 index 000000000..5cde0660e --- /dev/null +++ b/testing/flex/flex-2.5.35-missing-prototypes.patch @@ -0,0 +1,53 @@ +diff -up flex-2.5.35/flex.skl\~ flex-2.5.35/flex.skl +--- flex-2.5.35/flex.skl~ 2010-07-13 17:18:43.000000000 +0200 ++++ flex-2.5.35/flex.skl 2010-07-13 17:23:49.000000000 +0200 +@@ -960,6 +960,22 @@ m4_ifdef( [[M4_YY_NO_SET_LINENO]],, + void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG ); + ]]) + ++m4_ifdef( [[M4_YY_REENTRANT]], ++[[ ++m4_ifdef( [[M4_YY_NO_GET_COLUMN]],, ++[[ ++int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG ); ++]]) ++]]) ++ ++m4_ifdef( [[M4_YY_REENTRANT]], ++[[ ++m4_ifdef( [[M4_YY_NO_SET_COLUMN]],, ++[[ ++void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG ); ++]]) ++]]) ++ + %if-bison-bridge + m4_ifdef( [[M4_YY_NO_GET_LVAL]],, + [[ + +Diff finished. Tue Jul 13 17:27:50 2010 +--- flex-2.5.35/skel.c~ 2010-07-14 13:15:42.000000000 +0200 ++++ flex-2.5.35/skel.c 2010-07-14 13:16:05.000000000 +0200 +@@ -1027,6 +1027,22 @@ + "void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );", + "]])", + "", ++ "m4_ifdef( [[M4_YY_REENTRANT]],", ++ "[[", ++ "m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,", ++ "[[", ++ "int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", ++ "]])", ++ "]])", ++ "", ++ "m4_ifdef( [[M4_YY_REENTRANT]],", ++ "[[", ++ "m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,", ++ "[[", ++ "void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );", ++ "]])", ++ "]])", ++ "", + "%if-bison-bridge", + "m4_ifdef( [[M4_YY_NO_GET_LVAL]],,", + "[[", diff --git a/testing/flex/flex-2.5.35-sign.patch b/testing/flex/flex-2.5.35-sign.patch new file mode 100644 index 000000000..fbee18bde --- /dev/null +++ b/testing/flex/flex-2.5.35-sign.patch @@ -0,0 +1,11 @@ +--- flex-2.5.35/gen.c-orig 2008-04-30 22:51:08.000000000 +0200 ++++ flex-2.5.35/gen.c 2008-04-30 22:51:14.000000000 +0200 +@@ -1890,7 +1890,7 @@ + outn ("\tif ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \\"); + outn ("\t\t{ \\"); + outn ("\t\tint c = '*'; \\"); +- outn ("\t\tint n; \\"); ++ outn ("\t\tunsigned n; \\"); + outn ("\t\tfor ( n = 0; n < max_size && \\"); + outn ("\t\t\t (c = getc( yyin )) != EOF && c != '\\n'; ++n ) \\"); + outn ("\t\t\tbuf[n] = (char) c; \\"); diff --git a/testing/flex/flex.install b/testing/flex/flex.install new file mode 100644 index 000000000..5b328c722 --- /dev/null +++ b/testing/flex/flex.install @@ -0,0 +1,22 @@ +infodir=/usr/share/info +filelist=(flex.info{,-1,-2}) + +post_install() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +# vim:set ts=2 sw=2 et: diff --git a/testing/flex/lex.sh b/testing/flex/lex.sh new file mode 100644 index 000000000..13e7de692 --- /dev/null +++ b/testing/flex/lex.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/bin/flex -l "$@" |