1

I'm trying to build banshee from source. I ran autogen.sh and here's (some of) the output:

configure: error: Package requirements (gstreamer-0.10 >= 0.10.26
    gstreamer-base-0.10 >= 0.10.26
    gstreamer-plugins-base-0.10 >= 0.10.26
    gstreamer-controller-0.10 >= 0.10.26
    gstreamer-dataprotocol-0.10 >= 0.10.26
    gstreamer-fft-0.10 >= 0.10.26) were not met:

No package 'gstreamer-0.10' found
No package 'gstreamer-base-0.10' found
No package 'gstreamer-plugins-base-0.10' found
No package 'gstreamer-controller-0.10' found
No package 'gstreamer-dataprotocol-0.10' found
No package 'gstreamer-fft-0.10' 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 GST_CFLAGS
and GST_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Error: Could not run ./configure, which is required to configure banshee

I've already ran sudo apt-get build-dep banshee, so I have no idea how to solve this problem.

Gilad Naaman
  • 6,390
  • 15
  • 52
  • 82

2 Answers2

8

There are different types of dependencies, build time dependencies and run time dependencies. You will often need more dependencies to build a program than what you need to run it. For example, running a program may require a shared library. Building the program may however also require a header file. When you installed banshee you would typically install all the run time dependencies along with it, but not the build time dependencies. Since you're using apt-get you should investigate which packages you need to install in order to get the required build dependencies.

The error message that you received is from a program called pkg-config. It's typically used for tracking build dependencies. Some libraries may for example require different compiler flags on different systems, so pkg-config has a directory of libraries which is knows how to use. Here Banshee's build system calls pkg-config in order to find the correct flags for using the gstreamer libraries, but since the development files for gstreamer are not installed pkg-config won't know how to use them. Once the development files for a package that uses pkg-config are installed the flags can be requested by running pkg-config, for example pkg-config --cflags --libs gstreamer-0.10 would return the preprocessor, compiler and link flags for the gstreamer-0.10 library.

The files that pkg-config uses is typically named name-of-library.pc. Use your package manager to search for files such as gstreamer-0.10.pc, gstreamer-base-0.10.pc and so on for all packages that pkg-config could not find. Systems which uses apt-get usually has a tool (although not necessarily installed by default) called apt-file which can be used to query the package manager for the name of packages that supply a specific file, for example apt-file search gstreamer-0.10.pc. Many distributions such as Debian or Ubuntu also has web interfaces that supports searching for packages based on file names.

You can sometimes install the required build dependencies by running apt-get build-dep name-of-package. It will install the packages needed to build the program. However that will install the requirements for building the version of the package that your package manager distributes. The version you're building might have different dependencies, but if the requirements are the same then that should usually give you what you need.

1

Obviously, Marcus' answer is awesome, but if you want to go to the point, the answer is: sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

I will update Banshee website right now: done.

knocte
  • 16,941
  • 11
  • 79
  • 125