[polybori] New upstream release. Fix desktop file. Build no longer succeeds with external CUDD; the polybori de

Jerry James jjames at fedoraproject.org
Tue Mar 20 22:25:23 UTC 2012


commit 8ae9d504d66ef4b743acbb4e4815da4f4908efb7
Author: Jerry James <loganjerry at gmail.com>
Date:   Tue Mar 20 16:24:47 2012 -0600

    New upstream release.
    Fix desktop file.
    Build no longer succeeds with external CUDD; the polybori developers have
    stripped down and altered the CUDD sources, forcing us to use their version.

 .gitignore                 |    2 +-
 polybori-gcc47.patch       |   10 +-
 polybori-import.patch      |   17 ----
 polybori-m4ri.patch        |   11 ---
 polybori-system-cudd.patch |   89 --------------------
 polybori-warning.patch     |  197 +-------------------------------------------
 polybori.desktop           |    2 +-
 polybori.spec              |  101 ++++++++---------------
 sources                    |    2 +-
 9 files changed, 45 insertions(+), 386 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index d187c81..db00372 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-/polybori-0.8.0.tar.gz
 /polybori-logos.tar.xz
+/polybori-0.8.1.tar.gz
diff --git a/polybori-gcc47.patch b/polybori-gcc47.patch
index 366a1e2..2fdec54 100644
--- a/polybori-gcc47.patch
+++ b/polybori-gcc47.patch
@@ -1,5 +1,5 @@
---- ./libpolybori/include/polybori/orderings/CBlockOrderingFacade.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/orderings/CBlockOrderingFacade.h	2012-01-10 13:10:32.797502088 -0700
+--- ./libpolybori/include/polybori/orderings/CBlockOrderingFacade.h.orig	2012-03-16 15:41:09.000000000 -0600
++++ ./libpolybori/include/polybori/orderings/CBlockOrderingFacade.h	2012-03-19 14:45:20.712316696 -0600
 @@ -91,7 +91,7 @@ public:
      CacheManager<order_lead_tag> cache_mgr(poly.ring());
      typename base_type::descending_property descending;
@@ -9,9 +9,9 @@
                                          poly.navigation(), m_indices.begin(),
                                          set_type(poly.ring()), descending) );
    }
---- ./libpolybori/include/polybori/iterators/CTermStack.h.orig	2012-01-10 13:08:03.692057537 -0700
-+++ ./libpolybori/include/polybori/iterators/CTermStack.h	2012-01-10 13:11:14.958658727 -0700
-@@ -853,7 +853,7 @@ public:
+--- ./libpolybori/include/polybori/iterators/CTermStack.h.orig	2012-03-16 15:41:09.000000000 -0600
++++ ./libpolybori/include/polybori/iterators/CTermStack.h	2012-03-19 14:45:20.712316696 -0600
+@@ -854,7 +854,7 @@ public:
      PBORI_ASSERT(m_zero.isValid());
      PBORI_ASSERT(m_zero.isEmpty());
  
