7
0
mirror of https://git.rockylinux.org/rocky/comps.git synced 2024-11-21 20:51:24 +00:00

support *_only tags

This commit is contained in:
Louis Abel 2024-06-24 09:40:09 -07:00
parent d6c97ca7a3
commit 048670796a
Signed by: label
GPG Key ID: 2A6975660E424560
4 changed files with 89 additions and 5 deletions

View File

@ -1,4 +1,4 @@
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<?xml version="1.0"?>
<comps>
<group variant="BaseOS">
<id>conflicts-baseos</id>
@ -254,6 +254,7 @@
<packagereq type="mandatory" variant="BaseOS">selinux-policy-targeted</packagereq>
<packagereq type="mandatory" variant="BaseOS">setup</packagereq>
<packagereq type="mandatory" variant="BaseOS">shadow-utils</packagereq>
<rhel_only><packagereq type="conditional" requires="redhat-release" variant="BaseOS">subscription-manager</packagereq></rhel_only>
<packagereq type="mandatory" variant="BaseOS">sssd-common</packagereq>
<packagereq type="mandatory" variant="BaseOS">sssd-kcm</packagereq>
<packagereq type="mandatory" variant="BaseOS">sudo</packagereq>
@ -283,6 +284,8 @@
<packagereq type="default" variant="BaseOS">sg3_utils-libs</packagereq>
<packagereq type="default" variant="BaseOS">initscripts-rename-device</packagereq>
<packagereq type="default" variant="AppStream">python3-libselinux</packagereq>
<rhel_only><packagereq type="default" variant="AppStream">insights-client</packagereq></rhel_only>
<rhel_only><packagereq type="default" variant="AppStream">rhc</packagereq></rhel_only>
<packagereq type="optional" variant="BaseOS">dracut-config-generic</packagereq>
<packagereq type="optional" variant="BaseOS">dracut-network</packagereq>
<packagereq type="optional" variant="BaseOS" arch="s390x">libzfcphbaapi</packagereq>
@ -1059,6 +1062,8 @@
<packagereq type="default" variant="BaseOS">sos</packagereq>
<packagereq type="default" variant="BaseOS">sssd</packagereq>
<packagereq type="default" variant="BaseOS">strace</packagereq>
<rhel_only><packagereq type="conditional" requires="redhat-release" variant="BaseOS">subscription-manager-cockpit</packagereq></rhel_only>
<rhel_only><packagereq type="conditional" requires="redhat-release" variant="BaseOS">libdnf-plugin-subscription-manager</packagereq></rhel_only>
<packagereq type="default" variant="BaseOS">time</packagereq>
<packagereq type="default" variant="BaseOS">unzip</packagereq>
<packagereq type="default" variant="BaseOS">usbutils</packagereq>
@ -1083,6 +1088,7 @@
<packagereq type="default" variant="AppStream">wget</packagereq>
<packagereq type="default" variant="AppStream">vim-enhanced</packagereq>
<packagereq type="default" variant="AppStream">insights-client</packagereq>
<rhel_only><packagereq type="default" variant="AppStream">rhc</packagereq></rhel_only>
</packagelist>
</group>
<group>
@ -1162,6 +1168,8 @@
<packagereq type="default" variant="BaseOS">sos</packagereq>
<packagereq type="default" variant="BaseOS">sssd</packagereq>
<packagereq type="default" variant="BaseOS">strace</packagereq>
<rhel_only><packagereq type="conditional" requires="redhat-release" variant="BaseOS">subscription-manager-cockpit</packagereq></rhel_only>
<rhel_only><packagereq type="conditional" requires="redhat-release" variant="BaseOS">libdnf-plugin-subscription-manager</packagereq></rhel_only>
<packagereq type="default" variant="BaseOS">time</packagereq>
<packagereq type="default" variant="BaseOS">unzip</packagereq>
<packagereq type="default" variant="BaseOS">usbutils</packagereq>
@ -1185,7 +1193,8 @@
<packagereq type="default" variant="AppStream">tcpdump</packagereq>
<packagereq type="default" variant="AppStream">wget</packagereq>
<packagereq type="default" variant="AppStream">vim-enhanced</packagereq>
<packagereq type="default" variant="AppStream">insights-client</packagereq>
<rhel_only><packagereq type="default" variant="AppStream">insights-client</packagereq></rhel_only>
<rhel_only><packagereq type="default" variant="AppStream">rhc</packagereq></rhel_only>
</packagelist>
</group>
<group>

34
scripts/Makefile Normal file
View File

@ -0,0 +1,34 @@
XMLINFILES=$(wildcard *.xml.in)
XMLFILES = $(patsubst %.xml.in,%.xml,$(XMLINFILES))
all: po $(XMLFILES) sort
po: $(XMLINFILES)
make -C po -f Makefile || exit 1
clean:
@rm -fv *~ *.xml
validate: $(XMLFILES) comps.rng
# Run xmllint on each file and exit with non-zero if any validation fails
RES=0; for f in $(XMLFILES); do \
xmllint --noout --relaxng comps.rng $$f; \
RES=$$(($$RES + $$?)); \
done; exit $$RES
sort:
@# Run xsltproc on each xml.in file and exit with non-zero if any sorting fails
@# The comps-eln.xml.in is not sorted alphabetically but manually
@# based on the need needs of Fedora ELN SIG.
@RES=0; for f in $(XMLINFILES); do \
if [[ "$$f" == 'comps-eln.xml.in' ]]; then \
continue; \
fi; \
xsltproc --novalid -o $$f comps-cleanup.xsl $$f; \
RES=$$(($$RES + $$?)); \
done; exit $$RES
%.xml: %.xml.in
@xmllint --noout $<
@if test ".$(CLEANUP)" == .yes; then xsltproc --novalid -o $< comps-cleanup.xsl $<; fi
./update-comps $@ $(DISTRO)

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.1">
<xsl:param name="distro"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="rhel_only">
<xsl:if test="$distro='rhel'">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="centos_only">
<xsl:if test="$distro='centos'">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="rocky_only">
<xsl:if test="$distro='rocky'">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,3 +1,12 @@
#!/bin/bash
COMPS_FILE=$1
LANG=C intltool-merge -x -u po/ $COMPS_FILE.xml.in $COMPS_FILE.xml
COMPSFILE=$1
DISTRO=$2
if [ -z "$COMPSFILE" ]; then
echo "Usage: $0 <compsfile>"
exit 1
fi
LANG=C intltool-merge -x -u po/ $COMPSFILE.in $COMPSFILE
xsltproc --stringparam distro $DISTRO --novalid -o $COMPSFILE comps-distro-only.xsl $COMPSFILE