[SailfishDevel] Boolean dependencies in RPM SPEC
Martin Kolman
martin.kolman at gmail.com
Sun May 12 12:53:43 UTC 2019
Sat, 11 May 2019 17:53:27 +0300 Rinigus <rinigus.git at gmail.com>:
> Summary from IRC chat on the topic: David spotted that BuildRequires
> is not mentioned in the list of boolean dependencies (thank you!).
>
> So, next question: which condition could I use in %if expansion of
> SPEC to distinguish SFOS 3.0.3.x from the earlier versions? Maybe
> there is some variable defined at OBS build env that can be used?
I know that Fedora/RHEL/CentOS/OpenSUSE and RPM based distros in general
usually have some RPM macro[0] defined that can be used to check on
which "target" the package is being built and then behave accordingly.
That way people can use the same spec file across multiple Fedora and
even RHEL releases. I would assume Sailfish OS might have something
similar and if not it definitely should be added.
But if no such mechanism is available at the moment, there might still
be a way to share a common spec file the way modRana does it. I didn't
want to maintain three spec files for modRana (one for Open Repos, one
for Harbour, one for Fedora) so I've added conditions to the single
shared spec file based on custom RPM variables. The variables are then
set at build time based on custom config for the given Mer OBS project.
The condition can be seen for example here:
https://github.com/M4rtinK/modrana/blob/master/packaging/modrana.spec#L33
The custom repo configs can be seen here:
https://build.merproject.org/project/prjconf/home:MartinK:sailfish:modrana
https://build.merproject.org/project/prjconf/home:MartinK:sailfish:modrana-harbour
Note that the modRana project has just %with_sailfish set while
modrana-harbour has also %with_harbour set.
I think you could use something similar, eq. %with_old_icu or %sfos_303
on two separate OBS projects sharing the same spec file
with the respective conditions set.
Best Wishes
Martin Kolman
[0] https://docs.fedoraproject.org/en-US/packaging-guidelines/DistTag/
>
> Rinigus
>
>
>
> On Sat, May 11, 2019 at 4:38 PM rinigus <rinigus.git at gmail.com
> <mailto:rinigus.git at gmail.com>> wrote:
>
> Hi,
>
> the problem is while building at OBS:
> https://build.merproject.org/package/show/home:rinigus:maps/mapnik
>
> Rinigus
>
> On Sat, May 11, 2019 at 4:30 PM David Llewellyn-Jones
> <david at flypig.co.uk <mailto:david at flypig.co.uk>> wrote:
>
> On 11/05/2019 16:12, rinigus wrote:
> [snip]
> > BuildRequires: (libicu52-devel or libicu-devel)
> >
> > as in
> >
> https://github.com/rinigus/pkg-mapnik/blob/da5b6a11667b286c89bbee93eb57e2d4d52d5902/rpm/mapnik.spec#L16
>
> [snip]
> > Hence the question - how can I add support for 3.0.2.x and
> 3.0.3.x using
> > the same SPEC file? On device, RPM has version 4.14, if its
> of any
> > importance.
>
> For 'BuildRequires', it's presumably the versioning in your
> SDK tooling
> which is important, rather than the RPM version on your
> device. It may
> be worth checking that too.
>
> Or is the problem you're experiencing happening at install
> time (i.e. in
> relation to the 'Requires' on line 36 of that file)? I can't
> see any
> difference between your version and the examples in the spec
> you posted.
>
> David
> --
> Website: http://www.flypig.co.uk
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to
> devel-unsubscribe at lists.sailfishos.org
> <mailto:devel-unsubscribe at lists.sailfishos.org>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20190512/9cde4020/attachment.html>
More information about the Devel
mailing list