From cd0bd6cd64e639024bbded7fda26a1e0287c7856 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Fri, 25 Apr 2025 10:51:46 +0200 Subject: [PATCH 01/11] add ubuntu25.04 ci --- .ci/ubuntu25.04_py3/Dockerfile | 44 ++++++++++++++++++++++++++++++++++ .github/workflows/tests.yml | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 .ci/ubuntu25.04_py3/Dockerfile diff --git a/.ci/ubuntu25.04_py3/Dockerfile b/.ci/ubuntu25.04_py3/Dockerfile new file mode 100644 index 0000000..313e09f --- /dev/null +++ b/.ci/ubuntu25.04_py3/Dockerfile @@ -0,0 +1,44 @@ +FROM ubuntu:25.04 + +MAINTAINER DESY, Jan Kotanski + + +RUN apt-get update +RUN apt-get install -y base-passwd apt-utils dialog -y +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections +RUN apt-get -qq update && apt-get -qq install -y libterm-readline-gnu-perl software-properties-common coreutils gnupg2 procps curl apt-transport-https gnupg2 ca-certificates wget gpg-agent + +RUN curl -s http://repos.pni-hdri.de/debian_repo.pub.gpg | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-hdri-repo.gpg --import +RUN chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg +RUN cd /etc/apt/sources.list.d && wget http://repos.pni-hdri.de/plucky-pni-hdri.list + +RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq dist-upgrade +RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq install -y python3-sphinx apt-utils net-tools +RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.0-dev libh5cpp0.6.0 python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-abi9 g++ python3-h5py +RUN apt-get -qq install -y hdf5-filter-plugin bitshuffle-serial-links python3-pytest git cmake doxygen python3-sphinx libboost-all-dev +RUN useradd -ms /bin/bash tango + +# # install latest h5cpp +# RUN mkdir -p /opt/h5cpp +# RUN mkdir -p /h5cpp-src +# RUN cd /h5cpp-src && git clone https://github.com/ess-dmsc/h5cpp && mkdir build +# RUN cd /h5cpp-src/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/h5cpp -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_DISABLE_TESTS=True ../h5cpp && make install -j4 +# ENV CPLUS_INCLUDE_PATH=/opt/h5cpp/include +# ENV LD_LIBRARY_PATH=/opt/h5cpp/lib +# ENV H5CPP=/opt/h5cpp/lib/cmake/h5cpp-0.5 +# ENV H5CPP_LOCAL_PATH=/opt/h5cpp +# ENV HDF5_HL_LOCAL_PATH=/usr/lib/x86_64-linux-gnu/hdf5/serial/ + +# # # install latest linpninexus +# RUN mkdir -p /opt/libpninexus +# RUN mkdir -p /libpninexus-src +# RUN cd /libpninexus-src && git clone https://github.com/pni-libraries/libpninexus && mkdir build +# # RUN cd /libpninexus-src/build && cmake -Dh5cpp_DIR=$H5CPP -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/h5cpp/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 +# RUN cd /libpninexus-src/build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/libpninexus/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 +# ENV CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/libpninexus/include +# ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libpninexus/lib +# ENV PNINEXUS_LOCAL_PATH=/opt/libpninexus + +ENV PKG_CONFIG_PATH=/home/tango/lib/pkgconfig +USER tango +WORKDIR /home/tango diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5c67e98..416b98f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - os: [debian12, debian11, debian10, ubuntu24.10, ubuntu24.04, ubuntu22.04] + os: [debian12, debian11, debian10, ubuntu25.04, ubuntu24.04, ubuntu22.04] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 From b1fe1e3adb9891bc5f91b9ff2a0b5db5264563a9 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Fri, 25 Apr 2025 10:56:49 +0200 Subject: [PATCH 02/11] update docker --- .ci/ubuntu25.04_py3/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/ubuntu25.04_py3/Dockerfile b/.ci/ubuntu25.04_py3/Dockerfile index 313e09f..013fd77 100644 --- a/.ci/ubuntu25.04_py3/Dockerfile +++ b/.ci/ubuntu25.04_py3/Dockerfile @@ -14,7 +14,7 @@ RUN cd /etc/apt/sources.list.d && wget http://repos.pni-hdri.de/plucky-pni-hdri. RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq dist-upgrade RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq install -y python3-sphinx apt-utils net-tools -RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.0-dev libh5cpp0.6.0 python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-abi9 g++ python3-h5py +RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.0-dev libh5cpp0.6.0 python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-dev g++ python3-h5py RUN apt-get -qq install -y hdf5-filter-plugin bitshuffle-serial-links python3-pytest git cmake doxygen python3-sphinx libboost-all-dev RUN useradd -ms /bin/bash tango From a156129bec7d3574d04d29987eecd5ab5519295e Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Fri, 25 Apr 2025 11:02:06 +0200 Subject: [PATCH 03/11] update docker --- .ci/ubuntu25.04_py3/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/ubuntu25.04_py3/Dockerfile b/.ci/ubuntu25.04_py3/Dockerfile index 013fd77..7c5495d 100644 --- a/.ci/ubuntu25.04_py3/Dockerfile +++ b/.ci/ubuntu25.04_py3/Dockerfile @@ -14,7 +14,7 @@ RUN cd /etc/apt/sources.list.d && wget http://repos.pni-hdri.de/plucky-pni-hdri. RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq dist-upgrade RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq install -y python3-sphinx apt-utils net-tools -RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.0-dev libh5cpp0.6.0 python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-dev g++ python3-h5py +RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.1-dev libh5cpp0.6.1 python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-dev g++ python3-h5py RUN apt-get -qq install -y hdf5-filter-plugin bitshuffle-serial-links python3-pytest git cmake doxygen python3-sphinx libboost-all-dev RUN useradd -ms /bin/bash tango From a96d4ee0e47e56e6c745350b0e3165c62854d1e4 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Fri, 25 Apr 2025 11:12:16 +0200 Subject: [PATCH 04/11] apply patch for long long to long --- src/cpp/h5cpp/node/dataset.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/cpp/h5cpp/node/dataset.cpp b/src/cpp/h5cpp/node/dataset.cpp index b089c56..b2e1d47 100644 --- a/src/cpp/h5cpp/node/dataset.cpp +++ b/src/cpp/h5cpp/node/dataset.cpp @@ -51,11 +51,11 @@ void dataset_write_chunk(const hdf5::node::Dataset &self, hdf5::property::DatasetTransferList()) { numpy::ArrayAdapter array_adapter(data); - std::vector voffset; + std::vector voffset; for (boost::python::ssize_t i = 0, end = len(offset); i < end; ++i){ boost::python::object o = offset[i]; - boost::python::extract s(o); + boost::python::extract s(o); if (s.check()){ voffset.push_back(s()); } @@ -73,12 +73,12 @@ std::uint32_t dataset_read_chunk(const hdf5::node::Dataset &self, hdf5::property::DatasetTransferList()) { numpy::ArrayAdapter array_adapter(data); - std::vector voffset; + std::vector voffset; for (boost::python::ssize_t i = 0, end = len(offset); i < end; ++i){ boost::python::object o = offset[i]; - boost::python::extract s(o); + boost::python::extract s(o); if (s.check()){ voffset.push_back(s()); } @@ -87,14 +87,14 @@ std::uint32_t dataset_read_chunk(const hdf5::node::Dataset &self, return self.read_chunk(array_adapter,voffset,dtpl); } -long long unsigned int dataset_chunk_storage_size(const hdf5::node::Dataset &self, +long unsigned int dataset_chunk_storage_size(const hdf5::node::Dataset &self, boost::python::list offset) { - std::vector voffset; + std::vector voffset; for (boost::python::ssize_t i = 0, end = len(offset); i < end; ++i){ boost::python::object o = offset[i]; - boost::python::extract s(o); + boost::python::extract s(o); if (s.check()){ voffset.push_back(s()); } From 9a0b318cc3ae457717ab3db98bff95e1fa7aaf5e Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Fri, 25 Apr 2025 11:32:54 +0200 Subject: [PATCH 05/11] change long long to hsize_t --- src/cpp/h5cpp/node/dataset.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/cpp/h5cpp/node/dataset.cpp b/src/cpp/h5cpp/node/dataset.cpp index b2e1d47..6e2ddf0 100644 --- a/src/cpp/h5cpp/node/dataset.cpp +++ b/src/cpp/h5cpp/node/dataset.cpp @@ -51,11 +51,11 @@ void dataset_write_chunk(const hdf5::node::Dataset &self, hdf5::property::DatasetTransferList()) { numpy::ArrayAdapter array_adapter(data); - std::vector voffset; + std::vector voffset; for (boost::python::ssize_t i = 0, end = len(offset); i < end; ++i){ boost::python::object o = offset[i]; - boost::python::extract s(o); + boost::python::extract s(o); if (s.check()){ voffset.push_back(s()); } @@ -73,12 +73,12 @@ std::uint32_t dataset_read_chunk(const hdf5::node::Dataset &self, hdf5::property::DatasetTransferList()) { numpy::ArrayAdapter array_adapter(data); - std::vector voffset; + std::vector voffset; for (boost::python::ssize_t i = 0, end = len(offset); i < end; ++i){ boost::python::object o = offset[i]; - boost::python::extract s(o); + boost::python::extract s(o); if (s.check()){ voffset.push_back(s()); } @@ -87,14 +87,14 @@ std::uint32_t dataset_read_chunk(const hdf5::node::Dataset &self, return self.read_chunk(array_adapter,voffset,dtpl); } -long unsigned int dataset_chunk_storage_size(const hdf5::node::Dataset &self, +hsize_t dataset_chunk_storage_size(const hdf5::node::Dataset &self, boost::python::list offset) { - std::vector voffset; + std::vector voffset; for (boost::python::ssize_t i = 0, end = len(offset); i < end; ++i){ boost::python::object o = offset[i]; - boost::python::extract s(o); + boost::python::extract s(o); if (s.check()){ voffset.push_back(s()); } From f34c6ab8bd7271cf162f7fc46b7edc0fa2a6b0b4 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Fri, 25 Apr 2025 11:42:45 +0200 Subject: [PATCH 06/11] update docu --- doc/sphinx/h5cpp/datatype.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/sphinx/h5cpp/datatype.rst b/doc/sphinx/h5cpp/datatype.rst index 292b774..142ce71 100644 --- a/doc/sphinx/h5cpp/datatype.rst +++ b/doc/sphinx/h5cpp/datatype.rst @@ -10,7 +10,7 @@ Enumerations .. autosummary:: - pninexus.h5cpp.datatype.Class + Class Order Sign Norm From cbcdfcde09accbb567cca53c6908307ba1a137d6 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Tue, 29 Apr 2025 15:59:12 +0200 Subject: [PATCH 07/11] fix for writing uft8 strings --- src/pninexus/h5cpp/node/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pninexus/h5cpp/node/__init__.py b/src/pninexus/h5cpp/node/__init__.py index ba44f2d..4a743a1 100644 --- a/src/pninexus/h5cpp/node/__init__.py +++ b/src/pninexus/h5cpp/node/__init__.py @@ -302,7 +302,7 @@ def dataset_write(self, data, selection=None): if isinstance(self.datatype, datatype.String): if self.datatype.is_variable_length: - memory_type = datatype.String.variable() + memory_type = self.datatype # if the data is bool numpy array we have to convert it to a # int array From 6c3ac8416f2b6dc3d9d0b4264ae6ba8e18aba4f2 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Wed, 30 Apr 2025 08:34:56 +0200 Subject: [PATCH 08/11] run ubuntu25.04 with the latest h5cpp --- .ci/ubuntu25.04_py3/Dockerfile | 40 +++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.ci/ubuntu25.04_py3/Dockerfile b/.ci/ubuntu25.04_py3/Dockerfile index 7c5495d..2037d9a 100644 --- a/.ci/ubuntu25.04_py3/Dockerfile +++ b/.ci/ubuntu25.04_py3/Dockerfile @@ -18,26 +18,26 @@ RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.1-d RUN apt-get -qq install -y hdf5-filter-plugin bitshuffle-serial-links python3-pytest git cmake doxygen python3-sphinx libboost-all-dev RUN useradd -ms /bin/bash tango -# # install latest h5cpp -# RUN mkdir -p /opt/h5cpp -# RUN mkdir -p /h5cpp-src -# RUN cd /h5cpp-src && git clone https://github.com/ess-dmsc/h5cpp && mkdir build -# RUN cd /h5cpp-src/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/h5cpp -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_DISABLE_TESTS=True ../h5cpp && make install -j4 -# ENV CPLUS_INCLUDE_PATH=/opt/h5cpp/include -# ENV LD_LIBRARY_PATH=/opt/h5cpp/lib -# ENV H5CPP=/opt/h5cpp/lib/cmake/h5cpp-0.5 -# ENV H5CPP_LOCAL_PATH=/opt/h5cpp -# ENV HDF5_HL_LOCAL_PATH=/usr/lib/x86_64-linux-gnu/hdf5/serial/ - -# # # install latest linpninexus -# RUN mkdir -p /opt/libpninexus -# RUN mkdir -p /libpninexus-src -# RUN cd /libpninexus-src && git clone https://github.com/pni-libraries/libpninexus && mkdir build -# # RUN cd /libpninexus-src/build && cmake -Dh5cpp_DIR=$H5CPP -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/h5cpp/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 -# RUN cd /libpninexus-src/build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/libpninexus/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 -# ENV CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/libpninexus/include -# ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libpninexus/lib -# ENV PNINEXUS_LOCAL_PATH=/opt/libpninexus +# install latest h5cpp +RUN mkdir -p /opt/h5cpp +RUN mkdir -p /h5cpp-src +RUN cd /h5cpp-src && git clone https://github.com/ess-dmsc/h5cpp && mkdir build +RUN cd /h5cpp-src/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/h5cpp -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_DISABLE_TESTS=True ../h5cpp && make install -j4 +ENV CPLUS_INCLUDE_PATH=/opt/h5cpp/include +ENV LD_LIBRARY_PATH=/opt/h5cpp/lib +ENV H5CPP=/opt/h5cpp/lib/cmake/h5cpp-0.6 +ENV H5CPP_LOCAL_PATH=/opt/h5cpp +ENV HDF5_HL_LOCAL_PATH=/usr/lib/x86_64-linux-gnu/hdf5/serial/ + +# install latest linpninexus +RUN mkdir -p /opt/libpninexus +RUN mkdir -p /libpninexus-src +RUN cd /libpninexus-src && git clone https://github.com/pni-libraries/libpninexus && mkdir build +# RUN cd /libpninexus-src/build && cmake -Dh5cpp_DIR=$H5CPP -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/h5cpp/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 +RUN cd /libpninexus-src/build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/libpninexus/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 +ENV CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/libpninexus/include +ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libpninexus/lib +ENV PNINEXUS_LOCAL_PATH=/opt/libpninexus ENV PKG_CONFIG_PATH=/home/tango/lib/pkgconfig USER tango From 6dc706d975628d72a80da7c88352f53515afce23 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Wed, 30 Apr 2025 08:47:39 +0200 Subject: [PATCH 09/11] h5cpp without boost --- .ci/ubuntu25.04_py3/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/ubuntu25.04_py3/Dockerfile b/.ci/ubuntu25.04_py3/Dockerfile index 2037d9a..810289b 100644 --- a/.ci/ubuntu25.04_py3/Dockerfile +++ b/.ci/ubuntu25.04_py3/Dockerfile @@ -22,7 +22,7 @@ RUN useradd -ms /bin/bash tango RUN mkdir -p /opt/h5cpp RUN mkdir -p /h5cpp-src RUN cd /h5cpp-src && git clone https://github.com/ess-dmsc/h5cpp && mkdir build -RUN cd /h5cpp-src/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/h5cpp -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_DISABLE_TESTS=True ../h5cpp && make install -j4 +RUN cd /h5cpp-src/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/h5cpp -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_DISABLE_TESTS=True -DH5CPP_WITH_BOOST=OFF ../h5cpp && make install -j4 ENV CPLUS_INCLUDE_PATH=/opt/h5cpp/include ENV LD_LIBRARY_PATH=/opt/h5cpp/lib ENV H5CPP=/opt/h5cpp/lib/cmake/h5cpp-0.6 From 3558cdd4d7842a81d468aa89cdb60661b36194b6 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Wed, 30 Apr 2025 10:59:25 +0200 Subject: [PATCH 10/11] do not install h5cpp from pacakge --- .ci/ubuntu25.04_py3/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.ci/ubuntu25.04_py3/Dockerfile b/.ci/ubuntu25.04_py3/Dockerfile index 810289b..41e7486 100644 --- a/.ci/ubuntu25.04_py3/Dockerfile +++ b/.ci/ubuntu25.04_py3/Dockerfile @@ -14,8 +14,9 @@ RUN cd /etc/apt/sources.list.d && wget http://repos.pni-hdri.de/plucky-pni-hdri. RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq dist-upgrade RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq install -y python3-sphinx apt-utils net-tools -RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.1-dev libh5cpp0.6.1 python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-dev g++ python3-h5py +RUN apt-get -qq install -y python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-dev g++ python3-h5py RUN apt-get -qq install -y hdf5-filter-plugin bitshuffle-serial-links python3-pytest git cmake doxygen python3-sphinx libboost-all-dev +# RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.1-dev libh5cpp0.6.1 RUN useradd -ms /bin/bash tango # install latest h5cpp From 0ff30a872d9f27c8fa4232835fd7a9e84a675118 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Wed, 30 Apr 2025 11:23:46 +0200 Subject: [PATCH 11/11] add fix for writing uft8 attributes --- .ci/ubuntu25.04_py3/Dockerfile | 42 +++++++++++++-------------- src/cpp/h5cpp/attribute/attribute.cpp | 2 +- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.ci/ubuntu25.04_py3/Dockerfile b/.ci/ubuntu25.04_py3/Dockerfile index 41e7486..eb0bb8c 100644 --- a/.ci/ubuntu25.04_py3/Dockerfile +++ b/.ci/ubuntu25.04_py3/Dockerfile @@ -16,29 +16,29 @@ RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq d RUN apt-get -qq update && export DEBIAN_FRONTEND=noninteractive && apt-get -qq install -y python3-sphinx apt-utils net-tools RUN apt-get -qq install -y python3-numpy libhdf5-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev libblas-dev libatlas-base-dev cython3 python3-setuptools libboost-python-dev python3-numpy-dev g++ python3-h5py RUN apt-get -qq install -y hdf5-filter-plugin bitshuffle-serial-links python3-pytest git cmake doxygen python3-sphinx libboost-all-dev -# RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.1-dev libh5cpp0.6.1 +RUN apt-get -qq install -y libpninexus3.2.0-dev libpninexus3.2.0 libh5cpp0.6.1-dev libh5cpp0.6.1 RUN useradd -ms /bin/bash tango -# install latest h5cpp -RUN mkdir -p /opt/h5cpp -RUN mkdir -p /h5cpp-src -RUN cd /h5cpp-src && git clone https://github.com/ess-dmsc/h5cpp && mkdir build -RUN cd /h5cpp-src/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/h5cpp -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_DISABLE_TESTS=True -DH5CPP_WITH_BOOST=OFF ../h5cpp && make install -j4 -ENV CPLUS_INCLUDE_PATH=/opt/h5cpp/include -ENV LD_LIBRARY_PATH=/opt/h5cpp/lib -ENV H5CPP=/opt/h5cpp/lib/cmake/h5cpp-0.6 -ENV H5CPP_LOCAL_PATH=/opt/h5cpp -ENV HDF5_HL_LOCAL_PATH=/usr/lib/x86_64-linux-gnu/hdf5/serial/ - -# install latest linpninexus -RUN mkdir -p /opt/libpninexus -RUN mkdir -p /libpninexus-src -RUN cd /libpninexus-src && git clone https://github.com/pni-libraries/libpninexus && mkdir build -# RUN cd /libpninexus-src/build && cmake -Dh5cpp_DIR=$H5CPP -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/h5cpp/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 -RUN cd /libpninexus-src/build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/libpninexus/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 -ENV CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/libpninexus/include -ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libpninexus/lib -ENV PNINEXUS_LOCAL_PATH=/opt/libpninexus +# # install latest h5cpp +# RUN mkdir -p /opt/h5cpp +# RUN mkdir -p /h5cpp-src +# RUN cd /h5cpp-src && git clone https://github.com/ess-dmsc/h5cpp && mkdir build +# RUN cd /h5cpp-src/build && cmake -DCMAKE_INSTALL_PREFIX=/opt/h5cpp -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_DISABLE_TESTS=True -DH5CPP_WITH_BOOST=OFF ../h5cpp && make install -j4 +# ENV CPLUS_INCLUDE_PATH=/opt/h5cpp/include +# ENV LD_LIBRARY_PATH=/opt/h5cpp/lib +# ENV H5CPP=/opt/h5cpp/lib/cmake/h5cpp-0.6 +# ENV H5CPP_LOCAL_PATH=/opt/h5cpp +# ENV HDF5_HL_LOCAL_PATH=/usr/lib/x86_64-linux-gnu/hdf5/serial/ + +# # install latest linpninexus +# RUN mkdir -p /opt/libpninexus +# RUN mkdir -p /libpninexus-src +# RUN cd /libpninexus-src && git clone https://github.com/pni-libraries/libpninexus && mkdir build +# # RUN cd /libpninexus-src/build && cmake -Dh5cpp_DIR=$H5CPP -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/h5cpp/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 +# RUN cd /libpninexus-src/build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/libpninexus/ -DPNINEXUS_CONAN=DISABLE ../libpninexus && make -j4 && make install -j4 +# ENV CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/libpninexus/include +# ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libpninexus/lib +# ENV PNINEXUS_LOCAL_PATH=/opt/libpninexus ENV PKG_CONFIG_PATH=/home/tango/lib/pkgconfig USER tango diff --git a/src/cpp/h5cpp/attribute/attribute.cpp b/src/cpp/h5cpp/attribute/attribute.cpp index 71846b9..5e766a1 100644 --- a/src/cpp/h5cpp/attribute/attribute.cpp +++ b/src/cpp/h5cpp/attribute/attribute.cpp @@ -115,7 +115,7 @@ void attribute_write(const hdf5::attribute::Attribute &self, Datatype mem_type = hdf5::datatype::create(array_adapter); if(has_variable_length_string_type(self) && (mem_type.get_class() == hdf5::datatype::Class::String)) - mem_type = String::variable(); + mem_type = self.datatype(); if((self.datatype().get_class() == hdf5::datatype::Class::Enum) && hdf5::datatype::is_bool(hdf5::datatype::Enum(self.datatype()))) mem_type = hdf5::datatype::create();