Bugs item #29202, was opened at 2011-05-13 17:42
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=29202&group_id=126

Category: `gem` commands (other)
Group: None
Status: Closed
Resolution: Rejected
Priority: 3
Submitted By: Mike Bethany (mikbe)
Assigned to: Ryan Davis (zenspider)
Summary: gem build should force standard date format in metadata file

Initial Comment:
**Description:**

When building a gem the date format used on my OS X machines is incompatible 
with the date format used on my Ubuntu 10.10 virtual machines. 

OS X uses the following format:

    date: 2011-05-13 00:00:00.000000000Z

Where as on Ubuntu the date format is:
    
    date: 2011-05-13 00:00:00 Z

**Error message on Ubuntu (but not OS X):**

Invalid gemspec in 
[/usr/local/ruby/lib/ruby/gems/1.9.1/specifications/osx_vs_ubuntu-0.0.1.gemspec]:
 invalid date format in specification: "2011-05-13 00:00:00.000000000Z"
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:277:in 
`block in _resort!': undefined method `name' for nil:NilClass (NoMethodError)
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:276:in 
`sort!'
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:276:in 
`_resort!'
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:270:in `_all'
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:402:in `each'
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:216:in 
`find_all'
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:216:in 
`matching_specs'
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:238:in 
`to_specs'
        from 
/usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
        from /usr/local/ruby/lib/ruby/site_ruby/1.9.1/rubygems.rb:1182:in `gem'
        from /usr/local/ruby/bin/rake:18:in `<main>'

**Steps to replicate:**

Create a gem app:

    $ bundler gem osx_vs_ubuntu
    $ cd osx_vs_ubuntu
    $ git add .
    $ git commit -am "initial commit"

Edit gemspec file setting: authors, email, summary, and description.

Build the app on OS X machine:

    $ rake build

Copy gem to an Ubuntu machine.

Install gem on Ubuntu machine.

    $ gem install osx_vs_ubuntu-0.0.1.gem
    Invalid gemspec in 
[/usr/local/ruby/lib/ruby/gems/1.9.1/specifications/osx_vs_ubuntu-0.0.1.gemspec]:
 invalid date format in specification: "2011-05-13 00:00:00.000000000Z"
    ERROR:  While executing gem ... (NoMethodError)
        undefined method `name' for nil:NilClass


**Work arounds**

* Build the gem on an Ubuntu machine.
* Uncompress the gem file, uncompress the metadata file, edit the metadata file 
to use Ubuntu format, recompress metadatafile, recompress gem file.

Hardcoding the date format in the gemspec file to the Ubuntu version does not 
help. The date is redone when the gem is built.


----------------------------------------------------------------------

>Comment By: Mike Bethany (mikbe)
Date: 2011-05-18 22:07

Message:
The reason I say Ubuntu is because I'm being specific. I am telling you what 
operating 
system I'm having the problem with as piece of data not as a indication of the 
cause.

I do have YAML installed in Ubuntu:
ii  libyaml-0-2              0.1.3-1                  Fast YAML 1.1 parser and 
emitter library
ii  libyaml-dev              0.1.3-1                  Fast YAML 1.1 parser and 
emitter library 
(development)

And finally this was not discussed at length on reddit. This is the entirety of 
the time 
issue response, "This has nothing to do with ubuntu vs osx and everything to do 
with 
syck vs psych. You probably have the library you need on ubuntu and not on 
osx." 
Which was less than helpful.


----------------------------------------------------------------------

Comment By: Ryan Davis (zenspider)
Date: 2011-05-18 20:57

Message:
This is a dupe and has nothing to do with OSX vs Ubuntu. This was discussed 
with the OP at length on reddit, but apparently was ignored.

The problem is syck vs psych. Psych will output perfectly good (according to 
YAML spec) time strings that Syck can't parse. The problem is the missing space 
before the "Z".

I assume that the OP doesn't have libyaml installed on ubuntu, so syck is used 
instead of psych.

----------------------------------------------------------------------

Comment By: Mike Bethany (mikbe)
Date: 2011-05-18 19:49

Message:
It doesn't appear to be a Ruby 1.9.2p180 vs p0 issue:

Ubuntu 11.04 (GNU/Linux 2.6.38-8-server x86_64):
$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

OS X 10.6.7 (Darwin Kernel Version 10.7.0):
$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0]






----------------------------------------------------------------------

Comment By: Alex Chaffee (alexch)
Date: 2011-05-18 18:59

Message:
Looks like a dup of bug #29181. FWIW it's not Ubuntu vs MacOS, it looks like 
it's Ruby 1.9.2p180 vs Ruby 1.9.2p0 (or thereabouts). Can you do a "ruby -v" on 
each of your boxes to confirm my hypothesis?

http://rubyforge.org/tracker/index.php?func=detail&aid=29181&group_id=126&atid=575

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=29202&group_id=126
_______________________________________________
Rubygems-developers mailing list
http://rubyforge.org/projects/rubygems
Rubygems-developers@rubyforge.org
http://rubyforge.org/mailman/listinfo/rubygems-developers

Reply via email to