diff --git a/polybori-warning.patch b/polybori-warning.patch
index d071cba..0aa1b8e 100644
--- a/polybori-warning.patch
+++ b/polybori-warning.patch
@@ -1,198 +1,5 @@
---- ./libpolybori/include/polybori/factories/VariableFactory.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/factories/VariableFactory.h	2011-09-29 15:26:37.579079066 -0600
-@@ -6,7 +6,7 @@
-  * @date 2011-05-05
-  *
-  * This file defines the base class VariableFactory which is used for
-- * @i currying the constructors of @c BooleVariable with a BoolePolyRing.
-+ * @em currying the constructors of @c BooleVariable with a BoolePolyRing.
-  *
-  * @par Copyright:
-  *   (c) by The PolyBoRi Team
-@@ -25,8 +25,8 @@
- BEGIN_NAMESPACE_PBORI
- 
- /** @class VariableFactory
-- * @brief This base class VariableFactory is used for @i currying
-- * monimial constructors with a BoolePolyRing.
-+ * @brief This base class VariableFactory is used for @em currying
-+ * variable constructors with a BoolePolyRing.
-  *
-  **/
- 
---- ./libpolybori/include/polybori/factories/MonomialFactory.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/factories/MonomialFactory.h	2011-09-29 15:26:37.579079066 -0600
-@@ -6,7 +6,7 @@
-  * @date 2011-05-05
-  *
-  * This file defines the base class MonomialFactory which is used for
-- * @i currying the constructors of @c BooleMonomial with a BoolePolyRing.
-+ * @em currying the constructors of @c BooleMonomial with a BoolePolyRing.
-  *
-  * @par Copyright:
-  *   (c) by The PolyBoRi Team
-@@ -25,8 +25,8 @@
- BEGIN_NAMESPACE_PBORI
- 
- /** @class MonomialFactory
-- * @brief This base class MonomialFactory is used for @i currying
-- * monimial constructors with a BoolePolyRing.
-+ * @brief This base class MonomialFactory is used for @em currying
-+ * monomial constructors with a BoolePolyRing.
-  *
-  **/
- 
---- ./libpolybori/include/polybori/factories/SetFactory.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/factories/SetFactory.h	2011-09-29 15:26:37.580079044 -0600
-@@ -6,7 +6,7 @@
-  * @date 2011-05-056
-  *
-  * This file defines the base class SetFactory which is used for
-- * @i currying the constructors of @c BooleSet with a BoolePolyRing.
-+ * @em currying the constructors of @c BooleSet with a BoolePolyRing.
-  *
-  * @par Copyright:
-  *   (c) by The PolyBoRi Team
-@@ -25,8 +25,8 @@
- BEGIN_NAMESPACE_PBORI
- 
- /** @class SetFactory
-- * @brief This base class SetFactory is used for @i currying
-- * monimial constructors with a BoolePolyRing.
-+ * @brief This base class SetFactory is used for @em currying
-+ * set constructors with a BoolePolyRing.
-  *
-  **/
- 
---- ./libpolybori/include/polybori/factories/CFactoryBase.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/factories/CFactoryBase.h	2011-09-29 15:26:37.580079044 -0600
-@@ -5,7 +5,7 @@
-  * @author Alexander Dreyer
-  * @date 2011-05-05
-  *
-- * This file defines the base class CFactoryBase which is used for @i currying
-+ * This file defines the base class CFactoryBase which is used for @em currying
-  * other constructors with a BoolePolyRing.
-  *
-  * @par Copyright:
-@@ -25,7 +25,7 @@
- BEGIN_NAMESPACE_PBORI
- 
- /** @class CFactoryBase
-- * @brief This base class CFactoryBase is used for @i currying
-+ * @brief This base class CFactoryBase is used for @em currying
-  * other constructors with a BoolePolyRing.
-  *
-  * We generate psuedo constructors that a ring to be provided, because the
---- ./libpolybori/include/polybori/factories/PolynomialFactory.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/factories/PolynomialFactory.h	2011-09-29 15:26:37.581079022 -0600
-@@ -6,7 +6,7 @@
-  * @date 2011-05-056
-  *
-  * This file defines the base class PolynomialFactory which is used for
-- * @i currying the constructors of @c BoolePolynomial with a BoolePolyRing.
-+ * @em currying the constructors of @c BoolePolynomial with a BoolePolyRing.
-  *
-  * @par Copyright:
-  *   (c) by The PolyBoRi Team
-@@ -25,8 +25,8 @@
- BEGIN_NAMESPACE_PBORI
- 
- /** @class PolynomialFactory
-- * @brief This base class PolynomialFactory is used for @i currying
-- * monimial constructors with a BoolePolyRing.
-+ * @brief This base class PolynomialFactory is used for @em currying
-+ * polynomial constructors with a BoolePolyRing.
-  *
-  **/
- 
---- ./libpolybori/include/polybori/ring/CCallbackWrapper.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/ring/CCallbackWrapper.h	2011-09-29 15:26:37.582079000 -0600
-@@ -30,7 +30,7 @@
-  * If applies a stored member function pointer (together with a stored object
-  * reference) to the argument of operator().
-  *
-- * It is to be used as a face of @Type, e. g. for @c CCallbackWrapper below.
-+ * It is to be used as a face of @c Type, e. g. for @c CCallbackWrapper below.
-  *
-  * @note Specialized variant to void member functions
-  * @attention Currently, the class supports unary functions only.
---- ./libpolybori/include/polybori/ring/CCuddInterface.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/ring/CCuddInterface.h	2011-09-29 15:26:37.581079022 -0600
-@@ -44,15 +44,15 @@
- // get cudd error texts
- inline const char* error_text(DdManager* mgr) {
-     switch (Cudd_ReadErrorCode(mgr)) {
--    CUDD_MEMORY_OUT:
-+    case CUDD_MEMORY_OUT:
-       return("Out of memory.");
--    CUDD_TOO_MANY_NODES:
-+    case CUDD_TOO_MANY_NODES:
-       return("To many nodes.");
--    CUDD_MAX_MEM_EXCEEDED:
-+    case CUDD_MAX_MEM_EXCEEDED:
-       return("Maximum memory exceeded.");
--    CUDD_INVALID_ARG:
-+    case CUDD_INVALID_ARG:
-       return("Invalid argument.");
--    CUDD_INTERNAL_ERROR:
-+    case CUDD_INTERNAL_ERROR:
-       return("Internal error.");
-     }
-     return("Unexpected error.");
---- ./libpolybori/include/polybori/iterators/CTermStack.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/iterators/CTermStack.h	2011-09-29 15:26:37.582079000 -0600
-@@ -411,7 +411,7 @@
-     bool invalid = true;
-     while (!base::empty() && invalid) {
-       incrementElse();
--      if (invalid = base::isInvalid())
-+      if ((invalid = base::isInvalid()))
-         base::decrementNode();
-     }
-   }
-@@ -627,7 +627,7 @@
-     while (!atBegin() && invalid) {
-       PBORI_ASSERT(!base::isConstant());
-       base::incrementElse();
--      if (invalid = base::isInvalid())
-+      if ((invalid = base::isInvalid()))
-         base::decrementNode();
-     }
-   }
-@@ -810,7 +810,7 @@
-         }
-         base::gotoEnd();
- 
--        if (doloop = (base::isInvalid() || (base::size() != size)) )
-+        if ((doloop = (base::isInvalid() || (base::size() != size)) ))
-           base::decrementNode();
- 
-     } while (!base::empty() && doloop);
---- ./libpolybori/include/polybori/orderings/order_tags.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./libpolybori/include/polybori/orderings/order_tags.h	2011-09-29 15:26:37.578079087 -0600
-@@ -36,7 +36,7 @@
-  **/
- struct dp_asc_tag {};
- 
--/**@class block_tag<Tag>
-+/**@class block_tag
-  * @brief Marker for block orderings.
-  **/
- template <class TagType>
---- ./PyPolyBoRi/main_wrapper.cc.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./PyPolyBoRi/main_wrapper.cc	2011-09-29 15:26:37.583078979 -0600
-@@ -126,7 +126,7 @@
-   export_poly();
-   export_nav();
-   export_test_util();
--  #ifdef HANVE_NTL
-+  #ifdef HAVE_NTL
-   export_ntl();
-   #endif
-   enum_<COrderEnums::ordercodes>("OrderCode")
---- ./groebner/include/polybori/groebner/ExpLexLess.h.orig	2011-09-07 14:25:22.000000000 -0600
-+++ ./groebner/include/polybori/groebner/ExpLexLess.h	2011-09-29 15:27:22.129121193 -0600
+--- ./groebner/include/polybori/groebner/ExpLexLess.h.orig	2012-03-16 15:41:09.000000000 -0600
++++ ./groebner/include/polybori/groebner/ExpLexLess.h	2012-03-19 14:44:32.532374477 -0600
 @@ -1,6 +1,6 @@
  // -*- c++ -*-
  //*****************************************************************************
