[windows] Fix MAC Address Discovery
[xbmc.git] / docs / README.Fedora.md
blob2d89f8f2d184219c26d54b8d85e48de9d35f12a5
1 ![Kodi Logo](resources/banner_slim.png)
3 # Fedora build guide
4 This guide has been tested with Fedora 36 1.1 x86_64. Please read it in full before you proceed to familiarize yourself with the build procedure.
6 Several other distributions have **[specific build guides](README.md)** and a general **[Linux build guide](README.Linux.md)** is also available.
8 ## Table of Contents
9 1. **[Document conventions](#1-document-conventions)**
10 2. **[Get the source code](#2-get-the-source-code)**
11 3. **[Install the required packages](#3-install-the-required-packages)**
12 4. **[Build Kodi](#4-build-kodi)**
14 ## 1. Document conventions
15 This guide assumes you are using `terminal`, also known as `console`, `command-line` or simply `cli`. Commands need to be run at the terminal, one at a time and in the provided order.
17 This is a comment that provides context:
18 ```
19 this is a command
20 this is another command
21 and yet another one
22 ```
24 **Example:** Clone Kodi's current master branch:
25 ```
26 git clone https://github.com/xbmc/xbmc kodi
27 ```
29 Commands that contain strings enclosed in angle brackets denote something you need to change to suit your needs.
30 ```
31 git clone -b <branch-name> https://github.com/xbmc/xbmc kodi
32 ```
34 **Example:** Clone Kodi's current Krypton branch:
35 ```
36 git clone -b Krypton https://github.com/xbmc/xbmc kodi
37 ```
39 Several different strategies are used to draw your attention to certain pieces of information. In order of how critical the information is, these items are marked as a note, tip, or warning. For example:
41 > [!NOTE]  
42 > Linux is user friendly... It's just very particular about who its friends are.
44 > [!TIP]
45 > Algorithm is what developers call code they do not want to explain.
47 > [!WARNING]  
48 > Developers don't change light bulbs. It's a hardware problem.
50 **[back to top](#table-of-contents)** | **[back to section top](#1-document-conventions)**
52 ## 2. Get the source code
53 Make sure `git` is installed:
54 ```
55 sudo dnf install git
56 ```
58 Clone Kodi's current master branch:
59 ```
60 cd $HOME
61 git clone https://github.com/xbmc/xbmc kodi
62 ```
64 **[back to top](#table-of-contents)**
66 ## 3. Install the required packages
67 If you get a `package not found` type of message with the below command, remove the offending package(s) from the install list and reissue the command. Take a note of the missing dependencies and, after a successful step completion, **[build the missing dependencies manually](README.Linux.md#31-build-missing-dependencies)**.
69 > [!NOTE]  
70 > Kodi requires a compiler with C++17 support, i.e. gcc >= 7 or clang >= 5
72 Install build dependencies:
73 ```
74 sudo dnf install alsa-lib-devel autoconf automake avahi-compat-libdns_sd-devel avahi-devel bluez-libs-devel bzip2-devel cmake curl dbus-devel flatbuffers flatbuffers-devel fmt-devel fontconfig-devel freetype-devel fribidi-devel fstrcmp-devel gawk gcc gcc-c++ gettext gettext-devel giflib-devel gperf gtest-devel java-11-openjdk-headless jre lcms2-devel libao-devel libass-devel libbluray-devel libcap-devel libcdio-devel libcec-devel libcurl-devel libidn2-devel libjpeg-turbo-devel libmicrohttpd-devel libmpc-devel libnfs-devel libplist-devel libpng12-devel libsmbclient-devel libtool libtool-ltdl-devel libudev-devel libunistring libunistring-devel libusb-devel libuuid-devel libva-devel libvdpau-devel libxkbcommon-devel libxml2-devel libXmu-devel libXrandr-devel libxslt-devel libXt-devel lirc-devel lzo-devel make mariadb-devel mesa-libEGL-devel mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel mesa-libOSMesa-devel nasm openssl-devel openssl-libs patch pcre-devel pulseaudio-libs-devel python3-devel python3-pillow rapidjson-devel shairplay-devel spdlog-devel sqlite-devel swig taglib-devel tinyxml-devel tinyxml2-devel trousers-devel uuid-devel zlib-devel
75 ```
77 > [!WARNING]  
78 > Make sure you copy paste the entire line or you might receive an error or miss a few dependencies.
80 Building for Wayland requires some extra packages:
81 ```
82 sudo dnf install mesa-libGLES-devel wayland-devel waylandpp-devel wayland-protocols-devel
83 ```
85 Similarly, building for GBM also requires some extra packages:
86 ```
87 sudo dnf install libinput-devel libxkbcommon-devel mesa-libGLES-devel mesa-libgbm-devel
88 ```
90 Optional packages that you might want to install for extra functionality (generating doxygen documentation, for instance):
91 ```
92 sudo dnf install doxygen mariadb-devel
93 ```
95 > [!NOTE]  
96 > For developers and anyone else who builds frequently it is recommended to install `ccache` to expedite subsequent builds of Kodi.
98 You can install it with:
99 ```
100 sudo dnf install ccache
103 > [!TIP]
104 > If you have multiple computers at home, `distcc` will distribute build workloads of C and C++ code across several machines on a network. Team Kodi may not be willing to give support if problems arise using such a build configuration.
106 You can install it with:
108 sudo dnf install distcc
111 ## 4. Build Kodi
112 See the general **[Linux build guide](README.Linux.md)** for reference.
114 **[back to top](#table-of-contents)**