Jump to content

Guidelines and HOWTOs/Build from source/Install the dependencies: Difference between revisions

From KDE Community Wiki
Ngraham (talk | contribs)
No edit summary
Nmariusp (talk | contribs)
Redirect
Tag: New redirect
 
(156 intermediate revisions by 47 users not shown)
Line 1: Line 1:
In the following we give the dependencies to install. However it might change and this page might be quickly outdated.
#REDIRECT [[Get Involved/development/Install_the_dependencies]]
 
Reading the <code>CMakeLists.txt</code> of the packages you want to install should help you finding what you '''really''' need to install. Or read the error logs (see below).
 
If you need help, see https://community.kde.org/Get_Involved#Getting_in_touch
 
== For the frameworks ==
=== deb-based distributions (Debian, Neon, Kubuntu...) ===
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">$ sudo apt-get build-dep qtbase5-dev
 
$ sudo apt-get install libbz2-dev libxslt-dev libxml2-dev shared-mime-info oxygen-icon-theme libgif-dev libvlc-dev libvlccore-dev doxygen gperf bzr libxapian-dev fontforge libgcrypt20-dev libattr1-dev network-manager-dev libgtk-3-dev xsltproc xserver-xorg-input-synaptics-dev libpwquality-dev modemmanager-dev libxcb-keysyms1-dev libepoxy-dev libpolkit-agent-1-dev libnm-util-dev libnm-glib-dev libegl1-mesa-dev libxcb-xkb-dev libqt5x11extras5-dev libwww-perl libxml-parser-perl libjson-perl libboost-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libarchive-dev liblmdb-dev cmake git extra-cmake-modules "libkf5.*-dev" llvm llvm-3.6 libclang-3.6-dev bison flex
</pre>
 
If you receive errors regarding "libboost1.55-dev" on recent versions of your distribution, try installing "libboost-dev" instead, which should install a more recent (but still compatible) version of Boost. Older deb-based distributions require at least Boost 1.55 however.
 
===== Xserver development package =====
 
'''Debian:'''
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">$ sudo apt-get install xserver-xorg-dev</pre>
 
