SHA256
1
0
forked from pool/muparser

Accepting request 112912 from home:jengelh:branches:science

- update to new upstream release 2.2.2
* Retrieving all results of expressions made up of comma separate
  subexpressions is now possible with a new Eval overload.
* Callback functions with fixed number of arguments can now have up
  to 10 parameters
* ternary if-then-else operator added (C-like; "x?y:z")
* new intrinsic binary operators: "&&", "||" (logical and, or)
* A new bulkmode allows submitting large arrays as variables to
  compute large numbers of expressions with a single call.- enable
  parallel build

OBS-URL: https://build.opensuse.org/request/show/112912
OBS-URL: https://build.opensuse.org/package/show/science/muparser?expand=0&rev=2
This commit is contained in:
Ismail Dönmez 2012-04-07 17:30:56 +00:00 committed by Git OBS Bridge
parent 549ab4048b
commit 0e7ce186f5
9 changed files with 218 additions and 207 deletions

View File

@ -1,19 +0,0 @@
-------------------------------------------------------------------
Wed Nov 10 19:00:00 CET 2010 - aeszter@gwdg.de
- update to 1.34
Tue Nov 17 19:00:00 CET 2009 - aeszter@gwdg.de
- fix parallel build
-------------------------------------------------------------------
Sun Aug 30 21:12:08 CEST 2009 - lars@linux-schulserver.de
- build for openSUSE-Education
-------------------------------------------------------------------
Fri Apr 3 00:00:00 CEST 2009 - uli@suse.de
- initial package

View File

@ -1,98 +0,0 @@
# norootforbuild
Name: libmuparser0
Summary: A fast math parser library
Version: 1.34
Release: 0
License: MIT
Group: Productivity/Scientific/Math
Source: muparser_v134.tar.bz2
#Patch1: muparser-destdir.patch
Patch2: muparser-optflags.patch
#Patch3: muparser-version.patch
Patch4: muparser-prereq.patch
BuildRequires: gcc-c++
%if 0%{?suse_version}
BuildRequires: pkg-config
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Many applications require the parsing of mathematical expressions. The main
objective of this library is to provide a fast and easy way of doing this.
muParser is an extensible high performance math parser library written in
C++. It works by transforming a mathematical expression into bytecode and
precalculating constant parts of the expression.
The library is written in pure C++ and should compile on every standard
compliant compiler. The parser archive comes with projects for a variety of
platforms. The code runs on 32 bit and 64 bit architechture and has been
tested using MS VC++ V8.0 and GCC V4.2.4. It reportedly works on BCB too.
Code samples are provided in order to help you understand its usage. The
library is open source and distributed under the MIT license.
Author:
-------
Ingo Berg
%package devel
Summary: A fast math parser library (development files)
Group: Development/Libraries/C and C++
Requires: %name = %version
%description devel
Development files for %name - the fast parser library.
You need this package to develop applications using the %name library.
Author:
-------
Ingo Berg
%prep
%setup -n muparser_v134
#%patch1 -p0
%patch2 -p1
#%patch3 -p1
%patch4 -p1
%build
export CXXFLAGS="%optflags" \
export CPPFLAGS="%optflags" \
%configure --enable-samples \
--enable-shared
make %{?jobs:-j%jobs}
%install
%makeinstall
mv docs/html .
for file in *.txt $(find html/ -type f); do
if [ -f $file ]; then
chmod 644 $file
sed -i "s| ||" $file
fi
done
%clean
rm -rf %buildroot
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc Changes.txt Credits.txt License.txt
%_libdir/libmuparser.so.0
%_libdir/libmuparser.so.0.0.0
%files devel
%defattr(-,root,root)
%doc html
%_includedir/muParser*.h
%_libdir/libmuparser.so
%_libdir/pkgconfig/muparser.pc
%changelog

3
muparser-2.2.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:55e3f1bd167d48c0e86c26b413e0ebcc6cb5aa0c7dabc065d93a5590056f3e26
size 1393987

View File

@ -1,13 +0,0 @@
--- Makefile.in
+++ Makefile.in
@@ -192,8 +192,8 @@
all: $(__muParser_lib___depname) $(__muParser_dll___depname) $(__example1___depname)
install: all $(__install_muParser_lib___depname) $(__install_muParser_lib_headers___depname) $(__install_muParser_dll___depname) $(__install_muParser_dll_headers___depname)
- $(INSTALL_DIR) $(libdir)/pkgconfig
- $(INSTALL_DATA) build/autoconf/muparser.pc $(libdir)/pkgconfig
+ $(INSTALL_DIR) $(DESTDIR)$(libdir)/pkgconfig
+ $(INSTALL_DATA) build/autoconf/muparser.pc $(DESTDIR)$(libdir)/pkgconfig
uninstall: $(__uninstall_muParser_lib___depname) $(__uninstall_muParser_lib_headers___depname) $(__uninstall_muParser_dll___depname) $(__uninstall_muParser_dll_headers___depname)

