I'm new to rpm's and spent most of yesterday at work coming up with a simple binary rpm file. My prep section unpacks the tar file. Which contains 2 binary executables, a config file, and a shared object. The build section does nothing. My install section creates a directory in the opt/ folder and copies over the 4 files.
My question is: I've noticed that in almost every example I see on the net for binary rpms, people are calling ./configure ./make and ./make install. Doesn't that seem overly complicated? Why not just a couple copy commands? All we are trying to do with a binary rpm is place some executable files in the person's file system, right?
One of rpm design goal was to use "pristine source" - rpm was born for packaging Open Source Software in first place.
(ref. http://rpm.org/max-rpm/s1-intro-to-rpm-rpm-design-goals.html
http://docs.fedoraproject.org/drafts/rpm-guide-en/ch01s02.html
)
Sure. It is possible to do "binary rpm" - for example some commercial vendor do it. But if you can it is better to follow the rpm original philosophy, imho. For example, doing "binary rpm" you cannot - for example - reproduce the RPM - "rebuild" - with safety - almost - between changes of OS/shared libs release - naturally it would be necessary to have used in first place the GNU buildtool in the right way.
Returning to the main observation, it is possible to observe that the several sections of spec - %setup, %build, %install ) have a correspondence nearly identical to the unpacking/compilation/installation step of program that use the GNU buildtool - with the difference that the " make install" does not install in build system but into the RPM build root (FWIW, it is possibile to build the rpm in a chroot env also) . A little ascii art could be useful
On the "target" system | In the rpm SPEC
| on the "build system"
---------------------------------------------
tar -xvf tarbal | %prep
cd program-version | %setup -q
---------------------------------------------
./configure | %build
make | %configure
| make %{?_smp_mflags}
-----------------------------------------------
| # Install on the RPM_BUILD_ROOT as "not root user"
make install | %install
| rm -rf $RPM_BUILD_ROOT
| make install DESTDIR=$RPM_BUILD_ROOT
........
Regards
Regards
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list
_______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxxxxx http://lists.rpm.org/mailman/listinfo/rpm-list