diff --git a/polybori.desktop b/polybori.desktop
index 7e3c3d7..a8dcf1f 100644
--- a/polybori.desktop
+++ b/polybori.desktop
@@ -4,7 +4,7 @@ Type=Application
 Name=PolyBoRi
 GenericName=Boolean Rings
 Comment=PolyBoRi GUI
-Exec=PolyGUI %U
+Exec=PolyGUI %f
 TryExec=PolyGUI
 Terminal=false
 StartupNotify=false
diff --git a/polybori.spec b/polybori.spec
index c580548..e809ad9 100644
--- a/polybori.spec
+++ b/polybori.spec
@@ -2,8 +2,8 @@
 # it must be present anyway.  DO NOT REMOVE IT.
 
 Name:           polybori
-Version:        0.8.0
-Release:        7%{?dist}
+Version:        0.8.1
+Release:        1%{?dist}
 Summary:        Framework for Boolean Rings
 Group:          Development/Libraries
 License:        GPLv2+
@@ -12,23 +12,12 @@ Source0:        http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.
 Source1:        %{name}.desktop
 # These logos were created with gimp from the official polybori logo
 Source2:        %{name}-logos.tar.xz
-# This patch is specific to Fedora.  Use system CUDD libraries instead of
-# building the included CUDD sources
-Patch0:         %{name}-system-cudd.patch
-# Sent upstream 7 Sep 2011.  Fix some broken code that leads to compiler
-# warnings.
-Patch1:         %{name}-warning.patch
-# Sent upstream 7 Sep 2011.  Fix a broken Python import.
-Patch2:         %{name}-import.patch
-# Sent upstream 14 Oct 2011.  The __M4RI_HAVE_ macros may be defined, but have
-# the value 0.
-Patch3:         %{name}-m4ri.patch
-# Not yet sent upstream.  Adapt to GCC 4.7 C++ scope rules.
-Patch4:         %{name}-gcc47.patch
+# Sent upstream 20 Mar 2012.  Fix a doxygen warning.
+Patch0:         %{name}-warning.patch
+# Sent upstream 20 Mar 2012.  Adapt to GCC 4.7 C++ scope rules.
+Patch1:         %{name}-gcc47.patch
 
 BuildRequires:  boost-devel
