Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Compiling 13.12 with rpmbuild fails with help_plugin (gzopen64 missing)

(1/3) > >>

kirash4:
I'm trying to compile a 13.12 rpm on CentOS 6.5 (Final) x86_64 and it runs for quite some time then fails on the help_plugin. I'm going to try to gether as much information as I think is needed here, but if i miss anything, please ask:

Source file was obtained from http://www.codeblocks.org/downloads/25
System is running CentOS 6.5 (Final)
/bin/arch => x86_64
gcc -v => gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
make -v => GNU Make 3.81

- What's the problem? & - What did you do to when it happened?
After unpacking the src.rpm and issuing 'rpmbuild -bb SPECS/codeblocks.spec' the compile runs for a while then errors out while working the help_plugin:


--- Code: ---libtool: link: g++ -shared -nostdlib /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbeginS.o  .libs/help_common.o .libs/HelpConfigDialog.o .libs/help_plugin.o .libs/man2html.o .libs/MANFrame.o   -Wl,-rpath -Wl,/root/rpmbuild/BUILD/codeblocks-13.12-9501/src/sdk/.libs ../../../sdk/.libs/libcodeblocks.so -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 -lbz2 -lz -lpthread -ldl -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtfastmath.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o  -m64 -mtune=generic -Wl,--no-undefined -pthread   -pthread -Wl,-soname -Wl,libhelp_plugin.so -o .libs/libhelp_plugin.so
.libs/MANFrame.o: In function `MANFrame::GetManPage(wxString, int)':
/root/rpmbuild/BUILD/codeblocks-13.12-9501/src/plugins/contrib/help_plugin/MANFrame.cpp:360: undefined reference to `gzopen64'
collect2: ld returned 1 exit status
make[5]: *** [libhelp_plugin.la] Error 1
make[5]: Leaving directory `/root/rpmbuild/BUILD/codeblocks-13.12-9501/src/plugins/contrib/help_plugin'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/root/rpmbuild/BUILD/codeblocks-13.12-9501/src/plugins/contrib/help_plugin'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/root/rpmbuild/BUILD/codeblocks-13.12-9501/src/plugins/contrib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/rpmbuild/BUILD/codeblocks-13.12-9501/src/plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/rpmbuild/BUILD/codeblocks-13.12-9501/src'
make: *** [all-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.HGXajM (%build)
--- End code ---

- Can you reproduce it? How?
Yep, rerun rpmbuild again. Or even, manually trying to compile it (run rpmbuild -bp first, then make)

- What release of Code::Blocks are you using?
13.12

- Which was the latest release that did not have this problem?
Unknown as this is the first (and only) source install I'm trying.

POSSIBLE REASON:
It appears that the version of zlib that comes with CentOS (and Ubuntu) does not contain gzopen64(). The most recent rpm that's available is 1.2.3-29.el6 and does not appear to have any reference anywhere for a gzopen64(). Grabbing the most recent 1.2.8 version from zlib.net does have gzopen64 in it. So it appears I'll have to install a more recent version of zlib from source for the help_plugin to compile. There isn't any recent rpm for it, at least not from the official channels ...

Can the developers verify this somehow?

oBFusCATed:
Have you tried to build the latest trunk?


--- Code: ---./bootstrap
./configure
make dist

--- End code ---
Are the commands needed to produce s tar.bz2 which contains a working spec file.

kirash4:
I'll try that after this compile finishes. I updated zlib to the latest 1.2.8 version on the system (which gets rid of 1.2.3) and so far it's gone past compiling the help_plugin, so that's good. When this is done, I'll rollback zlib to the official 1.2.3 version, then try what you suggested.

Keep in mind that I'm not running configure myself, rpmbuild is doing it all. All I did was download the src.rpm, install it, then ran rpmbuild. Based on what you're suggesting, I think I have to grab the .tar.gz file and work off of that. Not sure if that will make an rpm but I guess I'll find out when I get there.

oBFusCATed:
When you have the tar.bz2 you can run rpmbuild -ta path/to/file.tar.bz2 and it should know what to do.

kirash4:
That didn't work. Let me explain:

After having installed zlib-1.2.8 as a system library, C::B did compile successfully. However, because several system utilities rely specifically on zlib 1.2.3, I started getting errors with both yum and rpm, so installing the newly compiled C::B proved fruitless. In order for yum/rpm to work, I had to rollback zlib to 1.2.3 at which point installing C::B would fail because the correct library version was no longer on the system. Well pooh ... I think the solution is to install zlib1.2.8 as an additional library (as opposed to replacing the system one) and recompiling C::B that way.

Moving on, following what you suggested above. I downloaded the .tar.gz source file, uncompressed, ran bootstrap, followed by configure. But, when I tried to compile I got this:

--- Code: ---[6] 19:25:33 <root@elysium:/usr/local/src/codeblocks-13.12> make dist
{ test ! -d "codeblocks-13.12-0" || { find "codeblocks-13.12-0" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr "codeblocks-13.12-0"; }; }
test -d "codeblocks-13.12-0" || mkdir "codeblocks-13.12-0"
 (cd src && make  top_distdir=../codeblocks-13.12-0 distdir=../codeblocks-13.12-0/src \
     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
make[1]: Entering directory `/usr/local/src/codeblocks-13.12/src'
make[1]: *** No rule to make target `exchndl.dll', needed by `distdir'.  Stop.
make[1]: Leaving directory `/usr/local/src/codeblocks-13.12/src'
make: *** [distdir] Error 1
[7] 19:26:28 <root@elysium:/usr/local/src/codeblocks-13.12>
--- End code ---

For the record, the configure command ran with no problems. When it started, it displayed these three lines at the very top:

--- Code: ---checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
--- End code ---

So it's a bit of a mystery to me why it's trying to build a windows .dll ... unless that's part of the distro building.

Navigation

[0] Message Index

[#] Next page

Go to full version