diff --git a/.github/workflows/rpm-el10.yml b/.github/workflows/rpm-el10.yml new file mode 100644 index 0000000000..2e140b3c8b --- /dev/null +++ b/.github/workflows/rpm-el10.yml @@ -0,0 +1,88 @@ +name: Release RPM (EL10) + +on: + workflow_dispatch: + inputs: + tag_name: + description: 'Release tag (e.g. v4.6.1)' + required: true + type: string + draft: + description: 'Create as draft release' + type: boolean + default: false + +jobs: + build-and-release: + runs-on: ubuntu-24.04 + container: + image: rockylinux/rockylinux:10 + + permissions: + contents: write + + steps: + - name: Install git (required for checkout) + run: dnf install -y git + + - uses: actions/checkout@v4 + + - name: Install build dependencies + run: | + dnf install -y epel-release + dnf config-manager --set-enabled crb + dnf install -y \ + rpm-build \ + rpmdevtools \ + make \ + which \ + autoconf \ + automake \ + pkgconfig \ + python3 \ + python3-devel \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + python3-lxml \ + python3-dateutil \ + pyproject-rpm-macros \ + asciidoc \ + systemd-rpm-macros + + - name: Set up rpmbuild tree + run: rpmdev-setuptree + + - name: Generate autotools files and configure + run: | + ./autogen.sh + ./configure + + - name: Create source tarball and prepare rpmbuild tree + run: | + VERSION=$(awk -F'[][]' '/^AC_INIT/{print $4}' configure.ac) + mkdir -p /tmp/src/crmsh-${VERSION} + cp -r . /tmp/src/crmsh-${VERSION}/ + tar cjf "$HOME/rpmbuild/SOURCES/crmsh-${VERSION}.tar.bz2" -C /tmp/src crmsh-${VERSION} + cp crmsh.tmpfiles.d.conf "$HOME/rpmbuild/SOURCES/" + cp crmsh.spec "$HOME/rpmbuild/SPECS/" + + - name: Build binary RPM (no SRPM) + run: rpmbuild -bb "$HOME/rpmbuild/SPECS/crmsh.spec" + + - name: Collect built RPMs + run: | + mkdir -p /tmp/rpms + find "$HOME/rpmbuild/RPMS" -name '*.rpm' -exec cp {} /tmp/rpms/ \; + echo "Built RPMs:" + ls -lh /tmp/rpms/ + + - name: Publish GitHub release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ inputs.tag_name }} + draft: ${{ inputs.draft }} + files: /tmp/rpms/*.rpm + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + diff --git a/Dockerfile.el10 b/Dockerfile.el10 new file mode 100644 index 0000000000..54637491e8 --- /dev/null +++ b/Dockerfile.el10 @@ -0,0 +1,61 @@ +# Dockerfile for building crmsh RPM on EL10 (Rocky Linux 10) +# +# Build: +# docker build -f Dockerfile.el10 -t crmsh-el10-build . +# +# Extract RPMs after build (into ./rpms/ directory): +# mkdir -p rpms +# docker run --rm -v "$(pwd)/rpms:/output" crmsh-el10-build \ +# sh -c 'cp /root/rpmbuild/RPMS/noarch/*.rpm /output/' +# +# To inspect the image interactively: +# docker run --rm -it crmsh-el10-build bash + +FROM rockylinux/rockylinux:10 + +RUN dnf install -y epel-release && \ + dnf config-manager --set-enabled crb && \ + dnf install -y \ + rpm-build \ + rpmdevtools \ + git \ + make \ + which \ + autoconf \ + automake \ + pkgconfig \ + python3 \ + python3-devel \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + python3-lxml \ + python3-dateutil \ + pyproject-rpm-macros \ + asciidoc \ + systemd-rpm-macros && \ + dnf clean all + +# Set up the rpmbuild directory tree +RUN rpmdev-setuptree + +WORKDIR /build + +# Copy full source tree +COPY . . + +# Generate autotools files, configure, create source tarball, then build +# binary RPMs only (-bb skips SRPM generation entirely) +RUN ./autogen.sh && \ + ./configure && \ + VERSION=$(awk -F'[][]' '/^AC_INIT/{print $4}' configure.ac) && \ + mkdir -p /tmp/src/crmsh-${VERSION} && \ + cp -r . /tmp/src/crmsh-${VERSION}/ && \ + tar cjf /root/rpmbuild/SOURCES/crmsh-${VERSION}.tar.bz2 -C /tmp/src crmsh-${VERSION} && \ + cp crmsh.tmpfiles.d.conf /root/rpmbuild/SOURCES/ && \ + cp crmsh.spec /root/rpmbuild/SPECS/ && \ + rpmbuild -bb /root/rpmbuild/SPECS/crmsh.spec + +# Default: list the built RPMs +CMD find /root/rpmbuild/RPMS -name '*.rpm' | sort + diff --git a/configure.ac b/configure.ac index c0cb600df7..b6c8e33d72 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ dnl License: GNU General Public License (GPL) AC_PREREQ([2.53]) -AC_INIT([crmsh],[4.5.0],[users@clusterlabs.org]) +AC_INIT([crmsh],[4.6.1],[users@clusterlabs.org]) AC_ARG_WITH(version, [ --with-version=version Override package version (if you're a packager needing to pretend) ], diff --git a/crmsh.spec.in b/crmsh.spec.in index c253c6eacf..6bc83b4615 100644 --- a/crmsh.spec.in +++ b/crmsh.spec.in @@ -288,3 +288,5 @@ result2=$? %{_datadir}/%{name}/tests %changelog +* Mon Mar 30 2026 Palash Jain - 4.6.1-1 +- Add EL10 (Rocky Linux 10) RPM build support