ravinet / mahimahi

Web performance measurement toolkit
GNU General Public License v3.0
240 stars 128 forks source link

Manual install using the configure-make route fails due to package conflict #124

Closed shivariyer closed 6 years ago

shivariyer commented 6 years ago

I use Ubuntu 18.04. I attempted to install mahimahi first the apt-add-repository route, but that failed because of lack of Release file. Using the "allow-insecure=yes" option on the sources.list file didn't work, so then I decided to do a manual install from sources but that also failed because of package conflict. I ran "./configure" repeatedly as I kept installing dependencies (protobuf compiler, libssl, libxcb) as needed until this happened.

...
checking for protobuf... yes
checking for libssl... yes
checking for libapr1... yes
checking for XCB... yes
checking for XCBPRESENT... yes
checking for PANGOCAIRO... no
configure: error: Package requirements (pangocairo) were not met:

No package 'pangocairo' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables PANGOCAIRO_CFLAGS
and PANGOCAIRO_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

To address this, I attempted to install libpango1.0-dev and libcairo2-dev, which led to this.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libpango1.0-dev : Depends: libcairo2-dev (>= 1.12.10) but it is not going to be installed
                   Depends: libfontconfig1-dev (>= 2.10.91) but it is not going to be installed
                   Depends: libxft-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

It turns out finally that the libfontconfig1 version was to blame. This is what happened when I tried to install libfontconfig1-dev.

The following packages have unmet dependencies:
 libfontconfig1-dev : Depends: libfontconfig1 (= 2.12.6-0ubuntu2) but 2.13.0-5 is to be installed
E: Unable to correct problems, you have held broken packages.

The only available version in my system of the libfontconfig1 package was 2.13.0-5, which does not address the dependency of libfontconfig1-dev, because the latter requires libfontconfig1 version 2.12.6-0.

This seems like an Ubuntu problem if I am not mistaken, but can something be done by the developers of mahimahi so that this issue is addressed?

I finally downloaded manually the .deb package files from the ppa and installed them using dpkg.

System details: LSB Version: core-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic

keithw commented 6 years ago

Hello,

mahimahi is already in Ubuntu 18.04. You don't need to add a PPA. Just apt install mahimahi will do it. Please let us know if this doesn't work for you for some reason.

shivariyer commented 6 years ago

Yes that works. Thanks!

I just followed the instructions on the mahimahi.mit.edu page, and that didn't mention that it was already available on the official repositories for this Ubuntu version.

shivariyer commented 6 years ago

It turns out that libfontconfig1-dev was the only offending package. In my Ubuntu 18.04, the latest version of libfontconfig1 available from the repositories is 2.13.0-5, whereas that of libfontconfig1-dev (which depends on libfontconfig1) is 2.12.6-0. The official repositories for Ubuntu 18.04 (bionic) as of this date does not have libfontconfig1-dev version 2.13.0-5, hence I had to download it from the debian package list here - https://packages.debian.org/sid/amd64/libfontconfig1-dev/download

Once I did that, everything else was a breeze - libcairo2-dev and libpango1.0-dev both installed successfully without any dependency problems and both configure and make finished successfully.

Yay!