diff --git a/grpc-1.72.yaml b/grpc-1.72.yaml new file mode 100644 index 00000000000..a3af4c26a3f --- /dev/null +++ b/grpc-1.72.yaml @@ -0,0 +1,176 @@ +package: + name: grpc-1.72 + version: "1.72.2" + epoch: 0 + description: The C based gRPC + copyright: + - license: Apache-2.0 AND BSD-3-Clause AND MIT + resources: + cpu: "24" + memory: 24Gi + dependencies: + provides: + - grpc=${{package.full-version}} + +var-transforms: + - from: ${{package.version}} + match: ^(\d+\.\d+)\.\d+$ + replace: "$1" + to: major-minor-version + +vars: + pypi-package: grpcio + import: grpc + +data: + - name: py-versions + items: + 3.10: "310" + 3.11: "311" + 3.12: "312" + 3.13: "313" + +environment: + contents: + packages: + - abseil-cpp-dev + - autoconf + - automake + - benchmark-dev + - build-base + - busybox + - c-ares-dev + - ca-certificates-bundle + - chrpath + - cmake + - curl + - icu-dev + - libstdc++-dev + - libsystemd + - libtool + - linux-headers + - openssl-dev + - protobuf-dev + - py3-supported-build-base + - py3-supported-cython + - py3-supported-python-dev + - python3 + - re2 + - re2-dev + - samurai + - systemd-dev + - wolfi-base + - xxhash-dev + - yaml-dev + - zlib-dev + environment: + # https://github.com/wolfi-dev/os/issues/34568 + GCC_SPEC_FILE: no-hardening.spec + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/grpc/grpc + tag: v${{package.version}} + expected-commit: d6b42b2fd3e522a60318c7e2f2021219c6b5c470 + + - runs: | + cd third_party + git submodule update --init --recursive + + - runs: | + mkdir -p "${{targets.destdir}}"/usr/share/doc/grpc + cmake -B _build -G Ninja \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_CXX_STANDARD=17 \ + -DBUILD_SHARED_LIBS=True \ + -DgRPC_INSTALL=ON \ + -DgRPC_CARES_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=package \ + -DgRPC_ZLIB_PROVIDER=package \ + -DgRPC_PROTOBUF_PROVIDER=package \ + -DgRPC_ABSL_PROVIDER=package \ + -DgRPC_RE2_PROVIDER=package \ + -DgRPC_BENCHMARK_PROVIDER=package \ + -DgRPC_BACKWARDS_COMPATIBILITY_MODE=OFF \ + -DgRPC_BUILD_TESTS=OFF + cmake --build _build + + - runs: | + DESTDIR="${{targets.destdir}}" cmake --install _build + cd doc + find ./ -type f -print -exec install -Dm644 {} "${{targets.destdir}}"/usr/share/doc/grpc/{} \; + rm "${{targets.destdir}}"/usr/share/doc/grpc/.gitignore + find "${{targets.destdir}}" -type f -name roots.pem -exec \ + sh -c 'rm $0 && ln -s /etc/ssl/certs/ca-certificates.crt $0' "{}" \; + +subpackages: + - range: py-versions + name: py${{range.key}}-grpcio-${{vars.major-minor-version}} + description: python${{range.key}} version of grpcio + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-grpcio-${{vars.major-minor-version}} + - py3-grpcio + - py${{range.key}}-grpcio + pipeline: + - uses: py/pip-build-install + environment: + GRPC_PYTHON_CFLAGS: "-std=c++17" + GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY: "1" + GRPC_PYTHON_BUILD_SYSTEM_CARES: "1" + GRPC_PYTHON_BUILD_SYSTEM_OPENSSL: "1" + GRPC_PYTHON_BUILD_SYSTEM_ZLIB: "1" + GRPC_PYTHON_BUILD_SYSTEM_RE2: "1" + GRPC_PYTHON_BUILD_SYSTEM_ABSL: "1" + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-grpcio-${{vars.major-minor-version}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-grpcio-${{vars.major-minor-version}} + - py3.11-grpcio-${{vars.major-minor-version}} + - py3.12-grpcio-${{vars.major-minor-version}} + - py3.13-grpcio-${{vars.major-minor-version}} + test: + pipeline: + - uses: test/metapackage + + - name: ${{package.name}}-dev + pipeline: + - uses: split/dev + dependencies: + runtime: + - ${{package.name}} + provides: + - grpc-dev=${{package.full-version}} + description: grpc dev + test: + pipeline: + - uses: test/tw/ldd-check + with: + packages: ${{subpkg.name}} + +update: + enabled: true + github: + identifier: grpc/grpc + strip-prefix: v + use-tag: true + tag-filter-prefix: v1.72. + +test: + pipeline: + - uses: test/tw/ldd-check