Opened 12 years ago

Closed 11 years ago

#20373 closed defect (fixed)

subversion perl bindings fails to build on 10.6

Reported by: epic@… Owned by: danielluke (Daniel J. Luke)
Priority: Normal Milestone:
Component: ports Version: 1.8.0
Keywords: snowleopard Cc: epic@…, mike@…, nitayj@…, lloyd@…, lstoll@…, tomvons@…, bjorn@…, roddi@…, skymoo (Adam Mercer), alancse@…, flaviocruz@…
Port: subversion-perlbindings

Description

--->  Configuring p5-svn-simple
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_Users_epic_Documents_svn_mports_dports_perl_p5-svn-simple/work/SVN-Simple-0.27" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor " returned error 2
Command output: ===> Warning: SVN::Core missing or outdated.
Please manually install SVN::Core by compiling Subversion
(version 0.31.0 or above) with SWIG/Perl bindings,
and try this installation process again.
Writing Makefile for SVN::Simple::Edit

Error: The following dependencies failed to build: p5-svn-simple p5-term-readkey
Error: Status 1 encountered during processing.

After digging around a bit i tried a simple printout using the perl bindings:

perl -e 'use SVN::Core; print  "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"'

which results in the following:

Can't load '/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle' for module SVN::_Core: dlopen(/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle, 1): Symbol not found: _svn_swig_pl_thunk_config_enumerator
  Referenced from: /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle
  Expected in: dynamic lookup
 at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/SVN/Base.pm line 59
BEGIN failed--compilation aborted at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/SVN/Core.pm line 5.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

You will get simliar results by running perl with a simple

perl -e "use SVN::*"

for any of the valid submodules..

Attachments (5)

installoutput.txt (117.4 KB) - added by epic@… 12 years ago.
Verbose output of subversion-perlbindings installation
subversion-perlbinding.patch (835 bytes) - added by lloyd@… 12 years ago.
patch to swigutil_pl.c to fix warning and subsequent bind error (symbol is _svn_swig_pl_thunk_config_enumerator)
testy.txt (40.1 KB) - added by lloyd@… 12 years ago.
ouput of sudo port -dv test
clean-install.txt (29.0 KB) - added by mike@… 12 years ago.
output of sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings on 10.6 system
uninstall-clean-install.txt (151.2 KB) - added by mike@… 12 years ago.
output of sudo port -f uninstall subversion-perlbindings && sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings

Download all attachments as: .zip

Change History (48)

comment:1 Changed 12 years ago by epic@…

Oops it is _not_ 1.7.1 it is trunk and output was from rev 54083. I cannot change the ticket version it seems, hope someone can assist me.

comment:2 Changed 12 years ago by epic@…

Cc: epic@… added

Cc Me!

comment:3 Changed 12 years ago by danielluke (Daniel J. Luke)

Owner: changed from macports-tickets@… to dluke@…
Status: newassigned
Version: 1.7.11.8.0

Have you tried removing and rebuilding subversion-perlbindings?

sudo port -f uninstall subversion-perlbindings && sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings

please attach the output of the above if it still isn't working.

Changed 12 years ago by epic@…

Attachment: installoutput.txt added

Verbose output of subversion-perlbindings installation

comment:4 Changed 12 years ago by epichub (Bjørn Magnus Mathisen)

Don't know if you caught it, but i ran the line you gave me and attached the results.

comment:5 Changed 12 years ago by danielluke (Daniel J. Luke)

Summary: subversion perl bindings fails to build correctlysubversion perl bindings fails to build on 10.6

I don't see anything obvious in the build. You appear to be on 10.6, though, and I don't have access to it to investigate further, so I'll have to rely on someone with access generating and testing a patch (or will have to wait until 10.6 is released).

comment:6 Changed 12 years ago by epichub (Bjørn Magnus Mathisen)

I'll try some more, and report back if i get it to build.

comment:7 Changed 12 years ago by mike@…

Cc: mike@… added

Cc Me!

comment:8 Changed 12 years ago by nitayj@…

