tarantool / tarantool-qa

QA related issues of Tarantool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Source RPM repository metadata looks wrong

Totktonada opened this issue · comments

The story starts here: tarantool/smtp#54. The link provides information how the problem looks from a user side. I guess the reason of the problem is in the incorrect metadata.

At least I see that source packages are marked with x86_64 architecture.

Let's compare:

$ curl -SsfL https://vault.centos.org/7.9.2009/os/Source/repodata/e9ed33ce5da5e899a647de4849b8981c89f179d0b2c39f6294e2f257deedc3b6-primary.xml.gz | gunzip | grep '<name>git</name>' -A 43 -B 1 | grep '<arch>'
  <arch>src</arch>
Full source package metainfo
$ curl -SsfL https://vault.centos.org/7.9.2009/os/Source/repodata/e9ed33ce5da5e899a647de4849b8981c89f179d0b2c39f6294e2f257deedc3b6-primary.xml.gz | gunzip | grep '<name>git</name>' -A 43 -B 1
<package type="rpm">
  <name>git</name>
  <arch>src</arch>
  <version epoch="0" ver="1.8.3.1" rel="23.el7_8"/>
  <checksum type="sha256" pkgid="YES">08be03369653e145408cf54b836dcdeae06abd558c11decd0b00bfcfdc5f37fe</checksum>
  <summary>Fast Version Control System</summary>
  <description>Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

The git rpm installs the core tools with minimal dependencies.  To
install all git packages, including tools for integrating with other
SCMs, install the git-all meta-package.</description>
  <packager>CentOS BuildSystem &lt;http://bugs.centos.org&gt;</packager>
  <url>http://git-scm.com/</url>
  <time file="1590768392" build="1590698350"/>
  <size package="4600085" installed="4787370" archive="4792180"/>
  <location href="SPackages/git-1.8.3.1-23.el7_8.src.rpm"/>
  <format>
    <rpm:license>GPLv2</rpm:license>
    <rpm:vendor>CentOS</rpm:vendor>
    <rpm:group>Development/Tools</rpm:group>
    <rpm:buildhost>x86-02.bsys.centos.org</rpm:buildhost>
    <rpm:sourcerpm/>
    <rpm:header-range start="1384" end="33648"/>
    <rpm:requires>
      <rpm:entry name="asciidoc" flags="GE" epoch="0" ver="8.4.1"/>
      <rpm:entry name="desktop-file-utils"/>
      <rpm:entry name="emacs"/>
      <rpm:entry name="expat-devel"/>
      <rpm:entry name="gettext"/>
      <rpm:entry name="httpd-devel"/>
      <rpm:entry name="libcurl-devel"/>
      <rpm:entry name="libgnome-keyring-devel"/>
      <rpm:entry name="openssl-devel"/>
      <rpm:entry name="pcre-devel"/>
      <rpm:entry name="perl(Error)"/>
      <rpm:entry name="perl(ExtUtils::MakeMaker)"/>
      <rpm:entry name="python"/>
      <rpm:entry name="systemd"/>
      <rpm:entry name="xmlto"/>
      <rpm:entry name="zlib-devel" flags="GE" epoch="0" ver="1.2"/>
    </rpm:requires>
  </format>
</package>

And:

$ curl -SsfL https://download.tarantool.org/tarantool/release/1.10/fedora/34/SRPMS/repodata/primary.xml.gz | gunzip | grep 'version.*ver="1.10.12.0"' -A 45 -B 3 | grep '<arch>'
  <arch>x86_64</arch>
Full source package metainfo
$ curl -SsfL https://download.tarantool.org/tarantool/release/1.10/fedora/34/SRPMS/repodata/primary.xml.gz | gunzip | grep 'version.*ver="1.10.12.0"' -A 45 -B 3
<package type="rpm">
  <name>tarantool</name>
  <arch>x86_64</arch>
  <version epoch="0" ver="1.10.12.0" rel="1.fc34"/>
  <checksum type="sha256" pkgid="YES">321e2da79e81a0565a78dabd55d7136012684328e229904a23108986d5f6e762</checksum>
  <summary></summary>
  <description></description>
  <packager></packager>
  <url>http://tarantool.org</url>
  <time file="1640173693" build="1640183717"/>
  <size package="9402250" installed="9400905" archive="9401300"/>
  <location href="Packages/tarantool-1.10.12.0-1.fc34.src.rpm"/>
  <format>
    <rpm:license>BSD</rpm:license>
    <rpm:group></rpm:group>
    <rpm:buildhost>ghacts-2-8-90-5</rpm:buildhost>
    <rpm:sourcerpm>None</rpm:sourcerpm>
    <rpm:header-range start="4504" end="14328"/>
    <rpm:provides>
      <rpm:entry name="tarantool" flags="EQ" epoch="0" ver="1.10.12.0" rel="1.fc34"/>
      <rpm:entry name="tarantool-devel" flags="EQ" epoch="0" ver="1.10.12.0" rel="1.fc34"/>
    </rpm:provides>
    <rpm:requires>
      <rpm:entry name="autoconf"/>
      <rpm:entry name="automake"/>
      <rpm:entry name="cmake" flags="GT" epoch="0" ver="3.2"/>
      <rpm:entry name="coreutils"/>
      <rpm:entry name="gcc" flags="GT" epoch="0" ver="4.5"/>
      <rpm:entry name="gcc-c++" flags="GT" epoch="0" ver="4.5"/>
      <rpm:entry name="libicu-devel"/>
      <rpm:entry name="libtool"/>
      <rpm:entry name="libunwind-devel"/>
      <rpm:entry name="make"/>
      <rpm:entry name="openssl-devel"/>
      <rpm:entry name="perl-Test-Harness"/>
      <rpm:entry name="perl-podlators"/>
      <rpm:entry name="python3"/>
      <rpm:entry name="python3-gevent"/>
      <rpm:entry name="python3-pyyaml"/>
      <rpm:entry name="python3-six"/>
      <rpm:entry name="readline-devel"/>
      <rpm:entry name="sed"/>
      <rpm:entry name="systemd"/>
      <rpm:entry name="zlib-devel"/>
    </rpm:requires>
    <rpm:obsoletes>
    </rpm:obsoletes>
  </format>
</package>

Several random thoughts:

  1. I see the difference in the architecture, but that's just guess. Maybe it is not the only problem.
  2. After a fix we should ensure that all RPM repositories are not affected by the problem anymore (yum/dnf info tarantool shows the similar picture for CentOS 8 and Fedora 33).

How it looks in dnf info tarantool:

$ docker run -it fedora:34
$ dnf makecache -y
$ curl -LsSf https://www.tarantool.io/release/1.10/installer.sh | bash 
$ dnf makecache -y
$ dnf info tarantool
<...>
Available Packages
Name         : tarantool
Version      : 1.10.12.0
Release      : 1.fc34
Architecture : x86_64
<..it is from the repo with binary packages, looks ok..>
Size         : 6.9 M
Source       : tarantool-1.10.12.0-1.fc34.src.rpm
Repository   : tarantool_1_10
Summary      :
URL          : http://tarantool.org
License      : BSD
Description  :

Name         : tarantool
Version      : 1.10.12.0
Release      : 1.fc34
Architecture : x86_64
<..the line above should give src, not x86_64..>
Size         : 9.0 M
Source       : None
Repository   : tarantool_1_10-source
Summary      :  
URL          : http://tarantool.org
License      : BSD
Description  :

Name         : tarantool
Version      : 2.4.2.68
Release      : 3.fc34
Architecture : i686
Size         : 1.7 M
Source       : tarantool-2.4.2.68-3.fc34.src.rpm
Repository   : fedora
Summary      : In-Memory Database
URL          : https://tarantool.org/
License      : BSD
Description  : Tarantool is an open-source database that can store everything in RAM.
             : You can use it as a cache with on-disk persistence. Tarantool is able to
             : process up to 1 million RPS and supports SQL and secondary index searching.
             :
             : In Tarantool, you can run your code at the same place where your data is.
             : That speeds up all the operations. Apply any business logic in Lua programming
             : language. Get rid of the outdated database records. Synchronize with other
             : data sources. Implement HTTP-service.
             :
             : This package provides the server daemon and admin tools.

The problem has been resolved. All SRPMS repositories have been updated.
For the update, mkrepo was used with the patch.