Skip to content

Commit

Permalink
[skip-ci] Makefile: update rpm target
Browse files Browse the repository at this point in the history
rpkg is now deprecated. This commit makes the rpm target consistent with
the one in Podman.

Using skip-ci as we don't need to run cirrus tests for this change.

Signed-off-by: Lokesh Mandvekar <[email protected]>
  • Loading branch information
lsm5 committed Mar 7, 2024
1 parent 1589b0a commit 1a519ac
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 2 deletions.
12 changes: 10 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -218,5 +218,13 @@ lint: install.tools
# CAUTION: This is not a replacement for RPMs provided by your distro.
# Only intended to build and test the latest unreleased changes.
.PHONY: rpm
rpm:
rpkg local
rpm: ## Build rpm packages
$(MAKE) -C rpm

# Remember that rpms install exec to /usr/bin/buildah while a `make install`
# installs them to /usr/local/bin/buildah which is likely before. Always use
# a full path to test installed buildah or you risk to call another executable.
.PHONY: rpm-install
rpm-install: package ## Install rpm packages
$(call err_if_empty,PKG_MANAGER) -y install rpm/RPMS/*/*.rpm
/usr/bin/buildah version
12 changes: 12 additions & 0 deletions rpm/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.PHONY: rpm
rpm:
$(shell /usr/bin/bash ./update-spec-version.sh)
spectool -g buildah.spec
rpmbuild -ba \
--define '_sourcedir $(shell pwd)' \
--define '_rpmdir %{_sourcedir}/RPMS' \
--define '_srcrpmdir %{_sourcedir}/SRPMS' \
--define '_builddir %{_sourcedir}/BUILD' \
buildah.spec
@echo ___RPMS can be found in rpm/RPMS/.___
@echo ___Undo any changes to Version, Source0 and %autosetup in rpm/buildah.spec before committing.___
20 changes: 20 additions & 0 deletions rpm/update-spec-version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env bash

# This script will update the Version field in the spec which is set to 0 by
# default. Useful for local manual rpm builds where the Version needs to be set
# correctly.

set -eox pipefail

PACKAGE=buildah
SPEC_FILE=$PACKAGE.spec
VERSION=$(grep 'Version = ' ../define/types.go | cut -d\" -f2)
RPM_VERSION=$(echo $VERSION | sed -e 's/^v//' -e 's/-/~/g')

# Update spec file to use local changes
sed -i "s/^Version:.*/Version: $RPM_VERSION/" $SPEC_FILE
sed -i "s/^Source:.*/Source: $PACKAGE-$VERSION.tar.gz/" $SPEC_FILE
sed -i "s/^%autosetup.*/%autosetup -Sgit -n %{name}-$VERSION/" $SPEC_FILE

# Generate Source0 archive from HEAD
(cd .. && git archive --format=tar.gz --prefix=$PACKAGE-$VERSION/ HEAD -o rpm/$PACKAGE-$VERSION.tar.gz)

0 comments on commit 1a519ac

Please sign in to comment.