Paul Smith wrote:
On 6/12/06, Paul Howarth <paul@xxxxxxxxxxxx> 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.
--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list