From: nobu@... Date: 2015-06-01T09:46:27+00:00 Subject: [ruby-core:69424] [Ruby trunk - Bug #11201] pkg_config NoMethodError when finding other -config program Issue #11201 has been updated by Nobuyoshi Nakada. Thank you, does this patch work? ~~~diff diff --git i/lib/mkmf.rb w/lib/mkmf.rb index be9b06c..615e2dc 100644 --- i/lib/mkmf.rb +++ w/lib/mkmf.rb @@ -1818,11 +1818,15 @@ SRC cflags = get['cflags'] end libs = get['libs-only-l'] - ldflags = (Shellwords.shellwords(ldflags) - Shellwords.shellwords(libs)).quote.join(" ") - $CFLAGS += " " << cflags - $CXXFLAGS += " " << cflags + if cflags + $CFLAGS += " " << cflags + $CXXFLAGS += " " << cflags + end + if libs + ldflags = (Shellwords.shellwords(ldflags) - Shellwords.shellwords(libs)).quote.join(" ") + $libs += " " << libs + end $LDFLAGS = [orig_ldflags, ldflags].join(' ') - $libs += " " << libs Logging::message "package configuration for %s\n", pkg Logging::message "cflags: %s\nldflags: %s\nlibs: %s\n\n", cflags, ldflags, libs ~~~ ---------------------------------------- Bug #11201: pkg_config NoMethodError when finding other -config program https://bugs.ruby-lang.org/issues/11201#change-52696 * Author: Hans Mackowiak * Status: Feedback * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0dev (2015-05-28 trunk 50658) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- where it does work (existing package) ~~~ruby pkg_config("gtk+-x11-2.0") # => ["-pthread", "", "-lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype"] pkg_config("gtk+-x11-2.0", "version") # => "0.28" ~~~ where it does work (non-existing package) ~~~ruby pkg_config("wx-bla", "version") # => nil pkg_config("wx-bla") # => nil ~~~ where it maybe not work (other (pkg)-config program) ~~~ruby pkg_config("wx", "version") # => "3.1.0" pkg_config("wx") #either should try to return the same stuff as pkg_config("gtk+-x11-2.0") if possible, or if not return nil ~~~ ~~~ NoMethodError: undefined method `scan' for nil:NilClass from /usr/local/rvm/rubies/ruby-head/lib/ruby/2.3.0/shellwords.rb:73:in `shellsplit' from /usr/local/rvm/rubies/ruby-head/lib/ruby/2.3.0/mkmf.rb:1819:in `pkg_config' from (irb):11 from /usr/local/rvm/rubies/ruby-head/bin/irb:11:in `
' ~~~ -- https://bugs.ruby-lang.org/