Bangun RPM menggunakan direktori sumber, bukan tarball

13

Di organisasi saya, kami menyebarkan semua perangkat lunak kami ke mesin produksi kami menggunakan RPM. Proses build kami (yang terotomatisasi) melibatkan memeriksa sumber dari kontrol versi, membuat tarring direktori sumber itu ke atas, kemudian menjalankan rpmbuild menggunakan tarball sumber itu. rpmbuild hanya menggunakan tarball itu untuk membongkar sumber untuk mengerjakannya. Jadi, sepertinya seluruh bisnis taring dan tak peduli hanyalah langkah ekstra yang tidak diperlukan dalam proses pembangunan. Apakah ada cara untuk hanya menentukan direktori sumber dalam file spesifikasi, menghindari langkah-langkah tambahan itu?

Eddie
sumber

Jawaban:

5

Ya, Anda bisa melakukannya. Jangan daftar apa pun Source. Di %prepbagian ini jangan gunakan %setupmakro (yang untar sumbernya); lebih baik, cukup periksa sumbernya.

Perhatikan bahwa Anda tidak akan dapat membangun SRPM jika melakukannya.

Mark Wagner
sumber
Ini berhasil. Saya hanya perlu memodifikasi prosedur pembangunan untuk memeriksa hal-hal ke direktori rpm BUILD sebagai gantinya. Terima kasih!
Eddie
10

Pertanyaan ini agak lama, tetapi jika orang lain menemukannya dalam pencarian ada cara yang lebih tepat untuk melakukan ini yang juga memungkinkan pembuatan SRPM.

Di bagian persiapan, alih-alih menggunakan makro pengaturan , Anda sebaiknya mengetikkan sendiri apa yang ingin Anda lakukan, yaitu menyalin direktori sumber dari SOURCES ke BUILD, alih-alih membongkar arsip. Saya menemukan bahwa Anda juga harus menambahkan cd ke direktori sumber Anda di bagian build dan install.

Cuplikan contoh

%prep
# Don't use the setup macro anymore, replace it with typed-out commands
#%setup -q -n myapp-%{version}
cd %{_topdir}/BUILD
rm -rf myapp-%{version}
cp -rf %{_topdir}/SOURCES/myapp-%{version} .
cd myapp-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

%patch1 -p1 -b .cert-config
%patch2

%build
cd myapp-%{version}

%install
cd myapp-%{version}
tdimmig
sumber
Harus %{_topdir}/SOURCESmenjadi %{_sourcedir}? Dan %{_topdir}/BUILDbisa %{buildroot}? (Sebagai tambahan, untuk situasi serupa-tetapi-berbeda di mana Anda mencoba untuk menambahkan file tambahan untuk mengesampingkan yang diekstraksi %setup, dokumen Fedora merekomendasikan penggunaan %{SOURCE2}dll - fedoraproject.org/wiki/Packaging:RPM_Source_Dir )
IBBoard