> For the complete documentation index, see [llms.txt](https://docs.kivy.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kivy.fun/programming-guide/licensing.md).

# Package Licensing

Warning

This is not a legally authoratative guide! The Kivy organisation, authors and contributors take no responsibility for any lack of knowledge, information or advice presented here. The guide is merely informative and is meant to protect inexperienced users.

Your code alone may not require including licensing information or copyright notices of other included software, but binaries are something else. When a binary (.exe, .app, .apk, ...) is created, it includes Kivy, its dependencies and other packages that your application uses.

Some of them are licensed in a way that requires including a copyright notice somewhere in your app (or more). Before distributing any of the binaries, please **check all the created files** that don't belong to your source (.dll, .pyd, .so, ...) and include the appropriate copyright notices if required by the license the files belong to. This way you may satisfy licensing requirements of the Kivy deps.

## Dependencies

All of the dependencies will be used at least partially on each platform Kivy supports. You therefore need to comply to their licenses, which mostly requires only pasting a copyright notice in your app and not pretending you wrote the code.

* docutils\_
* [pygments](https://bitbucket.org/birkenfeld/pygments-main/src/tip/LICENSE)
* [sdl2](https://www.libsdl.org/license.php)
* [glew](http://glew.sourceforge.net/glew.txt)
* [gstreamer](https://github.com/GStreamer/gstreamer/blob/master/COPYING) (if used)
* image & audio libraries(e.g. SDL\_mixer has them\_)

You'll probably need to check image and audio libraries manually (most begin with `lib`). The `LICENSE*` files that belong to them should be included by PyInstaller, but are not included by python-for-android and you need to find them.

## Windows (PyInstaller)

To access some Windows API features, Kivy uses the pypiwin32\_ package. This package is released under the [PSF license](https://opensource.org/licenses/Python-2.0).

### Visual Studio Redistributables

Python compiled with Visual Studio (official) includes files from Microsoft and you are only allowed to redistribute them under specific conditions listed in the CRTlicense. You need to include the names of the files and a reworded version of Py2 CRT license\_ or Py3 CRT license\_ (depending which interpreter you use) and present these to the end-user of your application in order to satisfy their requirements.

* List of redistributables\_

### Other libraries

* [zlib](https://github.com/madler/zlib/blob/master/README)

Note

Please add the attributions for other libraries that you *don't use directly* but are present after packaging with e.g. PyInstaller on Windows.

## Linux

Linux has many distributions which means there's no correct guide for all of the distributions. This applies to the RPi too. However, it can be simplified in two ways depending on how you create a package (also with PyInstaller): with or without including binaries.

If the binaries are included, you should check every file (e.g. .so) that's not your source and find the license it belongs to. According to that license, you'll probably need to put an attribution into your application or possibly more, depending on the requirements of that license.

If the binaries are not included (which allows packaging your app as e.g. a .deb package), there's a situation bad for your user\_. It's up to you to decide whether you satisfy the conditions of other licenses and, for example, include copyright attributions into your app or not.

## Android

As APK is just an archive of files: you can extract files from it and (as in Windows redistributables) check all the files.

`APK/assets/private.mp3/private.mp3/` contains all the included files. Most of them are related to Kivy, Python or your source, but those that aren't need checking.

Known packages:

* [pygame](https://bitbucket.org/pygame/pygame/src/tip/LGPL) (if old\_toolchain is used)
* [sqlite3](https://github.com/ghaering/pysqlite/blob/master/LICENSE)
* [six](https://bitbucket.org/gutworth/six/src/tip/LICENSE)

There are other included libraries, included either by Kivy directly or through Pygame/SDL2, that are located in `APK/lib/armeabi/`. Most of them are related to dependencies or are produced by python-for-android and are part of its source (and licensing).

* libapplication.so

## Mac

Missing.

## iOS

Missing.

## Avoiding binaries

There might be a way how to avoid this licensing process by avoiding creating a distribution with third-party stuff completely. With Python you can create a module, which is only your code with `__main__.py` + `setup.py` that only lists required depencies.

This way, you can still distribute your app - your *code* - and you might not need to care about other licenses. The combination of your code and the dependencies could be specified as a "usage" rather than a "distribution". The responsibility of satisfying licenses, however, most likely transfers to your user, who needs to assemble the environment to even run the module. If you care about your users, you might want to slow down a little and read more about the consequences\_.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kivy.fun/programming-guide/licensing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