62
muparser-fix-ac.diff Normal file
View File

@ -0,0 +1,62 @@
Unbreak `./configure CFLAGS=-ggdb3`.
N.B.: Do NOT set CFLAGS/CXXFLAGS/CPPFLAGS from project files at all,
these are reserved for the user. (Section 3.6 of automake.info).
`./configure && make CFLAGS=-ggdb3` still removes the project-provided flags.
And parallel building is still broken. I hate you, bakefile.
---
build/autoconf/bakefile-presets.m4 | 13 +++++++++----
build/autoconf/configure.ac | 12 +++++++-----
2 files changed, 16 insertions(+), 9 deletions(-)
Index: muparser-2.2.2/build/autoconf/bakefile-presets.m4
===================================================================
--- muparser-2.2.2.orig/build/autoconf/bakefile-presets.m4
+++ muparser-2.2.2/build/autoconf/bakefile-presets.m4
@@ -74,12 +74,17 @@ AC_DEFUN([AC_BAKEFILE_DEBUGOPT],
dnl and thus we must be careful to add it only to CXXFLAGS and not to CFLAGS
dnl (remember that CPPFLAGS is reserved for both C and C++ compilers while
dnl CFLAGS is intended as flags for C compiler only and CXXFLAGS for C++ only)
- CXXFLAGS="$CXXFLAGS -g -O0 -Wall -Wundef -Wno-ctor-dtor-privacy"
- CFLAGS="$CFLAGS -g -O0 -Wall -Wundef"
+ my_CXXFLAGS="$my_CXXFLAGS -g -O0 -Wall -Wundef -Wno-ctor-dtor-privacy"
+ my_CFLAGS="$my_CFLAGS -g -O0 -Wall -Wundef"
else
- CXXFLAGS="$CXXFLAGS -O2"
- CFLAGS="$CFLAGS -O2"
+ my_CXXFLAGS="$my_CXXFLAGS -O2"
+ my_CFLAGS="$my_CFLAGS -O2"
fi
+ # User-supplied CXXFLAGS must always take precedence.
+ # This still sucks because using `make CFLAGS=-foobar` kills
+ # the project-supplied flags again.
+ CXXFLAGS="$my_CXXFLAGS $CXXFLAGS"
+ CFLAGS="$my_CFLAGS $CFLAGS"
])
dnl ---------------------------------------------------------------------------
Index: muparser-2.2.2/build/autoconf/configure.ac
===================================================================
--- muparser-2.2.2.orig/build/autoconf/configure.ac
+++ muparser-2.2.2/build/autoconf/configure.ac
@@ -25,11 +25,13 @@ dnl (and sets the AC_CANONICAL_BUILD, AC
dnl AC_CANONICAL_TARGET variables)
AC_CANONICAL_SYSTEM
-dnl we set these vars to avoid that the AC_PROG_C* macros add the "-g -O2" flags;
-dnl we will add them later, if needed
-CFLAGS=
-CXXFLAGS=
-CPPFLAGS=
+# We want to inhibit AC_PROG_C* macros adding the default "-g -O2" flags.
+# To do so, make sure that the variables are not unset - it is ok if they are
+# empty. However, their value MUST be retained, since one may have
+# called ./configure CFLAGS=-foobar.
+CFLAGS="$CFLAGS"
+CPPFLAGS="$CPPFLAGS"
+CXXFLAGS="$CXXFLAGS"
dnl Checks for basic programs used to compile/install.
AC_PROG_AWK

30
muparser-fix-undef.diff Normal file
View File

@ -0,0 +1,30 @@
From: Jan Engelhardt <jengelh@medozas.de>
Date: 2012-04-06 22:49:28.359430308 +0200
Resolve undefined behavior in muParserBase
./src/muParserBase.cpp:1041:85: warning: operation on 'sidx' may be undefined [-Wsequence-point]
./src/muParserBase.cpp:1041:85: warning: operation on 'sidx' may be undefined [-Wsequence-point]
I: Program causes undefined operation
(likely same variable used twiceand post/pre incremented in the same expression).
e.g. x = x++; Split it in two operations.
W: muparser sequence-point ./src/muParserBase.cpp:1041
---
src/muParserBase.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: muparser-2.2.2/src/muParserBase.cpp
===================================================================
--- muparser-2.2.2.orig/src/muParserBase.cpp
+++ muparser-2.2.2/src/muParserBase.cpp
@@ -1038,7 +1038,8 @@ namespace mu
continue;
case cmPOW:
- Stack[--sidx] = MathImpl<value_type>::Pow(Stack[sidx], Stack[1+sidx]); ;
+ --sidx;
+ Stack[sidx] = MathImpl<value_type>::Pow(Stack[sidx], Stack[1+sidx]);
continue;
case cmLAND: --sidx; Stack[sidx] = Stack[sidx] && Stack[sidx+1]; continue;

