Bug 187652

Summary: databases/ruby-bdb: 'make configure' fails with Ruby 2.1.
Product: Ports & Packages Reporter: Yasuhiro Kimura <yasu>
Component: Individual Port(s)Assignee: Akinori MUSHA <knu>
Status: Closed FIXED    
Severity: Affects Many People CC: ports
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
ruby-bdb.make-configure.log
none
patch-databases_ruby-bdb
none
patch-databases_ruby-bdb
none
Update patch to fit current port tree. none

Description Yasuhiro Kimura freebsd_committer freebsd_triage 2014-03-17 06:10:00 UTC
	
	'make configure' fails with Ruby 2.1(lang/ruby21).
	Output log is attached below.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2014-03-17 06:10:06 UTC
Responsible Changed
From-To: freebsd-ports-bugs->knu

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Po-Chuan Hsieh freebsd_committer freebsd_triage 2014-03-30 17:48:56 UTC
Please test the patch file [1]. Thanks!

[1] http://people.freebsd.org/~sunpoet/ruby-bdb.patch

Regards,
sunpoet
Comment 3 janow49420 2014-04-16 21:16:19 UTC
I am getting this with the patch:


/usr/ports/databases/ruby-bdb/work/bdb-0.6.6/src/features.rb:882: warning: already initialized constant CONFTEST_C
/usr/ports/databases/ruby-bdb/work/bdb-0.6.6/src/features.rb:818: warning: previous definition of CONFTEST_C was here
compiling transaction.c
--- common.o ---
common.c:1573:6: warning: implicit declaration of function 'RBASIC_SET_CLASS_RAW' is invalid in C99 [-Wimplicit-function-declaration]
            RBASIC_SET_CLASS_RAW(obj, bdb_cBtree);
            ^
common.c:1638:38: error: no member named 'm_tbl' in 'struct RClass'
        if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) {
                                ~~~~~~~~~~  ^
common.c:1638:67: error: no member named 'm_tbl' in 'struct RClass'
        if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) {
                                                     ~~~~~~~~~~~~~~~~~~  ^
common.c:1642:39: error: no member named 'm_tbl' in 'struct RClass'
        if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) {
                                 ~~~~~~~~~~  ^
common.c:1642:69: error: no member named 'm_tbl' in 'struct RClass'
        if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) {
                                                      ~~~~~~~~~~~~~~~~~~~  ^
common.c:1646:42: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) {
                                    ~~~~~~~~~~  ^
common.c:1646:70: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) {
                                                         ~~~~~~~~~~~~~~~~~  ^
common.c:1650:43: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) {
                                     ~~~~~~~~~~  ^
common.c:1650:72: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) {
                                                          ~~~~~~~~~~~~~~~~~~  ^
common.c:1655:43: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) {
                                     ~~~~~~~~~~  ^
common.c:1655:72: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) {
                                                          ~~~~~~~~~~~~~~~~~~  ^
common.c:1660:45: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) {
                                       ~~~~~~~~~~  ^
common.c:1660:76: error: no member named 'm_tbl' in 'struct RClass'
        else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) {
                                                            ~~~~~~~~~~~~~~~~~~~~  ^
--- recnum.o ---
compiling recnum.c
--- common.o ---
1 warning and 12 errors generated.
*** [common.o] Error code 1

make[3]: stopped in /usr/ports/databases/ruby-bdb/work/bdb-0.6.6/src
--- recnum.o ---
recnum.c:152:13: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
    if (beg < 0) {
        ~~~ ^ ~
recnum.c:155:13: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
    if (beg < 0) {
        ~~~ ^ ~
2 warnings generated.
1 error

make[3]: stopped in /usr/ports/databases/ruby-bdb/work/bdb-0.6.6/src
*** [all] Error code 2

make[2]: stopped in /usr/ports/databases/ruby-bdb/work/bdb-0.6.6
1 error

make[2]: stopped in /usr/ports/databases/ruby-bdb/work/bdb-0.6.6
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/databases/ruby-bdb
*** Error code 1

Stop.
make: stopped in /usr/ports/databases/ruby-bdb
Comment 4 Yasuhiro Kimura freebsd_committer freebsd_triage 2014-05-15 04:20:17 UTC
I modified Sunpoet's patch as attached one. Build scceeds with Ruby 2.1
and also seems to work as far as portupgrade is concerned. So please
test and commit it if it is OK.

Regards.
Comment 5 janow49420 2014-05-15 04:53:02 UTC
On 15/05/14 12:50, Yasuhiro KIMURA wrote:
> I modified Sunpoet's patch as attached one. Build scceeds with Ruby 2.1
> and also seems to work as far as portupgrade is concerned. So please
> test and commit it if it is OK.
> 
> Regards.
> 

Seems to work for me!
Comment 6 Yasuhiro Kimura freebsd_committer freebsd_triage 2014-05-15 14:35:17 UTC
* Change substituion command so it uses RCLASS_M_TBL() macro.
* Change from ".if ${RUBY_VER} == 2.1" to '.if ${RUBY_VER} >= 2.1" for
newer ruby version in the future.
* Add LICENSE.
* Convert to "USES=tar:bzip2".
* Remove unnecessary conditionals.

So please commit attached patch instead of previous one.

Regards.
Comment 7 Yasuhiro Kimura freebsd_committer freebsd_triage 2014-06-13 00:06:04 UTC
Hello MUSHA-san,

Would you please check my patch and commit if it is OK?

Best Regards.
Comment 8 Yasuhiro Kimura freebsd_committer freebsd_triage 2014-07-16 08:22:46 UTC
Created attachment 144719 [details]
Update patch to fit current port tree.
Comment 9 Yasuhiro Kimura freebsd_committer freebsd_triage 2014-07-16 08:27:14 UTC
Hello,

Would someone commit attached patch of this PR with maintainer timeout?

Best Regards.
Comment 10 commit-hook freebsd_committer freebsd_triage 2014-07-22 15:02:55 UTC
A commit references this bug:

Author: ume
Date: Tue Jul 22 15:02:20 UTC 2014
New revision: 362546
URL: http://svnweb.freebsd.org/changeset/ports/362546

Log:
  Make it buildable with Ruby 2.1.

  PR:		187652
  Submitted by:	Yasuhiro KIMURA <yasu__at__utahime.org>
  Approved by:	knu (maintainer timeout)

Changes:
  head/databases/ruby-bdb/Makefile
Comment 11 Hajimu UMEMOTO freebsd_committer freebsd_triage 2014-07-22 15:07:20 UTC
Done.
I had same problem, and your patch fixed it for me too.
Thank you!