1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-12 18:20:11 +01:00
Tools for managing builds, indexes, updates, and deployments for F-Droid repositories.
Go to file
Hans-Christoph Steiner 2b6d692f06 use UTF8 as default instead of ASCII for .java .gradle pom.xml
.java .gradle and XML files all can use any encoding.  Most code is ASCII,
but authors' names, etc. can easily be non-ASCII.  UTF-8 is by far the most
common file encoding.  While UTF-8 is the default encoding inside the code
in Python 3, it still has to deal with the real world, so the encoding
needs to be explicitly set when reading and writing files. So this switches
fdroidserver to expect UTF-8 instead of ASCII when parsing these files. For
now, this commit means that we only support UTF-8 encoded *.java, pom.xml
or *.gradle files.  Ideally, the code would detect the encoding and use the
actual one, but that's a lot more work, and its something that will not
happen often. We can cross that bridge when we come to it.

One approach, which is taken in the commit when possible, is to keep the
data as `bytes`, in which case the encoding doesn't matter.

This also fixes this crash when parsing gradle and maven files with
non-ASCII chars:

ERROR: test_adapt_gradle (__main__.BuildTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/lib/jenkins/workspace/fdroidserver-eighthave/tests/build.TestCase", line 59, in test_adapt_gradle
    fdroidserver.build.adapt_gradle(testsdir)
  File "/var/lib/jenkins/workspace/fdroidserver-eighthave/fdroidserver/build.py", line 445, in adapt_gradle
    path)
  File "/var/lib/jenkins/workspace/fdroidserver-eighthave/fdroidserver/common.py", line 188, in regsub_file
    text = f.read()
  File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 9460: ordinal not in range(128)
2016-06-07 20:13:54 +02:00
.pylint-plugins jenkins-build: make pylint handle the hashlib hash classes properly 2014-04-03 12:33:22 -04:00
buildserver Do not install extra-android-support in the VM 2016-05-27 14:08:57 +01:00
completion Add '--use-date-from-apk' option to bash-completion 2016-02-18 16:42:16 +04:00
docs docs: add archive-policy default 2016-04-14 10:28:24 +02:00
examples Add and switch to build-tools 23.0.3 2016-04-05 10:49:30 +01:00
fdroidserver use UTF8 as default instead of ASCII for .java .gradle pom.xml 2016-06-07 20:13:54 +02:00
hooks not all UNIX echo commands support -n 2016-03-14 12:49:38 +01:00
tests use UTF8 as default instead of ASCII for .java .gradle pom.xml 2016-06-07 20:13:54 +02:00
wp-fdroid wp-fdroid: Linkify more licenses 2016-01-24 13:27:15 +01:00
.gitignore gitignore: ignore all test-generated tmp dirs 2016-03-11 13:27:01 +00:00
.gitlab-ci.yml CI: Update image, not using base anymore 2016-04-29 20:27:39 +01:00
.travis.yml CI: Install venv instead of virtualenv 2016-04-14 16:16:58 +01:00
fd-commit Apparently Python cannot handle Unicode 2016-01-14 23:15:05 +01:00
fdroid always parse versions as strings, not bytes 2016-03-14 12:49:38 +01:00
jenkins-build move tests into common script for jenkins and gitlab-ci 2015-09-01 19:52:37 +02:00
jenkins-build-makebuildserver jenkins-build-makebuildserver: com.amaze.filemanager instead of org.xcsoar 2016-03-15 13:47:56 +01:00
LICENSE Rename COPYING to LICENSE 2015-08-24 10:54:20 -07:00
makebuildserver Bump platform-23 to r03 2016-05-27 14:08:57 +01:00
MANIFEST.in name makebuildserver config the same as the script 2016-01-21 15:34:55 +01:00
README.md README: fix badge 2016-06-03 16:59:24 +01:00
setup.cfg corrected word order in release alias 2016-03-10 12:28:31 +01:00
setup.py import app into fdroid directly from git clone 2016-03-23 17:16:28 +01:00

F-Droid Server

build status

Server for F-Droid, the Free Software repository system for Android.

The F-Droid server tools provide various scripts and tools that are used to maintain the main F-Droid application repository. You can use these same tools to create your own additional or alternative repository for publishing, or to assist in creating, testing and submitting metadata to the main repository.

For documentation, please see the docs directory.

Alternatively, visit https://f-droid.org/manual/.

What is F-Droid?

F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device.

Installing

Note that only Python 3 is supported. We recommend version 3.4 or later.

The easiest way to install the fdroidserver tools is on Ubuntu, Mint or other Ubuntu based distributions, you can install using:

sudo apt-get install fdroidserver

For older Ubuntu releases or to get the latest version, you can get fdroidserver from the Guardian Project PPA (the signing key fingerprint is 6B80 A842 07B3 0AC9 DEE2 35FE F50E ADDD 2234 F563)

sudo add-apt-repository ppa:guardianproject/ppa
sudo apt-get update
sudo apt-get install fdroidserver

On OSX, fdroidserver is available from third party package managers, like Homebrew, MacPorts, and Fink:

brew install fdroidserver

For Arch-Linux is a package in the AUR available. If you have installed yaourt or something similiar, you can do:

yaourt -S fdroidserver

For any platform where Python's easy_install is an option (e.g. OSX or Cygwin, you can use it:

sudo easy_install fdroidserver

Python's pip also works:

sudo pip3 install fdroidserver

The combination of pyvenv and pip is great for testing out the latest versions of fdroidserver. Using pip, fdroidserver can even be installed straight from git. First, make sure you have installed the python header files, venv and pip. They should be included in your OS's default package manager or you can install them via other mechanisms like Brew/dnf/pacman/emerge/Fink/MacPorts.

For Debian based distributions:

apt-get install python3-dev python3-pip python3-venv libjpeg-dev zlib1g-dev

Then here's how to install:

git clone https://gitlab.com/fdroid/fdroidserver.git
cd fdroidserver
pyvenv env/
source env/bin/activate
pip3 install -e .
python3 setup.py install