Traditional rpm dependencies have only supported biarch style installations 
between 64bit and "something else", traditionally of course 32bit. 
This has been denoted with (64bit) markers at the end of ELF dependency tokens 
for some 64bit architectures and for others not, and lets a dependency token of 
a completely different architecture satisfy that of another. This is 
inconsistent and limiting at best.

Add a new multiarch mode for elfdeps where each ELF dependency token carries an 
ABI identifier consisting of the base architecture, it's bitness and 
endiananess, optionally followed by arch-specific flags. v4 packages continue 
to use the traditional biarch dependencies, for v6 packages we use the new 
multiarch style. It's possible to generate
both for transition-period compatibility though.

The last patch is the where the real interest is, the earlier ones are just 
preliminaries to make this all nicer by converting it to use C++ facilities. 
There are no docs and the exact format is subject to change, but posting a 
draft PR to allow experimenting and hopefully inviting a wider community 
discussion on this.

Fixes: #2197
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/3578

-- Commit Summary --

  * Natively allocate elfdeps main structure
  * Isolate dependency additions elfdeps behind addDep()
  * Convert elfdeps dependency storage to STL containers
  * Handle dependency tokens as STL strings inside add*Dep()
  * Use a C++ string for skipSoname() convenience
  * Use an STL string for temporary soname storages
  * Convert other elfdeps data structure strings to STL strings
  * Rename elfdeps biarch marker to better reflect the function
  * Add support for multiarch dependency generation in v6 packages

-- File Changes --

    M fileattrs/elf.attr (5)
    M tests/rpmbuild.at (103)
    M tools/elfdeps.cc (235)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/3578.patch
https://github.com/rpm-software-management/rpm/pull/3578.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3578
You are receiving this because you are subscribed to this thread.

Message ID: <rpm-software-management/rpm/pull/3...@github.com>
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to