Re: Gtk2::SourceView2 - Can install, but tests crash perl

164 views
Skip to first unread message

Brian Manning

unread,
Jul 12, 2012, 6:04:01 PM7/12/12
to came...@googlegroups.com
On Wed, Jul 11, 2012 at 12:34 PM, Jeffrey Ray <jeffrey...@gmail.com> wrote:
> Hi I am trying to install Gtk2::SourceView2 on a Windows 7, 64 bit operating
> system, I've gotten pretty far but am experiencing issues with perl crashing
> without much information when trying to run the test suite. I was hoping
> that you might be able to provide some insight into the issue.
>
> I installed the bloatware package of camelbox.
>
> I downloaded the binaries and developer files for gtksourceview-2.10.0 (from
> http://ftp.gnome.org/pub/gnome/binaries/win32/gtksourceview/2.10/ ) and
> placed them inside my camelbox directory.
>
> (Upon writing this email, I also found binaries located at
> http://ftp.gnome.org/pub/gnome/binaries/win64/, should I be using these
> instead of the win32 binaries?)


No, Camelbox is compiled against 32-bit Windows libraries, 64-bit
libraries would not be used if they were installed.


> Upon running perl makefile.pl the first time, I get an error about
> missing libraries. I have updated the EXTRALIBS and LDLOADLIBS in the
> Makefile to include the necessary libs. (edited Makefile is attached)

> Upon running dmake test, I get an error dialog that pops up with this
> text:
>
> The program can’t start because zlib1.dll is missing from your computer.
> Try reinstalling the program to fix this problem.


1) I don't even get that far, I get undefined references to various
gperl_* functions.
2) zlib1.dll is already in C:\camelbox\bin, it was installed from the
gtk-support-bin lzma file. Check to see that
C:\camelbox\share\pkgslists\gtk-support-bin.txt exists on your system.
If it does, then you have a %PATH% issue that needs to be fixed so
that dmake can find the installed zlib. If it does not exist, then
something went wrong with your install.


> Next, after running dmake test again, I get this error:
>
> The program can’t start because libxml2-2.dll is missing from your computer.
> Try reinstalling the program to fix this problem.
>
>
>
> I found a binary (attached) and added libxml2-2.dll to c:\camelbox\bin


That doesn't sound right, libxml2.dll is already in C:\camelbox\bin.


> Next, after running dmake test again, I get this error:
>
> The procedure entry point g_malloc0_n could not be located in the dynamic
> link library libglib-2.0-0.dll.
>
>
>
> I assumed this means that I need a later version, and downloaded the
> binaries and dev packages for glib_2.28.8-1 from
> http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/ and extracted them
> to the camelbox folder.
>
> (One question I have is: Does this mean I need to re-install the Glib perl
> bindings now that I have newer version of Glib installed? The examples are
> still working fine, so I wasn’t sure about this. I did try after receiving
> the errors outline below, but encountered problems. I can try again and
> describe the issue if it is necessary to do so. )

This is correct, once you install new glib C libraries, you basically
need to recompile at a minimum the Perl Glib module, but I would
recompile the Perl Glib/Gtk2/Pango modules to be sure. This is most
likely the cause of your crashes, mismatches in library versions
between the C libraries and Perl XS files.

I personally think of the glib/gtk+ libraries (and their dependencies)
as a set, i.e. once you update one piece, you need to update
everything or you will have issues with missing library functions and
whatnot.

For what it's worth, if you really want to use this module, I would
compile all of the Perl modules required for Gtk2::SourceView2 from
scratch using a newer version of Strawberry, say 5.16 if it's out,
plus the latest GTK C library zipfiles. This way, you'll know for
sure that it's not an issue with library versions. In addition,
before starting, I would clean out your PATH environment variable, it
sounds like you have multiple copies of GTK libraries on your system,
which will only make your life miserable as you're trying to
troubleshoot problems.

I would not expect an updated Camelbox any time soon, I don't really
have the time right now to put something together.

My notes from building Gtk2-Perl are here:

http://code.google.com/p/camelbox/wiki/BuildCoreGtk

Thanks,

Brian

Jeffrey Ray

unread,
Jul 12, 2012, 6:30:48 PM7/12/12
to came...@googlegroups.com
Hi Brian - thank you for your reply. 


On Thursday, July 12, 2012 6:04:01 PM UTC-4, Brian Manning wrote:



1) I don't even get that far, I get undefined references to various
gperl_* functions.

I had to add C:\camelbox\lib\libGlibPerl.a C:\camelbox\lib\libGtk2Perl.a to EXTRALIBS and LDLOADLIBS to get past that.

 

