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 LLDLIBS = $(PCPLIB) -L /usr/local/lib/libmicrohttpd 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. 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? 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, Cloud Performance Engineering
-- Thanks, Cloud Performance Engineering |
|