LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   How to install pushpoold and dependencies Slackware 14.0 (http://www.linuxquestions.org/questions/slackware-14/how-to-install-pushpoold-and-dependencies-slackware-14-0-a-4175471244/)

gr33k 07-28-2013 05:29 PM

How to install pushpoold and dependencies Slackware 14.0
 
Hello All,

I'm trying to install pushpool (https://github.com/ArtForz/pushpool) on Slackware 14.0.

I'm running into a problem with the configure script when it's trying to detect libmemcached. I've installed a TON of different versions to no avail.

I've posted a thread here https://bitcointalk.org/index.php?topic=263736.0 to see if anyone has an answer (no replies yet), but most of their users appear to be using distro's with yum and apt-get...alas this is not an option on slackware of course.

I've installed BOTH from several source packages, and the slack packages, for memcached and libmemcached and can run memcached as a service successfully. I still get the following when trying to run configure:

Code:

~/poolproject/pushpool-tenebrix
 # ./configure --verbose                                                                                                                                                                   
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether gcc needs -traditional... no
checking whether gcc and cc understand -c and -o together... yes
checking for ranlib... ranlib
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking endian.h usability... yes
checking endian.h presence... yes
checking for endian.h... yes
checking sys/endian.h usability... no
checking sys/endian.h presence... no
checking for sys/endian.h... no
checking for event_base_new in -levent... yes
checking for pthread_create in -lpthread... yes
checking for uncompress in -lz... yes
checking for json_loads in -ljansson... yes
checking for MD5_Init in -lcrypto... yes
checking for memcached_get in -lmemcached... no
configure: error: Missing required libmemcached library

Code:

whereis libmemcached                                                                                                                                                                          [15:20:30]
libmemcached: /usr/lib/libmemcached.so /usr/lib/libmemcached.la /usr/local/lib/libmemcached.a /usr/local/lib/libmemcached.so /usr/local/lib/libmemcached.la /usr/include/libmemcached /usr/man/man3p/libmemcached.3.gz /usr/man/man3/libmemcached.3.gz /usr/share/man/man3p/libmemcached.3.gz /usr/share/man/man3/libmemcached.3.gz /usr/X11/man/man3p/libmemcached.3.gz /usr/X11/man/man3/libmemcached.3.gz

Code:

# cat /etc/ld.so.conf                                                                                                                                                                          [15:26:46]
/usr/lib
/usr/local/include
/usr/local/lib
/usr/i486-slackware-linux/lib
/usr/lib/seamonkey
/usr/local/include/mysql++

Code:

# php --version
PHP 5.4.17 (cli) (built: Jul 15 2013 23:54:59)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
# php -i | grep -i memcached                                                                                                                                                                    Additional .ini files parsed => /etc/php/memcached.ini
memcached
memcached support => enabled
libmemcached version => 1.0.15
memcached.compression_factor => 1.3 => 1.3
memcached.compression_threshold => 2000 => 2000
memcached.compression_type => fastlz => fastlz
memcached.serializer => php => php
memcached.sess_binary => 0 => 0
memcached.sess_lock_wait => 150000 => 150000
memcached.sess_locking => 1 => 1
memcached.sess_prefix => memc.sess.key. => memc.sess.key.
Registered save handlers => files user memcached memcache

I'm out of ideas on how to get this to work. Any help on where to go from here, or a walkthrough of how someone may have got pushpool successfully installed on Slackware 14, would be greatly appreciated :)

Ultimately, I want to get a coin mining pool running:

https://github.com/TheSerapher/php-mmcfe-ng

TIA,

-Gr33k-

knudfl 07-30-2013 03:10 AM

Welcome to LQ.

Pushpoold will build OK with e.g. libmemcached version 0.43 .
* But not when "libmemcached-0.43" is built on Slackware 14.
* Can't see why it behaves this way , sorry ...

The easy workaround is to use e.g. converted rpm packages.
Example : libmemcached5-0.43-2pclos2010 + libmemcached-devel-0.43-2pclos2010

About libmemcached-1.0.15 : Most Linux OS's use versions "0.31" ... "1.0.8".
( Also no luck at using libmemcached-1.0.16 on Fedora 19.)

-

Cesare 07-30-2013 03:51 AM

Your libmemcached is fine. Check your config.log, scroll back a few lines, and you'll notice that libmemcached.so was found, but the test failed because of a missing linker flag. Try to fix it by adding LIBS=-lpthread in front of the configure call, and you'll run into more autotools errors. You'll propably need to edit and fix Makefile.am and configure.ac before this will work (I don't know how to do this, sorry).

gr33k 07-30-2013 02:53 PM

Thank you :)
 
re: knudfl

I think you're on to it with the version that it supports being really old. I prefer to avoid premade install packages in fear it will break other things I have setup on this box.

re: Cesare

are you saying define it in the ./configure command like ./configure LIBS=-lpthread ?

If so do you have an example of the syntax by chance (assuming path use /usr/local/lib)?

Thank you both for your replies!!! I know this one is a hard one without having access to the server to mess around ;)

knudfl 07-30-2013 03:57 PM

Quote:

I prefer to avoid premade install packages in fear it will break other things
1) `libmemcached` is an extra package.

2) The naming like the example "libmemcached5" means you can have two
or more runtime versions installed at the same time.
No conflicts with different naming / different file names.

3) 'libmemcached-0.43~' is used in some "new" Linux OS's.
Examples : PCLinuxOS 2013.07 : "0.43" . And Ubuntu 12.04 LTS has "0.44".
Scientific Linux SL6.4 : Version 0.31 .

*** May be @Cesare is right that version 1.0.15 can be used :
If you can edit the buggy autotools files.

-

gr33k 08-08-2013 08:34 PM

I'm a n00b and didn't know that LIBS=-lpthread goes BEFORE ./configure (lesson learned!)

Thank you Both for helping me get to the bottom of this! It's driven me nuts for so long I gave up and decided to go stratum-mining only. However, I came up on a situation where I need pushpool ON slackware. I can get this working like cake on Ubuntu...but that's (almost) cheating ;p

Now I get the curl error which many people have experienced.

# LIBS=-lpthread ./configure [18:13:54]
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether gcc needs -traditional... no
checking whether gcc and cc understand -c and -o together... yes
checking for ranlib... ranlib
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking endian.h usability... yes
checking endian.h presence... yes
checking for endian.h... yes
checking sys/endian.h usability... no
checking sys/endian.h presence... no
checking for sys/endian.h... no
checking for event_base_new in -levent... yes
checking for pthread_create in -lpthread... yes
checking for uncompress in -lz... yes
checking for json_loads in -ljansson... yes
checking for MD5_Init in -lcrypto... yes
checking for memcached_get in -lmemcached... yes
checking for argp_parse in -largp... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for a Python interpreter with version >= 2.2... python
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for SQLite3 library >= 3.0.0... yes
checking for mysql_config... /usr/bin/mysql_config
checking for pg_config... no
no
./configure: line 5900: syntax error near unexpected token `,'
./configure: line 5900: `LIBCURL_CHECK_CONFIG(, 7.10.1, ,'

So I thought the fix for that would have been to install curl from source but alas - not there yet...

Any ideas on how to fix that? I have it installed for sure.

# whereis libcurl [18:33:43]
libcurl: /usr/lib/libcurl.la /usr/lib/libcurl.so /usr/lib/libcurl.a /usr/local/lib/libcurl.la /usr/local/lib/libcurl.so /usr/local/lib/libcurl.a /usr/man/man3p/libcurl.3.gz /usr/man/man3/libcurl.3.gz /usr/share/man/man3p/libcurl.3.gz /usr/share/man/man3/libcurl.3.gz /usr/X11/man/man3p/libcurl.3.gz /usr/X11/man/man3/libcurl.3.gz

EDIT - Solved for pushpool-tenebrix build:

copied libcurl.m4 into ./m4 folder in source of pushpool - did this:
Then add string "ACLOCAL_AMFLAGS = -I m4" to file Makefile.am and edit file autogen.sh - replace string "aclocal" with "aclocal -I m4". (cit.)
re ran autogen.sh

ran: LIBS=-lpthread ./configure CFLAGS="-O3"

BAM FINALLY!
Thanx again!


All times are GMT -5. The time now is 03:01 PM.