[packman] malformed packman repository

Giacomo Comes gcomes at gmx.com
Wed Feb 5 18:37:20 CET 2025


Hi,
I have noticed that when installing some packages from the
packman repository the Requires tag are not honored.

The issue seems to be in the tool that create the
content in the repodata directory.

Take for example the program cuetools.
In the file packman/openSUSE_Leap_15.6/repodata/primary.xml.gz
you have:
<package type="rpm">
  <name>cuetools</name>
  <arch>x86_64</arch>
  <version epoch="0" ver="1.4.1" rel="150600.1.pm.8"/>
  <checksum type="sha256" pkgid="YES">be5defe354196e48388dd9db835dd2bc17fdc12e79e350cd5b7dae1d6006a400</checksum>
  <summary>Utilities to work with cue and TOC files</summary>
  <description>Cuetools is a set of utilities for working with cue files and TOC files.
It includes programs for conversion between the formats, file renaming based
on cue/TOC information, and track breakpoint printing.</description>
  <packager>packman at links2linux.de</packager>
  <url>https://github.com/svend/cuetools</url>
  <time file="1734996308" build="1734986567"/>
  <size package="57500" installed="231702" archive="233420"/>
<location href="x86_64/cuetools-1.4.1-150600.1.pm.8.x86_64.rpm"/>
  <format>
    <rpm:license>GPL-1.0</rpm:license>
    <rpm:vendor>http://packman.links2linux.de</rpm:vendor>
    <rpm:group>Productivity/Multimedia/Sound/Utilities</rpm:group>
    <rpm:buildhost>buildwk1</rpm:buildhost>
    <rpm:sourcerpm>cuetools-1.4.1-150600.1.pm.8.src.rpm</rpm:sourcerpm>
    <rpm:header-range start="5032" end="10464"/>
    <rpm:provides>
      <rpm:entry name="cuetools" flags="EQ" epoch="0" ver="1.4.1" rel="150600.1.pm.8"/>
      <rpm:entry name="cuetools(x86-64)" flags="EQ" epoch="0" ver="1.4.1" rel="150600.1.pm.8"/>
    </rpm:provides>
    <rpm:requires>
      <rpm:entry name="libc.so.6(GLIBC_2.3)(64bit)"/>
      <rpm:entry name="/bin/sh"/>
      <rpm:entry name="libc.so.6(GLIBC_2.34)(64bit)"/>
      <rpm:entry name="libc.so.6(GLIBC_2.14)(64bit)"/>
      <rpm:entry name="libc.so.6(GLIBC_2.4)(64bit)"/>
      <rpm:entry name="libc.so.6(GLIBC_2.3.4)(64bit)"/>
      <rpm:entry name="libc.so.6()(64bit)"/>
      <rpm:entry name="libc.so.6(GLIBC_2.2.5)(64bit)"/>
    </rpm:requires>    <file>/usr/bin/cuetag.sh</file>
    <file>/usr/bin/cueconvert</file>
    <file>/usr/bin/cuebreakpoints</file>
    <file>/usr/bin/cueprint</file>

  </format>
</package>

Taking the same binary from the packman repo
and putting in a local repository, after I run:
  createrepo <repodir>
the content in primary.xml.gz about cuetools is:
<package type="rpm">
  <name>cuetools</name>
  <arch>x86_64</arch>
  <version epoch="0" ver="1.4.1" rel="150600.1.pm.8"/>
  <checksum type="sha256" pkgid="YES">be5defe354196e48388dd9db835dd2bc17fdc12e79e350cd5b7dae1d6006a400</checksum>
  <summary>Utilities to work with cue and TOC files</summary>
  <description>Cuetools is a set of utilities for working with cue files and TOC files.
It includes programs for conversion between the formats, file renaming based
on cue/TOC information, and track breakpoint printing.</description>
  <packager>packman at links2linux.de</packager>
  <url>https://github.com/svend/cuetools</url>
  <time file="1738774473" build="1734986567"/>
  <size package="57500" installed="231702" archive="233420"/>
  <location href="x86_64/cuetools-1.4.1-150600.1.pm.8.x86_64.rpm"/>
  <format>
    <rpm:license>GPL-1.0</rpm:license>
    <rpm:vendor>http://packman.links2linux.de</rpm:vendor>
    <rpm:group>Productivity/Multimedia/Sound/Utilities</rpm:group>
    <rpm:buildhost>buildwk1</rpm:buildhost>
    <rpm:sourcerpm>cuetools-1.4.1-150600.1.pm.8.src.rpm</rpm:sourcerpm>
    <rpm:header-range start="5032" end="10464"/>
    <rpm:provides>
      <rpm:entry name="cuetools" flags="EQ" epoch="0" ver="1.4.1" rel="150600.1.pm.8"/>
      <rpm:entry name="cuetools(x86-64)" flags="EQ" epoch="0" ver="1.4.1" rel="150600.1.pm.8"/>
    </rpm:provides>
    <rpm:requires>
      <rpm:entry name="/bin/sh"/>
      <rpm:entry name="libc.so.6(GLIBC_2.34)(64bit)"/>
    </rpm:requires>
    <rpm:enhances>
      <rpm:entry name="shntool"/>
    </rpm:enhances>
    <rpm:recommends>
      <rpm:entry name="flac"/>
    </rpm:recommends>
    <file>/usr/bin/cuebreakpoints</file>
    <file>/usr/bin/cueconvert</file>
    <file>/usr/bin/cueprint</file>
    <file>/usr/bin/cuetag.sh</file>
  </format>
</package>

A comparison shows that in the packman repository
the tag: <rpm:enhances> and <rpm:recommends> are missing
leading to some packages not being properly installed.

I suggest to replace/update the program that creates
the repository structure or, if that is not easy to do,
to add in the toolchain a final step to rebuild
the repo structure using a fixed/better version of createrepo.

Giacomo




More information about the Packman mailing list