Qpid
  1. Qpid
  2. QPID-4719

Problem building perl bindings from qpid 0.22 RC1 tarball

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.22
    • Fix Version/s: 0.22
    • Component/s: Perl Client
    • Labels:
      None

      Description

      Tarball http://people.apache.org/~jross/qpid-0.22-rc1/qpid-cpp-0.22-rc1.tar.gz is missing:

      bindings/qpid/perl/Makefile.PL
      bindings/qpid/perl/Makefile.PL.in
      bindings/qpid/perl/qpid.pm
      bindings/qpid/perl/lib

      which prevents the perl bindings from being built from this tarball. I presume perl-qpid-0.22-rc1.tar.gz is the new home for the perl bindings, but this doesn't build either:

      Running perl Makefile.PL from perl-qpid-0.22-rc1.tar.gz, after installing qpid-cpp-0.22-rc1.tar.gz (with automake):
      Note (probably harmless): No library found for -lqpidmessaging
      Note (probably harmless): No library found for -lqpidtypes
      Writing Makefile for cqpid_perl
      Weird... libqpidmessaging/types seems to be in /usr/lib rather than lib64 on my 64-bit system, and its linked against other libs in lib64.
      Anyway, if then run make:
      cp lib/qpid/messaging/Address.pm blib/lib/qpid/messaging/Address.pm
      cp lib/qpid/messaging/Duration.pm blib/lib/qpid/messaging/Duration.pm
      cp qpid.pm blib/lib/qpid.pm
      cp lib/qpid/messaging/codec.pm blib/lib/qpid/messaging/codec.pm
      cp lib/qpid/messaging/Message.pm blib/lib/qpid/messaging/Message.pm
      cp lib/qpid/messaging/Connection.pm blib/lib/qpid/messaging/Connection.pm
      cp lib/qpid/messaging/Sender.pm blib/lib/qpid/messaging/Sender.pm
      cp lib/qpid_messaging.pm blib/lib/qpid_messaging.pm
      cp lib/qpid/messaging/Receiver.pm blib/lib/qpid/messaging/Receiver.pm
      cp lib/qpid/messaging/Session.pm blib/lib/qpid/messaging/Session.pm
      Running Mkbootstrap for cqpid_perl ()
      chmod 644 cqpid_perl.bs
      rm -f blib/arch/auto/cqpid_perl/cqpid_perl.so
      gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic cqpid_perl.o -o blib/arch/auto/cqpid_perl/cqpid_perl.so \
      \
      gcc: cqpid_perl.o: No such file or directory
      gcc: no input files
      make: *** [blib/arch/auto/cqpid_perl/cqpid_perl.so] Error 1

        Activity

        Jimmy Jones created issue -
        Hide
        Fraser Adams added a comment -

        I've just looked in qpid-0.22/qpid/cpp/bindings/qpid/perl that I got by pulling from subversion via

        svn co https://svn.apache.org/repos/asf/qpid/branches/0.22/ qpid-0.22

        And those files are present there - I've literally just done svn update to check again and they are still there as I type.

        I'm guessing just a glitch in the tarball??

        Show
        Fraser Adams added a comment - I've just looked in qpid-0.22/qpid/cpp/bindings/qpid/perl that I got by pulling from subversion via svn co https://svn.apache.org/repos/asf/qpid/branches/0.22/ qpid-0.22 And those files are present there - I've literally just done svn update to check again and they are still there as I type. I'm guessing just a glitch in the tarball??
        Jimmy Jones made changes -
        Field Original Value New Value
        Summary Missing files from qpid 0.22 RC1 tarball Problem building perl bindings from qpid 0.22 RC1 tarball
        Jimmy Jones made changes -
        Description Tarball http://people.apache.org/~jross/qpid-0.22-rc1/qpid-cpp-0.22-rc1.tar.gz is missing:

        bindings/qpid/perl/Makefile.PL
        bindings/qpid/perl/Makefile.PL.in
        bindings/qpid/perl/qpid.pm
        bindings/qpid/perl/lib
        Tarball http://people.apache.org/~jross/qpid-0.22-rc1/qpid-cpp-0.22-rc1.tar.gz is missing:

        bindings/qpid/perl/Makefile.PL
        bindings/qpid/perl/Makefile.PL.in
        bindings/qpid/perl/qpid.pm
        bindings/qpid/perl/lib

        Now realised there is a separate tarball for perl bindings, but still have problems, see later comments...
        Darryl L. Pierce made changes -
        Assignee Darryl L. Pierce [ mcpierce ]
        Hide
        Darryl L. Pierce added a comment -

        Can you verify this is the case using "tar ztvf qpid-0.22-rc1.tar.gz | less" and search for the files in question? I'm looking at the file downloaded from here [1] I see the following files and directory:

        drwxrwxr-x jross/jross 0 2013-04-05 08:35 qpid-0.22-rc1/cpp/bindings/qpid/perl/lib/
        rw-rw-r- jross/jross 260 2012-11-27 13:08 qpid-0.22-rc1/cpp/bindings/qpid/perl/Makefile.PL
        rw-rw-r- jross/jross 613 2011-11-09 14:38 qpid-0.22-rc1/cpp/bindings/qpid/perl/Makefile.PL.in
        rw-rw-r- jross/jross 814 2013-02-01 08:52 qpid-0.22-rc1/cpp/bindings/qpid/perl/qpid.pm

        Though Makefile.PL.in should no longer be included: it's been replaced by Makefile.PL since it no longer needs to be generated.

        [1] http://people.apache.org/~jross/qpid-0.22-rc1/

        Show
        Darryl L. Pierce added a comment - Can you verify this is the case using "tar ztvf qpid-0.22-rc1.tar.gz | less" and search for the files in question? I'm looking at the file downloaded from here [1] I see the following files and directory: drwxrwxr-x jross/jross 0 2013-04-05 08:35 qpid-0.22-rc1/cpp/bindings/qpid/perl/lib/ rw-rw-r - jross/jross 260 2012-11-27 13:08 qpid-0.22-rc1/cpp/bindings/qpid/perl/Makefile.PL rw-rw-r - jross/jross 613 2011-11-09 14:38 qpid-0.22-rc1/cpp/bindings/qpid/perl/Makefile.PL.in rw-rw-r - jross/jross 814 2013-02-01 08:52 qpid-0.22-rc1/cpp/bindings/qpid/perl/qpid.pm Though Makefile.PL.in should no longer be included: it's been replaced by Makefile.PL since it no longer needs to be generated. [1] http://people.apache.org/~jross/qpid-0.22-rc1/
        Hide
        Jimmy Jones added a comment - - edited

        Sorry, I should have been clearer, my initial problem with missing files was a red herring.... the issue is:

        • Using qpid-cpp-0.22-rc1.tar.gz & perl-qpid-0.22-rc1.tar.gz I can't build the perl bindings (qpid-0.22-rc1.tar.gz is fine)
        Show
        Jimmy Jones added a comment - - edited Sorry, I should have been clearer, my initial problem with missing files was a red herring.... the issue is: Using qpid-cpp-0.22-rc1.tar.gz & perl-qpid-0.22-rc1.tar.gz I can't build the perl bindings (qpid-0.22-rc1.tar.gz is fine)
        Jimmy Jones made changes -
        Description Tarball http://people.apache.org/~jross/qpid-0.22-rc1/qpid-cpp-0.22-rc1.tar.gz is missing:

        bindings/qpid/perl/Makefile.PL
        bindings/qpid/perl/Makefile.PL.in
        bindings/qpid/perl/qpid.pm
        bindings/qpid/perl/lib

        Now realised there is a separate tarball for perl bindings, but still have problems, see later comments...
        Tarball http://people.apache.org/~jross/qpid-0.22-rc1/qpid-cpp-0.22-rc1.tar.gz is missing:

        bindings/qpid/perl/Makefile.PL
        bindings/qpid/perl/Makefile.PL.in
        bindings/qpid/perl/qpid.pm
        bindings/qpid/perl/lib

        which prevents the perl bindings from being built from this tarball. I presume perl-qpid-0.22-rc1.tar.gz is the new home for the perl bindings, but this doesn't build either:

        Jimmy Jones made changes -
        Description Tarball http://people.apache.org/~jross/qpid-0.22-rc1/qpid-cpp-0.22-rc1.tar.gz is missing:

        bindings/qpid/perl/Makefile.PL
        bindings/qpid/perl/Makefile.PL.in
        bindings/qpid/perl/qpid.pm
        bindings/qpid/perl/lib

        which prevents the perl bindings from being built from this tarball. I presume perl-qpid-0.22-rc1.tar.gz is the new home for the perl bindings, but this doesn't build either:

        Tarball http://people.apache.org/~jross/qpid-0.22-rc1/qpid-cpp-0.22-rc1.tar.gz is missing:

        bindings/qpid/perl/Makefile.PL
        bindings/qpid/perl/Makefile.PL.in
        bindings/qpid/perl/qpid.pm
        bindings/qpid/perl/lib

        which prevents the perl bindings from being built from this tarball. I presume perl-qpid-0.22-rc1.tar.gz is the new home for the perl bindings, but this doesn't build either:

        Running perl Makefile.PL from perl-qpid-0.22-rc1.tar.gz, after installing qpid-cpp-0.22-rc1.tar.gz (with automake):
        Note (probably harmless): No library found for -lqpidmessaging
        Note (probably harmless): No library found for -lqpidtypes
        Writing Makefile for cqpid_perl
        Weird... libqpidmessaging/types seems to be in /usr/lib rather than lib64 on my 64-bit system, and its linked against other libs in lib64.
        Anyway, if then run make:
        cp lib/qpid/messaging/Address.pm blib/lib/qpid/messaging/Address.pm
        cp lib/qpid/messaging/Duration.pm blib/lib/qpid/messaging/Duration.pm
        cp qpid.pm blib/lib/qpid.pm
        cp lib/qpid/messaging/codec.pm blib/lib/qpid/messaging/codec.pm
        cp lib/qpid/messaging/Message.pm blib/lib/qpid/messaging/Message.pm
        cp lib/qpid/messaging/Connection.pm blib/lib/qpid/messaging/Connection.pm
        cp lib/qpid/messaging/Sender.pm blib/lib/qpid/messaging/Sender.pm
        cp lib/qpid_messaging.pm blib/lib/qpid_messaging.pm
        cp lib/qpid/messaging/Receiver.pm blib/lib/qpid/messaging/Receiver.pm
        cp lib/qpid/messaging/Session.pm blib/lib/qpid/messaging/Session.pm
        Running Mkbootstrap for cqpid_perl ()
        chmod 644 cqpid_perl.bs
        rm -f blib/arch/auto/cqpid_perl/cqpid_perl.so
        gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic cqpid_perl.o -o blib/arch/auto/cqpid_perl/cqpid_perl.so \
        \
        gcc: cqpid_perl.o: No such file or directory
        gcc: no input files
        make: *** [blib/arch/auto/cqpid_perl/cqpid_perl.so] Error 1
        Jimmy Jones made changes -
        Comment [ Running perl Makefile.PL from perl-qpid-0.22-rc1.tar.gz, after installing qpid-cpp-0.22-rc1.tar.gz (with automake):

        Note (probably harmless): No library found for -lqpidmessaging
        Note (probably harmless): No library found for -lqpidtypes
        Writing Makefile for cqpid_perl

        Weird... libqpidmessaging/types seems to be in /usr/lib rather than lib64 on my 64-bit system, and its linked against other libs in lib64.

        Anyway, if then run make:

        cp lib/qpid/messaging/Address.pm blib/lib/qpid/messaging/Address.pm
        cp lib/qpid/messaging/Duration.pm blib/lib/qpid/messaging/Duration.pm
        cp qpid.pm blib/lib/qpid.pm
        cp lib/qpid/messaging/codec.pm blib/lib/qpid/messaging/codec.pm
        cp lib/qpid/messaging/Message.pm blib/lib/qpid/messaging/Message.pm
        cp lib/qpid/messaging/Connection.pm blib/lib/qpid/messaging/Connection.pm
        cp lib/qpid/messaging/Sender.pm blib/lib/qpid/messaging/Sender.pm
        cp lib/qpid_messaging.pm blib/lib/qpid_messaging.pm
        cp lib/qpid/messaging/Receiver.pm blib/lib/qpid/messaging/Receiver.pm
        cp lib/qpid/messaging/Session.pm blib/lib/qpid/messaging/Session.pm
        Running Mkbootstrap for cqpid_perl ()
        chmod 644 cqpid_perl.bs
        rm -f blib/arch/auto/cqpid_perl/cqpid_perl.so
        gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic cqpid_perl.o -o blib/arch/auto/cqpid_perl/cqpid_perl.so \
        \

        gcc: cqpid_perl.o: No such file or directory
        gcc: no input files
        make: *** [blib/arch/auto/cqpid_perl/cqpid_perl.so] Error 1
        ]
        Jimmy Jones made changes -
        Comment [ bin/release.sh controls what files go in, looks as if the perl bindings now go into perl-qpid-0.22-rc1.tar.gz, however haven't got that working yet, will try on a fresh RHEL6 VM... ]
        Jimmy Jones made changes -
        Comment [ This might be a separate issue, but if I take the full qpid-0.22-rc1.tar.gz, run bootstrap, configure, make, make install in cpp, the perl examples don't work:

        [jimmy@localhost perl]$ ./hello_world.pl
        Can't load '/usr/lib64/perl5/auto/cqpid_perl/cqpid_perl.so' for module cqpid_perl: /usr/lib64/perl5/auto/cqpid_perl/cqpid_perl.so: undefined symbol: _ZN4qpid9messaging8Duration6SECONDE at /usr/lib64/perl5/DynaLoader.pm line 200.
         at /usr/lib64/perl5/cqpid_perl.pm line 11
        Compilation failed in require at /usr/lib64/perl5/qpid_messaging.pm line 22.
        BEGIN failed--compilation aborted at /usr/lib64/perl5/qpid_messaging.pm line 22.
        Compilation failed in require at /usr/lib64/perl5/qpid.pm line 20.
        BEGIN failed--compilation aborted at /usr/lib64/perl5/qpid.pm line 20.
        Compilation failed in require at ./hello_world.pl line 24.
        BEGIN failed--compilation aborted at ./hello_world.pl line 24.

        Looks like cqpid_perl.so has not been linked against the qpid libraries:

        [jimmy@localhost perl]$ ldd /usr/lib64/perl5/auto/cqpid_perl/cqpid_perl.so
        linux-vdso.so.1 => (0x00007fffecf95000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5e4b10a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f5e4ad78000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003a05c00000)
        ]
        Hide
        Darryl L. Pierce added a comment -

        Okay, I see where my confusion is. I'm looking solely at the larger qpid-0.22 tarball and not the qpid-cpp-0.22 tarball. In the former all files are present and accounted for, in the latter they're not.

        Show
        Darryl L. Pierce added a comment - Okay, I see where my confusion is. I'm looking solely at the larger qpid-0.22 tarball and not the qpid-cpp-0.22 tarball. In the former all files are present and accounted for, in the latter they're not.
        Hide
        Darryl L. Pierce added a comment -

        This should be fixed now.

        NOTE: Makefile.PL.in is deprecated and should not be used.

        Show
        Darryl L. Pierce added a comment - This should be fixed now. NOTE: Makefile.PL.in is deprecated and should not be used.
        Darryl L. Pierce made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 0.22 [ 12324272 ]
        Resolution Fixed [ 1 ]
        Hide
        Darryl L. Pierce added a comment -
        Show
        Darryl L. Pierce added a comment - This commit can be found: http://svn.apache.org/viewvc?view=revision&revision=1477096
        Hide
        Justin Ross added a comment -

        Reviewed by me. Approved for 0.22.

        Show
        Justin Ross added a comment - Reviewed by me. Approved for 0.22.
        Darryl L. Pierce made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Darryl L. Pierce made changes -
        Resolution Fixed [ 1 ]
        Status Closed [ 6 ] Reopened [ 4 ]
        Jimmy Jones made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Darryl L. Pierce
            Reporter:
            Jimmy Jones
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development