Hi, On 9/10/06, Toshio Kuratomi <a.badger@xxxxxxxxx> wrote:
On Sun, 2006-09-10 at 14:39 +0530, Parag N(पराग़) wrote: > hi, > On 8/21/06, Toshio Kuratomi <toshio@xxxxxxxxxxxxxxx> wrote: > > > > "Fedora's RPM includes a %makeinstall macro but it must NOT be used when > > > > make install DESTDIR=%{buildroot} will work. %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:" > So can i say in other words that if applications built using say GTK > application built using glade which automatically creates Makefiles > must use always > make install DESTDIR=%{buildroot} > and not %makeinstall > > AND if upstream package developer himself written a Makefile then he must use > %makeinstall ?? %makeinstall is an RPM spec file macro. It doesn't involve upstream because it is not part of the Makefile. It is only part of the spec file that you, as a Fedora packager, write. <history> When upstream projects create Makefiles, they usually include a variable called DESTDIR which allows downstream packagers to install into a temporary directory. This works by prepending DESTDIR to the directories that the program installs into *during make install* (LIBDIR, DATADIR, etc). During build (regular "make" or "make all") the program uses only the directories the program will end up in (LIBDIR, DATADIR, etc) and does not use DESTDIR at all. Older Makefiles did not use DESTDIR. So with these the packager has to modify the values of the actual destination directories in order to install into the temporary root during packaging. This is what % makeinstall does. Since packagers still run across these Makefiles once in a while so %makeinstall still has value. But using it requires extra vigilance on the part of the packager and reviewer. You should look in the build.log to be sure that the package is not rebuilding any part of itself during "make install" and grep through the installed files to make sure the temporary root isn't included in any of the installed files. </history>
So in other words i can say if i am going to package any tarball i should first check main Makefile for DESTDIR variable. If its present use make install DESTDIR=%{buildroot} if DESTDIR is not in Makefile use %makeinstall right? Regards, Parag. -- Fedora-packaging mailing list Fedora-packaging@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-packaging