Установка сервера и инструментов Repo

Инструменты fdroidserver предоставляют все необходимое для создания и поддержки собственных репозиториев, запуска сервера сборки fdroid и даже размещения собственного сайта, например f-droid.org. Разработчики F-Droid в основном работают на Debian, Arch и Ubuntu, поэтому в настоящее время это наиболее поддерживаемые платформы.

Чтобы создать и поддерживать собственную коллекцию приложений и мультимедиа из командной строки, настройте репозиторий F-Droid с помощью инструментов из fdroidserver. Чтобы запустить полную настройку сервера сборки F-Droid, смотрите Build Server Setup.

Debian/Ubuntu/Mint и другие

Инструменты F-Droid, также известные как fdroidserver, могут быть установлены из стандартного репозитория пакетов ОС. В ОС на основе Debian этого должно быть достаточно для базовой установки F-Droid:

sudo apt-get install fdroidserver

Однако часто бывает так, что версия fdroidserver, доступная в стандартном репозитории пакетов ОС, уже устарела.

Получение новой версии

Более новую версию fdroidserver можно найти в F-Droid PPA или в репозитории backports вашей ОС.

  • Ubuntu/Mint: используйте F-Droid PPA (отпечаток: 9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151):

    sudo add-apt-repository ppa:fdroid/fdroidserver
    sudo apt-get update
    sudo apt-get install fdroidserver
    
  • Debian: сначала настройте бэкпорты, затем замените «buster» на свой выпуск Debian: bash apt-get install fdroidserver/buster-backports

Fedora/Archlinux

Since packages in these distros could be newer than the official ones on pypi, installing the dependencies in a separate virtual environment workarounds dependency resolving failures:

python3 -m venv env
source env/bin/activate
pip install -e .

Guix

Инструменты также доступны на основном канале Guix. Чтобы установить:

guix install fdroidserver

macOS

Вы можете установить fdroidserver напрямую, используя Homebrew или, в крайнем случае, easy_install:

Homebrew:

  1. Подготовка: проверьте формулу Homebrew для получения инструкций. Пример:
brew install android-sdk
android update sdk --no-ui --all --filter tools,platform-tools,build-tools-25.0.0
  1. Установите fdroidserver:
    brew install fdroidserver
    

Только с easy_install:

sudo easy_install fdroidserver

Windows

Подсистема Windows 10 для Linux

Начиная с Windows 10 “Anniversary Update”, вы можете включить среду Ubuntu, которая работает в Windows, известную как “Bash on Windows”, “Ubuntu on Windows” или “Windows Subsystem for Linux”.

  1. настройка подсистемы Windows для Linux
  2. установите fdroidserver из F-Droid PPA (отпечаток: 9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151), выполнив это в окне оболочки Bash:
    sudo add-apt-repository ppa:fdroid/fdroidserver
    sudo apt-get update
    sudo apt-get install fdroidserver
    

Cygwin

  1. добавьте Java в PATH: http://www.kingluddite.com/tools/how-do-i-add-java-to-my-windows-path
  2. Установите Cygwin https://www.sourceware.org/cygwin/
  3. в Cygwin установите эти пакеты: gcc-core git openssh python3 python3-pyasn1 python3-imaging python3-paramiko python3-requests python3-setuptools rsync wget
  4. откройте оболочку Cygwin bash и запустите: easy_install fdroidserver

Затем настройка репозитория:

export ANDROID_HOME=/cygdrive/c/path/to/android-sdk
fdroid init # создание хранилища ключей будет неудачным

После запуска fdroid init необходимо задать Windows-путь к вашему хранилищу ключей в config.yml. Также можно установить fdroidserver в виртуальной среде с помощью virtualenv и pip.

Исполняемый образ Docker (любая платформа)

Если вы уже используете “исполняемые образы” Docker, то самый простой способ запустить fdroidserver - это использовать наш исполняемый образ

Установка новейшего кода (любая платформа)

Самый простой способ установить инструменты fdroidserver из исходного кода - использовать virtualenv и pip. Во-первых, убедитесь, что у вас установлена версия virtualenv или pyvenv для Python3. Она должна быть включена в дистрибутив Python вашей ОС или с помощью других механизмов, таких как dnf/yum/pacman/emerge/Fink/MacPorts/Brew. Затем вот как установить fdroidserver в “виртуальную среду” Python:

