[normaliz] 01/01: Imported Debina patch 3.0.0+ds-2

Jerome Benoit calculus-guest at moszumanska.debian.org
Thu Nov 19 05:28:09 UTC 2015


This is an automated email from the git hooks/post-receive script.

calculus-guest pushed a commit to branch master
in repository normaliz.

commit 0734b7a529afab99a8ad8c3673c992ed0d2bb295
Author: Jerome Benoit <calculus at rezozer.net>
Date:   Thu Nov 19 05:13:11 2015 +0100

    Imported Debina patch 3.0.0+ds-2
---
 debian/changelog                                   |  10 +
 debian/control                                     |   2 +-
 debian/patches/debianization.patch                 |   2 +-
 debian/patches/series                              |   2 +
 .../patches/upstream-fix-gmp-ambiguous_call.patch  |  70 +++++
 debian/patches/upstream-fix-std_exception.patch    | 350 +++++++++++++++++++++
 debian/rules                                       |   2 +-
 7 files changed, 435 insertions(+), 3 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index c9457f7..2bf66af 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+normaliz (3.0.0+ds-2) unstable; urgency=medium
+
+  * FTBFS fix release (Closes: #804742).
+  * Debianization:
+    - debian/control, Vcs-Browser field correction;
+    - debian/rules, refresh;
+    - debian/patches/upstream-fix-gmp-ambiguous_call.patch, C++ ambiguity fix.
+
+ -- Jerome Benoit <calculus at rezozer.net>  Thu, 19 Nov 2015 05:14:41 +0000
+
 normaliz (3.0.0+ds-1) unstable; urgency=medium
 
   * New upstream version:
diff --git a/debian/control b/debian/control
index c15c914..fd33ded 100644
--- a/debian/control
+++ b/debian/control
@@ -13,7 +13,7 @@ Build-Depends-Indep:
 Standards-Version: 3.9.6
 Homepage: http://www.math.uos.de/normaliz/
 Vcs-Git: git://anonscm.debian.org/debian-science/packages/normaliz.git
-Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-science/packages/normaliz.git
+Vcs-Browser: http://anonscm.debian.org/cgit/debian-science/packages/normaliz.git
 
 Package: normaliz
 Architecture: any
diff --git a/debian/patches/debianization.patch b/debian/patches/debianization.patch
index 277d76a..647b8f7 100644
--- a/debian/patches/debianization.patch
+++ b/debian/patches/debianization.patch
@@ -46,7 +46,7 @@ Last-Update: 2015-05-02
  
  
  # compiler flags
-@@ -256,17 +256,17 @@
+@@ -266,17 +266,17 @@
    )
  ENDIF(UNIX)
  
diff --git a/debian/patches/series b/debian/patches/series
index acb4d6a..ed1f043 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,4 @@
+upstream-fix-std_exception.patch
+upstream-fix-gmp-ambiguous_call.patch
 debianization.patch
 debianization-documentation.patch
