Git Product home page Git Product logo

Comments (5)

go2null avatar go2null commented on August 10, 2024
$ cat Dockerfile 
FROM voidlinux/voidlinux

RUN xbps-install -Suy ruby

RUN gem install --explain rspreadsheet


$ docker build -t rspreadsheet-void $PWD
Sending build context to Docker daemon  5.632kB
Step 1/3 : FROM voidlinux/voidlinux
 ---> da7d51b57763
Step 2/3 : RUN xbps-install -Suy ruby
 ---> Running in 8d3ea0c9d6d6
[*] Updating `https://repo.voidlinux.eu/current/x86_64-repodata' ...
x86_64-repodata: [1654KB 0%] 57MB/s ETA: 00m00s
x86_64-repodata: [1654KB 10%] 292KB/s ETA: 00m08s
x86_64-repodata: [1654KB 54%] 554KB/s ETA: 00m01s
x86_64-repodata: [1654KB 88%] 559KB/s ETA: 00m00s
x86_64-repodata: 1654KB [avg rate: 635KB/s]
7 packages will be downloaded:

  glibc-2.28_3 
  gdbm-1.18.1_1 
  libffi-3.2.1_5 
  libyaml-0.2.1_1 
  libcrypto44-2.8.2_1 
  libssl46-2.8.2_1 
  ruby-2.5.3_2 
6 packages will be installed:

  gdbm-1.18.1_1 
  libffi-3.2.1_5 
  libyaml-0.2.1_1 
  libcrypto44-2.8.2_1 
  libssl46-2.8.2_1 
  ruby-2.5.3_2 
1 package will be updated:

  glibc (2.26_3 -> 2.28_3) 

Size to download:               12MB
Size required on disk:          33MB
Free space on disk:            135GB


[*] Downloading binary packages
glibc-2.28_3.x86_64.xbps: [7392KB 0%] 31MB/s ETA: 00m00s
glibc-2.28_3.x86_64.xbps: [7392KB 2%] 433KB/s ETA: 00m37s
glibc-2.28_3.x86_64.xbps: [7392KB 7%] 402KB/s ETA: 00m24s
glibc-2.28_3.x86_64.xbps: [7392KB 14%] 441KB/s ETA: 00m18s
glibc-2.28_3.x86_64.xbps: [7392KB 22%] 491KB/s ETA: 00m13s
glibc-2.28_3.x86_64.xbps: [7392KB 32%] 536KB/s ETA: 00m10s
glibc-2.28_3.x86_64.xbps: [7392KB 43%] 593KB/s ETA: 00m07s
glibc-2.28_3.x86_64.xbps: [7392KB 56%] 647KB/s ETA: 00m05s
glibc-2.28_3.x86_64.xbps: [7392KB 69%] 695KB/s ETA: 00m03s
glibc-2.28_3.x86_64.xbps: [7392KB 85%] 749KB/s ETA: 00m01s
glibc-2.28_3.x86_64.xbps: 7392KB [avg rate: 881KB/s]
glibc-2.28_3.x86_64.xbps.sig: [512B 100%] 6944KB/s ETA: 00m00s
glibc-2.28_3.x86_64.xbps.sig: 512B [avg rate: 6944KB/s]
gdbm-1.18.1_1.x86_64.xbps: [108KB 3%] 150MB/s ETA: 00m00s
gdbm-1.18.1_1.x86_64.xbps: [108KB 59%] 56KB/s ETA: 00m00s
gdbm-1.18.1_1.x86_64.xbps: 108KB [avg rate: 95KB/s]
gdbm-1.18.1_1.x86_64.xbps.sig: [512B 100%] 21MB/s ETA: 00m00s
gdbm-1.18.1_1.x86_64.xbps.sig: 512B [avg rate: 21MB/s]
libffi-3.2.1_5.x86_64.xbps: [14KB 27%] 61MB/s ETA: 00m00s
libffi-3.2.1_5.x86_64.xbps: 14KB [avg rate: 219MB/s]
libffi-3.2.1_5.x86_64.xbps.sig: [512B 100%] 6098KB/s ETA: 00m00s
libffi-3.2.1_5.x86_64.xbps.sig: 512B [avg rate: 6098KB/s]
libyaml-0.2.1_1.x86_64.xbps: [43KB 9%] 53MB/s ETA: 00m00s
libyaml-0.2.1_1.x86_64.xbps: 43KB [avg rate: 570MB/s]
libyaml-0.2.1_1.x86_64.xbps.sig: [512B 100%] 8772KB/s ETA: 00m00s
libyaml-0.2.1_1.x86_64.xbps.sig: 512B [avg rate: 8772KB/s]
libcrypto44-2.8.2_1.x86_64.xbps: [622KB 0%] 49MB/s ETA: 00m00s
libcrypto44-2.8.2_1.x86_64.xbps: [622KB 38%] 412KB/s ETA: 00m01s
libcrypto44-2.8.2_1.x86_64.xbps: [622KB 97%] 403KB/s ETA: 00m00s
libcrypto44-2.8.2_1.x86_64.xbps: 622KB [avg rate: 412KB/s]
libcrypto44-2.8.2_1.x86_64.xbps.sig: [512B 100%] 5747KB/s ETA: 00m00s
libcrypto44-2.8.2_1.x86_64.xbps.sig: 512B [avg rate: 5747KB/s]
libssl46-2.8.2_1.x86_64.xbps: [105KB 3%] 59MB/s ETA: 00m00s
libssl46-2.8.2_1.x86_64.xbps: 105KB [avg rate: 1551MB/s]
libssl46-2.8.2_1.x86_64.xbps.sig: [512B 100%] 6579KB/s ETA: 00m00s
libssl46-2.8.2_1.x86_64.xbps.sig: 512B [avg rate: 6579KB/s]
ruby-2.5.3_2.x86_64.xbps: [3774KB 0%] 50MB/s ETA: 00m00s
ruby-2.5.3_2.x86_64.xbps: [3774KB 13%] 510KB/s ETA: 00m06s
ruby-2.5.3_2.x86_64.xbps: [3774KB 29%] 575KB/s ETA: 00m04s
ruby-2.5.3_2.x86_64.xbps: [3774KB 49%] 632KB/s ETA: 00m03s
ruby-2.5.3_2.x86_64.xbps: [3774KB 72%] 692KB/s ETA: 00m01s
ruby-2.5.3_2.x86_64.xbps: [3774KB 96%] 733KB/s ETA: 00m00s
ruby-2.5.3_2.x86_64.xbps: 3774KB [avg rate: 758KB/s]
ruby-2.5.3_2.x86_64.xbps.sig: [512B 100%] 5882KB/s ETA: 00m00s
ruby-2.5.3_2.x86_64.xbps.sig: 512B [avg rate: 5882KB/s]

[*] Verifying package integrity
glibc-2.28_3: verifying RSA signature...
gdbm-1.18.1_1: verifying RSA signature...
libffi-3.2.1_5: verifying RSA signature...
libyaml-0.2.1_1: verifying RSA signature...
libcrypto44-2.8.2_1: verifying RSA signature...
libssl46-2.8.2_1: verifying RSA signature...
ruby-2.5.3_2: verifying RSA signature...

[*] Running transaction tasks
glibc-2.26_3: updating to 2.28_3 ...
glibc-2.28_3: unpacking ...
gdbm-1.18.1_1: unpacking ...
libffi-3.2.1_5: unpacking ...
libyaml-0.2.1_1: unpacking ...
libcrypto44-2.8.2_1: unpacking ...
libssl46-2.8.2_1: unpacking ...
ruby-2.5.3_2: unpacking ...

[*] Configuring unpacked packages
glibc-2.28_3: configuring ...
glibc-2.28_3: updated successfully.
gdbm-1.18.1_1: configuring ...
gdbm-1.18.1_1: installed successfully.
libffi-3.2.1_5: configuring ...
libffi-3.2.1_5: installed successfully.
libyaml-0.2.1_1: configuring ...
libyaml-0.2.1_1: installed successfully.
libcrypto44-2.8.2_1: configuring ...
libcrypto44-2.8.2_1: installed successfully.
libssl46-2.8.2_1: configuring ...
libssl46-2.8.2_1: installed successfully.
ruby-2.5.3_2: configuring ...
ruby-2.5.3_2: installed successfully.

7 downloaded, 6 installed, 1 updated, 6 configured, 0 removed.
Removing intermediate container 8d3ea0c9d6d6
 ---> 793880351289
Step 3/3 : RUN gem install --explain rspreadsheet
 ---> Running in e2156740f6ab
Gems to install:
  rubyzip-1.2.2
  andand-1.3.3
  rspreadsheet-0.4.5
Removing intermediate container e2156740f6ab
 ---> a7e45945b493
Successfully built a7e45945b493
Successfully tagged rspreadsheet-void:latest

from rspreadsheet.

go2null avatar go2null commented on August 10, 2024

gem install rspreadsheet also doesn't work on native Void Linux. (This is how I came across the issue.)

Note as well that if I clone the rspreadsheet repo and run bundle then bundle correctly identifies libxml-ruby and installs it.

from rspreadsheet.

gorn avatar gorn commented on August 10, 2024

I am not sure if I understand what you are trying to achieve (also I have no experience with docker).

The idea behind special libxml-ruby treatment was to allow systems which already have it installed natively use the system version and do not require gem version. Does Void linux contain libxml-ruby ? (If yes that the behavior is correct and gem should work). I can try to recreate the bug, by installing Void Linux. Which version is it?

from rspreadsheet.

Nitrodist avatar Nitrodist commented on August 10, 2024

This error is actually because version 0.4.5 has a bug in it, in my opinion.

I'm not completely familiar with how gemspecs dependency graphs are sourced, but I suspect that even if your code on the disk has a gemspec, that it's not being read off the disk and evaluated. I was debugging this problem by trying to debug why my Mac OS X Mojave ruby wasn't requiring libxml-ruby and verified that the code inside of the package_natively_installed?('ruby-libxml') returned false on my machine:

  def self.package_natively_installed?(pkgname)
    # if the shell fails, the system command returns nil. In that case we assume that the package is NOT installed. It might be overkill, because I am supresing the stderr as well
    (system("dpkg-query -l #{pkgname} 2>/dev/null | grep -q '^i'")==true) or  # debian based
    (system("rpm -qa 2>/dev/null | grep -q '#{pkgname}' ")==true) or          # rpm based 
    (system("pkg_info -q -e '#{pkgname}-*' >/dev/null 2>&1")==true)           # OpenBSD and alike (although OpenBSD registers the gem as a gem, so this is perhaps unnecessary
  end

Once I had moved the entire gem from rubygems (found with bundle show rspreadsheet) to a local directory and amended the Gemfile to read from there for the rspreadsheet gem, it actually did evaluate the block. When I had debug statements inside of package_natively_installed from where bundle show gave me the code, it was never evaulated.

My guess is that the gemspec is not evaluated and instead the published version from rubygems is the one that is used.

libxml-ruby dep in 0.4.4: https://rubygems.org/gems/rspreadsheet/versions/0.4.4
No libxml-ruby dep in 0.4.5: https://rubygems.org/gems/rspreadsheet/versions/0.4.5

To fix this, at least temporarily, you can either use 0.4.4 or add the dependency yourself in your Gemfile for libxml-ruby equal to 3.0:

# Keep until rspreadsheet gem dependency is fixed (https://github.com/gorn/rspreadsheet/issues/38)
gem 'libxml-ruby', '3.0'

from rspreadsheet.

gorn avatar gorn commented on August 10, 2024

I have added (c204657) explanation of this to Troubleshooting guide.

from rspreadsheet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.