-BuildRequires:  cudd-devel
-BuildRequires:  cudd-static
 BuildRequires:  desktop-file-utils
 BuildRequires:  doxygen
 BuildRequires:  gd-devel
@@ -59,7 +48,6 @@ Summary:        Development files for %{name}
 Group:          Development/Libraries
 Requires:       %{name}%{?_isa} = %{version}-%{release}
 Requires:       boost-devel%{?_isa}
-Requires:       cudd-devel%{?_isa}
 Provides:       python-%{name}-devel = %{version}-%{release}
 Obsoletes:      python-%{name}-devel < 0.8.0-1
 
@@ -121,41 +109,31 @@ Qt GUI for %{name}.
 %setup -q
 %patch0
 %patch1
-%patch2
-%patch3
-%patch4
-
-# Remove private copy of system libs (cudd, m4ri, and pyparsing) and obsolete
-# Singular interface
-rm -rf Cudd M4RI Singular PyPolyBoRi/pyparsing.py
-
-# Fix up includes of cudd header files, without changing timestamps
-for fil in libpolybori/include/polybori/diagram/CCuddDDFacade.h \
-    libpolybori/include/polybori/diagram/CDDOperations.h \
-    libpolybori/include/polybori/pbori_defs.h \
-    libpolybori/include/polybori/ring/CCuddInterface.h \
-    libpolybori/include/polybori/routines/pbori_algo.h \
-    libpolybori/src/BoolePolyRing.cc \
-    libpolybori/src/pbori_routines.cc; do
-  sed 's|polybori/cudd|cudd|' ${fil} > ${fil}.new
-  touch -r ${fil} ${fil}.new
-  mv ${fil}.new ${fil}
-done
+
+# Remove private copy of system libs (m4ri and pyparsing)
+rm -rf M4RI PyPolyBoRi/pyparsing.py
 
 # Fix library path for 64 bit systems
 if [ %{__isa_bits} = "64" ]; then
   sed -i "s|'\$DEVEL_PREFIX/lib'|'\$DEVEL_PREFIX/lib64'|" SConstruct
 fi
 
-# Fix a dependency
-sed "s|/usr/bin/env python|/usr/bin/python|" pyroot/polybori/cluster.py > foo
-touch -r pyroot/polybori/cluster.py foo
-mv -f foo pyroot/polybori/cluster.py
+# Fix RPM dependency generation
+for fil in gui/PolyGUI ipbori/ipbori; do
+  sed "s|/usr/bin/env python|/usr/bin/python|" ${fil} > ${fil}.new
+  touch -r ${fil} ${fil}.new
+  mv ${fil}.new ${fil}
+done
+
+# Eliminate rpaths
+sed -i "s/'\${_relative_rpath.*/''])/" SConstruct
 
 %build
 scons %{?_smp_mflags} prepare-install \
