From owner-svn-ports-all@FreeBSD.ORG Tue Apr 7 18:55:53 2015 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CD8162EB; Tue, 7 Apr 2015 18:55:53 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B70001B8; Tue, 7 Apr 2015 18:55:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t37ItrmM089231; Tue, 7 Apr 2015 18:55:53 GMT (envelope-from swills@FreeBSD.org) Received: (from swills@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t37ItqGj089227; Tue, 7 Apr 2015 18:55:52 GMT (envelope-from swills@FreeBSD.org) Message-Id: <201504071855.t37ItqGj089227@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: swills set sender to swills@FreeBSD.org using -f From: Steve Wills Date: Tue, 7 Apr 2015 18:55:52 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r383532 - in head/science/rubygem-netcdf: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2015 18:55:53 -0000 Author: swills Date: Tue Apr 7 18:55:52 2015 New Revision: 383532 URL: https://svnweb.freebsd.org/changeset/ports/383532 Log: science/rubygem-netcdf: fix build with newer ruby-gems Modified: head/science/rubygem-netcdf/Makefile head/science/rubygem-netcdf/files/patch-extconf.rb (contents, props changed) Modified: head/science/rubygem-netcdf/Makefile ============================================================================== --- head/science/rubygem-netcdf/Makefile Tue Apr 7 18:36:33 2015 (r383531) +++ head/science/rubygem-netcdf/Makefile Tue Apr 7 18:55:52 2015 (r383532) @@ -3,7 +3,7 @@ PORTNAME= netcdf PORTVERSION= 0.6.6.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= science rubygems MASTER_SITES= RG DISTNAME= ruby-${PORTNAME}-${PORTVERSION} @@ -21,6 +21,4 @@ USE_RUBYGEMS= yes GEM_NAME= ${DISTNAME} RUBYGEM_AUTOPLIST= yes -BROKEN= Does not build with new devel/ruby-gems - .include Modified: head/science/rubygem-netcdf/files/patch-extconf.rb ============================================================================== --- head/science/rubygem-netcdf/files/patch-extconf.rb Tue Apr 7 18:36:33 2015 (r383531) +++ head/science/rubygem-netcdf/files/patch-extconf.rb Tue Apr 7 18:55:52 2015 (r383532) @@ -1,12 +1,231 @@ ---- extconf.rb.orig Thu Jun 23 09:20:15 2005 -+++ extconf.rb Tue Jan 17 13:36:39 2006 -@@ -105,9 +105,6 @@ +--- extconf.rb.orig 2015-02-16 19:09:00.954071000 +0000 ++++ extconf.rb 2015-02-16 19:10:17.025178000 +0000 +@@ -1,14 +1,30 @@ +-require "rubygems" unless defined?(Gem) + require "mkmf" ++require "rubygems" unless defined?(Gem) + +-hoge = Gem::GemPathSearcher.new.find("narray") +-narray_fullname = hoge.full_name +-narray_installpath = hoge.installation_path +-narray_include = "#{narray_installpath}/gems/#{narray_fullname}/" +-narray_lib = "#{narray_installpath}/gems/#{narray_fullname}/" ++ar = ARGV.grep( /^--with-netcdf-version=/ ) ++if ar.length > 0 ++ ncversion = ar[0].sub(/^--with-netcdf-version=/,"") ++else ++ ncversion = nil ++end + +-dir_config('narray',narray_include,narray_lib) +-dir_config('netcdf','/usr/local') ++if Gem.respond_to?(:find_files) ++ require "rbconfig" ++ so = RbConfig::CONFIG["DLEXT"] ++ narray_include = File.expand_path(File.dirname(Gem.find_files("narray.h")[0])) ++ narray_lib = File.expand_path(File.dirname(Gem.find_files("narray." + so)[0])) ++else ++ gem_home=(`gem environment GEM_HOME`).chomp ++ narray_dir = Dir.glob("#{gem_home}/gems/narray-*").sort[-1] ++ if narray_dir ++ narray_include = narray_lib = narray_dir ++ else ++ narray_include = narray_lib = [ $sitearchdir, $vendorarchdir] ++ end ++end ++dir_config('narray', narray_include, narray_lib) ++ ++dir_config('netcdf', '/usr/local') + + if ( ! ( have_header("narray.h") && have_header("narray_config.h") ) ) then + print < 4.2.1 + else +- print <<-EOS +- ** Message ** Compiling with OPeNDAP/DODS-enabled NetCDF library. +- +- This is because the command opendap-config is found in your system. +- If you want to use the ordinary (non-DODS) version of NetCDF, +- run extconf.rb with option --disable-opendap. +- ^^^^^^^^^^^^^^^^^ +- EOS ++ ncversion = "3.0.0" # assume version 3 (only for compilation) ++ # For compilation, there is no difference among subversions of netcdf 3 + end ++end + +- $CFLAGS += ' '+cflags +- $LOCAL_LIBS += ' ' + libs ++ncver0 = ncversion[0..0] # "3" or "4" ++ncver = ncversion.gsub(/\./,'') ++unless /^\d\d\d$/ =~ ncver # 3 digits ++ raise("Invalid netcdf version: #{ncversion}. Use --with-netcdf-version=") ++end ++$CFLAGS += ' -DNCVER='+ncver + +- # non portable treatments: should be improved (by Horinouchi) +- CONFIG['LDSHARED'].sub!(/gcc/,'g++') +- $LIBS.sub!(/-lc\s/,'') ; $LIBS.sub!(/-lc$/,'') +- print <<-EOS +- ** Warning ** non-portable treatments are made, +- which was sucessfull redhat linux 9: +- * gcc was replaced with g++ in CONFIG['LDSHARED'] +- * -lc library was removed if in $LIBS +- +- EOS +- # p '@@@' +- # ary = [] +- # CONFIG.each{|k,v| ary.push([k,v])} +- # ary.sort.each{|x| p x} +-else ++case ncver0 ++when "4" + if xsystem("nc-config --libs") # for NetCDF 4 + cflags = `nc-config --cflags`.gsub(/\n/, " ") + libs = `nc-config --libs`.gsub(/\n/, " ") +@@ -91,23 +67,82 @@ + $CFLAGS += ' ' + cflags + $LOCAL_LIBS += ' ' + libs + end +- if ( ! ( have_header("netcdf.h") && have_library("netcdf") ) )then +- print <<-EOS +- ** configure error ** +- Header netcdf.h or the compiled netcdf library is not found. +- If you have the library installed under /netcdfdir (that is, netcdf.h is +- in /netcdfdir/include and the library in /netcdfdir/lib/), +- try the following: ++when "3" ++ # for NetCDF 3, which needs external libraries for OpenDAP ++ if xsystem("ncdap-config --libs") ++ libncdods = "nc-dap" ++ cflags = `ncdap-config --cflags`.gsub(/\n/, " ") ++ libs = `ncdap-config --libs`.gsub(/\n/, " ") ++ prefix_dods = `ncdap-config --prefix`.gsub(/\n/, "") ++ elsif xsystem("opendap-config --libs") ++ libncdods = "nc-dods" ++ cflags = `opendap-config --cflags`.gsub(/\n/, " ") ++ libs = `opendap-config --libs-nc`.gsub(/\n/, " ") ++ prefix_dods = `opendap-config --prefix`.gsub(/\n/, "") ++ end ++ if (enable_config('opendap',true) && ( xsystem("opendap-config --libs") || ++ xsystem("ncdap-config --libs") ) ) ++ ++ dir_config(libncdods,prefix_dods) + +- % ruby extconf.rb --with-netcdf-dir=/netcdfdir ++ if (!have_library(libncdods)) ++ print <<-EOS ++ ** ERROR ** Library not found: nc-dods (OPeNDAP/DODS-enabled NetCDF lib) ++ Install it, or run extconf.rb with option --disable-opendap. ++ ^^^^^^^^^^^^^^^^^ ++ EOS ++ exit(-1) ++ else ++ print <<-EOS ++ ** Message ** Compiling with OPeNDAP/DODS-enabled NetCDF library. ++ ++ This is because the command opendap-config is found in your system. ++ If you want to use the ordinary (non-DODS) version of NetCDF, ++ run extconf.rb with option --disable-opendap. ++ ^^^^^^^^^^^^^^^^^ ++ EOS ++ end ++ ++ $CFLAGS += ' '+cflags ++ $LOCAL_LIBS += ' ' + libs ++ ++ # non portable treatments: should be improved (by Horinouchi) ++ CONFIG['LDSHARED'].sub!(/gcc/,'g++') ++ $LIBS.sub!(/-lc\s/,'') ; $LIBS.sub!(/-lc$/,'') ++ print <<-EOS ++ ** Warning ** non-portable treatments are made, ++ which was sucessfull redhat linux 9: ++ * gcc was replaced with g++ in CONFIG['LDSHARED'] ++ * -lc library was removed if in $LIBS + +- Alternatively, you can specify the two directory separately +- with --with-netcdf-include and --with-netcdf-lib. + EOS +- exit(-1) ++ # p '@@@' ++ # ary = [] ++ # CONFIG.each{|k,v| ary.push([k,v])} ++ # ary.sort.each{|x| p x} ++ else ++ if ( ! ( have_header("netcdf.h") && have_library("netcdf") ) )then ++ print <<-EOS ++ ** configure error ** ++ Header netcdf.h or the compiled netcdf library is not found. ++ If you have the library installed under /netcdfdir (that is, netcdf.h is ++ in /netcdfdir/include and the library in /netcdfdir/lib/), ++ try the following: ++ ++ % ruby extconf.rb --with-netcdf-dir=/netcdfdir ++ ++ Alternatively, you can specify the two directory separately ++ with --with-netcdf-include and --with-netcdf-lib. ++ EOS ++ exit(-1) ++ end + end ++else ++ raise "Netcdf version #{ncver0} is not supported" + end + ++ ++ + if /cygwin|mingw/ =~ RUBY_PLATFORM + have_library("narray") || raise("ERROR: narray library is not found") + end +@@ -128,9 +163,9 @@ newmkfl.puts("") newmkfl.puts("test: all") # insert the "test" target newmkfl.puts("\t\t@cd test && ruby test.rb && echo 'test did not fail :-p (please ignore the warnings)' && cd ..") - when /lib\/netcdf/ - line = line.chomp! + "/" - newmkfl.puts(line) ++# when /lib\/netcdf/ ++# line = line.chomp! + "/" ++# newmkfl.puts(line) else newmkfl.puts(line) end