rubygem macro error

Vít Ondruch vondruch at redhat.com
Thu Nov 10 10:26:11 UTC 2011


Dne 9.11.2011 17:02, Paul Wouters napsal(a):
> On Wed, 9 Nov 2011, Alex Dalitz wrote:
>
> (CC:ed Fedora-devel, we're trying to figure out the ruby bug with %3d ri-doc names)
>
>>> I tried using yours and i had to make some xoes for it to build.
>>> It used "ruby-gems" instead of "rubygems". The was a "=" ->  "=3D"
>>> caused by one of our mail agents. then it tried something odd
>>> with a spec file template I commented out. The resulting build
>>> worked and had the identical issues, eg:
>>>
>>> /Library/Ruby/Gems/1.8/doc/dnsruby-1.53/ri/Dnsruby/Resolver/packet_timeout%3d-i.yaml
>>> /Library/Ruby/Gems/1.8/doc/dnsruby-1.53/ri/Dnsruby/Resolver/persistent_tcp%3d-i.yaml
>>> /Library/Ruby/Gems/1.8/doc/dnsruby-1.53/ri/Dnsruby/Resolver/persistent_udp%3d-i.yaml
>>> /Library/Ruby/Gems/1.8/doc/dnsruby-1.53/ri/Dnsruby/Resolver/port%3d-i.yaml
>> This is odd.
>>
>> The %3d characters in the filenames are because the Ruby setter methods are named "<variable_name>=" - this is a common pattern across all Ruby code. The filenames are generated by the rdoc tool - nothing to do with dnsruby or its packaging. This leads me to believe that all Ruby gems packaged as rpms would have this same problem - and yet this is surely not the case?
> right, though checking on mine, there is actually one other one:
>
> $ find /usr/lib/ruby/gems/1.8/doc/ |grep 3d |grep -v Dnsruby
> /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGconn/internal_encoding%3d-i.yaml
>
>> As a workaround, I suppose it's worth mentioning that the doc folder could simply be removed from the gem installation. That would then give an rpm with the Ruby code, but without access to the ri documentation system. Does this also contravene rpm guidelines?
> I talked about that, and was told they preferred the broken filenames
> over not having anything. Which is why it ended up packaged with these
> mistakes in fedora.
>
> Paul

Broken names? Please see percent encoding aka URL encoding [1]. You'll 
see that the '%3d' is actually '=', i.e. the file 
packet_timeout%3d-i.yaml obviously contains documentation for 
packet_timeout= method. You'll find a lot of such encoded characters in 
Ruby documentation and that is correct. That's how it works. It is not 
error, just warning.

Vit


[1] http://en.wikipedia.org/wiki/Percent_encoding


More information about the devel mailing list