Skip to content

Commit 50c7a7c

Browse files
authored
Merge pull request #104 from mcattamoredhat/fix-cs-rust-dep
build: update Makefile and spec with cs9/cs10 rust dependencies
2 parents e0e8e76 + 4fe08a6 commit 50c7a7c

6 files changed

Lines changed: 137 additions & 167 deletions

File tree

.packit.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ actions:
2525
create-archive:
2626
- "cargo vendor vendor"
2727
# Create archive with version for spec compatibility
28+
- bash -c "tar -cJf greenboot-rs-${PACKIT_PROJECT_VERSION}-vendor-patched.tar.xz vendor"
2829
- bash -c "git archive --prefix=greenboot-rs-${PACKIT_PROJECT_VERSION}/ --format=tar HEAD > greenboot-rs-${PACKIT_PROJECT_VERSION}.tar"
2930
- bash -c "tar -xvf greenboot-rs-${PACKIT_PROJECT_VERSION}.tar"
3031
- bash -c "tar -czf greenboot-rs-${PACKIT_PROJECT_VERSION}.tar.gz greenboot-rs-${PACKIT_PROJECT_VERSION}"
@@ -48,5 +49,7 @@ jobs:
4849
- centos-stream-10-x86_64
4950
- fedora-development-aarch64
5051
- fedora-development
52+
- fedora-eln-aarch64
53+
- fedora-eln
5154

5255

Makefile

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,30 @@
11
RELEASE ?= 0
22
TARGETDIR ?= target
33
SRCDIR ?= .
4+
VENDOR ?= false
45
VERSION = $(shell grep -oP '^Version:\s+\K\S+' greenboot-rs.spec)
56
COMMIT = $(shell (cd "$(SRCDIR)" && git rev-parse --short HEAD))
67
TIMESTAMP = $(shell date +%Y%m%d%H%M%S)
8+
PLATFORMS = $(shell (echo {x86_64,aarch64,powerpc64le,s390x}-unknown-linux-gnu))
9+
GREENBOOT_RUST_DEPENDENCIES = rust-anyhow+default-devel \
10+
rust-clap+derive-devel \
11+
rust-clap+default-devel \
12+
rust-config+default-devel \
13+
rust-env_logger+default-devel \
14+
rust-glob+default-devel \
15+
rust-log+default-devel \
16+
rust-nix+default-devel \
17+
rust-once_cell+default-devel \
18+
rust-pretty_env_logger+default-devel \
19+
rust-serde+default-devel \
20+
rust-serde_json+default-devel \
21+
rust-tempfile+default-devel \
22+
rust-thiserror+default-devel
723

824
# Create unique filenames with version+commit for build isolation
925
RPM_SPECFILE=rpmbuild/SPECS/greenboot-rs-$(VERSION)-$(COMMIT).spec
1026
RPM_TARBALL=rpmbuild/SOURCES/greenboot-rs-$(VERSION).tar.gz
27+
VENDOR_TARBALL=greenboot-rs-$(VERSION)-vendor-patched.tar.xz
1128

1229
ifeq ($(RELEASE),1)
1330
PROFILE ?= release
@@ -25,10 +42,38 @@ $(RPM_SPECFILE):
2542
# Copy spec file as-is, no modifications - let the existing release string be used
2643
cp greenboot-rs.spec $(RPM_SPECFILE)
2744

28-
$(RPM_TARBALL):
45+
$(VENDOR_TARBALL): vendor
46+
tar cJf $(VENDOR_TARBALL) vendor; \
47+
rm -rf .cargo vendor; \
48+
49+
.PHONY: vendor-tarball
50+
vendor-tarball: $(VENDOR_TARBALL)
51+
52+
.PHONY: vendor
53+
vendor:
54+
vendor_filterer_cmd=$$(command -v cargo-vendor-filterer||:) \
55+
[ -z "$$vendor_filterer_cmd" ] || rm -f $${vendor_filterer_cmd}; \
56+
. /etc/os-release; \
57+
if [ "$$ID" = "fedora" ]; then \
58+
sudo dnf install -y pkgconf-pkg-config openssl-devel; \
59+
fi; \
60+
cargo install --quiet cargo-vendor-filterer@0.5.16; \
61+
for platform in $(PLATFORMS); do \
62+
args+="--platform $${platform} "; \
63+
done; \
64+
# https://issues.redhat.com/browse/RHEL-65521 \
65+
args+="--exclude-crate-path idna#tests "; \
66+
rm -rf vendor; \
67+
mkdir -p .cargo; \
68+
cargo vendor-filterer $${args} > ./.cargo/config.toml; \
69+
70+
RPM_VENDOR_TARBALL=rpmbuild/SOURCES/greenboot-rs-$(VERSION)-vendor-patched.tar.xz
71+
72+
$(RPM_TARBALL): $(VENDOR_TARBALL)
2973
mkdir -p $(CURDIR)/rpmbuild/SOURCES
3074
# Create tarball with directory name matching spec file expectations: greenboot-rs-<version>/
3175
git archive --prefix=greenboot-rs-$(VERSION)/ --format=tar.gz HEAD > $(RPM_TARBALL)
76+
mv $(VENDOR_TARBALL) $(RPM_VENDOR_TARBALL);
3277

3378
.PHONY: build
3479
build:
@@ -52,6 +97,10 @@ srpm: $(RPM_SPECFILE) $(RPM_TARBALL)
5297

