dependenciesrpmspecificationsrequires

how to make spec file require other package with a major version independent of the major version


to put this question in a very short way. How can I achieve something like this:

BuildRequires:  mylib >= 1.0.0
BuildRequires:  mylib < 2.0.0

on one line? I want my package to depend on any version with major version 1, but none else. I tried:

BuildRequires:  mylib = 1

but that doesn't work. any ideas?


Solution

  • If the mylib package includes properly versioned library files this shouldn't be necessary. Packaging your RPM should automatically pick up the version of the libraries that your application links to and should not allow installation on a system with a version of the package that has differently versioned libraries.

    rpm should also pick up any versioned library symbols that your application uses which may also help prevent this from happening incorrectly.

    I don't know that there is a way to get what you want in a more literal fashion.

    Edit: Some links about library versioning. I haven't read the latter two and I read the first one a while ago but recall it being fairly decent (to the amount I understood it at least).

    1. Library Versioning
    2. Dissecting shared libraries
    3. Shared Libraries