Linux development: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
{{cleanup}}
{{cleanup}}
{{XBMC development nav}}
{{XBMC development nav}}
<section begin="intro" />[[Team-XBMC|Team-Kodi]] (formerly called [[Team-XBMC]]) first ported XBMC Media Center software to Linux in 2007, and the whole project cross-platform application was renamed to Kodi in 2014. Kodi itself is a huge open source project and it takes loads of people working together to maintain it for all platforms, that is why [[Team-XBMC|Team-Kodi]] is always on the lookout for C/C++ programmers to volunteer in assisting us with the development of Kodi. Whether you have contributed to the Kodi/XBMC project in the past or not, please consider doing so now.<section end="intro" />
<section begin="intro" />[[Team_Kodi|Team-Kodi]] (formerly called Team-XBMC) first ported XBMC Media Center software to Linux in 2007, and the whole project cross-platform application was renamed to Kodi in 2014. Kodi itself is a huge open source project and it takes loads of people working together to maintain it for all platforms, that is why Team-Kodi is always on the lookout for C/C++ programmers to volunteer in assisting us with the development of Kodi. Whether you have contributed to the Kodi/XBMC project in the past or not, please consider doing so now.<section end="intro" />


Those of you who are completely unfamiliar with Kodi/XBMC can get a good overview of it on '''[[Kodi]]''' and '''[[Kodi FAQ]]'''.
Those of you who are completely unfamiliar with Kodi/XBMC can get a good overview of it on '''[[Kodi]]''' and '''[[Intro FAQ]]'''.


== End-users (non-programmers) ==
== End-users (non-programmers) ==
You can help too by downloading Kodi for Linux, testing it, and [[HOW-TO Submit a Proper Bug Report|reporting bugs and issues]]. Also, spread the word about Kodi for Linux(and other platforms) to your friends and family, we are sure they will enjoy it too.
You can help too by downloading Kodi for Linux, testing it, and [[HOW-TO:Submit_a_bug_report|reporting bugs and issues]]. Also, spread the word about Kodi for Linux(and other platforms) to your friends and family, we are sure they will enjoy it too.


== Developers (programmers) ==
== Developers (programmers) ==
Line 28: Line 28:


=== Hardware requirements ===
=== Hardware requirements ===
* [http://en.wikipedia.org/wiki/X86 x86-based computer] (if you don't know what it means, you probably have one). No special hardware is required for development, as developers can compile using the "''make sdl_2d option''" (see [[Compiling_Kodi|README.linux]]). However for end-users the recommended minimum requirement is a [http://en.wikipedia.org/wiki/Graphics_Processing_Unit 3D GPU (Graphics Processing Unit)] that at least supports [http://en.wikipedia.org/wiki/Shader_model Shader Model 3.0] and [http://en.wikipedia.org/wiki/OpenGL OpenGL 2.0] (that features 24bpp or 32bpp for 3D hardware-acceleration support, which the XBMC GUI needs to run smoothly at an acceptable frame-rate). Graphic adapters that support [http://en.wikipedia.org/wiki/DirectX DirectX version 9.0c] or later usually meet all of those mentioned requirements, ([[Team XBMC]] recommends [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] as NVIDIA is currently the manufacturer that offers [http://en.wikipedia.org/wiki/Graphics_hardware_and_FOSS good device-drivers for Linux] (and [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] supports OpenGL 2.0).
* [http://en.wikipedia.org/wiki/X86 x86-based computer] (if you don't know what it means, you probably have one). No special hardware is required for development, as developers can compile using the "''make sdl_2d option''" (see [[Compiling_Kodi|README.linux]]). However for end-users the recommended minimum requirement is a [http://en.wikipedia.org/wiki/Graphics_Processing_Unit 3D GPU (Graphics Processing Unit)] that at least supports [http://en.wikipedia.org/wiki/Shader_model Shader Model 3.0] and [http://en.wikipedia.org/wiki/OpenGL OpenGL 2.0] (that features 24bpp or 32bpp for 3D hardware-acceleration support, which the XBMC GUI needs to run smoothly at an acceptable frame-rate). Graphic adapters that support [http://en.wikipedia.org/wiki/DirectX DirectX version 9.0c] or later usually meet all of those mentioned requirements, (Team Kodi recommends [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] as NVIDIA is currently the manufacturer that offers [http://en.wikipedia.org/wiki/Graphics_hardware_and_FOSS good device-drivers for Linux] (and [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] supports OpenGL 2.0).
 


== General guidelines ==
=== User-friendliness is next to godlyness ===
{{#lst:XBMC manifesto|User-friendliness}}


[[Category:Development]]
[[Category:Development]]
[[Category:Linux]]
[[Category:Linux]]

Revision as of 23:15, 7 July 2020

Home icon grey.png   ▶ Development
▶ Linux
▶ Linux development
Cleanup.png This page or section may require cleanup, updating, spellchecking, reformatting and/or updated images. Please improve this page if you can. The discussion page may contain suggestions.


Template:XBMC development nav Team-Kodi (formerly called Team-XBMC) first ported XBMC Media Center software to Linux in 2007, and the whole project cross-platform application was renamed to Kodi in 2014. Kodi itself is a huge open source project and it takes loads of people working together to maintain it for all platforms, that is why Team-Kodi is always on the lookout for C/C++ programmers to volunteer in assisting us with the development of Kodi. Whether you have contributed to the Kodi/XBMC project in the past or not, please consider doing so now.

Those of you who are completely unfamiliar with Kodi/XBMC can get a good overview of it on Kodi and Intro FAQ.

End-users (non-programmers)

You can help too by downloading Kodi for Linux, testing it, and reporting bugs and issues. Also, spread the word about Kodi for Linux(and other platforms) to your friends and family, we are sure they will enjoy it too.

Developers (programmers)

You should be proficient in C/C++ programming language, and although not really required knowledge of OpenGL or other multimedia programming is a plus, as well as prior cross-platform or porting development experience.

Where do I start on Linux?

General and distribution specific guides on HOW-TO compile Kodi for Linux from source code is available in this whis, and there is also an up-to-date README for Ubuntu Linux available in the XBMC Foundation git repo on GitHub.

The recommended Linux development platform is currently 32-bit Ubuntu Desktop (for x86). The code can be obtained by cloning the xbmc git repository hosted on Github. First use your package manager to install git on your system and then execute the following command to clone your own repository:

git clone git://github.com/xbmc/xbmc.git

After the clone has completed, follow the compilation/development guide in the new repository (README.linux) to setup the required packages and so on. Team-XBMC developers opinion is that the best thing to start with is just to take a look through the source code and try to understand how it all fits together. Test things out, find what works and what does not, then try and track down why.

Alternatively, you can download VirtualBox and follow this guide to install the required software: Ubuntu Desktop (32-bit for x86). Besides from KDevelop, additional development tools that can be useful include Subcommander, Doxygen, Sysprof and PowerTop.

The performance of a virtual machine is not great, as there is no 3D hardware acceleration support under a virtual machine, however it should work good enough to get a lot of development tasks done. Nice is also that you can install/run VirtualBox on Windows, OS X and Linux. The free VirtualBox also enables you to share data seamlessly between the virtual machine and host computer, and also allows you to directly access USB 2.0 devices from within the virtual machine. To improve the performance of your virtual machine, you can increase the number of cores on a multi-core system that is assigned to your virtual machine.

Hardware requirements