[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Errors with creating rpm for yacas

Paul Smith wrote:
> Thanks again, Todd. The spec file is below.

No problem.

> # yacas.spec.  Generated from yacas.spec.in by configure.
> %define prefix /usr
> Name: yacas
> Version: 1.0.63
> Release: 1
> Group: Applications/Math
> Copyright: GPL
> URL: http://www.xs4all.nl/~apinkus/yacas.html
> Summary: Yet Another Computer Algebra System
> Source: http://www.xs4all.nl/~apinkus/yacas-1.0.63.tar.gz
> BuildRoot: /tmp/yacas-1.0.63-root
> %description
> Yacas (Yet Another Computer Algebra System) is a small and highly flexible
> computer algebra language. The syntax uses a infix-operator grammar
> parser. The distribution contains a small library of mathematical
> functions, but its real strength is in the language in which you can
> easily write your own symbolic manipulation algorithms. It supports
> arbitrary precision arithmetic.
> %prep
> %setup
> %build
> CXXFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --enable-server
> make

Incidentally, there is a %configure macro that can be used to set the
CXXFLAGS as well as the proper --prefix.  You could replace the %build
section with:

%configure --enable-server

> %install
> rm -rf $RPM_BUILD_ROOT
> make install-strip prefix=$RPM_BUILD_ROOT%{prefix}

The "make install-strip" is likely why the find is failing to locate
any debug info.  If you want you can probably change this to "make
install" without any problem. But perhaps it's best to make that tweak
after you get everything else working. :)

> %clean
> rm -rf $RPM_BUILD_ROOT
> %files
> %defattr(-,root,root)
> %doc docs/*.html docs/*.gif
> %{prefix}/bin/yacas
> %{prefix}/share/yacas/

So, here there are only a few files listed out of what was installed.
For quite a while now rpm has complained if there are files in the
buildroot that are not listed in a %files section.  You have at least
3 ways to correct this.  One is to list all of those files in the
%files section.  Another is to remove them in the %install section so
that when the file check is run there won't be anything but the listed
files in /tmp/yacas-1.0.63-root. Yet another is to use %exclude in the
%files section to tell rpm not to worry about them.  The syntax for
that is %exclude /path/to/files.  You can use wildcards and multiple
%exclude lines.

(If you end up changing the configure invocation to use the %configure
macro, you can then remove the %define prefix /usr line and replace
the lines that use it in %files with the typical macros used, namely
%{_bindir} and %{_datadir} instead of %{prefix}/bin and
%{prefix}/share, respectively.)

It might also be worth contacting the upstream author to let them know
that the spec file doesn't work out of the box for recent rpm (where
recent is defined loosely as "any rpm release from the past several
years."  Bonus points to you if you send along a patch that will work
with such newer rpm release.  :)

Todd        OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
I got stopped by a cop the other day.  He said, "Why'd you run that
stop sign?"  I said, "Because I don't believe everything I read."
    -- Stephen Wright

Attachment: pgpZfVPptaDJF.pgp
Description: PGP signature

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]