- Package:
- src:trilinos
- Source:
- src:trilinos
- Submitter:
- Jochen Sprickerhof
- Date:
- 2026-03-11 14:29:02 UTC
- Severity:
- normal
Hi,
I have NMUed src:kokkos with the intention to get it into trixie. As
part of it I fixed the multi arch problem by moving the cmake files from
/usr/lib/cmake to usr/lib/${DEB_HOST_MULTIARCH}/. Now libkokkos-dev has
a undeclared file conflict as both provide KokkosConfig.cmake. Even
more, libtrilinos-kokkos-dev seems to vendor kokkos 3.0 whereas
libkokkos-dev contains kokkos 4.0. This bug is to block the file
conflict from migrating to testing and to discuss how to resolve the
duplicated packaging.
As I have no deeper insights on both packages nor their downstreams, I
would be happy to get comments from both maintainers.
Cheers Jochen
Jochen originally assigned it to src:libkokkos-dev and then Graham
reassigned it to src:kokkos, but that makes the conflict detector not
see it either as it only thinks about binary packages.
If reassigning, please go
Control: reassign -1 libtrilinos-kokkos-dev VER
Control: affects -1 = libkokkos-dev
I'll leave the technical bits to you.
Thanks
Helmut
Hi, Trilinos can be build with an external Kokkos package if the version matches. The current required version for Kokkos to be compatible with Trilinos in Debian would be 4.1.0 (https://salsa.debian.org/science-team/trilinos/-/blob/master/packages/tpetra/CMakeLists.txt?ref_type=heads#L27). In the latest Trilinos version Kokkos would requires the latest release 4.6.0. Searching a bit in the Trilinos documentation I found -D TPL_ENABLE_KOKKOS=ON as a CMake configuration flag to build with an external Kokkos package. I am not yet sure how to point Trilinos to the external Kokkos install. Usually Kokkos_ROOT or Kokkos_DIR should be set in the cmake configuration. If Kokkos can be found in the default paths maybe cmake is capable to find the install without specifying the path. This might solve the issue. Best regards, Nils
Hi, Trilinos can be build with an external Kokkos package if the version matches. The current required version for Kokkos to be compatible with Trilinos in Debian would be 4.1.0 (https://salsa.debian.org/science-team/trilinos/-/blob/master/packages/tpetra/CMakeLists.txt?ref_type=heads#L27). In the latest Trilinos version Kokkos would requires the latest release 4.6.0. Searching a bit in the Trilinos documentation I found -D TPL_ENABLE_KOKKOS=ON as a CMake configuration flag to build with an external Kokkos package. I am not yet sure how to point Trilinos to the external Kokkos install. Usually Kokkos_ROOT or Kokkos_DIR should be set in the cmake configuration. If Kokkos can be found in the default paths maybe cmake is capable to find the install without specifying the path. This might solve the issue. Best regards, Nils
Hi,
with the attached patches Jochen and I could successfully separated the
Kokkos (v4.5.1) package from the Trilinos (v16.1.0) package.
Kokkos is still closely related to Trilinos but by now developed and
maintained externally.
For downstream users of Kokkos this is more obvious if a separate kokkos
package is available.
To give an example: PETSc which is independent of Trilinos can take a
dependency on Kokkos
(https://petsc.org/release/install/install/#installing-petsc-to-use-gpus-and-accelerators).
We have successfully rebuild Kokkos and Trilinos packages with the
patches below.
Additionally, we have tested the update process of deal.ii package which
was build against a Trilinos version containing Kokkos to a Trilinos
version which has been build with an external Kokkos package in Debian
testing.
Some comments on future updates of Trilinos and Kokkos.
To my knowledge Trilinos is always tested and compiled with a specific
version of Kokkos.
Therefore, a future update of one of these packages (Trilinos,Kokkos)
will require an update of the other package as well if Trilinos is not
configured with Tpetra_IGNORE_KOKKOS_COMPATIBILITY.
Below are two diffs which can be applied to the Kokkos and the Trilinos
package.
Then Trilinos would depend on the Kokkos Debian package.
The libtrilinos-kokkos-16.1 and libtrilinos-kokkos-dev packages are
replaced by transitional packages which can be removed at a later stage.
Are there any change requests, recommendations, or objections to these
changes?
Before we apply any of these changes we wait until #1120018 is closed.
Best,
Nils
Kokkos diff:
diff --git a/debian/changelog b/debian/changelog
index 1e3efa5..7ed57d5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+kokkos (4.5.01-1.3) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Package transition from Trilinos-Kokkos to Kokkos (Closes:
#1101487)
+ * Enable serial backend of Kokkos required to build Trilinos
+ * Create transitional package for libtrilinos-kokkos-dev,
+ libtrilinos-kokkos-16.1
+
+ -- Nils Schild <nils.schild@posteo.de> Sat, 27 Sep 2025 15:52:08
+0200
+
kokkos (4.5.01-1.2) unstable; urgency=medium
* Non-maintainer upload.
diff --git a/debian/control b/debian/control
index cd74df4..9f752a7 100644
--- a/debian/control
+++ b/debian/control
@@ -29,9 +31,9 @@ Package: libkokkos4.5
Architecture: any
Multi-Arch: same
Section: libs
-Depends:
- ${shlibs:Depends},
- ${misc:Depends}
+Breaks: libtrilinos-kokkos-16.1 (<< 16.1.0-2.1)
+Replaces: libtrilinos-kokkos-16.1 (<< 16.1.0-2.1)
+Depends: ${shlibs:Depends}, ${misc:Depends}
Description: C++ Performance Portability Programming
This implements a programming model in C++ for writing performance
portable applications targeting all major HPC platforms. For that
purpose it
@@ -45,6 +47,8 @@ Package: libkokkos-dev
Architecture: any
Multi-Arch: same
Section: libdevel
+Breaks: libtrilinos-kokkos-dev (<< 16.1.0-2.1)
+Replaces: libtrilinos-kokkos-dev (<< 16.1.0-2.1)
Depends:
${misc:Depends},
libkokkos4.5 (= ${binary:Version}),
@@ -58,3 +62,4 @@ Description: C++ Performance Portability Programming
backends in development.
.
This is a development package of kokkos.
+
diff --git a/debian/rules b/debian/rules
index cfa53bf..81ac75a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -15,6 +15,7 @@ endif
override_dh_auto_configure:
dh_auto_configure -- \
-DBUILD_SHARED_LIBS=ON \
+ -DKokkos_ENABLE_SERIAL=ON \
-DKokkos_ENABLE_OPENMP=ON \
$(RUN_TESTS)
Trilinos diff:
diff --git a/debian/changelog b/debian/changelog
index 1e64a892b3..56b0a5272e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+trilinos (16.1.0-2.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Transition package Trilinos-Kokkos to Kokkos
+ * Enable OpenMP for Kokkos package compatibility
+
+ -- Nils Schild <nils.schild@posteo.de> Sat, 27 Sep 2025 19:07:14
+0200
+
trilinos (16.1.0-2) unstable; urgency=medium
* Revert 'switch to mold linker', it seems to have
diff --git a/debian/control b/debian/control
index d0bb41076a..488cf1f360 100644
--- a/debian/control
+++ b/debian/control
@@ -20,7 +20,8 @@ Build-Depends: debhelper-compat (= 13),
libmumps-dev (>= 4.10),
libptscotch-dev (>= 6.0.3),
openmpi-bin,
- zlib1g-dev
+ zlib1g-dev,
+ libkokkos-dev
Build-Depends-Indep: bc,
doxygen,
ghostscript,
@@ -54,7 +55,7 @@ Package: trilinos-dev
Architecture: any
Multi-Arch: same
Section: libs
-Depends: ${misc:Depends}
+Depends: libkokkos-dev, ${misc:Depends}
Suggests: trilinos-doc
Description: object-oriented framework for large-scale problems -
development files
The Trilinos Project is an effort to develop algorithms and enabling
@@ -65,6 +66,22 @@ Description: object-oriented framework for
large-scale problems - development fi
.
This package contains the development header and some makefile
templates.
+Package: libtrilinos-kokkos-16.1
+Depends: libkokkos4.5, ${misc:Depends}
+Architecture: all
+Priority: optional
+Section: oldlibs
+Description: transitional package
+ This is a transitional package. It can safely be removed.
+
+Package: libtrilinos-kokkos-dev
+Depends: libkokkos-dev, ${misc:Depends}
+Architecture: all
+Priority: optional
+Section: oldlibs
+Description: transitional package
+ This is a transitional package. It can safely be removed.
+
Package: libtrilinos-amesos-16.1
Architecture: any
Multi-Arch: same
@@ -436,37 +453,6 @@ Description: partitioning, load balancing, coloring
of sparse matrices - develop
.
This package provides headers.
Hi Adding Matthias Maier, maintainer of trilinos and deal.ii, as recipient. What problem are you trying to solve? Why not use kokkos that is already packaged in trilinos? Regards Graham
Thank you for working on this! Should the same approach be taken for Kokkos Kernels? Best, Christian
Hi,
the diff below can be applied to the Kokkos repository to change the
install path of the header files.
I tested that the patch can compile valid kokkos code using the example
'example/build_cmake_installed' from the Kokkos upstream repo.
Also I tested that the update works from 4.7.1-1 to 4.7.1-2.
If there are no objections I would ask the maintainer to apply the
changes.
Best,
Nils
diff --git a/debian/changelog b/debian/changelog
index ab338fa..3ae117e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+kokkos (4.7.01-2) unstable; urgency=medium
+
+ * Install Kokkos headers into /usr/include/kokkos
+
+ -- Nils Schild <nils.schild@posteo.de> Tue, 04 Nov 2025 20:49:38
+0100
+
kokkos (4.7.01-1) unstable; urgency=medium
* New upstream version.
diff --git a/debian/libkokkos-dev.install b/debian/libkokkos-dev.install
index 30ccf82..2adbb5a 100644
--- a/debian/libkokkos-dev.install
+++ b/debian/libkokkos-dev.install
@@ -1,3 +1,3 @@
-usr/include/* usr/include
+usr/include/kokkos/* usr/include/kokkos
usr/lib/*/*.so usr/lib/${DEB_HOST_MULTIARCH}/
usr/lib/*/cmake usr/lib/${DEB_HOST_MULTIARCH}/
diff --git a/debian/rules b/debian/rules
index cfa53bf..446955a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -14,6 +14,7 @@ endif
override_dh_auto_configure:
dh_auto_configure -- \
+ -DCMAKE_INSTALL_INCLUDEDIR="/usr/include/kokkos" \
-DBUILD_SHARED_LIBS=ON \
-DKokkos_ENABLE_OPENMP=ON \
$(RUN_TESTS)
Hi, my last response to the bug was meant for a different bug, sorry for that. Am 04.11.2025 10:13 schrieb Graham Inggs: The main idea of the provided diffs is to resolve this bug so that the Kokkos package can transition to testing. The motivation for separating the Kokkos package from the Trilinos package would be that Kokkos is developed independently of Trilinos. That would be more obvious if a libkokkos-* package is available. That could also be achieved with a virtual package or using e.g. 'Provides: libkokkos' in the 'libtrilinos-kokkos-package'. CMake projects which rely on 'find_package(Kokkos)' also works with 'libtrilinos-kokkos-dev'. I have just tested that. In favor of a separate Kokkos package would be that Kokkos is released more frequently than Trilinos. Making the latest version of Kokkos available in unstable and testing is easier if Kokkos is available as a separate package. Trilinos could be build using 'Tpetra_IGNORE_KOKKOS_COMPATIBILITY=ON'. If the CI/buildd does not fail the Kokkos package could be accepted. Am 4.11.2025 06:56 schrieb Christian Alexander Glusa To keep treat Kokkos and Kokkos Kernels consistently that seems reasonable to me. Probably one of the maintainers can say more about this. Best Nils
Hello Thanks Nils for the patches, I think I've applied all of it - except the transition/conflicts parts. Do you think this bug can be closed? Can you test with the sid 4.07 version? I've also packaged/put 5.0 to experimental (hangs in NEW for now). Christian: probably the same should be done for kokkos-kernels. I've had a short look at that, as well as kokkos-tools. Who/what we do on it? Best, Alex
control: clone -1 -2 control: reassign -2 src:trilinos control: found -2 16.1.0-4 control: retitle -2 Replacing Trilinos-Kokkos by Kokkos Hi Alex, thank you for applying the necessary changes to debian/rules. I can test the build for the external Kokkos build using 5.0.00-1. I do not think that the bug can be closed, since it still would require changes in the Trilinos package. Therefore, I cloned the bug. Kokkos-Tools has quite some useful tooling to work with Kokkos. But I think first this bug should be fixed before considering other packages from the Kokkos ecosystem. Best, Nils
Hi, there was a meeting of the Kokkos working group taking care about building and packaging in December. The Kokkos Team would prefer a package provided independently of Trilinos. https://github.com/kokkos/development/blob/cb4f1a1b45cdfaf5ae20d792cd42750ef50aea76/meeting_notes/wg-build-packaging/2025_12_16_notes.md?plain=1#L50 The main reasons are projects depending on Kokkos without a Trilinos dependency and the development outside of the Trilinos ecosystem. Are there concerns or objections regarding a separation of the Kokkos package from the Trilinos package by the Debian Trilinos maintainers and uploaders? Best Nils
Hi all, Yes, debundling Kokkos from Trilinos is the sensible way forward. I only have some minor concerns that we will need to ensure that Trilinos still builds against external Kokkos before uploading a new Kokkos version. Best, Matthias