# https://ambari.apache.org/docs/3.1.0/ambari-dev/building-from-source # assumed build environment is Red Hat Enterprise Linux 9 %global main_commit a01b6745cf618b20accde2e670b7c78115c21367 %global main_commit_short %(echo %{main_commit} | cut -c1-7) %global main_archive_name ambari-%{main_commit} Name: ambari Version: %{main_commit_short} Release: 3 Summary: Apache Ambari and Apache Ambari Infra License: Apache-2.0 URL: https://ambari.apache.org %global debug_package %{nil} ### Ambari Main Source0: https://github.com/apache/ambari/archive/%{main_commit}.tar.gz Patch0: https://github.com/apache/ambari/pull/4234.patch ### Common build dependencies BuildRequires: python3 BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3.11 BuildRequires: python3.11-pip BuildRequires: python-unversioned-command BuildRequires: java-17-openjdk-devel BuildRequires: maven BuildRequires: nodejs BuildRequires: npm BuildRequires: gcc BuildRequires: git BuildRequires: snappy-devel %description Apache Ambari is a tool for provisioning, managing, and monitoring Apache Hadoop clusters. ### Shared Maven repository %package m2 Summary: Maven repository for Ambari. %description m2 This subpackage contains the Maven repository (.m2) for Ambari. %prep echo "50efe66f0a713816ea599114dbbc68c7921fa328df1eb2c8273240c1bdd1074900a9b0a225027d18db0b9bddcf7e4f8bd7acfab27c92686c75abd25c6d511949 %{SOURCE0}" | sha512sum -c - echo "917202ee3182c9d6992f38a73348d13918b9870ccde170436c66291352be55d82be9f0820436bd06f58ddc3cda744ae070d179f3de6d66c1af2faa23810e6244 %{SOURCE1}" | sha512sum -c - %setup -q -n %{main_archive_name} %patch 0 -p1 %build export TOOLCHAIN_HOME="%{_builddir}/toolchain" mkdir -p "$TOOLCHAIN_HOME" export MAVEN_HOME="$TOOLCHAIN_HOME/maven" mkdir -p "$MAVEN_HOME" MAVEN_VERSION=3.9.16 curl -fL "https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz" \ -o "%{_builddir}/apache-maven-${MAVEN_VERSION}-bin.tar.gz" tar -xzf "%{_builddir}/apache-maven-${MAVEN_VERSION}-bin.tar.gz" \ -C "$MAVEN_HOME" --strip-components=1 export MAVEN_OPTS="-Dmaven.repo.local=%{_builddir}/.m2" export PATH="$MAVEN_HOME/bin:$PATH" export AMBARI_BUILD_PYTHON=/usr/bin/python3.11 ### Ambari Main ( cd %{_builddir}/%{main_archive_name} export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH="$JAVA_HOME/bin:$PATH" # avoid parallel execution (some plugins are not thread-safe) # the actual packaging is driven by Maven, using spec files provided by upstream mvn -e -B clean package rpm:rpm \ -Dmaven.buildNumber.revisionOnScmFailure=%{main_commit_short} \ -Dbuild.os_arch=x86_64 \ -DskipTests \ -DskipPythonTests \ -Drat.skip ) ### Ambari Metrics ( cd %{_builddir}/%{main_archive_name} export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH="$JAVA_HOME/bin:$PATH" mvn -e -B -Pmetrics-rpm -pl ambari-metrics -am package rpm:rpm \ -Dmetrics.package.version=3.1.0.0 \ -Dpackage.release=0.candidate1 \ -Dbuild.os_arch=x86_64 ) # --- Collect all generated RPMs ----------------------------------------------- # Ambari server/agent RPMs cp %{_builddir}/%{main_archive_name}/ambari-server/target/rpm/ambari-server/RPMS/*.rpm %{_rpmdir}/ cp %{_builddir}/%{main_archive_name}/ambari-agent/target/rpm/ambari-agent/RPMS/*.rpm %{_rpmdir}/ # Ambari Metrics RPMs cp %{_builddir}/%{main_archive_name}/ambari-metrics/target/rpm/ambari-metrics/RPMS/*.rpm %{_rpmdir}/ # --- Sub-package with Maven repository ---------------------------------------- %install install -d -m 0755 %{buildroot}%{_datadir}/ambari tar -C %{_builddir} -czf %{buildroot}%{_datadir}/ambari/m2.tar.gz .m2 %files m2 %attr(0755,root,root) %dir %{_datadir}/ambari %attr(0644,root,root) %{_datadir}/ambari/m2.tar.gz # --- Common changelog --------------------------------------------------------- %changelog * Fri Oct 09 2026 Detlef Eppers - 1de1669-3 - setup-security: fix openssl command line * Thu Oct 08 2026 Detlef Eppers - 1de1669-2 - Cleanup - Add Ambari Metrics - Fix setup-security * Mon Sep 21 2026 Detlef Eppers - 1de1669-1 - Initial version