Program to produce spec files

Paul Howarth paul at city-fan.org
Tue Jun 13 10:06:11 UTC 2006


Paul Smith wrote:
> On 6/12/06, Paul Howarth <paul at city-fan.org> wrote:
>> >> > I am trying to learn how to build a rpm from the tarball without
>> >> > checkinstall, and I am wondering whether there is already a 
>> program to
>> >> > produce a tentative spec file to be afterwards changed and corrected
>> >> > by the packager. Maybe a program like the one that I describe here
>> >> > would increase the productivity of packager. Is there such a 
>> program?
>> >>
>> >> Many times I just use the template at 
>> http://www.rpm.org/howto/thefight/
>> >> and go from there.  It has worked for pretty much every RPM I've ever
>> >> had to build.
>> >>
>> >> To find out what the list of files is, I usually do the standard dance
>> >> of:
>> >>
>> >> ./configure --prefix=/usr
>> >> make
>> >> make install DESTDIR /var/tmp/foo
>> >>
>> >> then I do
>> >>
>> >> cd /var/tmp/foo
>> >> find . -type f | sed "s/^\.//" >> /path/to/specfile
>> >>
>> >> Go back and move the files into the right section of the spec file you
>> >> are creating and then go to town.
>> >
>> > Thanks to all. I have just done the following:
>> >
>> > ./configure --prefix=/usr
>> > make
>> > su
>> > make install DESTDIR=/var/tmp/videotrans
>> > cd /var/tmp/videotrans
>> >
>> > but the directory /var/tmp/videotrans is empty!
>> >
>> > Strange, is not it?
>>
>> Not really. Perhaps the package you're building does not support DESTDIR
>> in the Makefile. You shouldn't do "su" before the "make install" by the
>> way. One of the points of installing the files into a buildroot such as
>> /var/tmp/videotrans is that you don't need to be root to do it, and in
>> the event of there being an issue with the install process, such as it
>> not supporting DESTDIR properly, running it as non-root means you won't
>> clobber any existing root-owned files when you try the install. It is
>> unfortunately too late in this case.
>>
>> You shouldn't need to bother using find etc. to create the files list.
>> Just leave it empty and try the rpm build. By default, rpmbuild will
>> complain about installed files not included in the files list, and will
>> tell you the path to each one of them, which saves you the trouble of
>> having to do it yourself. You shouldn't just append this list of files
>> as the files list either, as you'll end up with "unowned directories" -
>> the files list should include any directory that is not part of the
>> filesystem package or is not included in any of the packages that your
>> package requires. Otherwise you'll get directories left behind if the
>> package is erased.
> 
> Thanks, Paul. Tried the following:
> 
> ./configure --prefix=/usr
> make
> make install DESTDIR=/var/tmp/videotrans
> 
> but got errors:
> 
> mkdir -p /usr/bin
> /usr/bin/install -c zoomcalc /usr/bin/movie-zoomcalc
> /usr/bin/install: cannot remove `/usr/bin/movie-zoomcalc': Permission 
> denied
> make[1]: *** [install] Error 1
> 
> Any ideas?

The Makefile for this application does not support the "DESTDIR" install 
variable. You'll probably need to use the %makeinstall macro in the 
%install section of a spec file instead of "make install 
DESTDIR=/var/tmp/videotrans"

Paul.




More information about the fedora-list mailing list