5398
.PHONY: rpm
5499
rpm: $(RPM_SPECFILE) $(RPM_TARBALL)
100+
. /etc/os-release; \
101+
if [ "$$ID" = "fedora" ]; then \
102+
sudo dnf install -y $(GREENBOOT_RUST_DEPENDENCIES); \
103+
fi; \
55104
rpmbuild -bb $(RPM_SPECFILE) \
56105
--define "_topdir $(CURDIR)/rpmbuild" \
57106
--define "_sourcedir $(CURDIR)/rpmbuild/SOURCES" \

greenboot-rs.spec

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,21 @@
66

77
Name: greenboot-rs
88
Version: 0.16.0
9-
Release: 4%{?dist}
9+
Release: 5%{?dist}
1010
Summary: Generic Health Check Framework for systemd
1111
# Aggregated license of statically linked dependencies as per %%cargo_license_summary
1212
License: BSD-3-Clause AND ISC AND MIT AND Unicode-DFS-2016 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT)
1313
URL: https://github.com/fedora-iot/greenboot-rs
1414
Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.gz
15+
Source1: %{name}-%{version}-vendor-patched.tar.xz
1516

1617
ExcludeArch: %{ix86}
1718

19+
%if 0%{?eln} || 0%{?centos} || 0%{?rhel}
20+
BuildRequires: rust-toolset
21+
%else
1822
BuildRequires: cargo-rpm-macros
23+
%endif
1924
BuildRequires: systemd-rpm-macros
2025

2126

@@ -51,17 +56,25 @@ Requires: jq
5156
This package adds some default healthchecks for greenboot.
5257

5358
%prep
59+
%if 0%{?eln} || 0%{?centos} || 0%{?rhel}
60+
%autosetup -p1 -a1 -n %{name}-%{version}
61+
%cargo_prep -v vendor
62+
%else
5463
%autosetup -n %{name}-%{version}
5564
%cargo_prep
56-
5765
%generate_buildrequires
5866
%cargo_generate_buildrequires
67+
%endif
5968

6069
%build
6170
%cargo_build
6271
%{cargo_license_summary}
6372
%{cargo_license} > LICENSE.dependencies
6473

74+
%if 0%{?centos}
75+
%cargo_vendor_manifest
76+
%endif
77+
6578
%install
6679
mkdir -p %{buildroot}%{_libexecdir}
6780
mkdir -p %{buildroot}%{_libexecdir}/%{pkgname}
@@ -132,6 +145,9 @@ install -DpZm 0644 usr/lib/systemd/system/greenboot-healthcheck.service.d/10-net
132145
%{_unitdir}/greenboot-healthcheck.service.d/10-network-online.conf
133146

134147
%changelog
148+
* Mon Sep 01 2025 Mario Cattamo <mcattamo@redhat.com> - 0.16.0-5
149+
- Handle vendor packages in Centos-Stream
150+
135151
* Mon Aug 25 2025 Sayan Paul <saypaul@redhat.com> - 0.16.0-4
136152
- Adhering to rust packaging best practices
137153

tests/greenboot-bootc-anaconda-iso.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ case "${ID}-${VERSION_ID}" in
3838
BIB_URL="quay.io/centos-bootc/bootc-image-builder:latest"
3939
BOOT_ARGS="uefi"
4040
sudo dnf install -y rpmbuild rust-packaging
41-
sudo dnf install -y rust-anyhow+default-devel rust-clap+derive-devel rust-clap+default-devel rust-clap_derive-devel rust-config+default-devel rust-config-devel rust-env_logger+default-devel rust-env_logger-devel rust-glob+default-devel rust-glob-devel rust-log+default-devel rust-log-devel rust-nix+default-devel rust-nix-devel rust-once_cell+default-devel rust-once_cell-devel rust-pretty_env_logger+default-devel rust-pretty_env_logger-devel rust-serde+default-devel rust-serde-devel rust-serde_json+default-devel rust-serde_json-devel rust-tempfile+default-devel rust-tempfile-devel rust-thiserror+default-devel rust-thiserror-devel
4241
;;
4342
"centos-10")
4443
OS_VARIANT="centos-stream9"

tests/greenboot-bootc-qcow2.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ case "${ID}-${VERSION_ID}" in
3838
BIB_URL="quay.io/centos-bootc/bootc-image-builder:latest"
3939
BOOT_ARGS="uefi"
4040
sudo dnf install -y rpmbuild rust-packaging
41-
sudo dnf install -y rust-anyhow+default-devel rust-clap+derive-devel rust-clap+default-devel rust-clap_derive-devel rust-config+default-devel rust-config-devel rust-env_logger+default-devel rust-env_logger-devel rust-glob+default-devel rust-glob-devel rust-log+default-devel rust-log-devel rust-nix+default-devel rust-nix-devel rust-once_cell+default-devel rust-once_cell-devel rust-pretty_env_logger+default-devel rust-pretty_env_logger-devel rust-serde+default-devel rust-serde-devel rust-serde_json+default-devel rust-serde_json-devel rust-tempfile+default-devel rust-tempfile-devel rust-thiserror+default-devel rust-thiserror-devel
4241
;;
4342
"centos-10")
4443
OS_VARIANT="centos-stream9"

0 commit comments

Comments
 (0)