Quantcast
Channel: Active questions tagged require - Stack Overflow
Viewing all articles
Browse latest Browse all 166

How to tell rpmbuild to install package A only when packages B C D are not installed?

$
0
0

I try to build an RPM package on RHEL8 with rpmbuild version 4.14.3.

This package shall have a dependency, that at least OpenJDK 1.8.0 is installed.

This OpenJDK 1.8.0 shall not be installed if java-11-openjdk or java-17-openjdk or java-21-openjdk are installed.

# rpm -qa | grep javajava-11-openjdk-devel-11.0.23.0.9-3.el8.x86_64tzdata-java-2024a-1.el8.noarchjavapackages-filesystem-5.3.0-1.module+el8+2447+6f56d9a6.noarchjava-11-openjdk-11.0.23.0.9-3.el8.x86_64java-11-openjdk-headless-11.0.23.0.9-3.el8.x86_64...

When yum install my package:

Dependencies resolved.=================================== Package                           ===================================Installing: packageblabla         Installing dependencies: java-1.8.0-openjdk                 java-1.8.0-openjdk-devel           java-1.8.0-openjdk-headless       Installing weak dependencies: gtk2      

The SPEC-file:

%{?_with_rhel8:Requires: (( java-1.8.0-openjdk-devel or java-11-openjdk-devel ) and ( java-1.8.0-openjdk-devel or java-17-openjdk-devel ) and ( java-1.8.0-openjdk-devel or java-21-openjdk-devel )) }

I tried with "unless" following https://rpm-software-management.github.io/rpm/manual/boolean_dependencies.htmlBut rpmbuild complains that I shall use "or".

error: line 150: Illegal context for 'unless', please use 'or' instead: Requires: (( java-1.8.0-openjdk-devel unless java-11-openjdk-devel ) and ( java-1.8.0-openjdk-devel unless java-17-openjdk-devel ) and ( java-1.8.0-openjdk-devel unless java-21-openjdk-devel ))

Additionally the build is also then needed for RHEL7, which comes with rpm version 4.11.

Kind regards,Marcus


Viewing all articles
Browse latest Browse all 166

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>