Instalar o Servidor e as Ferramentas de Repo

As ferramentas do servidor fdroid fornecem tudo o que precisa para configurar e manter o seu próprio repositório, executar um servidor de compilação fdroid, e até mesmo hospedar o seu próprio site como f-droid.org. Os programadores de F-Droid trabalham principalmente no Debian, Arch e Ubuntu, então essas são atualmente as melhores plataformas suportadas.

Para configurar e manter sua própria coleção de aplicações e mídia da linha de comando, configure um repositório F-Droid a usar as ferramentas do fdroidserver. Para executar a configuração completa do servidor de compilação do F-Droid, consulte Configuração do servidor de compilação.

Debian/Ubuntu/Mint/etc

As ferramentas F-Droid, também conhecidas como fdroidserver, podem ser instaladas do repositório de pacotes padrão do SO. Em sistemas operativos baseados em Debian, isto deve ser suficiente para instalar a configuração básica do F-Droid:

sudo apt-get install fdroidserver

Entretanto, é comum descobrir que a versão do fdroidserver disponível no repositório de pacotes padrão do SO está desatualizada.

Obter uma versão mais recente

Uma versão mais recente do fdroidserver pode ser encontrada no F-Droid PPA ou no repositório backports do seu sistema operativo.

  • Ubuntu/Mint: use o F-Droid PPA (impressão digital: 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: first setup backports, then, substituting your Debian release for ‘bookworm’:

    apt-get install -t bookworm-backports fdroidserver
    

Fedora/Archlinux

Como os pacotes nestas distros podem ser mais recentes que os oficiais em pypi, instalar as dependências num ambiente virtual separado funciona como uma solução para as falhas:

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

Guix

As ferramentas também estão disponíveis no canal principal do Guix. Para instalar:

guix install fdroidserver

Homebrew

Check the Homebrew formula for more details.

brew install fdroidserver

Windows Subsystem for Linux

A partir do Windows 10 “Anniversary Update”, pode ativar um ambiente Ubuntu que executa no Windows, conhecido como “Bash on Windows”, “Ubuntu on Windows”, ou “Windows Subsystem for Linux”.

  1. instalação do Windows Subsystem for Linux
  2. instale fdroidserver do F-Droid PPA (impressão digital: 9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151) a executar o seguinte na janela do Bash shell:
sudo add-apt-repository ppa:fdroid/fdroidserver
sudo apt-get update
sudo apt-get install fdroidserver

Cygwin

  1. adicione Java ao seu PATH: http://www.kingluddite.com/tools/how-do-i-add-java-to-my-windows-path>
  2. Instale Cygwin https://www.sourceware.org/cygwin/
  3. in Cygwin, install these packages: gcc-core git openssh python3 python3-imaging python3-paramiko python3-requests python3-setuptools rsync wget
  4. open a Cygwin bash shell and run: pip install fdroidserver

Então aqui está a configuração do repo:

export ANDROID_HOME=/cygdrive/c/caminho/para/android-sdk
fdroid init # a keystore gen vai falhar

Depois de executar o fdroid init, deve definir o caminho do Windows para o seu repositório de chaves em config.yml. Também é possível instalar fdroidserver num ambiente virtual a usar virtualenv e pip.

Imagem executável do Docker (qualquer plataforma)

Se já está a executar o “Imagens Executáveis” do Docker, a maneira mais fácil de executar o fdroidserver é usar nossa imagem executável

Instalar o código mais recente (qualquer plataforma)

The easiest way to install the fdroidserver tools from source is to use virtualenv and pip. First, make sure you have the Python3 version of virtualenv or venv installed, it should be included in your OS’s Python distribution or via other mechanisms like dnf/yum/pacman/emerge/Fink/MacPorts/Brew. Then here’s how to install fdroidserver into a Python “virtual env”:

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

Pode encontrar variações sobre isso usadas nos testes de CI: https://gitlab.com/fdroid/fdroidserver/blob/master/.gitlab-ci.yml

Compilar apps

Para compilar apps a usar o F-Droid, Java e todo o SDK do Android devem estar instalados. Esse processo é atualmente desenvolvido apenas em GNU/Linux, mas nós adoraríamos que patches fizessem com que ele funcionasse em macOS e Windows. Se só quer fazer repositórios F-Droid de ficheiros APK que já tem ou não sabe o que isso significa, pode pular esta secção.

Para compilar apps Android com o toolchain fdroidserver, Java, o SDK do Android e algumas outras ferramentas essenciais devem estar instalados. Somente partes do SDK do Android estão disponíveis no Debian, por isso o SDK do Android deve ser instalado manualmente, assim como os pacotes que ele requer (as ferramentas SDK do Android incluem alguns binários de 32 bits, assim mesmo sistemas de 64 bits precisam desses pacotes de bibliotecas i386). As ferramentas F-Droid usam o SDK do Android para compilar e inspecionar apps, pois deve ter o SDK do Android instalado e configurado antes de usar o fdroidserver.

Install the Android SDK and make sure the ANDROID_HOME environment variable is properly set. Be sure to verify the file you downloaded, you can double-check the SHA-1 checksum on Google’s download page.

$ 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"

Nota: se tiver o Android Studio instalado, tambem tem o SDK do Android instalado. Ele deve estar localizado em ~/Android/Sdk em vez de ~/android-sdk-linux. Pode encontrar o local no Android Studio ao abrir o menu Tools→SDK Manager.

Para adicionar estas configurações permanentemente ao seu shell:

$ echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc

Compilar todos os apps de f-droid.org

A fim de construir todos os apps que estão incluídos no f-droid.org, muito mais pacotes de software são necessários:

  • todas as plataformas de SDK solicitadas pelas apps que deseja criar
  • todos os pacotes do Debian exigidos por cada processo de compilação de apps (maven, ant, etc)
  • cada ferramenta de gestão de código-fonte (git, subversão, mercurial, etc)
  • todas as versões do Android NDK que as apps usam

Além disso, para compilar apps como eles são compilados em f-droid.org, então toda a Configuração do Servidor de Compilação é necessária. Essa é uma configuração mais segura e pronta para produção, que requer um pouco mais de configuração e de recursos. Os scripts de provisão de servidor de compilação fornece uma referência útil para todos os pedaços necessários.

Se quiser fazer seus próprias lançamentos oficiais com as ferramentas do F-Droid, também precisará configurar o Processo de Assinatura.

Bibliotecas proprietárias, não livres

O SDK do Android é disponibilizado pelo Google sob uma licença proprietária. Dentro disso, as ferramentas de compilação essenciais, plataformas SDK, biblioteca de suporte e alguns outros componentes estão sob a licença Apache e o código-fonte é fornecido.

Google APIs, used for building apps using Google Maps, are free to the extent that the library comes pre-installed on the device. Google Play Services, Google Admob, GCM, and many other third party libraries are proprietary and cannot be included in the main F-Droid repository. The microG project is developing free software replacements for some of the most used proprietary Google libraries