View File

@ -1,77 +0,0 @@
Index: muparser/configure
===================================================================
--- muparser.orig/configure
+++ muparser/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.60 for muParser 1.27.
+# Generated by GNU Autoconf 2.60 for muParser 1.30.
#
# Report bugs to <frm@users.sourceforge.net>.
#
@@ -559,8 +559,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='muParser'
PACKAGE_TARNAME='muparser'
-PACKAGE_VERSION='1.27'
-PACKAGE_STRING='muParser 1.27'
+PACKAGE_VERSION='1.30'
+PACKAGE_STRING='muParser 1.30'
PACKAGE_BUGREPORT='frm@users.sourceforge.net'
ac_subst_vars='SHELL
@@ -1212,7 +1212,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures muParser 1.27 to adapt to many kinds of systems.
+\`configure' configures muParser 1.30 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1278,7 +1278,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of muParser 1.27:";;
+ short | recursive ) echo "Configuration of muParser 1.30:";;
esac
cat <<\_ACEOF
@@ -1368,7 +1368,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-muParser configure 1.27
+muParser configure 1.30
generated by GNU Autoconf 2.60
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1382,7 +1382,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by muParser $as_me 1.27, which was
+It was created by muParser $as_me 1.30, which was
generated by GNU Autoconf 2.60. Invocation command line was
$ $0 $@
@@ -6629,7 +6629,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by muParser $as_me 1.27, which was
+This file was extended by muParser $as_me 1.30, which was
generated by GNU Autoconf 2.60. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6672,7 +6672,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-muParser config.status 1.27
+muParser config.status 1.30
configured by $0, generated by GNU Autoconf 2.60,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

34
muparser.changes Normal file
View File

@ -0,0 +1,34 @@
-------------------------------------------------------------------
Thu Apr 5 11:24:30 UTC 2012 - jengelh@medozas.de
- update to new upstream release 2.2.2
* Retrieving all results of expressions made up of comma separate
subexpressions is now possible with a new Eval overload.
* Callback functions with fixed number of arguments can now have up
to 10 parameters
* ternary if-then-else operator added (C-like; "x?y:z")
* new intrinsic binary operators: "&&", "||" (logical and, or)
* A new bulkmode allows submitting large arrays as variables to
compute large numbers of expressions with a single call.- enable
parallel build
-------------------------------------------------------------------
Wed Nov 10 19:00:00 CET 2010 - aeszter@gwdg.de
- update to 1.34
-------------------------------------------------------------------
Tue Nov 17 19:00:00 CET 2009 - aeszter@gwdg.de
- fix parallel build
-------------------------------------------------------------------
Sun Aug 30 21:12:08 CEST 2009 - lars@linux-schulserver.de
- build for openSUSE-Education
-------------------------------------------------------------------
Fri Apr 3 00:00:00 CEST 2009 - uli@suse.de
- initial package

89
muparser.spec Normal file
View File

@ -0,0 +1,89 @@
#
# spec file for package muparser
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: muparser
%define lname libmuparser2
Summary: A math parser library
License: MIT
Group: Productivity/Scientific/Math
Version: 2.2.2
Release: 0
Url: http://muparser.sf.net/
# quilt does not like zips very much. downloaded and repackaged.
Source: %name-%version.tar.bz2
Patch1: muparser-fix-ac.diff
Patch2: muparser-fix-undef.diff
Patch3: muparser-optflags.patch
Patch4: muparser-prereq.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf automake gcc-c++ libtool pkgconfig
%description
muParser is an extensible high performance math parser library written in
C++. It works by transforming a mathematical expression into bytecode and
precalculating constant parts of the expression.
%package -n %lname
Summary: Library to evaluate strings as mathematical functions
Group: System/Libraries
%description -n %lname
muParser is an extensible high performance math parser library written in
C++. It works by transforming a mathematical expression into bytecode and
precalculating constant parts of the expression.
%package devel
Summary: Development files for muparser
Group: Development/Libraries/C and C++
Requires: %lname = %version
%description devel
muParser is an extensible high performance math parser library written in
C++. It works by transforming a mathematical expression into bytecode and
precalculating constant parts of the expression.
%prep
%setup -q
%patch -P 1 -P 2 -P 3 -p1
%build
sh build/autoconf/acregen.sh
%configure --enable-samples --enable-shared
# bakafile not parallel sife - duh
make -j1
%install
make install DESTDIR="%buildroot"
rm -f "%buildroot/%_libdir"/*.la
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%files -n %lname
%defattr(-,root,root)
%_libdir/libmuparser.so.2*
%doc License.txt
%files devel
%defattr(-,root,root)
%_includedir/muParser*.h
%_libdir/libmuparser.so
%_libdir/pkgconfig/muparser.pc
%doc Changes.txt
%changelog