Jump to content

Get Involved/development/Install the dependencies: Difference between revisions

From KDE Community Wiki
Nmariusp (talk | contribs)
Nmariusp (talk | contribs)
Fix CMake Error: Missing executable
Line 43: Line 43:


== Fix CMake Error ==
== Fix CMake Error ==
=== Missing pkgconfig or cmake ===


If the CMake error looks like:
If the CMake error looks like:
Line 53: Line 55:
The error here is that CMake could not find the pkgconfig named "gi-docgen" (most probably a file with the extension".pc") or the CMake file (most probably a file with the extension".cmake") that contains "gi-docgen" case insensitively in name.
The error here is that CMake could not find the pkgconfig named "gi-docgen" (most probably a file with the extension".pc") or the CMake file (most probably a file with the extension".cmake") that contains "gi-docgen" case insensitively in name.


=== Fedora ===
==== Fedora ====


* Maybe we can find the correct package name.
* Maybe we can find the correct package name.
Line 98: Line 100:
#Provide    : pkgconfig(gi-docgen) = 2023.1
#Provide    : pkgconfig(gi-docgen) = 2023.1
sudo dnf install 'pkgconfig(gi-docgen)'
sudo dnf install 'pkgconfig(gi-docgen)'
</pre>
=== Missing executable ===
If the CMake error looks like:
<pre>
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Sass (missing: Sass_EXECUTABLE)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindSass.cmake:48 (find_package_handle_standard_args)
  CMakeLists.txt:31 (find_package)
</pre>
The error here is that CMake could not find the executable named "sass" (most probably a file "/usr/bin/sass").
==== Fedora ====
* DNF knows which rpm contains a given executable.
<pre>
dnf provides sass
# Returns:
#rubygem-sass-3.7.4-7.fc39.noarch : A powerful but elegant CSS compiler that makes CSS fun again
#Repo        : fedora
#Matched from:
#Filename    : /usr/bin/sass
sudo dnf install rubygem-sass
</pre>
</pre>

Revision as of 16:41, 27 October 2023

If you have any trouble getting things to build due to missing 3rd-party package dependencies, read on to learn what to do. If you need help, see https://community.kde.org/Get_Involved#Contacting_The_Community.

How to install the dependencies of one package

KDE neon, Debian, Ubuntu, Kubuntu

All the build packages known by the package you want to build can be installed by running:

sudo apt build-dep <package you want to build>

For example, to install the build dependencies for Dolphin, run:

sudo apt build-dep dolphin

Fedora

If dependencies are missing for a specific RPM package, you can run:

sudo dnf builddep <name_of_rpm_package>

For example, to install the build dependencies for Dolphin, run:

sudo dnf builddep dolphin

openSUSE

Generally you can install the required -devel packages that are needed to build some KDE software from source by using zypper (as root, or by using sudo), e.g. to install the -devel packages required to build dolphin from source:

# zypper --plus-content repo-source source-install --build-deps-only dolphin

replace dolphin with some other package name, e.g. to build ktexteditor from source:

# zypper --plus-content repo-source source-install --build-deps-only ktexteditor

Note that the --plus-content option in the above commands means you don't need to have the source repository enabled all the time, --plus-content will make zypper temporarily enable it to get the info it needs.

openSUSE (and most other RPM-based Linux distributions) support cmake() BuildRequires, which means you can install a development package like so:

# zypper install 'cmake(KF5KIO)'

the part between the parenthesis KF5KIO is going to be in the error message that CMake will print in the terminal if you try to build something that requires e.g. KIO if KIO development headers aren't installed.

Any other dependencies can be figured out and installed as you continue building the modules one by one.

Fix CMake Error

Missing pkgconfig or cmake

If the CMake error looks like:

Build-time dependency gi-docgen found: NO (tried pkgconfig and cmake)

docs/api/meson.build:5:15: ERROR: Dependency "gi-docgen" not found, tried pkgconfig and cmake

The error here is that CMake could not find the pkgconfig named "gi-docgen" (most probably a file with the extension".pc") or the CMake file (most probably a file with the extension".cmake") that contains "gi-docgen" case insensitively in name.

Fedora

  • Maybe we can find the correct package name.
# Is there an rpm package with the name "gi-docgen" installed?
rpm -qa gi-docgen
# It is not installed.

# Is there in the package repositories an rpm with name containing "gi-docgen"?
dnf search gi-docgen
# Returns:
# Last metadata expiration check: ...
#============================================================================== Name #Exactly Matched: gi-docgen #==============================================================================
#gi-docgen.noarch : Documentation tool for GObject-based libraries
#============================================================================= Name & #Summary Matched: gi-docgen #=============================================================================
#gi-docgen-doc.noarch : Documentation for gi-docgen
#gi-docgen-fonts.noarch : Metapackage providing fonts for gi-docgen output

# Install the rpm gi-docgen
dnf install gi-docgen
  • Look for the .pc or .cmake file in the content of all rpm files in all of the enabled package repositories.
dnf repoquery -l gi-docgen
# Returns:
#/usr/bin/gi-docgen
#...
#/usr/share/pkgconfig/gi-docgen.pc

dnf install gi-docgen
  • DNF knows how to install the rpm that contains a given pkgconfig file.
dnf provides 'pkgconfig(gi-docgen)'
# Returns:
#gi-docgen-2023.1-9.fc39.noarch : Documentation tool for GObject-based libraries
#Repo        : fedora
#Matched from:
#Provide    : pkgconfig(gi-docgen) = 2023.1
sudo dnf install 'pkgconfig(gi-docgen)'

Missing executable

If the CMake error looks like:

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Sass (missing: Sass_EXECUTABLE)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindSass.cmake:48 (find_package_handle_standard_args)
  CMakeLists.txt:31 (find_package)

The error here is that CMake could not find the executable named "sass" (most probably a file "/usr/bin/sass").

Fedora

  • DNF knows which rpm contains a given executable.
dnf provides sass
# Returns:
#rubygem-sass-3.7.4-7.fc39.noarch : A powerful but elegant CSS compiler that makes CSS fun again
#Repo        : fedora
#Matched from:
#Filename    : /usr/bin/sass
sudo dnf install rubygem-sass