diff --git a/libmuparser0.changes b/libmuparser0.changes deleted file mode 100644 index 4f61146..0000000 --- a/libmuparser0.changes +++ /dev/null @@ -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 - diff --git a/libmuparser0.spec b/libmuparser0.spec deleted file mode 100644 index 8b246a5..0000000 --- a/libmuparser0.spec +++ /dev/null @@ -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 diff --git a/muparser-2.2.2.tar.bz2 b/muparser-2.2.2.tar.bz2 new file mode 100644 index 0000000..2637ebf --- /dev/null +++ b/muparser-2.2.2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55e3f1bd167d48c0e86c26b413e0ebcc6cb5aa0c7dabc065d93a5590056f3e26 +size 1393987 diff --git a/muparser-destdir.patch b/muparser-destdir.patch deleted file mode 100644 index 7bab08e..0000000 --- a/muparser-destdir.patch +++ /dev/null @@ -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) - diff --git a/muparser-fix-ac.diff b/muparser-fix-ac.diff new file mode 100644 index 0000000..b585644 --- /dev/null +++ b/muparser-fix-ac.diff @@ -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 diff --git a/muparser-fix-undef.diff b/muparser-fix-undef.diff new file mode 100644 index 0000000..8dc99ad --- /dev/null +++ b/muparser-fix-undef.diff @@ -0,0 +1,30 @@ +From: Jan Engelhardt +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::Pow(Stack[sidx], Stack[1+sidx]); ; ++ --sidx; ++ Stack[sidx] = MathImpl::Pow(Stack[sidx], Stack[1+sidx]); + continue; + + case cmLAND: --sidx; Stack[sidx] = Stack[sidx] && Stack[sidx+1]; continue; diff --git a/muparser-version.patch b/muparser-version.patch deleted file mode 100644 index a4560c5..0000000 --- a/muparser-version.patch +++ /dev/null @@ -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 . - # -@@ -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 ." - _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'`\\" - diff --git a/muparser.changes b/muparser.changes new file mode 100644 index 0000000..77812b5 --- /dev/null +++ b/muparser.changes @@ -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 + diff --git a/muparser.spec b/muparser.spec new file mode 100644 index 0000000..70fdd1a --- /dev/null +++ b/muparser.spec @@ -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