#325 Temporary bundling exception of yajl library
Closed: Fixed None Opened 5 years ago by msuchy.

Hi,
we want to package rubygem-yajl-ruby for Fedora as it is dependence (and therefore blocker) for packaging of Chef and Open Build System.

Current upstream of yajl-ruby bundle it own version of yajl library. There are several diferences:
yajl-ruby use 1.x version, while 2.x is available in Fedora.
upstream of yajl-ruby have several patches for performance in bundled version of yajl.

There have been initiative to allow use of system version of yajl:
https://github.com/brianmario/yajl-ruby/pull/113

https://github.com/brianmario/yajl-ruby/issues/111#issuecomment-12542826

But it takes months and it is still not merged
The upstream does not reject the idea per se, but it seems he need some time to process this PR and release new version.

I would like to apply for temporary exception for bundling and allow to have rubygem-yajl-ruby bundled version of yajl until upstream of yajl-ruby will release new version.
This will unblock us in goal of package Chef and OBS, which is now blocked.

The library will sit in /usr/lib64/gems/ruby which is outside of scope of usual ldconfig path and therefore there should be no conflicts with system library

Mirek Suchy


For a temporary bundling exception we'd need to have some idea of when the exception would no longer be needed. Could you ping that upstream pull request to get some idea of the timeframe we're looking at?

I sent email to upstream, with question from #1.

The packaging committee is still awaiting additional information before it can properly address your request. Please provide that within the next month or this ticket will be closed. (Of course, you can always reopen it if the situation changes) Thanks!

I am afraid that I am unable to be sharp on ETA. The most precise timeframe is "untill upstream unbundle it".

Just to give additional context, due to blocked yajl-ruby, Chef guys started another project ffi-yajl [1], which ended up with another bundling [2, 3, 4].

[1] https://rubygems.org/gems/ffi-yajl [[BR]]
[2] https://rubygems.org/gems/libyajl2 [[BR]]
[3] https://bugzilla.redhat.com/show_bug.cgi?id=1114146 [[BR]]
[4] https://bugzilla.redhat.com/show_bug.cgi?id=1137007

We discussed this at today's meeting (http://meetbot.fedoraproject.org/fedora-meeting-1/2015-02-26/fpc.2015-02-26-17.01.txt):

  • 325 Temporary bundling exception of yajl library (geppetto,


    17:58:28)
  • LINK: https://fedorahosted.org/fpc/ticket/325 (geppetto, 17:58:33)
  • ACTION: Can you carry the patches within Fedora, to use the system
    library from ruby and alter jajl? If not we need a clearer timeline
    on when upstream is going to do something. (geppetto, 18:14:46)

The thing always was that in Fedora, we have yajl 2.x, while rubygem-yajl-ruby was build around yajl 1.x.

There is upstream branch which was modified to support yajl 2.x [1], so we provided necessary patches [2] to enable build against system yajl 2.x. Unfortunately, the 2.0 branch was never mainlined neither our patches were accepted.

I don't think there is any chance to carry some downstream patches in Fedora, since the 2.0 branch is quite different from the master and this could break user expectations.

Other option could be to package yajl1 compat package, but this is overkill and would need yet again some patches, similar to [2] to make it work with system library (not even mentioning several small modifications done to actual yajl code).

[1] https://github.com/brianmario/yajl-ruby/tree/2.0 [[BR]]
[2] https://github.com/brianmario/yajl-ruby/pull/113 [[BR]]
[3] https://github.com/brianmario/yajl-ruby/compare/2.0 [[BR]]

I guess I should have bumped this back to meeting a while ago.

We discussed this at today's meeting (http://meetbot.fedoraproject.org/fedora-meeting-1/2015-03-19/fpc.2015-03-19-17.01.txt):

  • 325 Temporary bundling exception of yajl library (geppetto,


    17:34:57)
  • LINK: https://fedorahosted.org/fpc/ticket/325 (geppetto, 17:34:59)
  • ACTION: No bundling exception of yajl library, someone just create a
    compat-yajil1 or even yajil1 fork/whatever package. (geppetto,
    17:45:26)
  • Or become the upstream maintainer :) (geppetto, 17:45:59)

Metadata Update from @tibbs:
- Issue assigned to tibbs

2 years ago

Login to comment on this ticket.

Metadata