On Sun, Nov 15, 2015 at 9:57 AM, Frank Groeneveld <
frank+openbsd-po...@frankgroeneveld.nl> wrote:

> On 11/15/15 18:04, Jeremy Evans wrote:
>
>> There's various ports that don't build without modifications
>> (textproc/ruby-nokogiri) or that have issues at runtime with ruby
>> 2.3.0-preview1 (www/ruby-capybara).  Hopefully these issues will be fixed
>> before the ruby 2.3.0 final release, but they aren't a bug in the port as
>> far as I know.  If you believe this is a bug in the port itself, please
>> provide a diff or at least a reason why you think that.
>>
>
> I believe this is a bug in the port, because of the error:
>
> > /usr/ports/pobj/ruby-2.3.0-preview1/bin/install: not found
>
> It seems Ruby is somehow passing the install command to the gem with the
> build path of ruby-2.3.0-preview1 prepended.


I apologize, I obviously didn't read your bug report closely enough. Yes
that is a bug in the port, and it's because the port adds a post-install
target to fix a bug, which overrides the post-install target in
Makefile.inc.

Here's a diff for Makefile.inc:

Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/ruby/Makefile.inc,v
retrieving revision 1.11
diff -u -p -r1.11 Makefile.inc
--- Makefile.inc 15 Oct 2014 02:06:35 -0000 1.11
+++ Makefile.inc 15 Nov 2015 19:06:06 -0000
@@ -28,7 +28,8 @@ SUB ?= ${MACHINE_ARCH:S/amd64/x86_64/}
 SUBST_VARS += SUB REV
 FILESDIR ?= ${.CURDIR}/../files

+FIX_RBCONFIG = sed 's/INSTALL_ARGS/-c -o ${BINOWN} -g ${BINGRP}/' < \
+ ${FILESDIR}/rbconfig_fix.rb >> \
+ ${PREFIX}/lib/ruby/${RUBYLIBREV}/${SUB}/rbconfig.rb
 post-install:
- sed 's/INSTALL_ARGS/-c -o ${BINOWN} -g ${BINGRP}/' < \
- ${FILESDIR}/rbconfig_fix.rb >> \
- ${PREFIX}/lib/ruby/${RUBYLIBREV}/${SUB}/rbconfig.rb
+ ${FIX_RBCONFIG}

Here's a new 2.3/Makefile:

# $OpenBSD: Makefile,v 1.6 2015/08/22 15:14:14 jeremy Exp $

BROKEN-mips64 = miniruby spins on rbconfig.rb

COMMENT-main = object oriented script language with threads
COMMENT-gdbm = gdbm interface for ruby
COMMENT-tk = tk interface for ruby
COMMENT-ri_docs = ri documentation files for ruby

VERSION = 2.3.0-preview1
RUBYLIBREV = 2.3
DISTNAME = ruby-${VERSION}

SHARED_LIBS = ruby23 0.0
PKGNAME-main = ruby-${VERSION}
PKGNAME-gdbm = ruby23-gdbm-${VERSION}
PKGNAME-tk = ruby23-tk-${VERSION}
PKGNAME-ri_docs = ruby23-ri_docs-${VERSION}

PKG_ARCH-ri_docs = *
WANTLIB-ri_docs = # empty

NEXTVER = 2.4
PKGSPEC-main = ruby->=${RUBYLIBREV},<${NEXTVER}

CONFIGURE_ARGS = --program-suffix=23 \
--with-soname=ruby23 \
--with-ruby-version=minor \
--with-mantype=doc \
--enable-pthread \
--enable-ipv6 \
--without-bundled-libffi \
--disable-option-checking

CONFIGURE_ENV = LIBruby23_VERSION=${LIBruby23_VERSION} \
ac_cv_prog_DOXYGEN="" \
ac_cv_prog_DOT="" \
DLDFLAGS="-L${LOCALBASE}/lib"

MAKE_ENV = DLDFLAGS="-I${LOCALBASE}/lib"

ALL_TARGET = V=1 main
INSTALL_TARGET = V=1 install-nodoc

WANTLIB-main = c crypto ffi gmp m ncurses pthread readline ssl \
util yaml z
LIB_DEPENDS-main = devel/gmp \
devel/libyaml \
devel/libffi

PSEUDO_FLAVORS= no_x11 no_ri_docs
# Do not build the RI docs on slow arches
.if ${MACHINE_ARCH:Malpha} || ${MACHINE_ARCH:Marm} || ${MACHINE_ARCH:Mhppa}
|| ${MACHINE_ARCH:Msparc} || ${MACHINE_ARCH:Mvax}
FLAVOR?= no_ri_docs
.else
FLAVOR?=
.endif

MULTI_PACKAGES = -main -gdbm

WANTLIB-gdbm = c m gdbm gmp pthread ruby23
LIB_DEPENDS-gdbm = databases/gdbm \
devel/gmp \
lang/ruby/${REV},-main>=${VERSION},<${NEXTVER}
RUN_DEPENDS-gdbm =

.if !${FLAVOR:Mno_x11}
MULTI_PACKAGES+= -tk
CONFIGURE_ARGS+= --with-tcl-include=${LOCALBASE}/include/tcl8.5 \
--with-tk-include=${LOCALBASE}/include/tk8.5 \
--with-tcllib=tcl85 \
--with-tklib=tk85 \
--with-X11-dir=${X11BASE}
WANTLIB-tk = X11 c gmp m pthread ruby23 tcl85 tk85
LIB_DEPENDS-tk = tk->=8.5,<8.6:x11/tk/8.5 \
devel/gmp \
lang/ruby/${REV},-main>=${VERSION},<${NEXTVER}
RUN_DEPENDS-tk =
.endif

.if !${FLAVOR:Mno_ri_docs}
MULTI_PACKAGES += -ri_docs
ALL_TARGET += rdoc
INSTALL_TARGET += install-doc
.endif

SUBST_VARS += RUBYLIBREV

TEST_DEPENDS = ${FULLPKGNAME-main}:${BUILD_PKGPATH}

post-extract:
rm -rf ${WRKSRC}/ext/fiddle/libffi-* ${WRKSRC}/tool/downloader.rb

pre-install:
find ${WRKSRC} -name '*.orig' -print0 | xargs -0r rm
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/ruby

post-install:
${FIX_RBCONFIG}
chmod 444 ${PREFIX}/lib/ruby/gems/*/{cache,specifications}/*.gem*

do-test:
-cd ${WRKSRC} && make test-sample
-cd ${WRKSRC} && make btest-ruby
cd ${WRKSRC} && make test-all TESTOPTS="-v -q"

.include <bsd.port.mk>


Thanks,
Jeremy

Reply via email to