rubygem macro error

Vít Ondruch vondruch at redhat.com
Thu Nov 10 14:19:07 UTC 2011


Dne 10.11.2011 13:57, Scott Schmit napsal(a):
> On Thu, Nov 10, 2011 at 11:26:11AM +0100, Vít Ondruch wrote:
>> Dne 9.11.2011 17:02, Paul Wouters napsal(a):
>>> On Wed, 9 Nov 2011, Alex Dalitz wrote:
>>>> 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
> Yes, but the purpose of URL encoding is to reach resources that are
> named using reserved characters.  So, for the filename you showed above,
> the correct URL would be:
> file:///usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGconn/internal_encoding%253d-i.yaml
>                                                                         ^^^^^
>
> This is because the % character is reserved.  Had the file name been
> "internal_encoding=.yaml", the URL would have been:
> file:///usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGconn/internal_encoding%3d-i.yaml
>                                                                         ^^^
>
> Hence "broken".
>
>
>

It doesn't matter how it would look if you'd like to refer to the 
filename using URL, the truth is that its the filename RI is using. This 
[1] is the code if you are interested and this [2] is the oldest version 
I can find on GitHub.

The rpmlint says just that much about the name:

This package contains a file whose path contains something that looks 
like an
unexpanded macro; this is often the sign of a misspelling. Please check your
specfile.

So this is not the case. The name is perfectly fine at the end. No need 
to worry.


Vit


[1] https://github.com/rdoc/rdoc/blob/master/lib/rdoc/ri/store.rb#L212-L225
[2] 
https://github.com/rdoc/rdoc/blob/53ea90cb7ef673334e1402499e5dcee90f31f96a/lib/rdoc/ri/writer.rb#L14-L20
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fedoraproject.org/pipermail/devel/attachments/20111110/f0441996/attachment.html 


More information about the devel mailing list