openSUSE / openSUSE/libsolv

repo_comps needs to have support for <environment>

Open
#331 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-comps RFE :gift:
Dominant language
C
Stars
609
Forks
177
PR merge metrics
No merged PRs in 30d

Description

Today I was looking to write some scripts which manipulates groups, but turned out that <environment> groups are not supported.

From what I could find is that people were not able to come up with better idea how to handle group of groups so they created this kind of groups.

  <environment>
    <id>basic-desktop-environment</id>
    <name>Basic Desktop</name>
    <name xml:lang="bg">Основен работен плот</name>
    <name xml:lang="ca">Escriptori bàsic</name>
    <name xml:lang="cs">Základní desktop</name>
    <name xml:lang="de">Grundsystem</name>
    <name xml:lang="en_GB">Basic Desktop</name>
    <name xml:lang="es">Escritorio Básico</name>
    <name xml:lang="fi">Tavallinen työpöytä</name>
    <name xml:lang="fr">Environnement de bureau standard</name>
    <name xml:lang="he">שולחן עבודה בסיסי</name>
    <name xml:lang="hu">Alapvető asztali környezet</name>
    <name xml:lang="ia">Scriptorio basic</name>
    <name xml:lang="id">Desktop Dasar</name>
    <name xml:lang="it">Desktop base</name>
    <name xml:lang="ja">基本的なデスクトップ環境</name>
    <name xml:lang="nb">Enkelt skrivebord</name>
    <name xml:lang="nl">Basisbureaublad</name>
    <name xml:lang="pa">ਮੁੱਢਲਾ ਡੈਸਕਟਾਪ</name>
    <name xml:lang="pl">Podstawowe środowisko</name>
    <name xml:lang="pt">Àrea de Trabalho Basic</name>
    <name xml:lang="pt_BR">Ambiente Básico</name>
    <name xml:lang="ru">Базовая среда рабочего стола</name>
    <name xml:lang="sk">Základné pracovné prostredie</name>
    <name xml:lang="sq">Desktop Bazik</name>
    <name xml:lang="sr">Основно окружење</name>
    <name xml:lang="sv">Grundläggande skrivbord</name>
    <name xml:lang="uk">Базове робоче середовище</name>
    <name xml:lang="zh_CN">基本桌面环境</name>
    <name xml:lang="zh_TW">基本桌面</name>
    <description>X Window System with a choice of window manager.</description>
    <description xml:lang="bg">X Window система с избор на мениджър на прозорци.</description>
    <description xml:lang="ca">X Window System amb la selecció del gestor de finestres.</description>
    <description xml:lang="cs">Systém X Window s výběrem správce oken.</description>
    <description xml:lang="de">X-Fenstersystem mit einer Auswahl an Fensterverwaltungen</description>
    <description xml:lang="en_GB">X Window System with a choice of window manager.</description>
    <description xml:lang="es">Sistema X Window con una elección de gestor de ventana.</description>
    <description xml:lang="fi">X-ikkunointijärjestelmä ja ikkunanhallintaohjelman valinta.</description>
    <description xml:lang="fr">Système de fenêtre X avec un choix de gestionnaire de fenêtres.</description>
    <description xml:lang="hu">X Window rendszer választott ablakkezelő felülettel.</description>
    <description xml:lang="ia">Le systema X Window con alternativas de gerentes de fenestras.</description>
    <description xml:lang="it">Sistema X Window con scelta di gestori finestre</description>
    <description xml:lang="ja">X Window System と任意のウィンドウマネージャー</description>
    <description xml:lang="nl">X Window Systeem met een keuze uit een aantal vensterbeheerders. </description>
    <description xml:lang="pl">System X Window z wyborem menedżerów okien.</description>
    <description xml:lang="pt">Sistema de janelas X com a escolha de gestor de janelas.</description>
    <description xml:lang="pt_BR">Sistema X Window com a escolha de um gerenciador de janelas.</description>
    <description xml:lang="ru">Система X Window с выбором оконного менеджера.</description>
    <description xml:lang="sk">Pracovné prostredie X Window System s výberom správcu okien.</description>
    <description xml:lang="sr">X Window систем за избором управника прозора.</description>
    <description xml:lang="sv">Fönstersystemet X med ett urval av fönsterhanterare.</description>
    <description xml:lang="uk">Система X Window з вибором засобу керування вікнами.</description>
    <description xml:lang="zh_CN">X 窗口系统的窗口管理器的选择。</description>
    <description xml:lang="zh_TW">X Window 系統,加上一個視窗管理員選項。</description>
    <display_order>70</display_order>
    <grouplist>
      <groupid>base-x</groupid>
      <groupid>basic-desktop</groupid>
      <groupid>core</groupid>
      <groupid>dial-up</groupid>
      <groupid>fonts</groupid>
      <groupid>guest-desktop-agents</groupid>
      <groupid>hardware-support</groupid>
      <groupid>multimedia</groupid>
      <groupid>networkmanager-submodules</groupid>
      <groupid>standard</groupid>
    </grouplist>
    <optionlist>
      <groupid>cinnamon-desktop</groupid>
      <groupid>firefox</groupid>
      <groupid>gnome-desktop</groupid>
      <groupid>input-methods</groupid>
      <groupid>kde-desktop</groupid>
      <groupid>legacy-fonts</groupid>
      <groupid>libreoffice</groupid>
      <groupid>lxde-desktop</groupid>
      <groupid>lxqt-desktop</groupid>
      <groupid>mate-desktop</groupid>
      <groupid>sugar-desktop</groupid>
      <groupid>xfce-desktop</groupid>
      <groupid>xmonad</groupid>
      <groupid>xmonad-mate</groupid>
    </optionlist>
  </environment>

Here is some example from Fedora's comps.xml.

From what I understand, <grouplist> is mandatory dependency on other groups and <optionlist> is some kind of Suggests.

Since I can't use REL_KIND in dependencies, I am not sure how to handle these.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how repo_comps currently parses and represents groups, then compare that path with the shown , , and structure. Determine how mandatory and optional group references should map to existing dependency handling, including the REL_KIND limitation; done means environment groups are supported without changing the intended dependency semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.