Bug 1145735 - Duplicate binaries produced by different llvm versions
Duplicate binaries produced by different llvm versions
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Other
Current
Other Other
: P5 - None : Major (vote)
: ---
Assigned To: Aaron Puchert
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2019-08-15 11:28 UTC by Dominique Leuenberger
Modified: 2019-10-19 15:00 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dominique Leuenberger 2019-08-15 11:28:22 UTC
Reported by the duplicate binary detection bot:

  libc++-devel:
  - llvm6
  - llvm7
  - llvm8
  libc++1:
  - llvm6
  - llvm7
  - llvm8
  libc++abi-devel:
  - llvm6
  - llvm7
  - llvm8
  libc++abi1:
  - llvm6
  - llvm7
  - llvm8
  python3-clang:
  - llvm6
  - llvm7
  - llvm8

Those binaries are all produced by three different llvm versions. For OBS and the product, this is an issue insofar as there is no guarantee which of the three wins to be published (but only ONE gets used/published)

Only one package should produce the binaries (others can use a name suffix, as is done for GCC for example)
Comment 1 Aaron Puchert 2019-08-15 20:54:11 UTC
Apparently both I and michalsrb have overseen that part in llvm's README.packaging:

> ===============================
> MAJOR AND MINOR VERSION UPDATES
> 
> For updates that change the major or minor version number,
> this package (llvm) needs to be updated, a new llvmX
> package needs to be created, and the old llvmX package
> needs to be modified.
> 
> 1. New llvmX package: [...]
> 2. Old llvmX package:
>    1. If the .so number of libc++.so.W.V has not changed,
>       remove the "%if" and %ifarch" tests around 
>       %bcond_without/%bcond_with libcxx in llvmX.spec
>       and make it always %bcond_with.  If the .so numbers
>       have changed, these can be left-as-is.
>    3. Change "%bcond_without pyclang" to 
>       "%bcond_with pyclang" in llvmX.spec.
>    4. Confirm everything builds successfully and there are
>       no new rpmlint issues.
>    5. Update the llvmX.changes file.

That should solve it.

Versioning the files is probably not needed for the libc++ (if the so name is the same, I'd assume the libraries are backwards-compatible) and not possible for python3-clang.
Comment 2 Aaron Puchert 2019-08-16 20:33:03 UTC
By the way, is this about duplicate files or duplicate package names? Because there are also the clang*-checker packages, which all contain the same files. But the different versions seem to conflict each other, so maybe that's Ok.
Comment 3 Aaron Puchert 2019-08-21 22:20:38 UTC
I've submitted change requests to devel:tools:compiler:

- https://build.opensuse.org/request/show/725002 for llvm6
- https://build.opensuse.org/request/show/725091 for llvm7

I don't have submit rights for either of these packages, so we'll have to wait.
Comment 4 Aaron Puchert 2019-09-10 00:10:01 UTC
Requests for both llvm6 and llvm7 have landed in Factory, could you verify that the issue has been solved? I don't know how to run the bot or where its results are published.
Comment 5 Dominique Leuenberger 2019-09-10 14:03:43 UTC
(In reply to Aaron Puchert from comment #4)
> Requests for both llvm6 and llvm7 have landed in Factory, could you verify
> that the issue has been solved? I don't know how to run the bot or where its
> results are published.

This looks all right now - the bot puts its results in
https://build.opensuse.org/package/view_file/openSUSE:Factory:Staging/dashboard/duplicate_binaries?expand=1

where llvm is no longer listed (i.e. solved)
Comment 6 Swamp Workflow Management 2019-10-19 15:00:07 UTC
This is an autogenerated message for OBS integration:
This bug (1145735) was mentioned in
https://build.opensuse.org/request/show/741225 Factory / llvm8