From Fedora Project Wiki

m (PackagingDrafts/MakeInstall moved to Archive:PackagingDrafts/MakeInstall: Appears to already be applied to Packaging:Guidelines)
 
(No difference)

Latest revision as of 20:49, 21 February 2009

The packaging guidelines are not clear in explaining why %makeinstall ought to be avoided. Here's a proposed update:

Why the %makeinstall macro should not be used

Fedora's RPM includes a %makeinstall macro but it must NOT be used when make install DESTDIR=%{buildroot} works. %makeinstall is a kludge that can work with Makefiles that don't make use of the DESTDIR variable but it has the following potential issues:

  • %makeinstall overrides a set of Make variables during "make install" and prepends the %{buildroot} path. I.e. it performs make prefix="%{buildroot}%{_prefix}" libdir="%{buildroot}%{_libdir} ...".
  • It is error-prone and can have unexpected effects when run against less than perfect Makefiles, e.g. the buildroot path may be included in installed files where variables are substituted at install-time.
  • It can trigger unnecessary and wrong rebuilds when executing "make install", since the Make variables have different values compared with the %build section.
  • If a package contains libtool archives, it can cause broken *.la files to be installed.

Instead, Fedora packages should use: make DESTDIR=%{buildroot} install or make DESTDIR=$RPM_BUILD_ROOT install