pyvenv fdroidserver-env
. fdroidserver-env/bin/activate
pip install git+https://gitlab.com/fdroid/fdroidserver.git

Вы можете найти вариации на эту тему, используемые в тестах CI: https://gitlab.com/fdroid/fdroidserver/blob/master/.gitlab-ci.yml

Создание приложений

Чтобы создавать приложения с помощью F-Droid, необходимо установить Java и весь Android SDK. В настоящее время этот процесс разрабатывается только на GNU/Linux, но мы будем рады получить патчи, позволяющие ему работать на macOS и Windows. Если вы хотите только сделать репозитории F-Droid из APK-файлов, которые у вас уже есть, или не знаете, что это значит, то можете пропустить этот раздел.

Чтобы создавать приложения для Android с помощью инструментария fdroidserver, необходимо установить Java, Android SDK и некоторые другие необходимые инструменты. В Debian доступны только части Android SDK, поэтому Android SDK должен быть установлен вручную, а также пакеты, которые он требует (инструменты Android SDK включают некоторые 32-битные двоичные файлы, поэтому даже 64-битные системы нуждаются в этих пакетах библиотек i386). Инструменты F-Droid используют Android SDK для создания и проверки приложений, поэтому перед использованием fdroidserver необходимо установить и настроить Android SDK.

Установите Android SDK и убедитесь, что переменная окружения ANDROID_HOME правильно установлена. Обязательно проверьте файл, который вы скачали, вы можете дважды проверить контрольную сумму SHA-1 на странице загрузки Google.

$ sudo apt-get install fdroidserver
$ mkdir ~/android-sdk-linux
$ cd ~/android-sdk-linux
$ wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
$ echo "87f6dcf41d4e642e37ba03cb2e387a542aa0bd73cb689a9e7152aad40a6e7a08  commandlinetools-linux-6858069_latest.zip" | sha256sum -c
commandlinetools-linux-6858069_latest.zip: OK
$ unzip commandlinetools-linux-6858069_latest.zip
$ export ANDROID_HOME="$HOME/android-sdk-linux"
$ ./cmdline-tools/bin/sdkmanager --sdk_root="$ANDROID_HOME" platform-tools "build-tools;30.0.3"

Примечание: Если у вас установлена Android Studio, то у вас установлен и Android SDK. Он должен быть расположен по адресу ~/Android/Sdk вместо ~/android-sdk-linux. Расположение можно найти в Android Studio, открыв меню Tools→SDK Manager.

Чтобы добавить эти настройки в оболочку навсегда:

$ echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc

Сборка всех приложений с сайта f-droid.org

Для того чтобы собрать все приложения, которые включены в f-droid.org, требуется гораздо больше пакетов программного обеспечения:

  • все платформы SDK, требуемые приложениями, которые вы хотите создать - все пакеты Debian, необходимые для каждого процесса сборки приложений (maven, ant, etc) - все инструменты управления исходным кодом (git, subversion, mercurial, etc) - все версии Android NDK, которые используют приложения

Кроме того, для создания приложений, как они создаются на f-droid.org, требуется целая Build Server Setup. Это более безопасная, готовая к производству установка, которая требует гораздо больше настроек и ресурсов. Сценарии build server provisioning scripts являются полезным справочником по всем необходимым битам.

Если вы хотите создавать собственные официальные релизы с помощью инструментов F-Droid, то вам также потребуется настроить Signing Process.

Проприетарные, несвободные библиотеки

Android SDK предоставляется компанией Google по проприетарной лицензии. При этом основные инструменты сборки, платформы SDK, библиотека поддержки и некоторые другие компоненты находятся под лицензией Apache, и исходный код предоставляется.

API Google, используемые для создания приложений с использованием Google Maps, бесплатны в том объеме, в котором библиотека предустановлена на устройстве. Google Play Services, Google Admob, GCM и многие другие библиотеки сторонних разработчиков являются проприетарными и не могут быть включены в основной репозиторий F-Droid. Проект MicroG разрабатывает свободные программные замены для некоторых наиболее используемых проприетарных библиотек Google