1+ name : Build virt-v2v RPM 2.7.17
2+
3+ on :
4+ push :
5+ workflow_dispatch :
6+
7+ jobs :
8+ build-rpm :
9+ runs-on : ubuntu-latest
10+ container :
11+ image : fedora:42
12+
13+ steps :
14+ - name : Install git first
15+ run : dnf install -y git
16+
17+ - name : Checkout repository
18+ uses : actions/checkout@v4
19+ with :
20+ submodules : recursive
21+
22+ - name : Install build dependencies
23+ run : |
24+ dnf install -y rpm-build rpmdevtools git sqlite perl-hivex \
25+ autoconf automake libtool
26+ dnf builddep -y virt-v2v
27+
28+ - name : Setup rpmbuild tree under /root
29+ run : |
30+ rpmdev-setuptree
31+ mkdir -p /root/rpmbuild/{SPECS,SOURCES,BUILD,BUILDROOT,RPMS,SRPMS}
32+
33+ - name : Build patched tarball (autoreconf + make dist)
34+ working-directory : ${{ github.workspace }}
35+ run : |
36+ autoreconf -fiv
37+ ./configure
38+ make dist
39+
40+ - name : Verify tarball name
41+ working-directory : ${{ github.workspace }}
42+ run : |
43+ ls -lh virt-v2v-2.7.13.tar.gz
44+
45+ - name : Download & extract upstream SRPM
46+ run : |
47+ cd /root
48+ dnf download --source virt-v2v \
49+ --enablerepo=fedora-source \
50+ --enablerepo=updates-source \
51+ --skip-unavailable
52+
53+ mkdir -p /tmp/srpm-extract
54+ cd /tmp/srpm-extract
55+ rpm2cpio /root/virt-v2v-*.src.rpm | cpio -idmv
56+
57+ # Move spec and sources to build tree
58+ mv virt-v2v.spec /root/rpmbuild/SPECS/
59+ cp *.keyring /root/rpmbuild/SOURCES/ 2>/dev/null || true
60+ cp *.sig /root/rpmbuild/SOURCES/ 2>/dev/null || true
61+
62+ - name : Copy patched tarball to SOURCES
63+ run : |
64+ cp /__w/virt-v2v/virt-v2v/virt-v2v-2.7.13.tar.gz /root/rpmbuild/SOURCES/
65+
66+ - name : Patch spec file
67+ run : |
68+ SPEC_FILE="/root/rpmbuild/SPECS/virt-v2v.spec"
69+
70+ # 1. Disable GPG checks
71+ sed -i 's/^\([[:space:]]*\)%{gpgverify}/#\1%{gpgverify}/' $SPEC_FILE
72+ sed -i 's/%global verify_tarball_signature 1/%global verify_tarball_signature 0/' $SPEC_FILE || true
73+
74+ # 2. Force Version to 2.7.13
75+ sed -i 's/^Version:.*/Version: 2.7.13/' $SPEC_FILE
76+ sed -i 's/^Release:.*/Release: 1.fc42/' $SPEC_FILE
77+
78+ # 3. Remove files that are missing in our build (oVirt support)
79+ sed -i '/virt-v2v-open/d' $SPEC_FILE
80+ sed -i '/virt-v2v-output-ovirt/d' $SPEC_FILE
81+
82+ - name : Build RPM (With Ignore Unpackaged Files)
83+ run : |
84+ cd /root/rpmbuild/SPECS
85+ # Added _unpackaged_files_terminate_build 0 to ignore the extra RHV man page
86+ rpmbuild -bb \
87+ --define "_topdir /root/rpmbuild" \
88+ --define "_unpackaged_files_terminate_build 0" \
89+ --nocheck \
90+ virt-v2v.spec
91+
92+ - name : Upload built RPMs
93+ uses : actions/upload-artifact@v4
94+ with :
95+ name : virt-v2v-2.7.13-rpm
96+ path : /root/rpmbuild/RPMS/x86_64/*.rpm
0 commit comments