Cc: nitayj@… added

Cc Me!

comment:9 Changed 12 years ago by lloyd@…

Cc: lloyd@… added

Cc Me!

comment:10 Changed 12 years ago by lloyd@…

I have a fix. Core issue is I believe this warning:

In file included from /opt/local/lib/perl5/5.8.9/darwin-2level/CORE/perl.h:2275,

from subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c:24:

/opt/local/lib/perl5/5.8.9/darwin-2level/CORE/handy.h:85:1: warning: "bool" redefined In file included from /usr/include/mach-o/dyld.h:29,

from /opt/local/include/apr-1/apr_portable.h:166, from subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c:21:

/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdbool.h:36:1: warning: this is the location of the previous definition

system bool is being picked up by apr include, changing signature of the function in question: svn_swig_pl_thunk_config_enumerator

fix is simply swapping include order in swiguti_pl.c attaching a patch shortly, but here's where I'm at now:

[lth@lappro subversion-perlbindings] $ perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"' 1.6.3

Changed 12 years ago by lloyd@…

patch to swigutil_pl.c to fix warning and subsequent bind error (symbol is _svn_swig_pl_thunk_config_enumerator)

comment:11 Changed 12 years ago by danielluke (Daniel J. Luke)

Can you confirm that the perlbindings pass their tests with your patch?

comment:12 Changed 12 years ago by lloyd@…

I can confirm that git clone from svn now works :D. let me figure out how to run that test...

comment:13 Changed 12 years ago by lloyd@…

Tests run fine. Here's terse output:

[lth@lappro subversion-perlbindings] $ sudo port test ---> Computing dependencies for subversion-perlbindings ---> Testing subversion-perlbindings

Find full output attached to bug (testy.txt)

Changed 12 years ago by lloyd@…

Attachment: testy.txt added

ouput of sudo port -dv test

comment:14 Changed 12 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: assignedclosed

r55146 (added darwin 10 variant with this patch).

