From a2b626def410f38c4d8a3f892ceaebeac9399f79 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 9 Dec 2023 22:01:48 +0100 Subject: [PATCH 1/2] TileDB: silence false positive -Wnull-dereference --- frmts/tiledb/tiledbmultidimarray.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frmts/tiledb/tiledbmultidimarray.cpp b/frmts/tiledb/tiledbmultidimarray.cpp index d4436f968b38..0f15e94bf681 100644 --- a/frmts/tiledb/tiledbmultidimarray.cpp +++ b/frmts/tiledb/tiledbmultidimarray.cpp @@ -1272,9 +1272,15 @@ std::shared_ptr TileDBArray::CreateOnDisk( } std::vector anBlockSize; +#if defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wnull-dereference" +#endif if (!FillBlockSize(aoDimensions, oDataType, anBlockSize, papszOptions)) return nullptr; - +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif auto poSchema = std::make_unique(ctx, TILEDB_DENSE); poSchema->set_tile_order(TILEDB_ROW_MAJOR); From 2e3afbeb10c923aefe53d155f4cb55e17389f57e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 9 Dec 2023 21:43:20 +0100 Subject: [PATCH 2/2] CI/Docker: sort Alpine dependencies and add missing armadillo, basisu, odbc-cpp-wrapper and tiledb --- .github/workflows/alpine/Dockerfile.ci | 83 ++++++-- .github/workflows/alpine_32bit/Dockerfile.ci | 84 ++++++-- docker/alpine-normal/Dockerfile | 195 ++++++++++++------- 3 files changed, 248 insertions(+), 114 deletions(-) diff --git a/.github/workflows/alpine/Dockerfile.ci b/.github/workflows/alpine/Dockerfile.ci index 62521a29af66..7adca61bd2fc 100644 --- a/.github/workflows/alpine/Dockerfile.ci +++ b/.github/workflows/alpine/Dockerfile.ci @@ -1,30 +1,75 @@ FROM alpine:edge RUN apk add \ - linux-headers gnu-libiconv-dev \ - g++ make ccache cmake \ - proj-dev proj proj-util \ - curl-dev tiff-dev \ - zlib-dev zstd-dev xz-dev snappy-dev \ - libjpeg-turbo-dev libpng-dev openjpeg-dev libwebp-dev expat-dev libkml-dev \ - py3-numpy-dev python3-dev py3-setuptools py3-numpy py3-pip swig \ - poppler-dev postgresql-dev \ - openexr-dev libheif-dev xerces-c-dev geos-dev cfitsio-dev \ - netcdf-dev libaec-dev hdf5-dev freexl-dev \ - lz4-dev blosc-dev libdeflate-dev brotli-dev uriparser-dev \ + apache-arrow-dev \ + armadillo-dev \ + basisu-dev \ + blosc-dev \ + brunsli-dev \ + ccache \ + cfitsio-dev \ + cmake \ + curl-dev \ + expat-dev \ + freexl-dev \ + gcc \ + g++ \ + geos-dev \ + giflib-dev \ + gnu-libiconv-dev \ + hdf5-dev \ + json-c-dev \ + kealib-dev \ + libaec-dev \ libarchive-dev \ - kealib-dev libjxl-dev \ - json-c-dev giflib-dev \ - libspatialite-dev librasterlite2-dev \ + libdeflate-dev \ + libgeotiff-dev \ + libheif-dev \ + libjpeg-turbo-dev \ + libjxl-dev \ + libkml-dev \ + libpng-dev \ + libpq-dev \ + librasterlite2-dev \ + libspatialite-dev \ + libtirpc-dev \ + libwebp-dev \ + libxml2-dev \ + libxslt-dev \ + linux-headers \ + lz4-dev \ + make \ mariadb-connector-c-dev \ + netcdf-dev \ + odbc-cpp-wrapper-dev \ + ogdi-dev \ + openexr-dev \ + openjpeg-dev \ + openssl-dev \ pcre2-dev \ + podofo-dev \ + poppler-dev \ + proj-dev \ + proj-util \ + py3-pyarrow \ + py3-pyarrow-pyc \ + py3-numpy \ + py3-numpy-dev \ + py3-pip \ + py3-setuptools \ + python3-dev \ qhull-dev \ + sfcgal-dev \ + snappy-dev \ + sqlite-dev \ + swig \ + tiledb-dev \ + tiff-dev \ unixodbc-dev \ - libpq-dev \ - apache-arrow-dev \ - py3-pyarrow py3-pyarrow-pyc \ - libxml2-dev \ - podofo-dev + xerces-c-dev \ + xz-dev \ + zlib-dev \ + zstd-dev COPY requirements.txt /tmp/ RUN python3 -m pip install --break-system-packages -U -r /tmp/requirements.txt diff --git a/.github/workflows/alpine_32bit/Dockerfile.ci b/.github/workflows/alpine_32bit/Dockerfile.ci index fe53e15e5fb4..4dee3a335fc0 100644 --- a/.github/workflows/alpine_32bit/Dockerfile.ci +++ b/.github/workflows/alpine_32bit/Dockerfile.ci @@ -1,31 +1,75 @@ -FROM i386/alpine:3.18 +FROM i386/alpine:edge RUN apk add \ + apache-arrow-dev \ + armadillo-dev \ bash \ - linux-headers gnu-libiconv-dev \ - g++ make ccache cmake \ - proj-dev proj proj-util \ - curl-dev tiff-dev \ - zlib-dev zstd-dev xz-dev snappy-dev \ - libjpeg-turbo-dev libpng-dev openjpeg-dev libwebp-dev expat-dev libkml-dev \ - py3-numpy-dev python3-dev py3-setuptools py3-numpy py3-pip swig \ - poppler-dev postgresql-dev \ - openexr-dev libheif-dev xerces-c-dev geos-dev cfitsio-dev \ - netcdf-dev libaec-dev hdf5-dev freexl-dev \ - lz4-dev blosc-dev libdeflate-dev brotli-dev uriparser-dev \ + basisu-dev \ + blosc-dev \ + brunsli-dev \ + ccache \ + cfitsio-dev \ + cmake \ + curl-dev \ + expat-dev \ + freexl-dev \ + gcc \ + g++ \ + geos-dev \ + giflib-dev \ + gnu-libiconv-dev \ + hdf5-dev \ + json-c-dev \ + kealib-dev \ + libaec-dev \ libarchive-dev \ - kealib-dev libjxl-dev \ - json-c-dev giflib-dev \ - libspatialite-dev librasterlite2-dev \ + libdeflate-dev \ + libgeotiff-dev \ + libheif-dev \ + libjpeg-turbo-dev \ + libjxl-dev \ + libkml-dev \ + libpng-dev \ + libpq-dev \ + librasterlite2-dev \ + libspatialite-dev \ + libtirpc-dev \ + libwebp-dev \ + libxml2-dev \ + libxslt-dev \ + linux-headers \ + lz4-dev \ + make \ mariadb-connector-c-dev \ + netcdf-dev \ + odbc-cpp-wrapper-dev \ + ogdi-dev \ + openexr-dev \ + openjpeg-dev \ + openssl-dev \ pcre2-dev \ + podofo-dev \ + poppler-dev \ + proj-dev \ + proj-util \ + py3-pyarrow \ + py3-pyarrow-pyc \ + py3-numpy \ + py3-numpy-dev \ + py3-pip \ + py3-setuptools \ + python3-dev \ qhull-dev \ + sfcgal-dev \ + snappy-dev \ + sqlite-dev \ + swig \ + tiff-dev \ unixodbc-dev \ - libpq-dev \ - apache-arrow-dev \ - py3-pyarrow \ - libxml2-dev libxslt-dev \ - podofo-dev + xerces-c-dev \ + xz-dev \ + zlib-dev \ + zstd-dev COPY requirements.txt /tmp/ RUN python3 -m pip install --break-system-packages -U -r /tmp/requirements.txt diff --git a/docker/alpine-normal/Dockerfile b/docker/alpine-normal/Dockerfile index 622d26cb4602..16cb754ed966 100644 --- a/docker/alpine-normal/Dockerfile +++ b/docker/alpine-normal/Dockerfile @@ -12,7 +12,7 @@ FROM alpine:${ALPINE_VERSION} as builder LABEL maintainer="Even Rouault " # Setup build env for PROJ -RUN apk add --no-cache wget curl unzip make libtool autoconf automake pkgconfig g++ sqlite sqlite-dev +RUN apk add --no-cache wget curl unzip cmake make libtool autoconf automake pkgconfig gcc g++ sqlite sqlite-dev tiff-dev ARG PROJ_DATUMGRID_LATEST_LAST_MODIFIED RUN \ @@ -24,27 +24,70 @@ RUN \ # For PROJ and GDAL ARG POPPLER_DEV=poppler-dev RUN apk add --no-cache \ - cmake linux-headers gnu-libiconv-dev \ - curl-dev tiff-dev \ - zlib-dev zstd-dev xz-dev snappy-dev \ - libjpeg-turbo-dev libpng-dev openjpeg-dev libwebp-dev expat-dev libkml-dev \ - py3-numpy-dev python3-dev py3-setuptools py3-numpy swig \ - ${POPPLER_DEV} postgresql-dev \ - openexr-dev libheif-dev xerces-c-dev geos-dev cfitsio-dev \ - netcdf-dev hdf5-dev freexl-dev \ - lz4-dev blosc-dev libdeflate-dev brotli-dev uriparser-dev \ + apache-arrow-dev \ + armadillo-dev \ + basisu-dev \ + blosc-dev \ + brunsli-dev \ + ccache \ + cfitsio-dev \ + cmake \ + curl-dev \ + expat-dev \ + freexl-dev \ + geos-dev \ + giflib-dev \ + gnu-libiconv-dev \ + hdf5-dev \ + json-c-dev \ + kealib-dev \ + lerc-dev \ + libaec-dev \ libarchive-dev \ - kealib-dev libjxl-dev \ - json-c-dev giflib-dev \ + libdeflate-dev \ + libgeotiff-dev \ + libheif-dev \ + libjpeg-turbo-dev \ + libjxl-dev \ + libkml-dev \ + libpng-dev \ + libpq-dev \ + librasterlite2-dev \ + libspatialite-dev \ + libtirpc-dev \ + libwebp-dev \ + libxml2-dev \ + linux-headers \ + lz4-dev \ + make \ mariadb-connector-c-dev \ + netcdf-dev \ + odbc-cpp-wrapper-dev \ + ogdi-dev \ + openexr-dev \ + openjpeg-dev \ + openssl-dev \ pcre2-dev \ + poppler-dev \ + proj-dev \ + proj-util \ + py3-numpy \ + py3-numpy-dev \ + py3-pip \ + py3-setuptools \ + python3-dev \ qhull-dev \ + sfcgal-dev \ + snappy-dev \ + sqlite-dev \ + swig \ + tiledb-dev \ + tiff-dev \ unixodbc-dev \ - libpq-dev \ - apache-arrow-dev \ - # For spatialite (and GDAL) - libxml2-dev \ - libaec-dev \ + xerces-c-dev \ + xz-dev \ + zlib-dev \ + zstd-dev \ && mkdir -p /build_thirdparty/usr/lib # Build hdf4 @@ -67,24 +110,6 @@ RUN if test "${HDF4_VERSION}" != "" -a "$(uname -m)" = "x86_64"; then ( \ && apk del byacc flex portablexdr-dev \ ); fi -# Build openjpeg -# ARG OPENJPEG_VERSION=2.3.1 -RUN if test "${OPENJPEG_VERSION}" != ""; then ( \ - wget -q https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz \ - && tar xzf v${OPENJPEG_VERSION}.tar.gz \ - && rm -f v${OPENJPEG_VERSION}.tar.gz \ - && cd openjpeg-${OPENJPEG_VERSION} \ - && cmake . -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - && make -j$(nproc) \ - && make install \ - && rm -f /usr/lib/libopenjp2.so.2.3.0 \ - && cp -P /usr/lib/libopenjp2*.so* /build_thirdparty/usr/lib \ - && for i in /build_thirdparty/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \ - && cd .. \ - && rm -rf openjpeg-${OPENJPEG_VERSION} \ - ); fi - RUN apk add --no-cache rsync ccache ARG RSYNC_REMOTE @@ -128,28 +153,6 @@ RUN mkdir proj \ && for i in /build_proj/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \ && for i in /build_proj/usr/bin/*; do strip -s $i 2>/dev/null || /bin/true; done -# Build freexl -ARG FREEXL_VERSION=2.0.0 -RUN if test "${FREEXL_VERSION}" != ""; then ( \ - wget -q https://www.gaia-gis.it/gaia-sins/freexl-${FREEXL_VERSION}.tar.gz \ - && tar xzf freexl-${FREEXL_VERSION}.tar.gz \ - && rm -f freexl-${FREEXL_VERSION}.tar.gz \ - && apk add --no-cache minizip-dev \ - && cd freexl-${FREEXL_VERSION} \ - && wget "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" -O config.guess \ - && chmod +x config.guess \ - && wget "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" -O config.sub \ - && chmod +x config.sub \ - && ./configure --prefix=/usr --disable-static \ - && make -j$(nproc) \ - && rm -f /usr/lib/libfreexl.* \ - && make install \ - && cp -P /usr/lib/libfreexl.so* /build_thirdparty/usr/lib \ - && for i in /build_thirdparty/usr/lib/*; do strip -s $i 2>/dev/null || /bin/true; done \ - && cd .. \ - && rm -rf freexl-${FREEXL_VERSION} \ - ); fi - # Build spatialite ARG SPATIALITE_VERSION=5.1.0 RUN if test "${SPATIALITE_VERSION}" != "" -a "$(uname -m)" = "x86_64"; then ( \ @@ -273,30 +276,72 @@ FROM alpine:${ALPINE_VERSION} as runner RUN date -ARG POPPLER=poppler RUN apk add --no-cache \ - libstdc++ \ - gnu-libiconv \ - sqlite-libs \ - libcurl tiff \ - zlib zstd-libs xz-libs snappy \ - libjpeg-turbo libpng libwebp expat libkml \ + armadillo \ + basisu \ + blosc \ + brotli-libs \ + brunsli-libs \ + cfitsio \ + expat \ + freexl \ + geos \ + giflib \ + gnu-libiconv-libs \ + hdf5 \ icu-libs \ - python3 py3-numpy ${POPPLER} pcre2 libpq libxml2 portablexdr openjpeg \ - netcdf hdf5 freexl \ - openexr-libopenexr imath libheif xerces-c geos cfitsio minizip \ - lz4-libs blosc libdeflate brotli-libs liburiparser \ + imath \ + json-c \ + kealib \ + lerc \ + libaec \ libarchive \ - kealib libjxl \ - json-c giflib \ + libarrow \ + libarrow_dataset \ + libcrypto3 \ + libcurl \ + libdeflate \ + libexpat \ + libgcc \ + libheif \ + libjpeg-turbo \ + libjxl \ + libkml \ + libparquet \ + libpng \ + libpq \ + librasterlite2 \ + libspatialite \ + libstdc++ \ + liburiparser \ + libwebp \ + libxml2 \ + lz4-libs \ mariadb-connector-c \ + netcdf \ + minizip \ + musl \ + odbc-cpp-wrapper \ + ogdi \ + openexr-libopenexr \ + openjpeg \ + pcre2 \ + poppler \ + portablexdr \ + proj \ + python3 \ + py3-numpy \ qhull \ + sfcgal \ + snappy \ + sqlite-libs \ + tiff \ + tiledb \ unixodbc \ - libpq \ - libarrow libparquet libarrow_dataset \ - libaec \ - # Remove /usr/lib/libopenjp2.so.2.3.0 since we are building v2.3.1 manually - # && rm -f /usr/lib/libopenjp2.so.2.3.0 \ + xerces-c \ + xz-libs \ + zlib \ + zstd-libs \ # libturbojpeg.so is not used by GDAL. Only libjpeg.so* && rm -f /usr/lib/libturbojpeg.so* \ # libpoppler-cpp.so is not used by GDAL. Only libpoppler.so*