diff --git a/debian/patches/upstream-fix-gmp-ambiguous_call.patch b/debian/patches/upstream-fix-gmp-ambiguous_call.patch
new file mode 100644
index 0000000..9c36f4e
--- /dev/null
+++ b/debian/patches/upstream-fix-gmp-ambiguous_call.patch
@@ -0,0 +1,70 @@
+Description: gmp: ambiguity fix
+ Fix gmp ambiguities revealed by gmp 6.1.0
+ Patch extracted and adapted from uptream commits 14b874f
+ by Jerome Benoit <calculus at rezozer.net>.
+Origin: upstream team
+Author: Christof Soeger <csoeger at uos.de>
+Last-Update: 2015-11-19
+
+--- a/source/libnormaliz/HilbertSeries.cpp
++++ b/source/libnormaliz/HilbertSeries.cpp
+@@ -399,7 +399,7 @@
+     //divide by gcd //TODO operate directly on vector
+     Matrix<mpz_class> QP(quasi_poly);
+     mpz_class g = QP.matrix_gcd();
+-    g = gcd(g,quasi_denom);
++    g = libnormaliz::gcd(g,quasi_denom);
+     quasi_denom /= g;
+     QP.scalar_division(g);
+     //we use a normed shift, so that the cylcic shift % period always yields a non-negative integer
+--- a/source/libnormaliz/matrix.cpp
++++ b/source/libnormaliz/matrix.cpp
+@@ -735,7 +735,7 @@
+     Integer g=0,h;
+     for (size_t i = 0; i <nr; i++) {
+         h = v_gcd(elem[i]);
+-        g = gcd<Integer>(g, h);
++        g = libnormaliz::gcd<Integer>(g, h);
+         if (g==1) return g;
+     }
+     return g;
+@@ -1766,7 +1766,7 @@
+             return vector<Integer>();
+         }
+     }
+-    Integer total_gcd =gcd(denom,v_gcd(Linear_Form)); // extract the gcd of denom and solution
++    Integer total_gcd = libnormaliz::gcd(denom,v_gcd(Linear_Form)); // extract the gcd of denom and solution
+     denom/=total_gcd;
+     v_scalar_division(Linear_Form,total_gcd);
+     return Linear_Form;
+--- a/source/libnormaliz/sublattice_representation.cpp
++++ b/source/libnormaliz/sublattice_representation.cpp
+@@ -213,7 +213,7 @@
+     
+     //check if a factor can be extraced from B  //TODO necessary?
+     Integer g = B.matrix_gcd();
+-    g = gcd(g,c);  //TODO necessary??
++    g = libnormaliz::gcd(g,c);  //TODO necessary??
+     if (g > 1) {
+         c /= g;
+         B.scalar_division(g);
+--- a/source/libnormaliz/vector_operations.cpp
++++ b/source/libnormaliz/vector_operations.cpp
+@@ -240,7 +240,7 @@
+     size_t i, size=v.size();
+     Integer g=0;
+     for (i = 0; i < size; i++) {
+-        g=gcd(g,v[i]);
++        g = libnormaliz::gcd(g,v[i]);
+         if (g==1) {
+             return 1;
+         }
+@@ -255,7 +255,7 @@
+     size_t i,size=v.size();
+     Integer g=1;
+     for (i = 0; i < size; i++) {
+-        g=lcm(g,v[i]);
++        g = libnormaliz::lcm(g,v[i]);
+         if (g==0) {
+             return 0;
+         }
diff --git a/debian/patches/upstream-fix-std_exception.patch b/debian/patches/upstream-fix-std_exception.patch
new file mode 100644
index 0000000..ffd14fb
--- /dev/null
+++ b/debian/patches/upstream-fix-std_exception.patch
@@ -0,0 +1,350 @@
+Description: exception_ptr: neutralize whenever not supported
+ Fix non support for std::exception_ptr revealed on a armel machine (#804742).
+ Patch extracted from uptream commits a11c07d and f340b56, and tested on a
+ armel Debian porter by Jerome Benoit <calculus at rezozer.net>.
+Origin: upstream team
+Author: Christof Soeger <csoeger at uos.de>
+Last-Update: 2015-11-19
+
+--- a/source/libnormaliz/bottom.cpp
++++ b/source/libnormaliz/bottom.cpp
+@@ -158,7 +158,9 @@
+     q_gens.push_back(gens);
+     int level = 0;
+ 
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+ 
+ 	// list for the simplices that could not be decomposed
+     vector< Matrix<Integer> > big_simplices;
+@@ -238,7 +240,9 @@
+     }
+ #endif
+     } // end parallel
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+ 	// if we still have big_simplices we approx again
+ 
+--- a/source/libnormaliz/cone_dual_mode.cpp
++++ b/source/libnormaliz/cone_dual_mode.cpp
+@@ -284,7 +284,9 @@
+         }
+     }
+     
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+ 
+     #pragma omp parallel num_threads(3)
+     {
+@@ -325,7 +327,9 @@
+         Neutral_Irred.last_hyp=hyp_counter;
+         }
+     }
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+     
+     CandidateList<Integer> New_Positive_Irred(true),New_Negative_Irred(true),New_Neutral_Irred(true);
+     New_Positive_Irred.verbose=New_Negative_Irred.verbose=New_Neutral_Irred.verbose=verbose;
+@@ -568,7 +572,9 @@
+ 
+         } //END PARALLEL
+ 
++#ifndef NCATCH
+         if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+         } // steps
+ 
+--- a/source/libnormaliz/full_cone.cpp
++++ b/source/libnormaliz/full_cone.cpp
+@@ -333,7 +333,9 @@
+ // parallel from here
+ 
+     bool skip_remaining = false;
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+ 
+     #pragma omp parallel private(jj)
+     {
+@@ -660,7 +662,9 @@
+     } // end !skip_remaining
+     } //END parallel
+     
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ //=====================================================================
+ // parallel until here
+ 
+@@ -709,7 +713,9 @@
+     // listsize = visible.size(); // now acczmulated above
+     // cout << "Pyr Level " << pyr_level << " Visible " << listsize <<  " Triang " << TriangulationSize << endl;
+ 
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+ 
+     typename list< SHORTSIMPLEX<Integer> >::iterator oldTriBack = --Triangulation.end();
+     #pragma omp parallel private(i)
+@@ -824,7 +830,9 @@
+ 
+     } // parallel
+ 
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+     // GensInCone.push_back(new_generator); // now in extend_cone
+     TriSectionFirst.push_back(++oldTriBack);
+@@ -984,7 +992,9 @@
+ 
+     deque<bool> done(old_nr_supp_hyps,false);
+     bool skip_remaining;
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+     typename list< FACETDATA >::iterator hyp;
+     size_t nr_done=0;
+ 
+@@ -1059,7 +1069,9 @@
+ #endif
+     } // end parallel loop over hyperplanes
+ 
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+     if (!omp_in_parallel())
+         try_offload(0);
+@@ -1109,7 +1121,9 @@
+         }
+         if (height != 0 && (do_triangulation || do_partial_triangulation)) {
+             if(multithreaded_pyramid) {
++#ifndef NCATCH
+                 std::exception_ptr tmp_exception;
++#endif
+                 #pragma omp critical(TRIANG)
+                 {
+ #ifndef NCATCH
+@@ -1123,7 +1137,9 @@
+                 }
+ #endif
+                 } // end critical
++#ifndef NCATCH
+                 if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+             } else {
+                 store_key(Pyramid_key,height,0,Triangulation);
+                 nrTotalComparisons+=dim*dim/2;
+@@ -1503,7 +1519,9 @@
+     collect_pos_supphyps(PosHyps,Zero_P,nr_pos);
+     
+     nrTotalComparisons+=nr_pos*nrLargeRecPyrs;
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+     
+     #pragma omp parallel
+     {
+@@ -1525,7 +1543,9 @@
+ #endif
+     }
+     } // parallel
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+     LargeRecPyrs.clear();
+ }
+@@ -1606,7 +1626,9 @@
+     typename list<vector<key_t> >::iterator p;
+     size_t ppos;
+     bool skip_remaining;
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+ 
+     while (nrPyramids[level] > eval_down_to) {
+ 
+@@ -1649,7 +1671,9 @@
+            }
+ #endif
+         } //end parallel for
++#ifndef NCATCH
+         if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+         // remove done pyramids
+         p = Pyramids[level].begin();
+@@ -1761,7 +1785,9 @@
+ 
+         long long nr_pos=0; long long nr_neg=0;
+         vector<Integer> L;           
++#ifndef NCATCH
+         std::exception_ptr tmp_exception;
++#endif
+         
+         size_t lpos=0;
+         #pragma omp parallel for private(L,scalar_product) firstprivate(lpos,l) reduction(+: nr_pos, nr_neg)
+@@ -1788,7 +1814,9 @@
+             }
+ #endif
+         }  //end parallel for
++#ifndef NCATCH
+         if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+         if(!is_new_generator)
+             continue;
+@@ -2240,7 +2268,9 @@
+     
+     deque<bool> done(TriangulationSize,false);
+     bool skip_remaining;
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+ 
+     do{ // allows multiple run of loop below in case of interruption for the update of reducers
+     
+@@ -2294,7 +2324,9 @@
+         }
+         Results[tn].transfer_candidates();
+     } // end parallel
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+     if (verbose)
+         verboseOutput()  << endl;
+--- a/source/libnormaliz/simplex.cpp
++++ b/source/libnormaliz/simplex.cpp
+@@ -735,7 +735,9 @@
+         progess_report=1;
+     
+     bool skip_remaining;
++#ifndef NCATCH
+     std::exception_ptr tmp_exception;
++#endif
+ 
+     deque<bool> done(actual_nr_blocks,false);
+     
+@@ -777,7 +779,9 @@
+     
+     } // parallel
+ 
++#ifndef NCATCH
+     if (!(tmp_exception == 0)) std::rethrow_exception(tmp_exception);
++#endif
+ 
+     if(skip_remaining){
+             
+--- a/source/CMakeLists.txt
++++ b/source/CMakeLists.txt
+@@ -79,26 +79,6 @@
+   SET (CXX_WARNING_FLAGS "-Wall -pedantic")
+   SET (CXX_OPTIMIZATION_FLAGS "-O3")
+ ENDIF ()
+-SET (NMZ_OPENMP "YES" CACHE BOOL "use openmp")
+-IF (NMZ_OPENMP)
+-  FIND_PACKAGE(OpenMP)
+-  IF (OPENMP_FOUND)
+-    SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+-    SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+-    SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
+-  ELSE (OPENMP_FOUND)
+-    MESSAGE(STATUS "Not using OpenMP, compiler does not support it")
+-    SET (NMZ_OPENMP "NO" CACHE BOOL "use openmp" FORCE)
+-  ENDIF(OPENMP_FOUND)
+-ENDIF (NMZ_OPENMP)
+-IF (NOT NMZ_OPENMP)
+-  SET (CXX_WARNING_FLAGS "${CXX_WARNING_FLAGS} -Wno-unknown-pragmas")
+-ENDIF (NOT NMZ_OPENMP)
+-
+-# add compiler flags
+-SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARNING_FLAGS} ${CXX_OPTIMIZATION_FLAGS}")
+-
+-INCLUDE_DIRECTORIES(.)
+ 
+ IF (NOT MSVC)
+   include(CheckCXXCompilerFlag)
+@@ -119,6 +99,36 @@
+   ENDIF ()
+ ENDIF()
+ 
++
++SET (NMZ_OPENMP "YES" CACHE BOOL "use openmp")
++IF (NMZ_OPENMP)
++  FIND_PACKAGE(OpenMP)
++  IF (NOT OPENMP_FOUND)
++    MESSAGE(STATUS "Not using OpenMP, compiler does not support it")
++    SET (NMZ_OPENMP "NO" CACHE BOOL "use openmp" FORCE)
++  ENDIF(NOT OPENMP_FOUND)
++ENDIF (NMZ_OPENMP)
++IF (NMZ_OPENMP)
++  include("${CMAKE_SOURCE_DIR}/cmake/detect_features.cmake")
++  NMZ_CHECK_FOR_EXCEPTION_PTR()
++  IF (NOT HAVE_EXCEPTION_PTR)
++    MESSAGE(STATUS "Not using OpenMP, compiler does not support std::exception_ptr and std::rethrow")
++    SET (NMZ_OPENMP "NO" CACHE BOOL "use openmp" FORCE)
++  ENDIF (NOT HAVE_EXCEPTION_PTR)
++ENDIF (NMZ_OPENMP)
++IF (NMZ_OPENMP)
++  SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
++  SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
++  SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
++ELSE (NMZ_OPENMP)
++  SET (CXX_WARNING_FLAGS "${CXX_WARNING_FLAGS} -Wno-unknown-pragmas")
++ENDIF (NMZ_OPENMP)
++
++# add compiler flags
++SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARNING_FLAGS} ${CXX_OPTIMIZATION_FLAGS}")
++
++INCLUDE_DIRECTORIES(.)
++
+ # handle static compilation
+ SET (NMZ_BUILD_STATIC "NO" CACHE BOOL "build normaliz statically")
+ IF (NMZ_BUILD_STATIC)
+--- /dev/null
++++ b/source/cmake/detect_features.cmake
+@@ -0,0 +1,35 @@
++###############################################################################
++# Check for the presence of std::exception_ptr and std::rethrow
++macro(NMZ_CHECK_FOR_EXCEPTION_PTR)
++
++    # We need to check whether the compiler supports the rethrowing mechanism
++    include(CheckCXXSourceRuns)
++    # at least the c++11 flag needs to be set
++    set(CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS}")
++    check_cxx_source_runs("
++        #include <iostream>
++        #include <exception>
++        #include <stdexcept>
++
++        int main () {
++            std::exception_ptr tmp_exception;
++            try {
++                throw std::overflow_error(\"some overflow exception\");
++            } catch(const std::exception& e) {
++                tmp_exception = std::current_exception();
++                std::cout << \"exception caught, but continuing...\" << std::endl;
++            }
++
++            std::cout << \"(after exception)\" << std::endl;
++
++            try {
++                if (tmp_exception != std::exception_ptr()) std::rethrow_exception(tmp_exception);
++            } catch (const std::exception& e) {
++                std::cout << \"exception caught again \" << e.what() << std::endl;
++            }
++            return 0;
++        }
++"
++        HAVE_EXCEPTION_PTR)
++
++endmacro(NMZ_CHECK_FOR_EXCEPTION_PTR)
diff --git a/debian/rules b/debian/rules
index 4f0d827..14275e8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,6 +1,6 @@
 #!/usr/bin/make -f
 
-export DEB_PKG_VERSION = $(shell dpkg-parsechangelog | sed -n -e '/^Version:/s/Version: //p')
+export DEB_PKG_VERSION = $(shell dpkg-parsechangelog -S Version)
 
 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/normaliz.git



More information about the debian-science-commits mailing list