This is something that should get fixed upstream as well (but I don't have access, and the NDA probably keeps most people with access from reporting it there).

comment:15 Changed 12 years ago by mike@…

This doesn't seem to be fixing the problem for me... I installed macports from svn using the instructions at http://guide.macports.org/#installing.macports.subversion and configured it to use portfiles from svn. I then tried to install git-core+svn and got the following error when building p5-svn-simple:

--->  Configuring p5-svn-simple
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_mports_trunk_dports_perl_p5-svn-simple/work/SVN-Simple-0.27" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor " returned error 2
Command output: Checking if your kit is complete...
Looks good
===> Warning: SVN::Core missing or outdated.
Please manually install SVN::Core by compiling Subversion
(version 0.31.0 or above) with SWIG/Perl bindings,
and try this installation process again.
Writing Makefile for SVN::Simple::Edit

I double checked, and the darwin_10 variant of subversion-perlbindings was installed.

If I run perl command from comment #10, I get the following output:

acheron:dports mike$ perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"'
Can't load '/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle' for module SVN::_Core: dlopen(/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle, 1): Symbol not found: _svn_swig_pl_thunk_config_enumerator
  Referenced from: /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle
  Expected in: dynamic lookup
 at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/SVN/Base.pm line 59
BEGIN failed--compilation aborted at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/SVN/Core.pm line 5.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

comment:16 Changed 12 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: closedreopened

You shouldn't need to use portfiles from svn (just would have needed to do 'port sync'

Can you attach the output of

sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings ?

Changed 12 years ago by mike@…

Attachment: clean-install.txt added

output of sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings on 10.6 system

comment:17 Changed 12 years ago by mike@…

Attachment created with output of sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings on 10.6 system

comment:18 in reply to:  17 Changed 12 years ago by danielluke (Daniel J. Luke)

Replying to mike@…:

Attachment created with output of sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings on 10.6 system

Looks like you already had a (broken) version installed, so it didn't output anything useful.

Can you re-attach with:

sudo port -f uninstall subversion-perlbindings && sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings

[Alternatively, if someone else knows what is going on and has a tested patch that fixes it, I'd be happy to apply it - again I don't have access to 10.6]

comment:19 Changed 12 years ago by lloyd@…

Yikes, sorry for the confusion. I guess I should have initially submitted a complete portfile.

I don't know what is really going on here, but these steps are very interesting to me.

(uninstall previous port)

  1. sudo port uninstall subversion-perlbindings

(install port)

  1. sudo port install subversion-perlbindings

(now we're going to build it a second time while its installed)

  1. sudo port build subversion-perlbindings

(now let's test it)

  1. perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"'

(notice error!)

  1. sudo cp $(find ~/.macports/opt/local/var/macports/build/_opt_mports_trunk_dports_devel_subversion-perlbindings/work/subversion-1.6.4 -name _Core.bundle) /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle
  2. perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"'

at this point the port is installed and works fabulously!

can anyone confirm this works? can anyone explain why this works? (and this calls the necessity of my initial patch into question...)

comment:20 Changed 12 years ago by lloyd@…

here's those steps properly formatted:

1. sudo port uninstall subversion-perlbindings
2. sudo port install subversion-perlbindings
3. sudo port build subversion-perlbindings
4. perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"'
5. sudo cp $(find ~/.macports/opt/local/var/macports/build/_opt_mports_trunk_dports_devel_subversion-perlbindings/work/subversion-1.6.4 -name _Core.bundle) /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle
6. perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"'

comment:21 Changed 12 years ago by danielluke (Daniel J. Luke)

Is there perhaps an apple-provided version of a header that is conflicting (and that aren't getting seen when there's already a 'broken' version of this port installed?)

Changed 12 years ago by mike@…

Attachment: uninstall-clean-install.txt added

output of sudo port -f uninstall subversion-perlbindings && sudo port clean --all subversion-perlbindings && sudo port -dv install subversion-perlbindings

comment:22 Changed 12 years ago by mike@…

dluke, I've attached the output of a uninstal,clean,install of subversoin-perlbindings for you.

llyod, i tried your steps, but step 5 failed, I don't have a ~/.macports/opt/local/var/macports/build/_opt_mports_trunk_dports_devel_subversion-perlbindings/work/subversion-1.6.4 directory

comment:23 Changed 12 years ago by lloyd@…

ah, you're not on svn ports -- try this:

  1. sudo cp $(find ~/.macports/opt/local/var/macports/build/ -name _Core.bundle) /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle

comment:24 Changed 12 years ago by mike@…

Had to tweak that command a little to:

sudo cp $(find /opt/local/var/macports/build/ -name _Core.bundle) /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle

but it now works, the perl -e command tells me i have 1.6.4 of SVN::CORE installed.

I have no idea why :D

Going to try installing git-core+svn to see if that works

comment:25 Changed 12 years ago by mike@…

git svn rebase works...

comment:26 Changed 12 years ago by wakko@…

I got this error aswell, I'm using the svn version of macports, but I had to do: bash-3.2# sudo cp $(find /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_subversion-perlbindings/work/subversion-1.6.4 -name _Core.bundle) /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle

comment:27 Changed 12 years ago by lstoll@…

Cc: lstoll@… added

Cc Me!

comment:28 Changed 12 years ago by tomvons@…

Cc: tomvons@… added

Cc Me!

comment:29 Changed 12 years ago by bjorn@…

Cc: bjorn@… added

Cc Me!

comment:30 Changed 12 years ago by bjorn@…

Regarding the bool redefinition.

The Apple distribution of Perl have a patched version of "handy.h".

$ # Perl version found at http://opensource.apple.com/release/mac-os-x-1058/
$ cat ./perl-51.1.4/fix/handy.h.ed 
/^#ifdef __GNUG__/c
#if 1 /* always on Mac OS X */
#  include <stdbool.h>
.
w

On Darwin 10, the result can be viewed in:

/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE/handy.h
/System/Library/Perl/5.8.9/darwin-thread-multi-2level/CORE/handy.h

This is missing in the MacPorts versions of Perl (5.8 and 5.10). Could this be causing the "bool" warnings?

(I still get "Symbol not found: _svn_swig_pl_thunk_config_enumerator" after the applied subversion-perlbindings patch.)

comment:31 Changed 12 years ago by roddi@…

Cc: roddi@… added

Cc Me!

comment:32 Changed 12 years ago by mf2k (Frank Schima)

Keywords: snowleopard added
Port: p5-svn-simple added

comment:33 Changed 12 years ago by danielluke (Daniel J. Luke)

Port: subversion-perlbindings added; p5-svn-simple removed

comment:34 Changed 12 years ago by bjorn@…

Revision r56384 (disabling parallel builds) of subversion-perlbindings fixed this issue for me!

$ uname -rs
Darwin 10.0.0
$ perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO\n"'
1.6.5
$ git --version
git version 1.6.4.1

comment:35 Changed 12 years ago by danielluke (Daniel J. Luke)

I have a feeling that the darwin 10 patch might not be necessary then.

Can someone with 10.6 please try building/testing the port without the darwin 10 platform variant (you can just remove that line from the portfile and then try).

Thanks!

(Otherwise I will test it out once my copy of 10.6 arrives).

comment:36 Changed 12 years ago by skymoo (Adam Mercer)

Cc: ram@… added

Cc Me!

comment:37 Changed 12 years ago by alancse@…

Cc: alancse@… added

Cc Me!

comment:38 in reply to:  35 Changed 12 years ago by skymoo (Adam Mercer)

Replying to dluke@…:

Can someone with 10.6 please try building/testing the port without the darwin 10 platform variant (you can just remove that line from the portfile and then try).

Removed that darwin 10 variant and rebuilt, then p5-svn-simple installs without issue. Also git-core with the svn variant functions as expected.

comment:39 Changed 12 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: reopenedclosed

Patch removed and rev-bumped in r57637

comment:40 Changed 11 years ago by flaviocruz@…

Cc: flaviocruz@… added

Cc Me!

comment:41 Changed 11 years ago by flaviocruz@…

Resolution: fixed
Status: closedreopened

I have a similar problem building p5-simple-svn due to subversion-perl-bindings. I'm using OS X 10.6.

--->  Configuring subversion-perlbindings
--->  Building subversion-perlbindings
--->  Staging subversion-perlbindings into destroot
--->  Installing subversion-perlbindings @1.6.12_0
--->  Activating subversion-perlbindings @1.6.12_0
--->  Cleaning subversion-perlbindings
--->  Configuring p5-svn-simple
Error: Target org.macports.configure returned: configure failure: shell command failed
Log for p5-svn-simple is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-svn-simple/main.log
Error: The following dependencies failed to build: p5-svn-simple p5-term-readkey python26
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>
phoenix:/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_releas

On the file I have this:

:info:configure ===> Warning: SVN::Core missing or outdated.
:info:configure Please manually install SVN::Core by compiling Subversion
:info:configure (version 0.31.0 or above) with SWIG/Perl bindings,
:info:configure and try this installation process again.
:info:configure Writing Makefile for SVN::Simple::Edit
:info:configure shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-svn-simple/work/SVN-Simple-0.28" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor " returned error 2

Trying to use SVN::Core I get:

# perl -e 'use SVN::Core; print "$SVN::Core::VER_MAJOR.$SVN::Core::VER_MINOR.$SVN::Core::VER_MICRO"'
Can't find 'boot_SVN___Core' symbol in /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/SVN/_Core/_Core.bundle
 at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/SVN/Base.pm line 59
BEGIN failed--compilation aborted at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/SVN/Core.pm line 5.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

comment:42 in reply to:  41 Changed 11 years ago by danielluke (Daniel J. Luke)

Replying to flaviocruz@…:

I have a similar problem building p5-simple-svn due to subversion-perl-bindings.

you should open a new ticket with the complete build log of subversion-perlbindings and p5-svn-simple

(this bug was from before 10.6 was released).

comment:43 Changed 11 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.