-  CCFLAGS="%{optflags} -I%{_includedir}/m4ri" \
-  LIBS="-lcudd"
+  PREFIX=%{buildroot}%{_prefix} \
+  DEVEL_PREFIX=%{buildroot}%{_prefix} \
+  CPPPATH="-I%{_includedir}/m4ri" \
+  M4RI_RPM="True"
 
 %install
 scons %{?_smp_mflags} install devel-install \
@@ -165,25 +143,13 @@ scons %{?_smp_mflags} install devel-install \
   MANDIR=%{buildroot}%{_mandir} \
   PYINSTALLPREFIX=%{buildroot}%{python_sitearch} \
   DEVEL_PREFIX=%{buildroot}%{_prefix} \
-  CCFLAGS="%{optflags} -I%{_includedir}/m4ri" \
-  LIBS="-lcudd"
-
-# Relink against a minimal set of libraries to eliminate rpmlint warnings
-# about unused direct dependencies on libraries.  Also PyPolyBoRi.so is created
-# to contain all of the object files in both libpolybori and
-# libpolybori_groebner, instead of linking against them.
-g++ -o %{buildroot}%{_libdir}/libpolybori-%{version}.so.0.0.0 -shared \
-  -Wl,-soname,lib%{name}-%{version}.so.0 libpolybori/src/*.os %{optflags} \
-  -Wl,--as-needed -lcudd
-
-g++ -o %{buildroot}%{_libdir}/libpolybori_groebner-%{version}.so.0.0.0 \
-  -shared -Wl,-soname,lib%{name}_groebner-%{version}.so.0 groebner/src/*.os \
-  %{optflags} -Wl,--as-needed -L%{buildroot}%{_libdir} -l%{name}-%{version} \
-  -lcudd -lgd -lm4ri
-
-g++ -o %{buildroot}%{python_sitearch}/polybori/dynamic/PyPolyBoRi.so -shared \
-  PyPolyBoRi/*.os %{optflags} -Wl,--as-needed -L%{buildroot}%{_libdir} \
-  -l%{name}_groebner-%{version} -l%{name}-%{version} -lboost_python
+  CPPPATH="-I%{_includedir}/m4ri" \
+  SHLINKFLAGS="$RPM_LD_FLAGS -Wl,--as-needed" \
+  M4RI_RPM="True"
+
+# The install step doesn't set shared object permissions correctly
+chmod 0755 %{buildroot}%{_libdir}/*.so.0.0.0
+chmod 0755 %{buildroot}%{python_sitearch}/%{name}/dynamic/PyPolyBoRi.so
 
 # Install the desktop file
 cp -p %{SOURCE1} .
@@ -193,9 +159,6 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{name}.desktop
 mkdir -p %{buildroot}%{icondir}
 tar xJf %{SOURCE2} -C %{buildroot}%{icondir}
 
-# Add a missing executable bit
-chmod a+x %{buildroot}%{python_sitearch}/%{name}/cluster.py
-
 # Move the ipbori script to bindir
 rm -f %{buildroot}%{_bindir}/ipbori
 sed "s|^THIS=.*|THIS=%{_datadir}/%{name}/ipbori|" \
@@ -253,6 +216,12 @@ gtk-update-icon-cache %{icondir} >&/dev/null ||:
 %{_mandir}/man1/PolyGUI.1*
 
 %changelog
+* Mon Mar 20 2012 Jerry James <loganjerry at gmail.com> - 0.8.1-1
+- New upstream release
+- Fix desktop file
+- Build no longer succeeds with external CUDD; the polybori developers have
+  stripped down and altered the CUDD sources, forcing us to use their version
+
 * Tue Feb 28 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.8.0-7
 - Rebuilt for c++ ABI breakage
 
diff --git a/sources b/sources
index 4a271aa..f514747 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-5024b793bc086c81f1a56be8309a0137  polybori-0.8.0.tar.gz
+bd5e8cac09df08afa0edaa48e60581b4  polybori-0.8.1.tar.gz
 099395c28ed53d45853be366b9a58036  polybori-logos.tar.xz


More information about the scm-commits mailing list