commit: ed910db8cb67d8930b82c6237ecc6d61e3a31909 Author: Matthias Maier <tamiko <AT> gentoo <DOT> org> AuthorDate: Tue Oct 14 11:59:52 2014 +0000 Commit: Christoph Junghans <ottxor <AT> gentoo <DOT> org> CommitDate: Tue Oct 14 11:59:52 2014 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=ed910db8
fix p4est dependency; drop old Package-Manager: portage-2.2.8-r2 --- sci-libs/dealii/ChangeLog | 7 + sci-libs/dealii/dealii-8.0.0.ebuild | 1 - ...{dealii-8.1.0.ebuild => dealii-8.1.0-r1.ebuild} | 6 +- .../files/dealii-8.1.0-p4est1.0-support.patch | 271 +++++++++++++++++++++ 4 files changed, 283 insertions(+), 2 deletions(-) diff --git a/sci-libs/dealii/ChangeLog b/sci-libs/dealii/ChangeLog index edd11d1..9253cf7 100644 --- a/sci-libs/dealii/ChangeLog +++ b/sci-libs/dealii/ChangeLog @@ -2,6 +2,13 @@ # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*dealii-8.1.0-r1 (14 Oct 2014) + + 14 Oct 2014; Matthias Maier <tam...@gentoo.org> +dealii-8.1.0-r1.ebuild, + +files/dealii-8.1.0-p4est1.0-support.patch, -dealii-8.0.0.ebuild, + -dealii-8.1.0.ebuild: + fix p4est dependency; drop old + 24 Jul 2014; Matthias Maier <tam...@gentoo.org> dealii-9999.ebuild, metadata.xml: Update repository to github, fix readme file change, add forgotten use-flag to diff --git a/sci-libs/dealii/dealii-8.0.0.ebuild b/sci-libs/dealii/dealii-8.0.0.ebuild deleted file mode 120000 index 2fbea89..0000000 --- a/sci-libs/dealii/dealii-8.0.0.ebuild +++ /dev/null @@ -1 +0,0 @@ -dealii-8.1.0.ebuild \ No newline at end of file diff --git a/sci-libs/dealii/dealii-8.1.0.ebuild b/sci-libs/dealii/dealii-8.1.0-r1.ebuild similarity index 97% rename from sci-libs/dealii/dealii-8.1.0.ebuild rename to sci-libs/dealii/dealii-8.1.0-r1.ebuild index 6451111..548ea83 100644 --- a/sci-libs/dealii/dealii-8.1.0.ebuild +++ b/sci-libs/dealii/dealii-8.1.0-r1.ebuild @@ -39,7 +39,7 @@ RDEPEND=" mpi? ( virtual/mpi ) mumps? ( sci-libs/mumps[mpi] ) netcdf? ( || ( <sci-libs/netcdf-4.2[cxx] sci-libs/netcdf-cxx ) ) - p4est? ( <sci-libs/p4est-0.3.5[mpi] ) + p4est? ( sci-libs/p4est[mpi] ) parameter_gui? ( dev-qt/qtgui ) petsc? ( sci-mathematics/petsc[mpi=] ) sparse? ( sci-libs/umfpack ) @@ -54,6 +54,10 @@ DEPEND=" doc? ( app-doc/doxygen[dot] dev-lang/perl ) " +src_prepare() { + epatch "${FILESDIR}"/dealii-8.1.0-p4est1.0-support.patch +} + src_configure() { if use debug; then diff --git a/sci-libs/dealii/files/dealii-8.1.0-p4est1.0-support.patch b/sci-libs/dealii/files/dealii-8.1.0-p4est1.0-support.patch new file mode 100644 index 0000000..3ef8d99 --- /dev/null +++ b/sci-libs/dealii/files/dealii-8.1.0-p4est1.0-support.patch @@ -0,0 +1,271 @@ +Upstream commits: + 4b6a6a9aae750941723890c44f0cb3326e5ba87b + 67d70862aa2b2c2e925a2b1262c9934ea0f9a873 + dc0308a408360bfa5e21a58d10c2c2a7dca3a8ad + +diff --git a/source/distributed/tria.cc b/source/distributed/tria.cc +index 5687fae..a6e5e85 100644 +--- a/source/distributed/tria.cc ++++ b/source/distributed/tria.cc +@@ -155,10 +155,17 @@ namespace internal + types<2>::balance_type btype, + p4est_init_t init_fn); + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ static ++ p4est_gloidx_t (&partition) (types<2>::forest *p4est, ++ int partition_for_coarsening, ++ p4est_weight_t weight_fn); ++#else + static + void (&partition) (types<2>::forest *p4est, + int partition_for_coarsening, + p4est_weight_t weight_fn); ++#endif + + static + void (&save) (const char *filename, +@@ -173,16 +180,28 @@ namespace internal + void *user_pointer, + types<2>::connectivity **p4est); + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ static ++ int (&connectivity_save) (const char *filename, ++ types<2>::connectivity *connectivity); ++#else + static + void (&connectivity_save) (const char *filename, + types<2>::connectivity *connectivity); ++#endif + + static + int (&connectivity_is_valid) (types<2>::connectivity *connectivity); + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ static ++ types<2>::connectivity *(&connectivity_load) (const char *filename, ++ long unsigned *length); ++#else + static + types<2>::connectivity *(&connectivity_load) (const char *filename, + long *length); ++#endif + + static + unsigned int (&checksum) (types<2>::forest *p4est); +@@ -301,10 +320,17 @@ namespace internal + p4est_init_t init_fn) + = p4est_balance; + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ p4est_gloidx_t (&functions<2>::partition) (types<2>::forest *p4est, ++ int partition_for_coarsening, ++ p4est_weight_t weight_fn) ++ = p4est_partition_ext; ++#else + void (&functions<2>::partition) (types<2>::forest *p4est, + int partition_for_coarsening, + p4est_weight_t weight_fn) + = p4est_partition_ext; ++#endif + + void (&functions<2>::save) (const char *filename, + types<2>::forest *p4est, +@@ -320,18 +346,31 @@ namespace internal + types<2>::connectivity **p4est) + = p4est_load; + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ int (&functions<2>::connectivity_save) (const char *filename, ++ types<2>::connectivity *connectivity) ++ = p4est_connectivity_save; ++#else + void (&functions<2>::connectivity_save) (const char *filename, + types<2>::connectivity *connectivity) + = p4est_connectivity_save; ++#endif + + int (&functions<2>::connectivity_is_valid) (types<2>::connectivity + *connectivity) + = p4est_connectivity_is_valid; + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ types<2>::connectivity * ++ (&functions<2>::connectivity_load) (const char *filename, ++ long unsigned *length) ++ = p4est_connectivity_load; ++#else + types<2>::connectivity * + (&functions<2>::connectivity_load) (const char *filename, + long *length) + = p4est_connectivity_load; ++#endif + + unsigned int (&functions<2>::checksum) (types<2>::forest *p4est) + = p4est_checksum; +@@ -451,10 +490,17 @@ namespace internal + types<3>::balance_type btype, + p8est_init_t init_fn); + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ static ++ p4est_gloidx_t (&partition) (types<3>::forest *p8est, ++ int partition_for_coarsening, ++ p8est_weight_t weight_fn); ++#else + static + void (&partition) (types<3>::forest *p8est, + int partition_for_coarsening, + p8est_weight_t weight_fn); ++#endif + + static + void (&save) (const char *filename, +@@ -469,16 +515,28 @@ namespace internal + void *user_pointer, + types<3>::connectivity **p4est); + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ static ++ int (&connectivity_save) (const char *filename, ++ types<3>::connectivity *connectivity); ++#else + static + void (&connectivity_save) (const char *filename, + types<3>::connectivity *connectivity); ++#endif + + static + int (&connectivity_is_valid) (types<3>::connectivity *connectivity); + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ static ++ types<3>::connectivity *(&connectivity_load) (const char *filename, ++ long unsigned *length); ++#else + static + types<3>::connectivity *(&connectivity_load) (const char *filename, + long *length); ++#endif + + static + unsigned int (&checksum) (types<3>::forest *p8est); +@@ -600,10 +658,17 @@ namespace internal + p8est_init_t init_fn) + = p8est_balance; + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ p4est_gloidx_t (&functions<3>::partition) (types<3>::forest *p8est, ++ int partition_for_coarsening, ++ p8est_weight_t weight_fn) ++ = p8est_partition_ext; ++#else + void (&functions<3>::partition) (types<3>::forest *p8est, + int partition_for_coarsening, + p8est_weight_t weight_fn) + = p8est_partition_ext; ++#endif + + void (&functions<3>::save) (const char *filename, + types<3>::forest *p4est, +@@ -619,18 +684,31 @@ namespace internal + types<3>::connectivity **p4est) + = p8est_load; + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ int (&functions<3>::connectivity_save) (const char *filename, ++ types<3>::connectivity *connectivity) ++ = p8est_connectivity_save; ++#else + void (&functions<3>::connectivity_save) (const char *filename, + types<3>::connectivity *connectivity) + = p8est_connectivity_save; ++#endif + + int (&functions<3>::connectivity_is_valid) (types<3>::connectivity + *connectivity) + = p8est_connectivity_is_valid; + ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ types<3>::connectivity * ++ (&functions<3>::connectivity_load) (const char *filename, ++ long unsigned *length) ++ = p8est_connectivity_load; ++#else + types<3>::connectivity * + (&functions<3>::connectivity_load) (const char *filename, + long *length) + = p8est_connectivity_load; ++#endif + + unsigned int (&functions<3>::checksum) (types<3>::forest *p8est) + = p8est_checksum; +diff --git a/cmake/modules/FindP4EST.cmake b/cmake/modules/FindP4EST.cmake +index f2bf417..44846c7 100644 +--- a/cmake/modules/FindP4EST.cmake ++++ b/cmake/modules/FindP4EST.cmake +@@ -179,17 +179,28 @@ + STRING(REGEX REPLACE + "^[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" + P4EST_VERSION_SUBMINOR "${P4EST_VERSION}") +- +- # Now for the patch number such as in 0.3.4.1. If there +- # is no patch number, then the REGEX REPLACE will fail, +- # setting P4EST_VERSION_PATCH to P4EST_VERSION. If that +- # is the case, then set the patch number to zero + STRING(REGEX REPLACE +- "^[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+)?.*$" "\\1" ++ "^[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" + P4EST_VERSION_PATCH "${P4EST_VERSION}") +- IF(${P4EST_VERSION_PATCH} STREQUAL "${P4EST_VERSION}") ++ ++ # ++ # We cannot rely on the fact that SUBMINOR or PATCH are defined. ++ # Nevertheless, we need a full version number for our preprocessor macros ++ # to work. If the p4est version number is only of the form x.y instead of ++ # a.b.c.d, then the last two REGEX_REPLACE calls above will have failed ++ # because the regular expression didn't match the version string, ++ # and P4EST_VERSION_SUBMINOR and P4EST_VERSION_PATCH will either be ++ # empty or be the full version string. In those cases, set those numbers ++ # to 0 if necessary. ++ # ++ IF("${P4EST_VERSION_SUBMINOR}" MATCHES "^(|${P4EST_VERSION})$") ++ SET(P4EST_VERSION_SUBMINOR "0") ++ ENDIF() ++ ++ IF("${P4EST_VERSION_PATCH}" MATCHES "^(|${P4EST_VERSION})$") + SET(P4EST_VERSION_PATCH "0") + ENDIF() ++ + + + MARK_AS_ADVANCED(P4EST_DIR) +diff --git a/include/deal.II/distributed/tria.h b/include/deal.II/distributed/tria.h +index ea3e88b..8daa70d 100644 +--- a/include/deal.II/distributed/tria.h ++++ b/include/deal.II/distributed/tria.h +@@ -88,7 +88,11 @@ namespace internal + typedef p4est_quadrant_t quadrant; + typedef p4est_topidx_t topidx; + typedef p4est_locidx_t locidx; ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ typedef p4est_connect_type_t balance_type; ++#else + typedef p4est_balance_type_t balance_type; ++#endif + typedef p4est_ghost_t ghost; + }; + +@@ -101,7 +105,11 @@ namespace internal + typedef p8est_quadrant_t quadrant; + typedef p4est_topidx_t topidx; + typedef p4est_locidx_t locidx; ++#if DEAL_II_P4EST_VERSION_GTE(0,3,4,3) ++ typedef p8est_connect_type_t balance_type; ++#else + typedef p8est_balance_type_t balance_type; ++#endif + typedef p8est_ghost_t ghost; + }; +