Kind request: fix your packages
Thomas Dodd
ted at cypress.com
Thu Oct 2 17:42:37 UTC 2003
Michael Schwendt wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Wed, 01 Oct 2003 15:34:32 -0400, Sean Middleditch wrote:
>
>
>>No, you need to actually do the work of the configure script (perhaps
>>you should actually use the app's configure script) - detect the
>>individual bits in the system. Otherwise your package is broken.
>
>
> What you describe is a maintenance nightmare. Assume an application
> wants aspell >= 0.50, but distribution B provides only aspell 0.30. A
> versioned build requirement on aspell >= 0.50 won't suffice, because
> the package won't build on B. But there is a configure switch to
> disable aspell support. So, what we can do is either examine aspell
> version somehow, e.g. with
>
> $(rpm -q --qf "%{version}" aspell)
>
> or check a file like redhat-release.
>
> You're asking for completely generic rpms where the user, who has
> upgraded a component way beyond the version which was shipped with the
> original distribution, does not need to supply optional rpmbuild
> parameters (such as --define _with_aspell=1) for a src.rpm to build
> _with_ support for that optional component.
Add macros to the spec near the begining for the distros/version
_you_support. Then include usage in the instruction on building your
opackage. so they need only '--define RHL7.3=1' , '--define RHEL3=1',
or '--define MDK9=1'. That give you the same result of using
redhat-release, package or file, and the ability to support more
distributions at the same time.
Each of the above defines set orther such as _with_aspell_0.3, or
_with_aspell_0.5. These can then be overridden but the user easily as
well. So you could more easily build for an older distro with a newer
version of library.
I think Mike Harris does a really good job of this for XFree86, and the
kernel spec is getting there.
The spec file should not be doing RPM querries or checking files.
Perhaps I want to build a RHL7.3 RPM on my RHL9 box? If
/etc/redhat-release is used, I get RHL9 versions regardless. If macros
are used I can tell rpm easily to default to RHL7.3, use adifferent gcc,
and alrternate libs as desired.
-Thomas
More information about the fedora-devel-list
mailing list