Metadata-Version: 2.4
Name: repomaker
Version: 1.0.0b3
Summary: Create F-Droid repositories with ease
Home-page: https://f-droid.org/repomaker/
Author: F-Droid Community
Author-email: team@f-droid.org
License: AGPL-3.0
Keywords: android,app store,repository
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Utilities
Classifier: Topic :: System :: Software Distribution
Requires-Python: >=3
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django==4.2.16
Requires-Dist: django-allauth
Requires-Dist: django-tinymce<3,>=2.6.0
Requires-Dist: django-js-reverse>=0.9.0
Requires-Dist: django-compressor
Requires-Dist: django-modeltranslation<0.17
Requires-Dist: django-sass-processor
Requires-Dist: django-background-tasks<1.2,>=1.1.13
Requires-Dist: bleach<5.0,>=2.1.4
Requires-Dist: html5lib<1.2,>=1.1
Requires-Dist: python-magic
Requires-Dist: qrcode
Requires-Dist: cryptography>=1.4.0
Requires-Dist: fdroidserver==2.3.2
Provides-Extra: gui
Requires-Dist: PyQt5==5.10.0; extra == "gui"
Requires-Dist: pywebview[qt5]<3; extra == "gui"
Provides-Extra: test
Requires-Dist: pycodestyle; extra == "test"
Requires-Dist: coverage; extra == "test"
Requires-Dist: pylint-django; extra == "test"
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

[![build status](https://gitlab.com/fdroid/repomaker/badges/master/build.svg)](https://gitlab.com/fdroid/repomaker/commits/master)
[![coverage report](https://gitlab.com/fdroid/repomaker/badges/master/coverage.svg)](https://gitlab.com/fdroid/repomaker/-/jobs)
[![translation status](https://hosted.weblate.org/widgets/f-droid/-/repomaker/svg-badge.svg)](https://hosted.weblate.org/projects/f-droid/repomaker/)

Repomaker needs a maintainer, please adopt me!  Repomaker currently runs on Django 1.11, which went out of security support in July 2020. Please see [#234](https://gitlab.com/fdroid/repomaker/-/issues/233) for more information.

# Installation

There are several different ways to install Repomaker.

## Flatpak

Repomaker is available as Flatpak and
[distributed on Flathub](https://flathub.org/apps/details/org.fdroid.Repomaker).
Once you got [Flatpak installed on your system](https://flatpak.org/setup/),
either go to your system's app store or execute the following commands (without `sudo`!):

```console
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak install flathub org.fdroid.Repomaker
$ flatpak run --runtime=org.gnome.Sdk org.fdroid.Repomaker
```

## On a server / Docker

There is a test image available in Docker for quickly trying out
Repomaker.  Note that you can run Repomaker on a server and make use
of its multi user functionality.  See [Docker
docs](https://gitlab.com/fdroid/repomaker/tree/master/docker) and the
[general docs](https://gitlab.com/fdroid/repomaker/tree/master/doc)
for more information on that topic.


## PyPi

If you don't want or can't install Repomaker with one of the mentioned
methods, you can install it with _pip_ from PyPi.


### Requirements

Please make sure you have the following requirements installed
before proceeding with the installation. 


#### Install

* `pip` for installation of Python 3 dependencies
* `virtualenv` to create an isolated Python environment
* Python development and build files for installing/building some dependencies

On Debian, you can simply run this:

`apt install python3-pip python3-wheel python3-dev virtualenv build-essential`

#### Runtime

* `keytool` from Java Runtime Environment (JRE)
* `jarsigner` from Java JDK for signing the repo indexes
* `libmagic` for mime-type detection
* `rsync` to publish repositories
* `git` to publish repositories to git mirrors

On Debian, you can simply run this:

```
sudo apt install fdroidserver libmagic1 rsync git \
    python3-pyqt5.qtwebengine python3-pyqt5.qtwebkit
```

### Install into virtual environment

To not mess with other Python libraries you have installed,
we will install repomaker into its own isolated Python environment.

    virtualenv -p /usr/bin/python3 repomaker
    source repomaker/bin/activate
    pip install repomaker[gui]

You should now be able to start by typing:

    repomaker


### Troubleshooting

First check that you really have all dependencies from above installed.

If the installation fails with something about `openssl`,
try to install `libssl-dev` with `apt install libssl-dev`.

If the graphical user interface fails to start,
you can try running `repomaker-server` and `repomaker-tasks`.
If that works, you should be able to open [127.0.0.1:8000](http://127.0.0.1:8000/)
in your browser.


# Development

To work on repomaker, you need _npm_ to fetch CSS and JavaScript dependencies: `apt install npm`.

Then run `npm install` to install these dependencies.

If you want to run repomaker in your browser rather then using the GUI,
you can start it like this:

    virtualenv -p /usr/bin/python3 repomaker
    source repomaker/bin/activate
    ./setup.sh
    ./run.sh

## Vagrant VM

There also a Vagrant setup based on the GitLab CI setup, it is a quick
way to get a development setup.  First, set up Vagrant on your machine,
then run:

```console
$ cd repomaker
$ vagrant up
$ vagrant ssh
vagrant@basebox-buster64:~$ ip a | sed -En 's,.*inet +(192\.168\.[0-9]+\.[0-9]+).*,open http://\1:8000,p'
open http://192.168.121.37:8000
vagrant@basebox-buster64:~$ cd $CI_PROJECT_DIR
vagrant@basebox-buster64:/builds/fdroid/repomaker$ ./tests/test-units.sh
```


## Translation

* GNU gettext `apt install gettext`

# License

This program is free software: you can redistribute it and/or modify it
under the terms of the [GNU Affero General Public License](/LICENSE)
as published by the Free Software Foundation,
either version 3 of the License,
or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.


# Translating

Everything can be translated.  See
[Translation and Localization](https://f-droid.org/docs/Translation_and_Localization)
for more info.

* To update translations, run `./update-translations.sh`.
* To add a new translation, run `python3 manage.py makemessages -l <lg>` where `<lg>` is the language code, e.g. `de`.

[![translation status](https://hosted.weblate.org/widgets/f-droid/-/repomaker/multi-auto.svg)](https://hosted.weblate.org/engage/f-droid/?utm_source=widget)
