Mamoru TASAKA wrote on 2023/12/21 9:04:
Vít Ondruch wrote on 2023/12/21 0:45:
I have just hit this issue:
~~~
Error: Transaction test error:
file /usr/lib64/gems/ruby/racc-1.7.3/racc/cparse.so from install of
ruby-bundled-gems-3.3.0~20231219git8e6f63df47-184.fc40.x86_64 conflicts with
file from package rubygem-racc-1.7.3-200.fc40.x86_64
file /usr/share/gems/specifications/racc-1.7.3.gemspec from install of
ruby-bundled-gems-3.3.0~20231219git8e6f63df47-184.fc40.x86_64 conflicts with
file from package rubygem-racc-1.7.3-200.fc40.x86_64
~~~
The problem here is that racc is now bundled gem, where previously it was
default gem, therefore there is now this conflict. How are we going to solve
this? There are several options:
1) Make rubygem-racc subpackage of Ruby. We used to do this [1], but with
default gem, the situation was different.
2) Install default gems / our system gems into dedicated directory, where they
won't conflict. I was already proposing it elsewhere to explore the `gem
install --vendor` or I have proposed upstream to have dedicated directories for
default / bundled gems. Is it the right time to do this?
3) Drop the independent rubygem-racc
Actually I am not sure how sever this situation is, because I have explicitly
installed rubygem-racc prior the ruby-default-gems get chance to be installed.
So maybe we still have some time to thing about it.
Thoughts?
Vít
[1]
https://src.fedoraproject.org/rpms/ruby/c/baf046a6a4d17fa309c9d20fa3db949f6c24aacf
Because new version of racc (independent) gem may be released during ruby 3.3
stage
(actually racc version 1.7.0 was released 2023/Jun) and when that happens,
racc bundled in ruby 3.3 won't be updated, to make it possible to update
rubygem-racc
version, I don't think 3) is what we want (at least I don't want 3)) .
I think 1) is the "simplest" way in that this is the least likely way where some
misbehavior can happen.
2) can be the option, but I think we can defer to this for ruby 3.4.
Or...
4) Make ruby-default-gems have "Obsoletes: rubygem-racc < 1.7.4" ?
So this way, unless I am wrong:
* when rubygem-racc-1.7.3-200.fc40 is firstly installed, rubygem-default-gems
should Obsolete this independent rubygem-racc because of this.
* when independent rubygem-racc version is updated, this Obsoletes no longer in
effect,
but as version differs between independent rubygem-racc and bundled one,
so there should be no file conflict, perhaps?
* Then when racc version in ruby-default-gems is updated, we can again have
"Obsoletes: rubygem-racc < 1.7.5" in ruby-default-gems.
At least, for current situation, 4) (i.e. use Obsoletes instead of dropping)
should work.
Anyway, thank you for pointing this out.
After second thought, maybe some bugfix backport can happen even in
rubygem-racc 1.7.3 era,
so after all, I think 1) is the best for now.
Regards,
Mamoru
--
_______________________________________________
ruby-sig mailing list -- ruby-sig@lists.fedoraproject.org
To unsubscribe send an email to ruby-sig-le...@lists.fedoraproject.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org
Do not reply to spam, report it:
https://pagure.io/fedora-infrastructure/new_issue