> Next, after running dmake test again, I get this error:
>
> The program can’t start because libxml2-2.dll is missing from your computer.
> Try reinstalling the program to fix this problem.
>
>
>
> I found a binary (attached) and added libxml2-2.dll to c:\camelbox\bin


That doesn't sound right, libxml2.dll is already in C:\camelbox\bin.


I though it a bit weird too - as libxml2.dll was in the bin folder, however the error said that libxml2-2.dll was missing (as opposed to libxml2.dll). A quick search on google of +libxml2.dll +libxml2-2.dll turns up some posts from Ruby users running into issues not being able to find libxml2-2.dll, and the suggested solution being to copy libxml2.dll as libxml2-2.dll. 


For what it's worth, if you really want to use this module, I would
compile all of the Perl modules required for Gtk2::SourceView2 from
scratch using a newer version of Strawberry, say 5.16 if it's out,
plus the latest GTK C library zipfiles.  This way, you'll know for
sure that it's not an issue with library versions.  In addition,
before starting, I would clean out your PATH environment variable, it
sounds like you have multiple copies of GTK libraries on your system,
which will only make your life miserable as you're trying to
troubleshoot problems.


Ok, Looks like this is the direction that I am headed, but I wanted to include the responses above for anyone else coming across this thread. Thanks for the help!

Jeffrey Ray

unread,
Jul 13, 2012, 8:50:12 AM7/13/12
to came...@googlegroups.com

For what it's worth, if you really want to use this module, I would
compile all of the Perl modules required for Gtk2::SourceView2 from
scratch using a newer version of Strawberry, say 5.16 if it's out,
plus the latest GTK C library zipfiles.  This way, you'll know for
sure that it's not an issue with library versions.  In addition,
before starting, I would clean out your PATH environment variable, it
sounds like you have multiple copies of GTK libraries on your system,
which will only make your life miserable as you're trying to
troubleshoot problems.


Hi Brian, I have just a couple of quick questions related to strawberry perl installation. I'd like to keep my setup similar to what you have done in camelbox.

Should I be/can I be installing strawberry perl over my current camelbox installation, or do I need to do it in a fresh location? If I can install it over the current camelbox setup, does this mean I will need to recompile ALL of my perl bindings (MySQL, DateTime, etc?) or should they be fine to use?

When installing strawberry perl, should I be/is it ok to be using the "portable edition"? Using the zip or msi installers, it wants to put the perl binaries in a sub-folder of the install location. I.E., The perl executable ends up at the location c:\strawberry\perl\perl.exe. Running c:\myperl\relocation.pl.bat still wants to use a "perl" sub directory in whatever new location I specify. This leads me to believe that I should be using the portable edition, but would like to hear what you did to configure camelbox the way it is.

Thanks again for all the help.

Jeffrey Ray

unread,
Jul 13, 2012, 11:43:18 AM7/13/12
to came...@googlegroups.com
Sorry for the Strawberry Perl questions - I thought you were working from a Strawberry Perl installation to make camelbox, I see now that you compiled Perl from source, I'll head over to their discussion groups for these questions. Thanks.

Brian Manning

unread,
Jul 13, 2012, 12:08:11 PM7/13/12
to came...@googlegroups.com
On Fri, Jul 13, 2012 at 5:50 AM, Jeffrey Ray <jeffrey...@gmail.com> wrote:
> Should I be/can I be installing strawberry perl over my current camelbox
> installation, or do I need to do it in a fresh location? If I can install it
> over the current camelbox setup, does this mean I will need to recompile ALL
> of my perl bindings (MySQL, DateTime, etc?) or should they be fine to use?

No, if you do that, you will get library version mismatches. Any
install of Perl you do on Windows should be kept separate unless the
developers say otherwise. Also, if you have multiple installs of Perl
on your Windows host, you will need to munge your %PATH% so that they
can't see each other, otherwise you again will get library version
mismatches.

> When installing strawberry perl, should I be/is it ok to be using the
> "portable edition"? Using the zip or msi installers, it wants to put the
> perl binaries in a sub-folder of the install location. I.E., The perl
> executable ends up at the location c:\strawberry\perl\perl.exe. Running
> c:\myperl\relocation.pl.bat still wants to use a "perl" sub directory in
> whatever new location I specify. This leads me to believe that I should be
> using the portable edition, but would like to hear what you did to configure
> camelbox the way it is.

I can't answer this, as you stated in another e-mail, I compiled Perl
from scratch.

Thanks,

Brian
Reply all
Reply to author
Forward
0 new messages