From 721dbcc75eca62e770f698f4e29dedc954722a3a Mon Sep 17 00:00:00 2001 From: Markus Blatt Date: Fri, 22 Nov 2024 15:28:16 +0100 Subject: [PATCH] Import dune-common_2.10.0-4.debian.tar.xz [dgit import tarball dune-common 2.10.0-4 dune-common_2.10.0-4.debian.tar.xz] --- changelog | 524 ++++++++++++++++++ clean | 1 + control | 46 ++ copyright | 227 ++++++++ dune-autopkgtest | 62 +++ dune-debian.env | 9 + dune-debian.mk | 45 ++ get-orig-source | 138 +++++ libdune-common-dev.install | 11 + libdune-common-dev.lintian-overrides | 6 + libdune-common-doc.install | 2 + ...isable-long-double-eigenvalue-checks.patch | 28 + patches/do-not-install-python-scripts.patch | 13 + ...le-without-CMakeLists.txt-next-to-du.patch | 40 ++ ...-directories-without-CMake-config-fi.patch | 59 ++ ...duneproject-simulators-is-alias-for-models | 19 + ...initian-file-references-package-build-path | 21 + ...e-references-package-build-path-downstream | 24 + .../install-cmake-config-to-lib-headerless | 52 ++ ...ll-pkgconfig-without-lib-for-cross-compile | 22 + patches/series | 10 + patches/soname.patch | 41 ++ rules | 25 + source/format | 1 + tests/basic | 7 + tests/control | 7 + upstream/metadata | 4 + watch | 3 + 28 files changed, 1447 insertions(+) create mode 100644 changelog create mode 100644 clean create mode 100644 control create mode 100644 copyright create mode 100755 dune-autopkgtest create mode 100644 dune-debian.env create mode 100644 dune-debian.mk create mode 100755 get-orig-source create mode 100644 libdune-common-dev.install create mode 100644 libdune-common-dev.lintian-overrides create mode 100644 libdune-common-doc.install create mode 100644 patches/disable-long-double-eigenvalue-checks.patch create mode 100644 patches/do-not-install-python-scripts.patch create mode 100644 patches/dunecontrol-Module-without-CMakeLists.txt-next-to-du.patch create mode 100644 patches/dunecontrol-Skip-directories-without-CMake-config-fi.patch create mode 100644 patches/duneproject-simulators-is-alias-for-models create mode 100644 patches/fix-linitian-file-references-package-build-path create mode 100644 patches/fix-linitian-file-references-package-build-path-downstream create mode 100644 patches/install-cmake-config-to-lib-headerless create mode 100644 patches/install-pkgconfig-without-lib-for-cross-compile create mode 100644 patches/series create mode 100644 patches/soname.patch create mode 100755 rules create mode 100644 source/format create mode 100755 tests/basic create mode 100644 tests/control create mode 100644 upstream/metadata create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 0000000..a74d318 --- /dev/null +++ b/changelog @@ -0,0 +1,524 @@ +dune-common (2.10.0-4) unstable; urgency=medium + + * Revert "Allow running mpirun as root in autopkgtest" + + -- Markus Blatt Fri, 22 Nov 2024 15:28:16 +0100 + +dune-common (2.10.0-3) unstable; urgency=medium + + * d/patches: Fix duneproject patch treating opm-simulator as alias. + * d/patches: Do not judge installation status of module only with pkgconf + * d/patches: Only set CMakes module_DIR variable if there are config files + * Allow running mpirun as root in autopkgtest + + -- Markus Blatt Thu, 21 Nov 2024 13:47:35 +0100 + +dune-common (2.10.0-2) unstable; urgency=medium + + * d/patches: Treat opm-models as alias for opm-simulators in duneproject + + -- Markus Blatt Mon, 18 Nov 2024 10:44:33 +0100 + +dune-common (2.10.0-1) unstable; urgency=medium + + * New upstream version 2.10 + * d/patches: Fix installation path for *.pc and + *-config.cmake for header-only modules + + -- Markus Blatt Thu, 14 Nov 2024 18:22:14 +0100 + +dune-common (2.10~pre20241004-2) experimental; urgency=medium + + * d/patches: Fix installation path for *.pc and + *-config.cmake for header-only modules + * Added a debian/watch file. + + -- Markus Blatt Mon, 21 Oct 2024 22:30:17 +0200 + +dune-common (2.10~pre20241004-1) experimental; urgency=medium + + * New snapshot for upcoming release 2.10 + * Refreshed patches + + -- Markus Blatt Thu, 17 Oct 2024 19:44:49 +0200 + +dune-common (2.9.0-8) unstable; urgency=medium + + * d/dune-debian.env: Use new OpenMPI 5 environment variables + to allow oversubscription and set the SSH agent. Closes: #1086864 + + -- Markus Blatt Thu, 07 Nov 2024 16:59:08 +0100 + +dune-common (2.9.0-7) unstable; urgency=medium + + * d/control: Depend on pkgconf instead of obsolete pkg-config + * d/control: Bumped standards version to 4.7.0 (no-change) + + -- Markus Blatt Thu, 10 Oct 2024 16:59:54 +0200 + +dune-common (2.9.0-6) unstable; urgency=medium + + * patches: fix: use values that are representable as double in test. + This should fix the test failure on i386. + + new patch: 0002-fix-use-values-that-are-representable-as-double-in-t.patch + + -- Ansgar Tue, 26 Dec 2023 19:41:53 +0100 + +dune-common (2.9.0-5) unstable; urgency=medium + + * patches: fix: use values that are representable as double in test. + This should fix the build failure on i386. + + new patch: 0001-fix-use-values-that-are-representable-as-double-in-t.patch + + -- Ansgar Tue, 26 Dec 2023 15:52:42 +0100 + +dune-common (2.9.0-4) unstable; urgency=medium + + * Team upload + * Replace libatlas-base-dev by libblas-dev | libblas.so in (Build-)Depends + (Closes: #1056669) + + -- Sébastien Villemot Fri, 22 Dec 2023 15:55:58 +0100 + +dune-common (2.9.0-3) unstable; urgency=medium + + * d/patches: Backported upstream GCC-13 compile fix + (Closes: #1037630) + + -- Markus Blatt Thu, 13 Jul 2023 08:20:17 +0200 + +dune-common (2.9.0-2) unstable; urgency=medium + + * Upload to unstable + * d/patches: Prevent build-path from appearing in downstream DUNE modules + * d/control: Added Markus Blatt as uploader (with consent of Ansgar) + + -- Markus Blatt Thu, 12 Jan 2023 16:39:41 +0100 + +dune-common (2.9.0-1) experimental; urgency=medium + + [ Markus Blatt ] + * d/patches: Prevent file-references-package-build-path lintian warning + * d/upstream: Added upstream metadata file. + * d/get-orig-source: Adapted to removed dune-grid/amiramesh directory. + * d/patches: Refreshed patches and fixed dune.module + * New upstream release (2.9.0). + + [ Ansgar ] + * d/control: set Standards-Version to 4.6.2 (no changes). + + -- Ansgar Sat, 07 Jan 2023 21:52:09 +0100 + +dune-common (2.8.0-4) unstable; urgency=medium + + * Team upload. + + [ Markus Blatt ] + * FindMETIS.cmake: Also search for libscotchmetisv5 and libscotchmetisv3 + (Closes: #1007823, #1007830, #1007930) + + [ Drew Parsons ] + * apply FindMETis.cmake patch in debian patch findmetis_scotch7.patch + + -- Drew Parsons Sat, 19 Mar 2022 13:10:34 +0100 + +dune-common (2.8.0-3) unstable; urgency=medium + + * d/control: remove Breaks/Replaces entries + + -- Patrick Jaap Thu, 21 Oct 2021 18:29:30 +0200 + +dune-common (2.8.0-2) experimental; urgency=medium + + * d/patches: Add patch to not install Python scripts + + -- Patrick Jaap Fri, 08 Oct 2021 12:02:33 +0200 + +dune-common (2.8.0-1) experimental; urgency=medium + + * New upstream release. + * Add patch to disable eigenvalue checks for "long double" + * d/patches: Add patch to force python3 in bin/rmgenerated.py + * Set standards to 4.5.1 + + -- Patrick Jaap Wed, 15 Sep 2021 10:50:45 +0200 + +dune-common (2.8.0~rc1-1) experimental; urgency=medium + + * New upstream release. + * Adapt soname.patch to code changes. + * d/rules: Explicitly use cmake buildsystem. + * d/clean: Explicitly clear __pycache__ directory. + + -- Patrick Jaap Fri, 20 Aug 2021 09:05:19 -0400 + +dune-common (2.7.1-2) unstable; urgency=medium + + * Upload to unstable. + + -- Ansgar Mon, 11 Jan 2021 22:23:00 +0100 + +dune-common (2.7.1-1) experimental; urgency=medium + + * New upstream release. + + -- Lisa Julia Nebel Tue, 05 Jan 2021 17:51:34 +0100 + +dune-common (2.7.0-5) unstable; urgency=medium + + * Upload to unstable. + + -- Ansgar Wed, 15 Jul 2020 12:29:39 +0200 + +dune-common (2.7.0-4) experimental; urgency=medium + + * Only build "quick" tests on mips64el and mipsel as Debian's + buildd servers are too slow. + + -- Ansgar Wed, 10 Jun 2020 14:20:16 +0200 + +dune-common (2.7.0-3) experimental; urgency=medium + + * d/control: Add explicit dependency on libatlas-base-dev. + CMake's `find_package(LAPACK)` adds `libf77blas.so` to the list + of interface libraries that other DUNE module link against. + + -- Ansgar Mon, 25 May 2020 14:59:18 +0200 + +dune-common (2.7.0-2) experimental; urgency=medium + + * d/dune-debian.mk: Add `-ffloat-store` to CXXFLAGS on i386. + See https://gitlab.dune-project.org/core/dune-common/issues/207 + * d/control: (Build-)Depends on liblapack-dev. LAPACK is needed by + functions in `fmatrixev.hh` which are used by new quadrature rule + implementations in dune-geometry. + + -- Ansgar Thu, 21 May 2020 23:06:05 +0200 + +dune-common (2.7.0-1) experimental; urgency=medium + + * New upstream release. + * Add runtime dependency on mpi-default-{bin,dev}. DUNE should by + default be used with MPI support enabled. + * Use debhelper compat level 13. + * Drop patch rename-git-whitespace-hook.patch (applied upstream). + * Bumped Standards-Version to 4.5.0 (no changes). + + -- Ansgar Wed, 20 May 2020 21:06:31 +0200 + +dune-common (2.6.0-4) unstable; urgency=medium + + * no longer ship dune-am2cmake and remove dependency on python2. + (Closes: #936456) + * Bumped Standards-Version to 4.4.1. + + -- Ansgar Burchardt Mon, 14 Oct 2019 23:27:35 +0200 + +dune-common (2.6.0-3) unstable; urgency=medium + + * Add runtime dependency on gfortran. Configuring a DUNE project without + a Fortran compiler fails. + * autopkgtest: Add dependency on MPI as the test builds and runs an MPI + program. + + -- Ansgar Burchardt Thu, 21 Jun 2018 09:17:17 +0200 + +dune-common (2.6.0-2) unstable; urgency=medium + + * Add a simple autopkgtest. The driver (dune-autopkgtest) is also + usable by other DUNE modules. + * Promote CMake from Recommends to Depends. + * Bumped Standards-Version to 4.1.4 (no changes). + + -- Ansgar Burchardt Wed, 20 Jun 2018 23:37:32 +0200 + +dune-common (2.6.0-1) unstable; urgency=medium + + * New upstream release. + * d/control: now requires cmake >= 3.1 + + -- Ansgar Burchardt Tue, 03 Apr 2018 00:20:33 +0200 + +dune-common (2.6.0~rc1-1) experimental; urgency=medium + + * New upstream release candidate. + * d/control: update Vcs-* fields for move to salsa.debian.org + * Bumped Standards-Version to 4.1.3 (no changes). + + -- Ansgar Burchardt Sat, 06 Jan 2018 15:50:50 +0100 + +dune-common (2.6~20171122-1) experimental; urgency=medium + + * New upstream snapshot (commit: 77b87e7c3931fc70f46be2e4cae7058127c92edf). + + -- Ansgar Burchardt Wed, 22 Nov 2017 17:38:48 +0100 + +dune-common (2.6~20171113-2) experimental; urgency=medium + + * arithmetictestsuite: quotient must be representable without error. + This should correct the build failure on i386. + + new patch: 0001-quotient-must-be-representable-without-error.patch + + -- Ansgar Burchardt Tue, 14 Nov 2017 08:01:05 +0100 + +dune-common (2.6~20171113-1) experimental; urgency=medium + + * New upstream snapshot. + * d/control: add `Rules-Requires-Root: no` + * d/get-orig-source: no longer include Git commit id in snapshot versions + * libdune-common-doc: add Built-Using: doxygen (for jquery.js). + * Bumped Standards-Version to 4.1.1 (no changes). + + -- Ansgar Burchardt Tue, 14 Nov 2017 00:12:14 +0100 + +dune-common (2.5.1-1) unstable; urgency=medium + + * New upstream release. + * Build-Depend on texlive-pictures instead of pgf. (Closes: #867073) + * debian/copyright: Update URLs. + * Bumped Standards-Version to 4.0.0 (no changes). + + -- Ansgar Burchardt Tue, 18 Jul 2017 11:53:29 +0200 + +dune-common (2.5.1~rc1-1) experimental; urgency=medium + + * New upstream release candidate. + * No longer build manual -dbg package. Use the automatically generated + -dbgsym package instead. + * dune-debian.mk: do not limit number of MPI ranks to number of cores + when running tests. (Closes: #850229) + + -- Ansgar Burchardt Sat, 17 Jun 2017 15:48:18 +0200 + +dune-common (2.5.0-1) unstable; urgency=medium + + * New upstream release. + + -- Ansgar Burchardt Sun, 18 Dec 2016 12:58:14 +0100 + +dune-common (2.5.0~rc2-2) unstable; urgency=medium + + * Add Breaks+Replaces: libdune-functions-dev (<< 2.5.0~) + (Closes: #847142) + + -- Ansgar Burchardt Mon, 05 Dec 2016 23:41:24 +0100 + +dune-common (2.5.0~rc2-1) unstable; urgency=medium + + * Upload to unstable. + * New upstream release candidate. + * dune-debian.mk: Restore variable for configure options. + + -- Ansgar Burchardt Mon, 05 Dec 2016 23:09:55 +0100 + +dune-common (2.5.0~rc1-3) experimental; urgency=medium + + * Call dh_sphinxdoc only when building arch-indep packages. + + -- Ansgar Burchardt Tue, 22 Nov 2016 21:12:02 +0100 + +dune-common (2.5.0~rc1-2) experimental; urgency=medium + + * Patch: Add correct offset for end of chunk + This should fix the build failure on 32bit architectures. + + 0001-Add-correct-offset-for-end-of-chunk.patch + * Use dh_sphinxdoc. + + -- Ansgar Burchardt Tue, 22 Nov 2016 20:21:37 +0100 + +dune-common (2.5.0~rc1-1) experimental; urgency=medium + + * New upstream release candidate. + * Switch to CMake. + * dune-debian.mk: Simplify running tests. + * Bumped Standards-Version to 3.9.8 (no changes). + + -- Ansgar Burchardt Mon, 21 Nov 2016 20:37:38 +0100 + +dune-common (2.4.1-1) unstable; urgency=medium + + * New upstream release. + * Mark libdune-common-dev as Multi-Arch: same. + + -- Ansgar Burchardt Mon, 29 Feb 2016 10:19:18 +0100 + +dune-common (2.4.1~rc2-1) experimental; urgency=medium + + * New upstream release candidate. + + -- Ansgar Burchardt Sun, 28 Feb 2016 13:18:16 +0100 + +dune-common (2.4.0-1) unstable; urgency=medium + + * New upstream release. + + -- Ansgar Burchardt Fri, 25 Sep 2015 22:29:28 +0200 + +dune-common (2.4~20150912rc3-1) unstable; urgency=medium + + * New upstream release candidate. + * dune-debian.mk: Add options to enable UMFPack support. + + -- Ansgar Burchardt Sun, 13 Sep 2015 13:38:49 +0200 + +dune-common (2.4~20150825rc2-1) experimental; urgency=medium + + * New upstream release candidate. + * Move shared library into -dev package and provide a virtual package + that changes with the upstream version for shlib dependencies. See + also https://lists.debian.org/debian-devel/2015/07/msg00115.html + * libdune-common-dev: Add -doc package as a suggested package. + + -- Ansgar Burchardt Fri, 04 Sep 2015 14:24:36 +0200 + +dune-common (2.4~20150717rc1-1) experimental; urgency=medium + + * New upstream release candidate. + + -- Ansgar Burchardt Fri, 17 Jul 2015 20:45:00 +0200 + +dune-common (2.4~20150617g6f17141-1) experimental; urgency=medium + + * New upstream snapshot. + * get-orig-source: Use commit date instead of current date. + + -- Ansgar Burchardt Fri, 19 Jun 2015 23:11:40 +0200 + +dune-common (2.4~20150521g15491c4-1) experimental; urgency=medium + + * New upstream snapshot. + + -- Ansgar Burchardt Thu, 21 May 2015 21:46:50 +0200 + +dune-common (2.4~20150505g1ce8697-1) experimental; urgency=medium + + * New upstream snapshot. + * Change shared library package name to libdune-common-2.4git. + * Update debian/copyright for new upstream snapshot. + * Add Build-Depends-Indep: graphviz for "dot". + * dune-debian.mk: Continue to use autotools for now. + * Bumped Standards-Version to 3.9.6 (no changes). + + -- Ansgar Burchardt Tue, 05 May 2015 21:53:57 +0200 + +dune-common (2.3.1-1) unstable; urgency=medium + + * New upstream release. + * Install bash completion for dunecontrol. + + -- Ansgar Burchardt Tue, 17 Jun 2014 19:46:31 +0200 + +dune-common (2.3.1~rc1-1) experimental; urgency=medium + + * New upstream release candidate. + * Change shared library package name to libdune-common-2.3.1. + * dune-debian.mk: Enable support for UG. + + -- Ansgar Burchardt Tue, 10 Jun 2014 19:54:09 +0200 + +dune-common (2.3.0-1) unstable; urgency=medium + + * New upstream release. + * Change shared library package name to libdune-common-2.3.0. + + -- Ansgar Burchardt Fri, 14 Feb 2014 09:12:40 +0100 + +dune-common (2.3~20140122g7a7cf2b-1) experimental; urgency=medium + + * New upstream snapshot. + + -- Ansgar Burchardt Wed, 22 Jan 2014 23:10:56 +0100 + +dune-common (2.3~20140117beta2-1) experimental; urgency=medium + + * New upstream snapshot. + * Remove patches that should be obsoleted by upstream changes. + * dune-debian.mk: Remove obsolete --enable-fieldvector-size-is-method flag. + * libdune-common-dev.install: Install /usr/lib/*/cmake. + * Backport 073167e61070a5e952c738c02d85c3f946717e40 ([dune-autogen] + Prevents overriding am_dir with installed modules) from master branch. + + New patch: 0001-dune-autogen-Prevents-overriding-am_dir-with-install.patch + + -- Ansgar Burchardt Mon, 20 Jan 2014 13:42:47 +0100 + +dune-common (2.3~20140111beta1-1) experimental; urgency=medium + + * New upstream snapshot. + * Rename git-whitespace-hook to dune-git-whitespace-hook. + * Install cmake modules. Note that it is still not possible to use + cmake with the Debian packages. + * debian/control: Remove ${shlibs:Depends} from -dev and -dbg package. + * debian/dune-debian.mk: Use default compression for binary packages. + + -- Ansgar Burchardt Wed, 15 Jan 2014 13:33:04 +0100 + +dune-common (2.3~20140103g107b57a-1) experimental; urgency=medium + + * New upstream snapshot. + * Install man page using dh_installman as "make install" is not called + for the doc subdirectory and thus dh_install cannot find usr/share/man. + * debian/dune-debian.mk: Restore --without-parmetis. + + -- Ansgar Burchardt Fri, 03 Jan 2014 00:40:13 +0100 + +dune-common (2.3~20131227g6c02812-1) experimental; urgency=medium + + * New upstream snapshot. + * Add Build-Depends on texlive-latex-extra (for subfigure.sty). + * Change shared library package name to libdune-common-2.3svn. + * Patch dunecontrol to skip directories starting with a dot when + looking for dune.module. + + new patch: skip-dirs-starting-with-dot.patch + * Install dune_cxa_demangle.m4. + + new patch: 0001-Install-dune_cxa_demangle.m4.patch + * debian/dune-debian.mk: Do not pass --without-parmetis to configure + as doing so triggers a bug causing the configure script to abort, cf. + + * debian/control: Use canonical Vcs-* URIs. + * debian/control: Drop pre-depends on dpkg (>= 1.15.6) which is + already satisfied in Debian 6. + * debian/rules: Install am2cmake.py as dune-am2cmake. + * libdune-common-dev: Add dependency on python and python-pyparsing + for am2cmake.py. + * libdune-common-dev: Include man page for dunecontrol. + * Bumped Standards-Version to 3.9.5 (no changes). + + -- Ansgar Burchardt Wed, 01 Jan 2014 19:40:32 +0100 + +dune-common (2.2.1-2) unstable; urgency=low + + * Upload to unstable. + * Bumped Standards-Version to 3.9.4 (no changes). + + -- Ansgar Burchardt Sun, 12 May 2013 18:30:12 +0200 + +dune-common (2.2.1-1) experimental; urgency=low + + * New upstream release. (Closes: #701866) + * debian/copyright: Update for new upstream release. + * Mark runtime and debug packages as Multi-Arch: same. + * lib/dunemodules.lib: Fix PARSER_TRIM. + + new patch: fix-PARSER_TRIM.diff + * Update aclocal.patch. + + -- Ansgar Burchardt Sat, 02 Mar 2013 02:17:38 +0100 + +dune-common (2.2.0-1) unstable; urgency=low + + * New upstream release. + * Install dunemodules.lib to /usr/lib. + * Update debian/copyright. + + -- Ansgar Burchardt Tue, 05 Jun 2012 10:17:59 +0200 + +dune-common (2.2~svn6684-1) experimental; urgency=low + + * New upstream snapshot. + + -- Ansgar Burchardt Sun, 06 May 2012 14:31:49 +0200 + +dune-common (2.2~svn6573-1) experimental; urgency=low + + * Initial release. (Closes: #661823) + + -- Ansgar Burchardt Sat, 17 Mar 2012 17:15:13 +0100 diff --git a/clean b/clean new file mode 100644 index 0000000..bc23c6a --- /dev/null +++ b/clean @@ -0,0 +1 @@ +cmake/scripts/__pycache__/ diff --git a/control b/control new file mode 100644 index 0000000..0ad4cc6 --- /dev/null +++ b/control @@ -0,0 +1,46 @@ +Source: dune-common +Section: libs +Priority: optional +Standards-Version: 4.7.0 +Maintainer: Debian Science Maintainers +Uploaders: Ansgar , Markus Blatt +Vcs-Browser: https://salsa.debian.org/science-team/dune-common +Vcs-Git: https://salsa.debian.org/science-team/dune-common.git +Homepage: https://www.dune-project.org/ +Build-Depends: debhelper-compat (= 13), + cmake (>= 3.13), gfortran, mpi-default-bin, mpi-default-dev, pkgconf, python3, + libblas-dev | libblas.so, liblapack-dev +Build-Depends-Indep: doxygen, ghostscript, graphviz, imagemagick, texlive-latex-extra, texlive-latex-recommended, texlive-pictures, python3-sphinx +Rules-Requires-Root: no + +Package: libdune-common-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, ${shlibs:Depends}, + cmake (>= 3.13), gfortran, mpi-default-bin, mpi-default-dev, pkgconf, + libblas-dev | libblas.so, liblapack-dev +Recommends: python3 +Suggests: libdune-common-doc (= ${source:Version}) +Provides: ${dune:shared-library} +Description: toolbox for solving PDEs -- basic classes (development files) + DUNE, the Distributed and Unified Numerics Environment is a modular toolbox + for solving partial differential equations (PDEs) with grid-based methods. + It supports the easy implementation of methods like Finite Elements (FE), + Finite Volumes (FV), and also Finite Differences (FD). + . + This package contains the development files for the basic classes. + +Package: libdune-common-doc +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends}, ${sphinxdoc:Depends} +Built-Using: ${dune:doc:Built-Using} +Description: toolbox for solving PDEs -- basic classes (documentation) + DUNE, the Distributed and Unified Numerics Environment is a modular toolbox + for solving partial differential equations (PDEs) with grid-based methods. + It supports the easy implementation of methods like Finite Elements (FE), + Finite Volumes (FV), and also Finite Differences (FD). + . + This package contains the documentation for the basic classes. diff --git a/copyright b/copyright new file mode 100644 index 0000000..f62b51f --- /dev/null +++ b/copyright @@ -0,0 +1,227 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: dune-common +Source: https://www.dune-project.org/dev/downloadgit/ + +Files: * +Copyright: + 2015--2017 Marco Agnese + 2015 Martin Alkämper + 2003--2019 Peter Bastian + 2004--2022 Markus Blatt + 2013 Andreas Buhr + 2020--2022 Samuel Burbulla + 2011--2022 Ansgar Burchardt + 2004--2005 Adrian Burri + 2014 Benjamin Bykowski (may appear in the logs as "Convex Function") + 2014 Marco Cecchetti + 2018 Matthew Collins + 2006--2022 Andreas Dedner + 2018--2021 Nils-Arne Dreier + 2003 Marc Droske + 2003--2022 Christian Engwer + 2004--2020 Jorrit Fahlke + 2016 Thomas Fetzer + 2008--2017 Bernd Flemisch + 2013--2014 Christoph Gersbacher + 2017--2020 Janick Gerstenberger + 2015 Stefan Girke + 2005--2022 Carsten Gräser + 2015--2017 Felix Gruber + 2010--2022 Christoph Grüninger + 2006 Bernard Haasdonk + 2015--2018 Claus-Justus Heine + 2015--2020 René Heß + 2017--2019 Stephan Hilb + 2017--2021 Lasse Hinrichsen + 2012--2013 Olaf Ippisch + 2020--2022 Patrick Jaap + 2020 Liam Keegan + 2013--2021 Dominic Kempf + 2009 Leonard Kern + 2017--2018 Daniel Kienle + 2013 Torbjörn Klatt + 2003--2022 Robert Klöfkorn + 2017--2022 Timo Koch + 2005--2007 Sreejith Pulloor Kuttanikkad + 2012--2016 Arne Morten Kvarving + 2010--2014 Andreas Lauser + 2016--2021 Tobias Leibner + 2015 Lars Lubkoll + 2012--2017 Tobias Malkmus + 2007--2011 Sven Marnach + 2010--2017 René Milk + 2019--2020 Felix Müller + 2011--2019 Steffen Müthing + 2018 Lisa Julia Nebel + 2003--2006 Thimo Neubauer + 2011 Rebecca Neumann + 2008--2018 Martin Nolte + 2014 Andreas Nüßing + 2004--2005 Mario Ohlberger + 2019--2022 Santiago Ospina De Los Ríos + 2014 Steffen Persvold + 2008--2017 Elias Pipping + 2021 Joscha Podlesny + 2011 Dan Popovic + 2017--2022 Simon Praetorius + 2009 Atgeirr Rasmussen + 2017--2020 Lukas Renelt + 2006--2014 Uli Sack + 2003--2022 Oliver Sander + 2006 Klaus Schneider + 2004 Roland Schulz + 2015 Nicolas Schwenck + 2016 Linus Seelinger + 2009--2014 Bård Skaflestad + 2019 Henrik Stolzmann + 2012 Matthias Wohlmuth + 2011--2016 Jonathan Youett +License: GPL-2 with DUNE exception + +Files: cmake/modules/FindLatexMk.cmake cmake/modules/UseLatexMk.cmake cmake/modules/latexmkrc.cmake +Copyright: 2017, Dominic Kempf, Steffen Müthing +License: BSD-3-clause + All rights reserved. + . + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + . + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + . + * Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + . + * Neither the name of the Universität Heidelberg nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: doc/dunecontrol.1 +Copyright: 2013-2015, Oliver Sander +License: GNU-All-Permissive-License + +Files: debian/* +Copyright: + 2011-2020, Ansgar Burchardt + 2021, Lisa Julia Nebel + 2021, Patrick Jaap + 2022, Debian Science Team + 2022-2023, Equinor ASA +License: GPL-2 with DUNE exception + +License: GPL-2 with DUNE exception + The DUNE library and headers are licensed under version 2 of the GNU General + Public License, with a special exception for linking and compiling against + DUNE, the so-called "runtime exception." The license is intended to be + similar to the GNU Lesser General Public License, which by itself isn't + suitable for a template library. + . + The exact wording of the exception reads as follows: + . + As a special exception, you may use the DUNE library without + restriction. Specifically, if other files instantiate templates or + use macros or inline functions from one or more of the DUNE source + files, or you compile one or more of the DUNE source files and link + them with other files to produce an executable, this does not by + itself cause the resulting executable to be covered by the GNU + General Public License. This exception does not however invalidate + any other reasons why the executable file might be covered by the + GNU General Public License. + . + This license clones the one of the libstdc++ library. + . + On Debian systems, the full text of the GNU General Public License version 2 + can be found in the file `/usr/share/common-licenses/GPL-2'. + +Files: dune/python/pybind11/*.h dune/python/pybind11/_version.py +Copyright: + Copyright (c) 2016 Wenzel Jakob + Copyright (c) 2016 Trent Houliston + Copyright (c) 2016 Klemens Morgenstern + Copyright (c) 2016 Andreas Dedner + Copyright (c) 2016 Martin Nolte + Copyright (c) 2017 Henry F. Schreiner + Copyright (c) 2016 Sergey Lyskov and Wenzel Jakob +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + . + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Comment: + List of copyright holders and license were retrieved from + https://github.com/pybind/pybind11/blob/master/LICENSE on 2021-08-21 + +Files: + cmake/modules/FindPkgConfig/FindPkgConfig.cmake + cmake/modules/FindPython3/FindPython3.cmake + cmake/modules/FindPython3/Support.cmake +Copyright: 2000-2021 Kitware, Inc. and Contributors +License: BSD-3-clause + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + * Neither the name of Kitware, Inc. nor the names of Contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Comment: + List of copyright holders and license were retrieved from + https://gitlab.kitware.com/cmake/cmake/raw/master/Copyright.txt on 2021-08-21 + +License: GNU-All-Permissive-License + Copying and distribution of this file, with or without modification, are + permitted in any medium without royalty provided the copyright notice + and this notice are preserved. diff --git a/dune-autopkgtest b/dune-autopkgtest new file mode 100755 index 0000000..02c4059 --- /dev/null +++ b/dune-autopkgtest @@ -0,0 +1,62 @@ +#! /bin/bash + +set -e +set -u + +fail() { + echo >&2 "${1:-E: Unknown error}" + exit 1 +} + +if [ ! -v AUTOPKGTEST_TMP ]; then + fail "E: dune-autopkgtest must be invoked by autopkgtest" +fi + +sourcedir=${PWD} + +dependencies= +mpi= + +while [ $# -ge 1 ]; do + case "${1}" in + --depends) + dependencies="${2}" + shift 2 + ;; + --mpi) + mpi="${2}" + shift 2 + ;; + *) + break + esac +done + +if [ $# -ne 1 ]; then + fail "E: No source given" +fi +source=${1} + +if [ -z "${dependencies}" ]; then + dependencies=$(dpkg-parsechangelog --show-field Source) +fi + +cd "${AUTOPKGTEST_TMP}" +duneproject "dune-autopkgtest" "${dependencies}" "0.0.1" "DUNE autopkgtest " <<< y || + fail "E: Setting up dune-autopkgtest project failed" + +cp "${sourcedir}/${source}" "${AUTOPKGTEST_TMP}/dune-autopkgtest/src/dune-autopkgtest.cc" + +cd dune-autopkgtest + +. ${DUNE_DEBIAN_ENV:-/usr/share/dune/dune-debian.env} + +dunecontrol --current all || + fail "E: Building the package failed." + +./build-cmake/src/dune-autopkgtest || + fail "E: Running the test program failed." +if [ -n "${mpi}" ]; then + mpirun -np "${mpi}" ./build-cmake/src/dune-autopkgtest || + fail "E: Running the test program under MPI with ${mpi} ranks failed." +fi diff --git a/dune-debian.env b/dune-debian.env new file mode 100644 index 0000000..ce62154 --- /dev/null +++ b/dune-debian.env @@ -0,0 +1,9 @@ +# OpenMPI looks for a rsh program, even when it only starts local processes. +export OMPI_MCA_plm_rsh_agent=/bin/false +export PRTE_MCA_plm_ssh_agent=/bin/false + +# Don't limit number of MPI ranks to number of cores (when running tests), +# see https://bugs.debian.org/850229 +export OMPI_MCA_rmaps_base_oversubscribe=1 +export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe + diff --git a/dune-debian.mk b/dune-debian.mk new file mode 100644 index 0000000..e5ff092 --- /dev/null +++ b/dune-debian.mk @@ -0,0 +1,45 @@ +include /usr/share/dpkg/architecture.mk +include /usr/share/dpkg/pkg-info.mk + +DUNE_DEBIAN_ENV ?= /usr/share/dune/dune-debian.env + +include $(DUNE_DEBIAN_ENV) + +EMPTY := +SPACE := $(EMPTY) $(EMPTY) + +DUNE_CTEST ?= /usr/bin/dune-ctest + +DUNE_DEBIAN_CMAKE_FLAGS = -DBUILD_SHARED_LIBS=1 + +DUNE_DEBIAN_SHLIB = $(subst ~,.,lib$(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)) + +DUNE_DOC_BUILT_USING_PACKAGES = doxygen +DUNE_DOC_BUILT_USING = $(shell dpkg-query -f '$${source:Package} (= $${source:Version})' -W $(DUNE_DOC_BUILT_USING_PACKAGES)) + +ifeq ($(DEB_HOST_ARCH_CPU),i386) + DEB_CXXFLAGS_MAINT_APPEND += -ffloat-store +endif + +ifeq ($(DUNE_TEST_LABELS),) + DUNE_TEST_BUILD_TARGETS=build_tests + DUNE_TEST_CTEST_LABELS= +else + DUNE_TEST_BUILD_TARGETS=$(foreach label,$(DUNE_TEST_LABELS),build_$(label)_tests) + DUNE_TEST_CTEST_LABELS=--label-regex '^$(subst $(SPACE),|,$(DUNE_TEST_LABELS))$$' +endif + +export DEB_CXXFLAGS_MAINT_APPEND + +override_dh_auto_configure: + dh_auto_configure -- $(DUNE_DEBIAN_CMAKE_FLAGS) + +override_dh_auto_test: + dh_auto_build -- $(DUNE_TEST_BUILD_TARGETS) + cd build; PATH=$(CURDIR)/debian/tmp-test:$$PATH $(DUNE_CTEST) $(DUNE_TEST_CTEST_LABELS) + +override_dh_gencontrol: + dh_gencontrol -- -Vdune:shared-library='$(DUNE_DEBIAN_SHLIB)' -Vdune:doc:Built-Using='$(DUNE_DOC_BUILT_USING)' + +override_dh_makeshlibs: + dh_makeshlibs --version-info='$(DUNE_DEBIAN_SHLIB)' diff --git a/get-orig-source b/get-orig-source new file mode 100755 index 0000000..00131a1 --- /dev/null +++ b/get-orig-source @@ -0,0 +1,138 @@ +#! /bin/bash +# +# get-orig-source for dune +# +# (C) 2012, Ansgar Burchardt +# License: GPL-2 with DUNE exception + +set -e +set -u +set -o pipefail + +usage() { + echo "usage: get-orig-source [options...] [] + module: name of dune module (e.g. dune-common) + version: upstream version number + branch: branch (default: master); can also be a tag or commit id + + options: + --snapshot: date and Git revision is appended to the version number + --dch: run dch to update version number + -d : create orig tarball in directory + + environment: + DUNE_SOURCE path to DUNE repositories" + exit 1 +} + +safe-rm() { + local -a args + args=(--verbose) + while [[ $# -gt 0 ]]; do + case "${1}" in + -*) args+=("${1}"); shift ;; + *) break ;; + esac + done + + local path + local n d r + for path in "$@"; do + r="${path}" + d="." + while [[ ${r} =~ .*/.* ]]; do + n="${r%%/*}" + r="${r#*/}" + if [[ $n == "" ]]; then + d="" + continue + fi + d="${d}/${n}" + if [[ -L "${d}" ]]; then + echo "safe-rm: ${d} is a symbolic link (while removing ${path})" >&2 + exit 1 + fi + done + done + + rm "${args[@]}" "${@}" +} + +if [[ $# -lt 2 ]]; then + usage +fi + +if [[ -z "${DUNE_SOURCE:-}" ]]; then + echo "DUNE_SOURCE is not set" >&2 + echo "----------------------" >&2 + echo "Please set DUNE_SOURCE to a directory containing" >&2 + echo "checkouts of the DUNE modules to avoid cloning them." >&2 + exit 1 +fi + +snapshot= +dch= +dir=. + +while :; do + case "$1" in + --snapshot) snapshot=1; shift ;; + --dch) dch=1; shift ;; + -d) dir="$2"; shift 2 ;; + *) break ;; + esac +done + +module="$1" +version="$2" +branch="${3:-master}" +if [[ -d "${DUNE_SOURCE}/${module}.git" ]]; then + GIT_DIR="${DUNE_SOURCE}/${module}.git" +elif [[ -d "${DUNE_SOURCE}/${module}/.git" ]]; then + GIT_DIR="${DUNE_SOURCE}/${module}/.git" +else + echo "Could not find Git repository for ${module} in ${DUNE_SOURCE}" >&2 + exit 1 +fi + +export GIT_DIR + +if [[ $snapshot ]]; then + date=$(git log -1 --pretty="format:%ci" ${branch}) + date=${date%% *} + date=${date//-/} + version="${version}${date}" +fi + +origdir="$module-$version.orig" +tarball="$dir/${module}_$version.orig.tar.xz" + +if [[ -e "$origdir" || -e "$tarball" ]]; then + echo "source directory or tarball already exists" >&2 + exit 1 +fi + +mkdir "${origdir}" +git archive --format=tar ${branch} | tar -C "${origdir}" -x +cd "$origdir" +case "$module" in + dune-functions) + safe-rm -r doc/manual + ;; + dune-uggrid) + safe-rm -r doc + ;; + *) + if [[ -z "${snapshot}" ]]; then + echo "E: Please use the upstream release tarball and signature." >&2 + exit 1 + fi +esac +cd .. + +tar --owner=root --group=root -c "$origdir" | xz -9 > "$tarball" +rm -rf "$origdir" + +if [[ $dch ]]; then + dch --newversion "$version-1" "New upstream release ($version)." +fi diff --git a/libdune-common-dev.install b/libdune-common-dev.install new file mode 100644 index 0000000..e33dd9b --- /dev/null +++ b/libdune-common-dev.install @@ -0,0 +1,11 @@ +usr/bin +usr/include +usr/lib +usr/share/bash-completion +usr/share/dune-common +usr/share/dune +usr/share/man + +debian/dune-autopkgtest usr/share/dune +debian/dune-debian.env usr/share/dune +debian/dune-debian.mk usr/share/dune diff --git a/libdune-common-dev.lintian-overrides b/libdune-common-dev.lintian-overrides new file mode 100644 index 0000000..c3689aa --- /dev/null +++ b/libdune-common-dev.lintian-overrides @@ -0,0 +1,6 @@ +# We don't build a separate shared library package. +# See also https://lists.debian.org/debian-devel/2015/07/msg00115.html +libdune-common-dev: non-dev-pkg-with-shlib-symlink * +libdune-common-dev: package-name-doesnt-match-sonames * +# ABI is too unstable to warrant extra work with a symbols file +libdune-common-dev: no-symbols-control-file diff --git a/libdune-common-doc.install b/libdune-common-doc.install new file mode 100644 index 0000000..fe56f80 --- /dev/null +++ b/libdune-common-doc.install @@ -0,0 +1,2 @@ +usr/share/doc/dune-common/* usr/share/doc/libdune-common-doc +build/doc/buildsystem/html usr/share/doc/libdune-common-doc/buildsystem diff --git a/patches/disable-long-double-eigenvalue-checks.patch b/patches/disable-long-double-eigenvalue-checks.patch new file mode 100644 index 0000000..080b7a0 --- /dev/null +++ b/patches/disable-long-double-eigenvalue-checks.patch @@ -0,0 +1,28 @@ +--- a/dune/common/test/eigenvaluestest.cc ++++ b/dune/common/test/eigenvaluestest.cc +@@ -339,20 +339,20 @@ int main() + testSymmetricFieldMatrix(); + testSymmetricFieldMatrix(); + testSymmetricFieldMatrix(); +- testSymmetricFieldMatrix(); +- testSymmetricFieldMatrix(); ++// testSymmetricFieldMatrix(); ++// testSymmetricFieldMatrix(); + #endif // HAVE_LAPACK + + testSymmetricFieldMatrix(); + testSymmetricFieldMatrix(); + testSymmetricFieldMatrix(); + testSymmetricFieldMatrix(); +- testSymmetricFieldMatrix(); +- testSymmetricFieldMatrix(); ++// testSymmetricFieldMatrix(); ++// testSymmetricFieldMatrix(); + + checkMultiplicity(); + checkMultiplicity(); +- checkMultiplicity(); ++// checkMultiplicity(); + + return 0; + } diff --git a/patches/do-not-install-python-scripts.patch b/patches/do-not-install-python-scripts.patch new file mode 100644 index 0000000..3d455d1 --- /dev/null +++ b/patches/do-not-install-python-scripts.patch @@ -0,0 +1,13 @@ +--- a/bin/CMakeLists.txt ++++ b/bin/CMakeLists.txt +@@ -9,3 +9,10 @@ install(PROGRAMS + dunepackaging.py + dune-git-whitespace-hook + DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ ++# install these scripts only if Python bindings are enabled ++if(DUNE_ENABLE_PYTHONBINDINGS) ++ install(PROGRAMS ++ dunepackaging.py ++ DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() diff --git a/patches/dunecontrol-Module-without-CMakeLists.txt-next-to-du.patch b/patches/dunecontrol-Module-without-CMakeLists.txt-next-to-du.patch new file mode 100644 index 0000000..44c72e9 --- /dev/null +++ b/patches/dunecontrol-Module-without-CMakeLists.txt-next-to-du.patch @@ -0,0 +1,40 @@ +From afbd393c513b964315ab16219d8fd261fae6d0be Mon Sep 17 00:00:00 2001 +From: Markus Blatt +Date: Wed, 20 Nov 2024 12:10:33 +0100 +Subject: [PATCH] [dunecontrol] Module without CMakeLists.txt next to + dune.module is installed + +The decision whether a module is installed is usually based on whether +pkgconfig was able to find it. If the DUNE module does not ship a +pkgconf file or pkgconf is missing, then dunecontrol tries to build +this installed modules, too. That fails miserably. + +With this commit we add a check at the end that checks whether +there is a CMakeLists.txt file in the source directory of the +module. This directory is where the dune.module file was found. If +there is none we also assume that the module is installed and do not +try to build it. +--- + lib/dunemodules.lib | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/lib/dunemodules.lib b/lib/dunemodules.lib +index 0d11ffeb5..7ac4383aa 100644 +--- a/lib/dunemodules.lib ++++ b/lib/dunemodules.lib +@@ -99,6 +99,12 @@ parse_control() { + module_inst="yes" + fi + fi ++ # Mark modules as installed if there is no CMakeLists.txt in path ++ # Not that path is where the dune.module file is located. ++ if test "$module_inst" = "no" && ! test -e "$path/CMakeLists.txt"; then ++ module_inst="yes" ++ fi ++ + # avoid multiple definition of the same module + if eval test "x\$HAVE_$module" != "x"; then + # make sure we don't stumble over the same module twice +-- +2.39.5 + diff --git a/patches/dunecontrol-Skip-directories-without-CMake-config-fi.patch b/patches/dunecontrol-Skip-directories-without-CMake-config-fi.patch new file mode 100644 index 0000000..1f7b07f --- /dev/null +++ b/patches/dunecontrol-Skip-directories-without-CMake-config-fi.patch @@ -0,0 +1,59 @@ +From 9e8e88a6ed29d00a3e9b5cbf01114544fcc8c20e Mon Sep 17 00:00:00 2001 +From: Markus Blatt +Date: Wed, 20 Nov 2024 11:39:10 +0100 +Subject: [PATCH] [dunecontrol] Skip directories without CMake config files for + module_DIR + +find_package(module) will fail if the directory set with module_DIR +does not contain CMake configuration file. + +Hence the current approach requires that there are pkgconfig files +installed and found for each module to be used. + +With this change we fall back to installed modules if the directory +does not contain any Cmake configuration files. + +This fixes problems with using OPM as DUNE modules (in Debian) which +stopped shipping broken pkgconf file 2023-09 +--- + bin/dunecontrol | 23 +++++++++++++---------- + 1 file changed, 13 insertions(+), 10 deletions(-) + +diff --git a/bin/dunecontrol b/bin/dunecontrol +index 5b343338e..35b6838fb 100755 +--- a/bin/dunecontrol ++++ b/bin/dunecontrol +@@ -656,17 +656,20 @@ run_default_cmake () { + name=$(eval "echo \$NAME_$m") + local m_ABS_BUILDDIR=$(abs_builddir $m $BUILDDIR) + ++ config_dir="$path" ++ for i in $MULTIARCH_LIBDIR lib lib64 lib32; do ++ if test -d "$path/$i/cmake/$name"; then ++ config_dir="$path/$i/cmake/$name" ++ break; ++ fi ++ done + if test -d "$m_ABS_BUILDDIR"; then +- CMAKE_PARAMS="$CMAKE_PARAMS \"-D""$name""_DIR=$m_ABS_BUILDDIR\"" +- else +- TMP_PARAMS="\"-D""$name""_DIR=$path\"" +- for i in $MULTIARCH_LIBDIR lib lib64 lib32; do +- if test -d "$path/$i/cmake/$name"; then +- TMP_PARAMS="\"-D""$name""_DIR=$path/$i/cmake/$name\"" +- break; +- fi +- done +- CMAKE_PARAMS="$CMAKE_PARAMS $TMP_PARAMS" ++ config_dir="$m_ABS_BUILDDIR" ++ fi ++ # Only add directories with CMake config files to -Dmodule_DIR ++ # Then there is at least a chance to find packages in default locations ++ if ls "$config_dir"/*onfig.cmake 1> /dev/null 2>&1; then ++ CMAKE_PARAMS="$CMAKE_PARAMS \"-D""$name""_DIR=$config_dir\"" + fi + fi + done +-- +2.39.5 + diff --git a/patches/duneproject-simulators-is-alias-for-models b/patches/duneproject-simulators-is-alias-for-models new file mode 100644 index 0000000..527878a --- /dev/null +++ b/patches/duneproject-simulators-is-alias-for-models @@ -0,0 +1,19 @@ +Description: Make duneproject aware that opm-models is merged with opm-simulators + This is needed to kepp autopkgtests from testing working. Can safely be + removed laters +Author: markus@dr-blatt.de +Last-Update: 2024-11-18 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/bin/duneproject ++++ b/bin/duneproject +@@ -224,6 +224,9 @@ while [ "$DATACORRECT" != "y" -a "$DATAC + read -p " Enter space-separated list: " DEPENDENCIES + done + set +e ++ if ! $(echo "$MODULES" | grep opm-models &> /dev/null); then ++ DEPENDENCIES="$(echo "$DEPENDENCIES" | sed "s/opm-models/opm-simulators/g")" ++ fi + modulesexist "$DEPENDENCIES" "$MODULES" + DEPOK=$? + set -e diff --git a/patches/fix-linitian-file-references-package-build-path b/patches/fix-linitian-file-references-package-build-path new file mode 100644 index 0000000..b882bfe --- /dev/null +++ b/patches/fix-linitian-file-references-package-build-path @@ -0,0 +1,21 @@ +Prevent lintian warning about file-references-package-build-path +--- a/cmake/modules/DuneProject.cmake ++++ b/cmake/modules/DuneProject.cmake +@@ -370,12 +370,17 @@ endif()") + set(DUNE_PYTHON_WHEELHOUSE "") + endif() + ++ # Strip -ffile-prefix-map=[^ \t]* o prevent lintian warning ++ # about file-references-package-build-path ++ set(_configure_file_cxx_flags_backup ${CMAKE_CXX_FLAGS}) ++ string(REGEX REPLACE "-ffile-prefix-map=[^ \t]*" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + configure_package_config_file(${CONFIG_SOURCE_FILE} + ${PROJECT_BINARY_DIR}/cmake/pkg/${ProjectName}-config.cmake + INSTALL_DESTINATION ${DUNE_INSTALL_LIBDIR}/cmake/${ProjectName} + PATH_VARS CMAKE_INSTALL_DATAROOTDIR DUNE_INSTALL_MODULEDIR CMAKE_INSTALL_INCLUDEDIR DUNE_PYTHON_WHEELHOUSE + DOXYSTYLE_DIR SCRIPT_DIR) + ++ set(CMAKE_CXX_FLAGS ${_configure_file_cxxflags_backup}) + + #create cmake-config files for build tree + set(PACKAGE_CMAKE_INSTALL_INCLUDEDIR ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/include) diff --git a/patches/fix-linitian-file-references-package-build-path-downstream b/patches/fix-linitian-file-references-package-build-path-downstream new file mode 100644 index 0000000..03fb671 --- /dev/null +++ b/patches/fix-linitian-file-references-package-build-path-downstream @@ -0,0 +1,24 @@ +Make sure current CXXFLAGS in cmake config files get substituted. + +Prevents the build path from appearing in dune-module-config.cmake +files of downstream modules and prevents the lintian warning about +that. +--- a/cmake/modules/DuneProject.cmake ++++ b/cmake/modules/DuneProject.cmake +@@ -290,11 +290,11 @@ set(${ProjectName}_INSTALLED @MODULE_INS + set_and_check(${ProjectName}_PREFIX \"\${PACKAGE_PREFIX_DIR}\") + set_and_check(${ProjectName}_INCLUDE_DIRS \"@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@\") + set(${ProjectName}_CMAKE_CONFIG_VERSION \"${DUNE_COMMON_VERSION}\") +-set(${ProjectName}_CXX_FLAGS \"${CMAKE_CXX_FLAGS}\") +-set(${ProjectName}_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG}\") +-set(${ProjectName}_CXX_FLAGS_MINSIZEREL \"${CMAKE_CXX_FLAGS_MINSIZEREL}\") +-set(${ProjectName}_CXX_FLAGS_RELEASE \"${CMAKE_CXX_FLAGS_RELEASE}\") +-set(${ProjectName}_CXX_FLAGS_RELWITHDEBINFO \"${CMAKE_CXX_FLAGS_RELWITHDEBINFO}\") ++set(${ProjectName}_CXX_FLAGS \"@CMAKE_CXX_FLAGS@\") ++set(${ProjectName}_CXX_FLAGS_DEBUG \"@CMAKE_CXX_FLAGS_DEBUG@\") ++set(${ProjectName}_CXX_FLAGS_MINSIZEREL \"@CMAKE_CXX_FLAGS_MINSIZEREL@\") ++set(${ProjectName}_CXX_FLAGS_RELEASE \"@CMAKE_CXX_FLAGS_RELEASE@\") ++set(${ProjectName}_CXX_FLAGS_RELWITHDEBINFO \"@CMAKE_CXX_FLAGS_RELWITHDEBINFO@\") + set(${ProjectName}_DEPENDS \"@${ProjectName}_DEPENDS@\") + set(${ProjectName}_SUGGESTS \"@${ProjectName}_SUGGESTS@\") + set(${ProjectName}_MODULE_PATH \"@PACKAGE_DUNE_INSTALL_MODULEDIR@\") diff --git a/patches/install-cmake-config-to-lib-headerless b/patches/install-cmake-config-to-lib-headerless new file mode 100644 index 0000000..7b7b8c3 --- /dev/null +++ b/patches/install-cmake-config-to-lib-headerless @@ -0,0 +1,52 @@ +Description: Install cmake config of header-only module in /usr/lib/cmake + Needed to make it work in multiarch settings. +Author: Markus Blatt +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/cmake/modules/DuneAddLibrary.cmake ++++ b/cmake/modules/DuneAddLibrary.cmake +@@ -135,7 +135,6 @@ Add a library to a Dune module. + #]=======================================================================] + include_guard(GLOBAL) + +- + # Public interface for creating a module library + function(dune_add_library _name) + cmake_parse_arguments(ARG "OBJECT;INTERFACE" "" "" ${ARGN}) +@@ -210,6 +209,8 @@ function(dune_add_library_normal _name) + set(ARG_NAMESPACE Dune::) + endif() + ++ set_property(GLOBAL PROPERTY ${PROJECT_NAME}_HAS_LIB ON) ++ + set(alias ${ARG_NAMESPACE}${ARG_EXPORT_NAME}) + if(NOT TARGET ${alias}) + add_library(${alias} ALIAS ${_name}) +--- a/cmake/modules/DuneProject.cmake ++++ b/cmake/modules/DuneProject.cmake +@@ -343,7 +343,15 @@ endif()") + if(DEFINED DUNE_INSTALL_LIBDIR) + message(DEPRECATION "DUNE_INSTALL_LIBDIR is deprecated, use CMAKE_INSTALL_LIBDIR instead") + else() +- set(DUNE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}) ++ # Determine whether this module is header-only ++ # In the case the property is not defined ++ get_property(_has_lib GLOBAL PROPERTY ${PROJECT_NAME}_HAS_LIB SET) ++ ++ if(_has_lib) ++ set(DUNE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}) ++ else() ++ set(DUNE_INSTALL_LIBDIR ${DUNE_INSTALL_NONOBJECTLIBDIR}) ++ endif() + endif() + + # Set the location of the doc file source. Needed by custom package configuration +@@ -446,7 +454,7 @@ get_filename_component(_dir \"\${CMAKE_C + + # install library export set + install(EXPORT ${_export_set} +- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${ProjectName} ++ DESTINATION ${DUNE_INSTALL_LIBDIR}/cmake/${ProjectName} + NAMESPACE ${_namespace} + FILE ${_target_file}) + diff --git a/patches/install-pkgconfig-without-lib-for-cross-compile b/patches/install-pkgconfig-without-lib-for-cross-compile new file mode 100644 index 0000000..de0bf7d --- /dev/null +++ b/patches/install-pkgconfig-without-lib-for-cross-compile @@ -0,0 +1,22 @@ +Install architecture independent pkgconfig file in /usr/share/pkgconfig + +This prevents lintian warning pkg-config-unavailable-for-cross-compilation +for the header only modules dune-istl, dune-localfunctions, dune-functions, +and dune-typetree. +--- a/cmake/modules/DuneProject.cmake ++++ b/cmake/modules/DuneProject.cmake +@@ -532,8 +532,13 @@ endif()") + install(FILES config.h.cmake DESTINATION share/${ProjectName}) + endif() + ++ if(_has_lib) ++ set(DUNE_INSTALL_PKGCONFIGDIR ${CMAKE_INSTALL_LIBDIR}) ++ else() ++ set(DUNE_INSTALL_PKGCONFIGDIR ${CMAKE_INSTALL_DATAROOTDIR}) ++ endif() + # install pkg-config files +- create_and_install_pkconfig(${DUNE_INSTALL_LIBDIR}) ++ create_and_install_pkconfig(${DUNE_INSTALL_PKGCONFIGDIR}) + + ########################### + ### HEADER CONFIG FILEs ### diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..6c5f25a --- /dev/null +++ b/patches/series @@ -0,0 +1,10 @@ +install-cmake-config-to-lib-headerless +install-pkgconfig-without-lib-for-cross-compile +fix-linitian-file-references-package-build-path-downstream +fix-linitian-file-references-package-build-path +soname.patch +disable-long-double-eigenvalue-checks.patch +do-not-install-python-scripts.patch +duneproject-simulators-is-alias-for-models +dunecontrol-Module-without-CMakeLists.txt-next-to-du.patch +dunecontrol-Skip-directories-without-CMake-config-fi.patch diff --git a/patches/soname.patch b/patches/soname.patch new file mode 100644 index 0000000..e0775c6 --- /dev/null +++ b/patches/soname.patch @@ -0,0 +1,41 @@ +From 0217e8c079c05bdac25c0e7d985ff24e9ed6c5eb Mon Sep 17 00:00:00 2001 +From: Markus Blatt +Date: Fri, 9 Dec 2022 16:01:02 +0100 +Subject: [PATCH 2/2] Always add an soversion to the library. + +--- + cmake/modules/DuneAddLibrary.cmake | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/cmake/modules/DuneAddLibrary.cmake ++++ b/cmake/modules/DuneAddLibrary.cmake +@@ -159,7 +159,7 @@ function(dune_add_library_normal _name) + cmake_parse_arguments(ARG + "NO_EXPORT;NO_MODULE_LIBRARY;STATIC;SHARED;MODULE" + "COMPILE_FLAGS;COMPILE_OPTIONS;OUTPUT_NAME;EXPORT_NAME;NAMESPACE" +- "ADD_LIBS;LINK_LIBRARIES;SOURCES" ${ARGN}) ++ "ADD_LIBS;LINK_LIBRARIES;SOURCES;SOVERSION" ${ARGN}) + list(APPEND ARG_SOURCES ${ARG_UNPARSED_ARGUMENTS}) + dune_expand_object_libraries(ARG_SOURCES ARG_ADD_LIBS ARG_COMPILE_FLAGS) + list(APPEND ARG_LINK_LIBRARIES ${ARG_ADD_LIBS}) +@@ -174,6 +174,12 @@ function(dune_add_library_normal _name) + set(_type "MODULE") + endif() + ++ if(NOT ARG_SOVERSION) ++ # If no explicit version is given, we assume the ABI is not stable and ++ # changes with every release. ++ set(ARG_SOVERSION ${ProjectVersion}) ++ endif() ++ + # Create the library target + add_library(${_name} ${_type} ${ARG_SOURCES}) + +@@ -185,6 +191,7 @@ function(dune_add_library_normal _name) + + # Build library in ${PROJECT_BINARY_DIR}/lib + set_target_properties(${_name} PROPERTIES ++ SOVERSION "${ARG_SOVERSION}" + LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib" + ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib") + diff --git a/rules b/rules new file mode 100755 index 0000000..c43390e --- /dev/null +++ b/rules @@ -0,0 +1,25 @@ +#! /usr/bin/make -f + +include /usr/share/dpkg/architecture.mk + +DUNE_DEBIAN_ENV := $(CURDIR)/debian/dune-debian.env +DUNE_CTEST := $(CURDIR)/bin/dune-ctest +DUNE_DEBIAN_DUNECONTROL := $(CURDIR)/bin/dunecontrol + +ifneq ($(filter mips64el mipsel,$(DEB_HOST_ARCH)),) + DUNE_TEST_LABELS=quick +else + DUNE_TEST_LABELS= +endif + +include debian/dune-debian.mk + +%: + dh $@ --builddirectory=build --buildsystem=cmake + +override_dh_auto_build-indep: + dh_auto_build -- doc + +override_dh_installdocs-indep: + dh_installdocs + dh_sphinxdoc diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/tests/basic b/tests/basic new file mode 100755 index 0000000..436fa59 --- /dev/null +++ b/tests/basic @@ -0,0 +1,7 @@ +#! /bin/bash + +set -e +set -u + +export DUNE_DEBIAN_ENV=${PWD}/debian/dune-debian.env +./debian/dune-autopkgtest --mpi 2 dune/common/test/mpicollectivecommunication.cc diff --git a/tests/control b/tests/control new file mode 100644 index 0000000..cd0b5cf --- /dev/null +++ b/tests/control @@ -0,0 +1,7 @@ +Tests: basic +Depends: + libdune-common-dev, + build-essential, + mpi-default-bin, mpi-default-dev, + libscotchmetis-dev, +Restrictions: allow-stderr diff --git a/upstream/metadata b/upstream/metadata new file mode 100644 index 0000000..35fa64c --- /dev/null +++ b/upstream/metadata @@ -0,0 +1,4 @@ +Bug-Database: https://gitlab.dune-project.org/core/dune-common/-/issues +Bug-Submit: https://gitlab.dune-project.org/core/dune-common/-/issues/new +Repository: https://gitlab.dune-project.org/core/dune-common.git +Repository-Browse: https://gitlab.dune-project.org/core/dune-common diff --git a/watch b/watch new file mode 100644 index 0000000..a6e4fab --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=4 +opts="searchmode=plain" \ + https://gitlab.dune-project.org/core/@PACKAGE@/tags?sort=updated_desc -/archive/v?\d[\d.]+/@PACKAGE@-@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate -- 2.30.2