'''Ubuntu:'''<br>
The development package must match the installed xserver or X might break (LTS Versions may have the [https://wiki.ubuntu.com/Kernel/LTSEnablementStack#LTS_Enablement_Stacks enablement stack] installed)
 
Check installed xserver
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">$ dpkg --get-selections | grep xserver-xorg</pre>
 
If above e.g. has this in the list ''xserver-xorg-hwe-16.04'', then:
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">$ sudo apt-get install xserver-xorg-dev-hwe-16.04</pre>
 
If there is a package that is just called ''xserver-xorg'' then ''xserver-xorg-dev'' can be used.
 
===  openSUSE ===
 
===== openSUSE 13.2 (outdated) =====
 
All the necessary dependencies:
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">$ sudo zypper si -d libqt5-qtbase
$ sudo zypper in libbz2-devel libxslt-devel libxml2-devel shared-mime-info oxygen-icon-theme giflib-devel vlc-devel doxygen gstreamer-0_10-devel gstreamer-0_10-plugins-base-devel docbook-xml-slides docbook-xsl-stylesheets xcb-util-keysyms-devel perl-JSON boost-devel libxcb-devel libXrender-devel xcb-util-wm-devel xcb-util-devel xcb-util-image-devel gettext-tools libepoxy-devel
$ sudo zypper in gtk3-devel # for kde-gtk-config
$ sudo zypper in grantlee5 # for kdevplatform
$ sudo zypper in libkdcraw-devel liblcms2-devel # for gwenview
</pre>
Optional for kdeplasma-addons: libibus >=1.4.2 (see http://software.opensuse.org/package/libibus-1_0-5)
 
===== openSUSE 42.1 =====
 
Install these packages (including the recommended packages):
 
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">
$ sudo zypper install patterns-openSUSE-devel_kde patterns-openSUSE-devel_kde_frameworks git-core bzr ninja \
gettext-tools libqt5-qttools libgypsy0 libqt5-creator libqt5-linguist libqt5-qtbase-common-devel libqt5-qtbase-devel libqt5-qtbase-examples libqt5-qtdeclarative-devel libqt5-qtdeclarative-examples libqt5-qtdeclarative-tools libqt5-qtdoc libqt5-qtgraphicaleffects libqt5-qtimageformats libqt5-qtimageformats-devel libqt5-qtmultimedia-devel libqt5-qtmultimedia-examples libqt5-qtquick1-devel libqt5-qtquickcontrols libqt5-qtscript-devel libqt5-qtscript-examples libqt5-qtsvg-devel libqt5-qttools-devel libqt5-qtx11extras-devel libqt5-qtxmlpatterns-devel libqt5-qtxmlpatterns-examples libQt5CLucene5 libQt5Concurrent-devel libQt5Concurrent5 libQt5Core-devel libQt5Core5 libQt5DBus-devel libQt5DBus5 libQt5Declarative5 libQt5Designer5 libQt5DesignerComponents5 libQt5Gui-devel libQt5Gui5 libQt5Help5 libQt5Multimedia5 libQt5Network-devel libQt5Network5 libQt5OpenGL-devel libQt5OpenGL5 libQt5Positioning5 libQt5PrintSupport-devel libQt5PrintSupport5 libQt5Script5 libQt5Sensors5 libQt5Sql-devel libQt5Sql5 libQt5Sql5-mysql libQt5Sql5-postgresql libQt5Sql5-sqlite libQt5Sql5-unixODBC libQt5Svg5 libQt5Test-devel libQt5Test5 libQt5WebKit5 libQt5WebKitWidgets5 libQt5Widgets-devel libQt5Widgets5 libQt5X11Extras5 libQt5Xml-devel libQt5Xml5 libQt5XmlPatterns5 libQtQuick5 libQt5WebKitWidgets-devel libqt5-qtbase-private-headers-devel \
xcb-util-keysyms-devel docbook-xsl-stylesheets doxygen polkit-devel libepoxy-devel boost-devel libXcursor-devel libSM-devel giflib-devel libaccounts-qt5-devel gtk3-devel libpng16-devel fltk-devel libopenssl-devel libattr-devel ModemManager-devel NetworkManager-devel wayland-devel lmdb-devel xcb-proto-devel xcb-util-image-devel xcb-util-cursor-devel xcb-util-devel gtk2-devel libqca-qt5-devel libpwquality-devel libical-devel PackageKit-Qt5-devel pam-devel \
bison flex libqt5-qttools-doc
</pre>
 
* OPEN ISSUES:
** on my system 'ninja-1.6.0' was installed and when using 'custom-build-command ninja' in the kdesrc-buildrc below, the build of modules fails), maybe see https://bugs.kde.org/show_bug.cgi?id=331654
 
* Failing modules (of more than 200 modules)
** phonon-vlc, phonon-gstreamer, plasma-pa (PulseAudio missing), kdevplatform, plasma-desktop, kaccounts-integration, kaccounts-mobile, gwenview, kdevelop, libksane, skanlite, ...  (see below for solutions)
 
===== openSuSE Tumbleweed =====
This more complete list (which probably works for OpenSuSE 42.1 as well) allows to compile everything that kdesrc-build's default setup (kf5-qt5-build-include) compiles. Note that it doesn't contain Qt or Qt-based libs, you need that on top, or to compile your own Qt (and then include custom-qt5-libs-build-include in kdesrc-buildrc).
 
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">
$ sudo zypper install patterns-openSUSE-devel_kde patterns-openSUSE-devel_kde_frameworks make cmake extra-cmake-modules ccache git bzr antlr antlr-java antlr-devel astyle autoconf flac gettext-tools intltool libMagick++-devel libplotter2 libtool pstoedit subversion-devel subversion-tools xscreensaver-data libxslt-devel docbook-xsl-stylesheets libpoppler-devel aspell-devel enchant-devel libidn-devel polkit-devel update-desktop-files atk-devel bluez-devel fdupes gdk-pixbuf-devel gtk3-devel libcanberra-devel libexiv2-devel libpulse-devel gtk-doc libsmbclient-devel libssh-devel libusb-1_0-devel libusb-compat-devel libxine-devel libxklavier16 libxklavier-devel xwininfo NetworkManager-devel ModemManager-devel libssh2-devel openslp-devel pango-devel xz-devel libgssglue-devel libjasper-devel libudev-devel utempter-devel libbotan-devel libmysqlclient-devel postgresql-devel libmysqld-devel cgdb gstreamer-plugins-base-devel gstreamer-devel libsamplerate-devel audiofile-devel flac-devel libvorbis-devel fftw3-devel libmusicbrainz-devel cdparanoia-devel flex parted-devel libopus-devel giflib-devel pciutils-devel pam-devel boost-devel libv4l-devel cyrus-sasl-devel libgpgme-devel libical-devel sane-backends-devel libgphoto2-devel doxygen makeinfo LibVNCServer-devel speex-devel libotr-devel libmms-devel libsndfile-devel mpfr-devel libzeitgeist-devel gperf rbtools libcap-devel libarchive-devel telepathy-logger-devel libpwquality-devel opencv-devel glew-devel libxapian-devel libblkid-devel libatasmart-devel libiodbc-devel xcb-util-wm-devel xcb-util-renderutil-devel xcb-util-keysyms-devel xcb-util-image-devel xcb-util-cursor-devel libxkbcommon-devel vlc-devel libicu-devel icu-data libkolabxml-devel xsd libffi-devel-gcc5 perl-Tie-IxHash perl-JSON perl-Text-CSV hunspell-devel ffmpeg-devel libacl-devel libnl-devel liboauth-devel libepub-devel libicecream-devel docbook2X liblcms2-devel libeigen2-devel eigen3-devel graphviz-devel liboyranos-devel libraw-devel xf86-input-wacom-devel libwacom-devel xf86-input-synaptics-devel xorg-x11-server-sdk libdiscid-devel libmlt++-devel libdmtx-devel qrencode-devel libfunambol-devel libmtp-devel at-spi2-core-devel openal-soft-devel python-sip-devel libXcm-devel libspeechd-devel libraw-devel ModemManager-devel farstream-devel tesseract-ocr-devel mtdev-devel fontforge-devel cups-devel libepoxy-devel openconnect-devel lmdb-devel libpgf-devel llvm-devel llvm-clang-devel binutils-devel libdwarf-devel libelf-devel plymouth-devel libfakekey-devel python-GitPython php php-curl telepathy-mission-control-devel
</pre>
 
=== Fedora===
All the dependencies used for building frameworks can be installed by running:
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">
$ sudo dnf  builddep qt phonon-backend-vlc phonon-backend-gstreamer
$ sudo dnf install gcc-c++ ruby doxygen git bzr flex bison gperf socat boost-devel bzip2-devel libxslt-devel libxml2-devel shared-mime-info oxygen-icon-theme giflib-devel xcb-util-keysyms-devel perl-JSON perl-Pod-Usage "*xcb*-devel" perl-XML-Parser NetworkManager-glib-devel xapian-core-devel libxkbcommon-devel libxkbcommon-x11-devel  systemd-devel libwayland-cursor-devel libwayland-server-devel libepoxy-devel gtk3-devel sane-backends-devel libattr-devel libcanberra-devel libusb-devel libxkbfile-devel fontforge-devel libical-devel gpgme-devel cyrus-sasl-devel openldap-devel libpwquality-devel polkit-devel lmdb-devel perl-Digest-MD5 perl-JSON-PP perl-IO-Socket-SSL qt5-qtscript qt5-qtscript-devel qt5-qtdeclarative-devel docbook-style-xsl
</pre>
 
=== Arch Linux===
All the dependencies used for building frameworks can be installed by running:
<pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">
$ sudo pacman -Sy --needed phonon-qt5 qt5-webkit qt5-script qt5-svg qt5-tools qt5-x11extras enchant jasper openexr libutempter docbook-xsl shared-mime-info giflib libxss upower udisks2 bzr git doxygen perl-json perl-libwww perl-xml-parser perl-io-socket-ssl akonadi xorg-server-devel libpwquality fontforge eigen libfakekey qca-qt5 xapian-core xsd
</pre>
 
== For the Frameworks, Plasma, and most of the applications  ==
Plasma 5 will need various dependencies to be installed. You can find a list of dependencies for atleast the frameworks [https://community.kde.org/Frameworks/Building#Dependencies here]. Any other dependencies can be figured out and installed as you continue building the modules one by one.
 
At the very minimum, <code>qt5</code>, <code>cmake</code>, <code>g++</code>, <code>git</code>, <code>bzr</code>, <code>libwww-perl</code>, <code>libjson-perl</code> and <code>libxml-parser-perl</code>  needs to be installed to get started.
 
===Ubuntu 14.04 LTS===
A guide for building Plasma 5 specifically on Ubuntu 14.04 LTS can be found [[Guidelines_and_HOWTOs/Build_from_source/Plasma 5 on Ubuntu 14.04 LTS|here]].
 
===Neon and Kubuntu===
 
{{warning| Building Plasma using these instructions does not work on Kubuntu due to the way they have incorrectly set up Qt.}}
 
For KDE Neon and Kubuntu 15.04, here's a list of packages that should satisfy all the dependencies of the default kdesrc-build projects, including Frameworks, Applications and Plasma Workspace but excluding kdegames. Just copy-paste this to your terminal: <pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">sudo apt-get install libxslt1-dev libpolkit-agent-1-dev libpolkit-gobject-1-dev libpolkit-backend-1-dev debhelper dh-apparmor icu-devtools libboost1.55-dev libcln-dev libglib2.0-dev libgmp-dev libgmpxx4ldbl libgps-dev libicu-dev libqalculate-dev libqimageblitz-dev libqt5sensors5 libqt5sensors5-dev libqt5webkit5-dev libqt5x11extras5-dev libraw1394-dev libudev-dev libusb-dev libxapian-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-cursor0 libxcb-damage0-dev libxcb-dpms0 libxcb-dpms0-dev libxcb-ewmh-dev libxcb-ewmh2 libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-record0-dev libxcb-render-util0-dev libxcb-res0 libxcb-res0-dev libxcb-screensaver0 libxcb-screensaver0-dev libxcb-shm0-dev libxcb-util0-dev libxcb-xevie0 libxcb-xevie0-dev libxcb-xf86dri0 libxcb-xf86dri0-dev libxcb-xinerama0 libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xprint0 libxcb-xprint0-dev libxcb-xtest0-dev libxcb-xv0 libxcb-xv0-dev libxcb-xvmc0 libxcb-xvmc0-dev libxml2-dev pkg-kde-tools po-debconf qttools5-dev xcb-proto xvfb qtscript5-dev qtdeclarative5-dev qtbase5-dev qtbase5-dev-tools qt5-qmake doxygen bzr libjson-perl perl-modules cmake cmake-data libapr1 libaprutil1 libserf-1-1 libsvn1 libxml-parser-perl subversion git build-essential libqt5svg5-dev libgpgme11-dev libgcrypt20-dev libepoxy-dev  libssl-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libgif-dev qtbase5-private-dev qtxmlpatterns5-dev-tools libqt5xmlpatterns5-dev libqt5xmlpatterns5-private-dev libvlc-dev libvlccore-dev gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 libasound2-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libnm-dev libnm-util-dev libnm-glib-dev libattr1-dev qtquick1-5-dev libgrantlee5-dev liblcms2-dev libexiv2-dev libarchive-dev libcups2-dev libfakekey-dev libpam-dev libxrender-dev libpng-dev libxcursor-dev liblmdb-dev libsm-dev libqca-qt5-2-dev libkaccounts-dev libaccounts-glib-dev libtiff5-dev libclang-dev autoconf texinfo libgconf2-dev libcanberra-dev libmlt-dev libmlt++-dev libvncserver-dev libhunspell-dev</pre>
 
===Arch===
For Arch, here's a list of packages that should satisfy all the dependencies of the default kdesrc-build projects, including Frameworks, Applications and Plasma Workspace but excluding kdegames. Just copy-paste this to your terminal: <pre  style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: normal;">
sudo pacman -S base-devel bzr cmake perl-libwww perl-xml-parser perl-json git qt5-tools docbook-xml docbook-xsl python2 boost modemmanager networkmanager vlc xapian-core xorg-server-devel doxygen
</pre>

Latest revision as of 06:49, 9 February 2023