RubyGems 1.8 treats warnings as errors for C extensions, fails toinstall RedCloth?

Discussion in 'Ruby' started by Quintus, May 12, 2011.

  1. Quintus

    Quintus Guest

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Hi there,

    I just tried to install the RedCloth gem:

    ========================================
    $ LANG=en_US.utf8 sudo gem install RedCloth
    Fetching: RedCloth-4.2.7.gem (100%)
    Building native extensions. This could take a while...
    ERROR: Error installing RedCloth:
    ERROR: Failed to build gem native extension.

    /opt/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb
    checking for main() in -lc... yes
    creating Makefile

    make
    gcc -I. -I/opt/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/x86_64-linux
    - -I/opt/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/ruby/backward
    - -I/opt/rubies/ruby-1.9.2-p180/include/ruby-1.9.1 -I. -fPIC -O3 -ggdb
    - -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith
    - -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC
    - -O0 -Wall -Werror -o redcloth_inline.o -c redcloth_inline.c
    ragel/redcloth_inline.c.rl: In function ‘red_block’:
    ragel/redcloth_inline.c.rl:99:9: error: variable ‘attr_regs’ set but not
    used [-Werror=unused-but-set-variable]
    cc1: all warnings being treated as errors

    make: *** [redcloth_inline.o] Error 1


    Gem files will remain installed in
    /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1/gems/RedCloth-4.2.7 for
    inspection.
    Results logged to
    /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1/gems/RedCloth-4.2.7/ext/redcloth_scan/gem_make.out
    ========================================

    Obviously RedCloth generates some warnings during compilation, and now
    RubyGems advises the compiler to treat them as errors--as far as I know
    this wasn't the case with previous versions of RubyGems, because some
    days ago RedCloth installed without problems (no, no new release of
    RedCloth happened in the meantime). This causes the installation of
    RedCloth to fail.
    I'm not against treating warnings as errors, but there should be a way
    to disable this setting, maybe via a commandline option
    - --ignore-compilation-warnings or something like that, because I'm not a
    RedCloth developer and therefore not interested in the warnings.

    Further information on my system:

    uname -a:
    Linux hades 2.6.38-ARCH #1 SMP PREEMPT Tue May 3 07:40:34 CEST 2011
    x86_64 AMD Athlon(tm) II X4 640 Processor AuthenticAMD GNU/Linux

    ruby -v:
    ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

    gem env:
    RubyGems Environment:
    - RUBYGEMS VERSION: 1.8.2
    - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-linux]
    - INSTALLATION DIRECTORY: /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1
    - RUBY EXECUTABLE: /opt/rubies/ruby-1.9.2-p180/bin/ruby
    - EXECUTABLE DIRECTORY: /opt/rubies/ruby-1.9.2-p180/bin
    - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
    - GEM PATHS:
    - /opt/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1
    - /home/quintus/.gem/ruby/1.9.1
    - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :benchmark => false
    - :backtrace => false
    - :bulk_threshold => 1000
    - "install" => "--format-executable"
    - "update" => "--format-executable"
    - "rdoc" => "--format=hanna"
    - REMOTE SOURCES:
    - http://rubygems.org/

    Valete,
    Marvin
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.11 (GNU/Linux)
    Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

    iQEcBAEBAgAGBQJNy7euAAoJELh1XLHFkqhaAiYH/23x5jFcqXKWKRe9xEitCvcj
    js+ZxO6oNyDOiMxL7qD9GaCXywbU6/0ivPyueoVVj8f1sR47omhe9v/iZiKUtEpq
    5YGMF5CsgmLV5rIzoFq8RghccDGTYyM8PMJiHwSp7oNv2JZuQvG7NLpPOG8lnHKh
    XupTuS/7jq+K6g/Ddy1GW6/UhPj3FjZ2jaGoFHW7vZvGmCvER2xu/JsuvIgU1bYZ
    78KhxExSrM/REAoGfWv0kuKtablfkSqnvO1nzxzr4MSOwXao7M2Lw7fFnuUVsbjO
    vXuSa93Fut/kwtvOdDB3uAkTrICV1plEAehfyaflg7YCSMPsMO+n5u3CqUs0evU=
    =n68h
    -----END PGP SIGNATURE-----
     
    Quintus, May 12, 2011
    #1
    1. Advertisements

  2. RedCloth adds -Werror, see

    https://github.com/jgarber/redcloth/blob/master/tasks/compile.rake#L33
    It seems your environment has changed in some other way. Perhaps GCC
    has been upgraded?
     
    Nikolai Weibull, May 12, 2011
    #2
    1. Advertisements

  3. Quintus

    Quintus Guest

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Am 12.05.2011 13:27, schrieb Nikolai Weibull:
    You're right, that's odd. Then it's a bug in RedCloth, as it's obviously
    supposed to build without warnings. I'll report this to the RedCloth
    team. Thanks.
    Indeed, last friday I upgraded several things. I'm not sure wheather or
    not GCC has been affected, but at least it's possible. Thanks again.

    Vale,
    Marvin
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.11 (GNU/Linux)
    Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

    iQEcBAEBAgAGBQJNzD+0AAoJELh1XLHFkqhai9QIAJSoSd+iGo/3QmZzVGc8Espk
    M5/jo+AaO68MGdLPTS/VlP6G0Y38IDiFEVdLNXx6w3Cnrtivn2EjufhHzGFFFfjB
    9Mn3deAF5m21UFdR2ohnqpJLVdfWdCmNcJESVLcwRnWa4R8rrvMtlvEDbYG9DgRY
    NFJnRAfTNvZ0RYqE/UKHthycLrTklFhlSAV8xHkaCjEV+BF1Yu8pNvzaPOSLEylC
    KXfdAQu+68UQuzTC4S4Tvi1vOJupIQK27ewwC26pMOYTaoewSuhtntTprp1XvA6e
    mjDWxeBCNx5NXdH0LaNS4GWx77GlV7e1JTtHCljh/s0JSkMZO1WLOtGyl9T6u4s=
    =ty9t
    -----END PGP SIGNATURE-----
     
    Quintus, May 12, 2011
    #3
  4. Quintus

    Ryan Davis Guest

    Can we stop with the knee-jerk reaction to blame rubygems for everything =
    including the national deficit?

    Rubygems calls make/rake/whatever. That's it.
     
    Ryan Davis, May 12, 2011
    #4
  5. including the national deficit?
    Was this really necessary? Make the output clearer instead of
    complaining that people don=E2=80=99t understand it.
     
    Nikolai Weibull, May 12, 2011
    #5
  6. Quintus

    Ryan Davis Guest

     
    Ryan Davis, May 13, 2011
    #6
  7.  
    Nikolai Weibull, May 13, 2011
    #7
  8. Quintus

    Luis Lavena Guest

    The problem is not RubyGems actually, but that RedCloth turns -Werror
    so warnings are treated as errors and 'make' interpret GCC exit code
    as error, not success.

    If you see the output of the gcc part:

    ragel/redcloth_inline.c.rl:99:9: error: variable ‘attr_regs’ set but
    not
    used [-Werror=unused-but-set-variable]
    cc1: all warnings being treated as errors
    make: *** [redcloth_inline.o] Error 1

    That is not RubyGems, that is gcc output of make running. Has nothing
    to do with make the output cleaner.

    RubyGems takes the error of Make and tells you "there was an error
    with compilation of extension". RubyGems can't guess or determine what
    failed to provide a better error for you, that will be overly
    complicated.

    As OP said, there must be a change in GCC version or even Ruby version
    that could have been the root of this issue.
     
    Luis Lavena, May 13, 2011
    #8
  9.  
    Nikolai Weibull, May 13, 2011
    #9
  10. Quintus

    Luis Lavena Guest

    Can you open a feature request for that?

    http://rubyforge.org/tracker/?atid=578&group_id=126&func=browse

    Even better if a fork/pull request is done at GitHub:

    http://github.com/rubygems/rubygems

    I think is not that hard to implement and for sure can serve better to
    the user.
    Well, some of your answers do not show up in my ruby-talk copy of this
    thread, so seems is not your fault been misunderstood.
     
    Luis Lavena, May 13, 2011
    #10
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.