Build systems can't find pkgconfig even though I have set them to install it

Asked by Ian Leath

I have been trying to release a PPA of the program SuperSlicer, but every time I try to build it, the build system responds with an error about not finding PkgConfig. I have tried setting the "pkg-config" package to install both as a build requirement and as a program requirement but nothing seems to work. What do I need to do?

My latest build log: https://launchpadlibrarian.net/555499613/buildlog_ubuntu-hirsute-amd64.superslicer_2.3.56.8-patch2_BUILDING.txt.gz

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Colin Watson
Solved:
Last query:
Last reply:
Revision history for this message
Best Colin Watson (cjwatson) said :
#1

Your most recent version in which you correctly added pkg-config to Build-Depends has a different failure:

https://launchpadlibrarian.net/555510583/buildlog_ubuntu-hirsute-amd64.superslicer_2.3.56.8-patch3_BUILDING.txt.gz

-- Could NOT find DBUS (missing: DBUS_INCLUDE_DIRS DBUS_LIBRARIES)
CMake Error at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem thread
  log locale regex chrono atomic date_time) (Required is at least version
  "1.64.0")
Call Stack (most recent call first):
  /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.18/Modules/FindBoost.cmake:2177 (find_package_handle_standard_args)
  CMakeLists.txt:291 (find_package)

This probably indicates missing build-dependencies on at least libdbus-1-dev and libboost-all-dev. It seems likely that many of the -dev packages you're currently listing in Depends should be in Build-Depends instead. You should put ${shlibs:Depends} in your Depends line so that automatically-detected library dependencies are picked up, and you should almost certainly replace your hand-written debian/rules file with something based on modern debhelper with overrides since what you have at the moment has many deficiencies (in particular it doesn't call dpkg-shlibdeps so can't take advantage of ${shlibs:Depends} for generating run-time library dependencies).

I suggest setting up sbuild (https://wiki.ubuntu.com/SimpleSbuild) or pbuilder locally so that you can run test builds in clean environments. This will be much quicker than iterating via Launchpad.

Revision history for this message
Ian Leath (meganium97) said (last edit ):
#2

Ah, thank you for the advice. This would've helped a lot in the creation process, due to the fact that the article I used (http://schneegans.github.io/lessons/2011/11/02/ppa-launchpad-cmake) is almost 10 years old at this point.

Also for the newest version build, I didn't get an email for that so I didn't know, sorry!

Revision history for this message
Colin Watson (cjwatson) said :
#3

Yes, unfortunately there's a lot of fairly dated advice floating around. "man dh" may be helpful for some examples of modernized debian/rules files.

Revision history for this message
Ian Leath (meganium97) said :
#4

Thank you. After doing everything I got it to work. There are more errors but they are completely unrelated.

Revision history for this message
Ian Leath (meganium97) said :
#5

Thanks Colin Watson, that solved my question.