Menu

#16 Ruby gem fails with ruby 2.4.0

v1.0_(example)
closed
nobody
ruby (2)
1
2018-07-20
2017-03-01
No

Die gems der Versionen 5.8.0 und 5.9.0 (ältere nicht getestet) lassen sich unter ruby 2.4.0 nicht installieren. der Fehler lautet:
konto_check_raw_ruby.c:813:4: error: expected expression
rb_scan_args(argc,argv,"0");
^

Der komplete Output des gescheiterten builds ist angehängt.

1 Attachments

Discussion

  • Burkhard Vogel-Kreykenbohm

    Kann ich noch etwas zur Lösung beitragen/versuchen?

     
  • Burkhard Vogel-Kreykenbohm

    Wenn ich Zeile 813 in konto_ckeck_raw_ruby.c von

       rb_scan_args(argc,argv,"0");
    

    auf

       rb_scan_args(argc,argv,"0",NULL);
    

    ändere funktioniert der build wieder. Ich weiß nur nicht ob das logisch das selbe ist.

     
  • Michael Plugge

    Michael Plugge - 2017-03-08

    Hallo Burkhard,
    vielen Dank dafür; das dürfte es sein. Die Funktion hat ja keine Argumente, daher ist der NULL Pointer schon richtig am Platz. Ich hatte es mit ruby 2.3.x probiert, ohne den Fehler reproduzieren zu können, und wollte gerade auch die 2.4 Version installieren...

    In den nächsten Tagen lade ich dann die modifizierten Versionen hoch.

    Viele Grüße

    Michael

     
  • Michael Plugge

    Michael Plugge - 2017-03-13
    • status: open --> closed
     
  • Burkhard Vogel-Kreykenbohm

    Stupid stuff! The change that caused this problem has been reverted and now the NULL causes problems and need to be re-reverted... Can you please revert

       rb_scan_args(argc,argv,"0",NULL);
    

    to

       rb_scan_args(argc,argv,"0");
    

    in konto_ckeck_raw_ruby.c, line 813. Thank you!

     
  • Manuel Fittko

    Manuel Fittko - 2018-05-26

    Der Fehler tritt immernoch auf (aktuelle gem Version 6.02) und blockiert bei uns im Moment das Upgrade von Ubuntu 14.04 auf eine neuere Version. Einige Entwickler arbeiten "schon" mit 16.04 oder 18.04 und wir würden unsere Server und CI-/Docker- Infrastruktur auch gerne zeitnah upgraden.
    Kommentiert man die Zeite 813 in konto_ckeck_raw_ruby.c aus, so lässt sich das gem lokal mit den C-extensions installieren. Alle von uns benötigten funktionen funktionieren dann auch noch. Ich habe allerdings keine Ahnung von C, weiß also nicht, ob ich vielleicht irgendwas damit kaputt mache.
    Dummerweise installiert bundler die C-extensions nicht, wenn man im Gemfile ein lokales gem referenziert. Es gibt also drei Alternativen für mich:

    1. Der Fehler wird behoben und ein Patch bereitgestellt (favorisierte Lösung)
    2. Ich re-destribute das gem via github und kommentiere die Zeile aus (aber nur mit Erlaubnis)
    3. Wir verwenden andere libraries für den BIC/IBAN check (bitte nicht)

    Vielen Dank schonmal für die Antwort, Michael und danke für den Hinweis, Burkhard!

     

    Last edit: Manuel Fittko 2018-05-26
    • Michael Plugge

      Michael Plugge - 2018-05-30

      Hallo,
      ich habe jetzt (endlich einmal) eine neue Ruby-Version installiert und konnte mir so den Fehler auch ansehen. Das Problem scheint nur in der Zeile 813 vorzukommen; ich dachte, es seien noch andere Aufrufe der Funkton betroffen. Da die Funktion keine Parameter erwartet, kann man die Zeile komplett streichen; evl. übergebene Parameter werden von ruby dann trotzdem moniert.

      Ich werde in den nächsten Tagen die Version nach rubygems hochladen. Tut mir leid, daß es so lange gedauert hat, irgendwie war oft einfach keine Zeit dafür da ... :-(

      Vielen Dank auch an Burkhard für den Hinweis!

      Viele Grüße

      Michael

       
      • Manuel Fittko

        Manuel Fittko - 2018-05-30

        Hallo Michael,

        es freut mich natürlich sehr, dass Du den Patch damit nun sozusagen verifiziert hast :) Wäre toll, wenn Du das bald auf rubygems veröffentlichen könntest.

        Zur Info:
        Wir haben dennoch mal einen Fork von dem gem code von sourcefoge auf github importiert und dort beschrieben, wie der Workaround aussieht. Würde auch anbieten, dass wir das Repository als mirror auf Github lassen und ich es an CircleCi anbinde, sowie ein paar deprecation warnings beim bauen des gems behebe: https://github.com/sofatutor/konto_check

        Vielen Dank schonmal und Grüße aus Berlin,
        Manuel

         

        Last edit: Manuel Fittko 2018-05-30
  • Michael Plugge

    Michael Plugge - 2018-06-01

    Hallo,
    die Version ist jetzt als 6.02.1 nach rubygems (und sourceforge) hochgeladen; sie entspricht (bis auf die entsprechende Zeile) genau der Version 6.02.0.

    Viele Grüße

    Michael

     
  • Anonymous

    Anonymous - 2018-07-20

    Super danke für das Update! Hatte bei uns auf Ubuntu LTS 16.04.4 Machinen auch diesen Compile Fehler, blöd nur das es sich um die Server der ci-pipeline gehandelt hat. ;-)

    Jetzt tut es wieder.

     

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB