On 2011-06-27, Jeremy Evans <[email protected]> wrote:
> Tested on amd64. Version 4.0.0 has a new dependency on raindrops which
> for non-GCC4 arches requires the libatomic_ops package. I don't have
> access to a non-GCC4 arch, so I'd appreciate it if someone could test
> there.
As you're aware you need to do the MODGCC3_ARCHS check *after*
.include'ing bsd.port.mk, but this is messing things up when you have
the ruby module in there as well. Although make show=BUILD_DEPENDS
appears correct, only the ruby-related packages are actually checked;
see build log below.
Unless someone has a clever idea I think the simplest way forward is to
use something like this, it does build successfully with this on arm.
# XXX only actually required for gcc2/3 arch
BUILD_DEPENDS += libatomic_ops-*:devel/boehm-gc,-atomic
<sthen@kaffir:/usr/ports/mystuff/www/ruby-raindrops:50>$ make
===> ruby-raindrops-0.7.0 depends on: ruby->=1.8,<1.9 - found
===> ruby-raindrops-0.7.0 depends on: ruby-gems->=1.3.7p0 - found
===> Verifying specs: c ruby18 m c ruby18 m
===> found c.58.3 ruby18.0.0 m.5.3
===> Checking files for ruby-raindrops-0.7.0
`/usr/ports/distfiles/raindrops-0.7.0.gem' is up to date.
>> (SHA256) raindrops-0.7.0.gem: OK
===> Extracting for ruby-raindrops-0.7.0
mkdir -p /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0
/usr/obj/ports/raindrops-0.7.0/gem-content
cd /usr/obj/ports/raindrops-0.7.0/gem-content && tar -xf
/usr/ports/distfiles/raindrops-0.7.0.gem
cd /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0 && tar -xzf
/usr/obj/ports/raindrops-0.7.0/gem-content/data.tar.gz && rm
/usr/obj/ports/raindrops-0.7.0/gem-content/data.tar.gz
gzcat /usr/obj/ports/raindrops-0.7.0/gem-content/metadata.gz >
/usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0/.metadata
rm -f /usr/obj/ports/raindrops-0.7.0/gem-content/*.gz.sig
===> Patching for ruby-raindrops-0.7.0
===> Applying OpenBSD patch patch-pkg_mk
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|$OpenBSD$
|--- pkg.mk.orig Mon Jun 27 10:49:35 2011
|+++ pkg.mk Mon Jun 27 10:49:43 2011
--------------------------
Patching file pkg.mk using Plan A...
Hunk #1 succeeded at 146.
done
===> Configuring for ruby-raindrops-0.7.0
===> Building for ruby-raindrops-0.7.0
if [ -f /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0/.metadata ]; then cd
/usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0 && gzip .metadata && mv
.metadata.gz /usr/obj/ports/raindrops-0.7.0/gem-content/metadata.gz; fi
cd /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0 && find . -type f \! -name
'*.orig' -print | pax -wz -s '/^\.\///' -f
/usr/obj/ports/raindrops-0.7.0/gem-content/data.tar.gz
cd /usr/obj/ports/raindrops-0.7.0/gem-content && tar -cf
/usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0.gem *.gz
mkdir -p /usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem
env -i
PATH='/usr/obj/ports/raindrops-0.7.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/X11R6/bin'
PREFIX='/usr/local' LOCALBASE='/usr/local' DEPBASE='/usr/local'
X11BASE='/usr/X11R6' CFLAGS='-O2 -pipe' TRUEPREFIX='/usr/local' DESTDIR=''
HOME='/raindrops-0.7.0_writes_to_HOME' ELF_TOOLCHAIN=yes COMPILER_VERSION=gcc3
PICFLAG=-fpic ASPICFLAG= BINGRP=bin BINOWN=root BINMODE=555 NONBINMODE=444
DIRMODE=755 INSTALL_COPY=-c INSTALL_STRIP=-s MANGRP=bin MANOWN=root
MANMODE=444 BSD_INSTALL_PROGRAM="install -c -s -o root -g bin -m 555"
BSD_INSTALL_SCRIPT="install -c -o root -g bin -m 555"
BSD_INSTALL_DATA="install -c -o root -g bin -m 444" BSD_INSTALL_MAN="install
-c -o root -g bin -m 444" BSD_INSTALL_PROGRAM_DIR="install -d -o root -g bin
-m 755" BSD_INSTALL_SCRIPT_DIR="install -d -o root -g bin -m 755"
BSD_INSTALL_DATA_DIR="install -d -o root -g bin -m 755"
BSD_INSTALL_MAN_DIR="install -d -o root -g bin -m 755"
HOME=/usr/obj/ports/raindrops-0.7.!
0/gem-tmp/.gem/.. GEM_HOME=/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem
/usr/local/bin/gem18 install --local --no-rdoc --no-ri --no-force --verbose
--backtrace --user-install /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0.gem
--
Installing gem raindrops-0.7.0
Using local gem
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/cache/raindrops-0.7.0.gem
WARNING: You don't have
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/../.gem/ruby/1.8/bin in your PATH,
gem executables will not run.
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.document
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.gitignore
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.manifest
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.wrongdoc.yml
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/COPYING
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ChangeLog
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/GIT-VERSION-FILE
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/GIT-VERSION-GEN
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/GNUmakefile
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/Gemfile
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/LATEST
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/LICENSE
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/NEWS
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/README
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/Rakefile
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/TODO
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/linux-listener-stats.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/middleware.ru
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/watcher.ru
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/watcher_demo.ru
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/zbatery.conf.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/extconf.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/linux_inet_diag.c
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/linux_tcp_info.c
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/my_fileno.h
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/raindrops.c
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/raindrops_atomic.h
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/aggregate.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/aggregate/last_data_recv.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/aggregate/pmq.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/last_data_recv.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/linux.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/middleware.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/middleware/proxy.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/struct.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/watcher.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/pkg.mk
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/raindrops.gemspec
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/setup.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/ipv6_enabled.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/rack_unicorn.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_aggregate_pmq.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_inet_diag_socket.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_last_data_recv_unicorn.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_all_tcp_listen_stats.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_all_tcp_listen_stats_leak.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_ipv6.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_middleware.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_tcp_info.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_middleware.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_middleware_unicorn.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_middleware_unicorn_ipv6.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_raindrops.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_raindrops_gc.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_struct.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_watcher.rb
Building native extensions. This could take a while...
ERROR: Error installing /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0.gem:
ERROR: Failed to build gem native extension.
/usr/local/bin/ruby18 extconf.rb
checking for mmap() in sys/mman.h... yes
checking for munmap() in sys/mman.h... yes
checking for mremap() in sys/mman.h... no
checking for getpagesize() in unistd.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_thread_io_blocking_region()... no
checking for GCC 4+ atomic builtins... no
checking for atomic_ops.h... no
libatomic_ops is required if GCC 4+ is not used.
See http://www.hpl.hp.com/research/linux/atomic_ops/
Users of Debian-based distros may run:
apt-get install libatomic-ops-dev
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby18
--with-atomic_ops-dir
--without-atomic_ops-dir
--with-atomic_ops-include
--without-atomic_ops-include=${atomic_ops-dir}/include
--with-atomic_ops-lib
--without-atomic_ops-lib=${atomic_ops-dir}/lib
Gem files will remain installed in
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0 for
inspection.
Results logged to
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/gem_make.out
*** Error code 1
Stop in /usr/ports/mystuff/www/ruby-raindrops (line 338 of
/usr/ports/lang/ruby/ruby.port.mk).
*** Error code 1