Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.1.1 /darwin/sys/proctable.rb requires ffi but gemspec does not specify it. #51

Closed
islador opened this issue Jul 1, 2016 · 5 comments

Comments

@islador
Copy link

islador commented Jul 1, 2016

Hello,

I recently updated my sys-proctable version and found that it broke my build. The issue appears to be that sys-proctable's gemspec does not specify the dependency on ffi. Which means it doesn't get installed, and thus crashes everything.

@djberg96
Copy link
Owner

djberg96 commented Jul 2, 2016

@islador I have the ffi dependency set as far as I can tell. What is the output of gem spec sys-proctable?

@islador
Copy link
Author

islador commented Jul 2, 2016

Path: /Users//.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sys-proctable-1.1.1-universal-darwin
cmd: gem spec sys-proctable | pbcopy

--- !ruby/object:Gem::Specification
name: sys-proctable
version: !ruby/object:Gem::Version
  version: 1.1.1
platform: universal-darwin
authors:
- Daniel J. Berger
autorequire: 
bindir: bin
cert_chain:
- |
  -----BEGIN CERTIFICATE-----
  MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkamJl
  cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
  MB4XDTE1MDkwMjIwNDkxOFoXDTE2MDkwMTIwNDkxOFowPzERMA8GA1UEAwwIZGpi
  ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
  bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyTkvXqRp6hLs9eoJOS
  Hmi8kRYbq9Vkf15/hMxJpotYMgJVHHWrmDcC5Dye2PbnXjTkKf266Zw0PtT9h+lI
  S3ts9HO+vaCFSMwFFZmnWJSpQ3CNw2RcHxjWkk9yF7imEM8Kz9ojhiDXzBetdV6M
  gr0lV/alUr7TNVBDngbXEfTWscyXh1qd7xZ4EcOdsDktCe5G45N/o3662tPQvJsi
  FOF0CM/KuBsa/HL1/eoEmF4B3EKIRfTHrQ3hu20Kv3RJ88QM4ec2+0dd97uX693O
  zv6981fyEg+aXLkxrkViM/tz2qR2ZE0jPhHTREPYeMEgptRkTmWSKAuLVWrJEfgl
  DtkCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEwe
  nn6bfJADmuIDiMSOzedOrL+xMB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
  bTAdBgNVHRIEFjAUgRJkamJlcmc5NkBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
  ggEBAHmNOCWoDVD75zHFueY0viwGDVP1BNGFC+yXcb7u2GlK+nEMCORqzURbYPf7
  tL+/hzmePIRz7i30UM//64GI1NLv9jl7nIwjhPpXpf7/lu2I9hOTsvwSumb5UiKC
  /sqBxI3sfj9pr79Wpv4MuikX1XPik7Ncb7NPsJPw06Lvyc3Hkg5X2XpPtLtS+Gr2
  wKJnmzb5rIPS1cmsqv0M9LPWflzfwoZ/SpnmhagP+g05p8bRNKjZSA2iImM/GyYZ
  EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
  tGSHgAmcLlkdGgan182qsE/4kKM=
  -----END CERTIFICATE-----
date: 2016-07-01 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
  name: test-unit
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
- !ruby/object:Gem::Dependency
  name: rake
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
- !ruby/object:Gem::Dependency
  name: ffi
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
  type: :runtime
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '0'
description: |2
      The sys-proctable library provides an interface for gathering information
      about processes on your system, i.e. the process table. Most major
      platforms are supported and, while different platforms may return
      different information, the external interface is identical across
      platforms.
email: djberg96@gmail.com
executables: []
extensions: []
extra_rdoc_files:
- CHANGES
- README
- MANIFEST
- doc/top.txt
files:
- CHANGES
- MANIFEST
- README
- doc/top.txt
homepage: http://github.com/djberg96/sys-proctable
licenses:
- Apache 2.0
metadata: {}
post_install_message: 
rdoc_options: []
require_paths:
- lib
- lib/darwin
required_ruby_version: !ruby/object:Gem::Requirement
  requirements:
  - - ">="
    - !ruby/object:Gem::Version
      version: '0'
required_rubygems_version: !ruby/object:Gem::Requirement
  requirements:
  - - ">="
    - !ruby/object:Gem::Version
      version: '0'
requirements: []
rubyforge_project: 
rubygems_version: 2.2.2
signing_key: 
specification_version: 4
summary: An interface for providing process table information
test_files: []
has_rdoc: 

Upon looking at this, I am even more confused. You're correct, it does list FFI as a runtime requirement. Yet when I include sys-proctable 1.1.1 in one gem, and then include that gem in another, the second gem of mine kicks an error for not having FFI. Perhaps it is my gemspec that is incorrectly specifying requirements?

@djberg96
Copy link
Owner

djberg96 commented Jul 2, 2016

So, that should match gem dependency sys-proctable then. Is it possible that it's your environment, and you were require'ing an older version of sys-proctable that did not require ffi? What's your gem env output?

@islador
Copy link
Author

islador commented Jul 2, 2016

We've solved this issue by explicitly requiring sys-proctable 1.0.0 after doing an assessment on FFI. I raised this issue after we traced your gem down as the cause. It seems we were wrong. Sorry for the trouble djberg96, thanks for the rapid response though!

@islador islador closed this as completed Jul 2, 2016
@djberg96
Copy link
Owner

djberg96 commented Jul 2, 2016

@islador No problem, glad you figured it out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants