pcp
[Top] [All Lists]

RE: [pcp] PCP build on Ubuntu Precise (kernel 3.2) - [solved]

To: "'Amer Ather'" <aather@xxxxxxxxxxx>
Subject: RE: [pcp] PCP build on Ubuntu Precise (kernel 3.2) - [solved]
From: "Ken McDonell" <kenj@xxxxxxxxxxxxxxxx>
Date: Sun, 20 Jul 2014 07:41:15 +1000
Cc: <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
Thread-index: Ac+jmYE1UKMwdVXHRKSugg2HBOBPbA==

Amer,

 

This is all a bit messy. I am not sure what youâre goal state is here, but assuming youâre OK to build and install libmicrohttpd by hand as youâve outlined, the recipe below will allow you to build new PCP packages â

 

As per your instructions, download and unpack the desired libmicrohttp src tar ball (I used 0.9.34 the same as you).ÂÂ Then

$ configure; make

$ sudo make install

and this installs libraries in /usr/local/lib/libmicrohttpd*

 

Now get rid of the old libraries, as theyâll only confuse matters â

 

$ sudo apt-get remove libmicrohttpd-dev

$ sudo apt-get remove libmicrohttpd5

 

A PCP build in src works now.

 

But Makepkgs fails with

dpkg-checkbuilddeps: Unmet build dependencies: libmicrohttpd-dev

 

So remove reference to libmicrohttpd-dev in Âdebian/control.master

 

Now Makepkgs dies silently at dh_shlibdeps step

 

[much head scatching ...]

 

edit debian/rules and add --exclude=pmwebd to the dh_shlibdeps line

 

And bingo, packages are produced by Makepkgs.

 

From: Amer Ather [mailto:aather@xxxxxxxxxxx]
Sent: Saturday, 19 July 2014 2:16 AM
To: Ken McDonell
Cc: pcp@xxxxxxxxxxx
Subject: Re: [pcp] PCP build on Ubuntu Precise (kernel 3.2)

 

Hi Ken,

 

I installed libmicrohttpd 0.9.34 from the source and then performed "configure, make, make install".  Library is installed in /usr/local/lib directory. PCP configure did not complain about the older version of libmicrohttpd after installing libmicrohttpd-0.9.34 from the source, but build continue to fail.

 

I also tried -L , as Frank suggested, in GNUmakefile for pmwebapi but it did not help. Not sure if I am using a correct syntax.  What I have tried:

#LLDLIBS = $(PCPLIB) -lmicrohttpd

LLDLIBS = $(PCPLIB) -L /usr/local/lib/libmicrohttpd.so

or

LLDLIBS = $(PCPLIB) -L /usr/local/lib/libmicrohttpd

or 

LLDLIBS = $(PCPLIB) -L /usr/local/lib/

 

Please find builddefs file that you requested.

 

Let me know if you need additional information. Thanks for looking into it.

 

Amer.

 

On Fri, Jul 18, 2014 at 1:01 AM, Ken McDonell <kenj@xxxxxxxxxxxxxxxx> wrote:

Amer, â

 

OK, on my Ubuntu Precise amd64 QA VM â

 

I did have libmicrohttpd-dev 0.4.6 installed, which fails the PCP minimum revision level, so none of the PCP webapi stuff was being built (which explains why I have not seen any errors).

 

Tried apt-get upgrade libmicrohttpd-dev

        => pulls a lot of stuff but not libc6 (2.15-0ubuntu10 before and after)

        => but libmicrohttpd-dev is still 0.4.6

 

So using Ubuntu pkgs on this platform is never going to build the PCP webapi stuff.

 

Now for your forced build with libmicrohttpd 0.9.34 â can you please send me your src/include/builddefs after configure has been run in the build?

 

And did you install libmicrohttpd from a package you built, or a make install from the source tree?

 

From: pcp-bounces@xxxxxxxxxxx [mailto:pcp-bounces@xxxxxxxxxxx] On Behalf Of Amer Ather
Sent: Friday, 18 July 2014 11:34 AM
To: pcp@xxxxxxxxxxx
Subject: [pcp] PCP build on Ubuntu Precise (kernel 3.2)

 

Ubuntu Precise repository contains an older version of PCP (3.5). Since we needed newer features, I tried building PCP version from dev branch (git clone git://git.performancecopilot.org/pcp.git dev), but it requires a newer version of libmicrohttpd. To overcome this dependency, I compiled libmicrohttpd-0.9.34 from the source but ran into pcp build errors.

 

Last time, I built from dev branch on Ubuntu Trusty (kernel 3.13) without any issue because trusty repository contains minimum version of libmicrohttpd.  If I point to Trusty repository from the Ubuntu Precise system, it downloads adding packages including newer version of libc6 and that is little risky. Is it possible to build PCP without updating libc on Ubuntu precise?

 

Build Error on Ubuntu Precise with libmicrohttpd-0.9.34:

 

# ./Makepkgs --verbose

....

" -I../../src/include -I../../src/include/pcp -o pmwebd -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L./src/libpcp/src -L./src/libpcp_pmda/src  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../src/libpcp/src -L../src/libpcp_pmda/src  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../../src/libpcp/src -L../../src/libpcp_pmda/src -pie -Wl,-z,relro -Wl,-z,now  main.o util.o pmwebapi.o pmresapi.o     -lpcp  -lmicrohttpd 

main.o: In function `mhd_respond':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/main.c:88: undefined reference to `MHD_create_response_from_buffer'

pmwebapi.o: In function `pmwebapi_notify_error':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:188: undefined reference to `MHD_create_response_from_buffer'

pmwebapi.o: In function `mhdb_fini_response':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:518: undefined reference to `MHD_create_response_from_buffer'

pmwebapi.o: In function `pmwebapi_respond_new_context':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:355: undefined reference to `MHD_create_response_from_buffer'

pmwebapi.o: In function `pmwebapi_respond':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1249: undefined reference to `MHD_basic_auth_get_username_password'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1288: undefined reference to `MHD_create_response_from_buffer'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1259: undefined reference to `MHD_create_response_from_buffer'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1272: undefined reference to `MHD_queue_basic_auth_fail_response'

pmresapi.o: In function `pmwebres_respond':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmresapi.c:144: undefined reference to `MHD_create_response_from_buffer'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmresapi.c:115: undefined reference to `MHD_create_response_from_fd_at_offset'

collect2: ld returned 1 exit status

make[3]: *** [pmwebd] Error 1

make[2]: *** [default_pcp] Error 2

make[2]: Leaving directory `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src'

make[1]: *** [default_pcp] Error 2

make[1]: Leaving directory `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8'

make: *** [build-stamp] Error 2

dpkg-buildpackage: error: debian/rules build gave error exit status 2

---

 

Also, do you recommend installing PCP on the system as deb packages or from tarball. Somehow installing from deb packages generated by the build on ubuntu precise (when using trusty repository) was causing inconsistent results.

--

Thanks,

 

Amer Ather

Cloud Performance Engineering



 

--

Thanks,

 

Amer Ather

Cloud Performance Engineering

<Prev in Thread] Current Thread [Next in Thread>