Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/f-droid/repomaker

mirror of https://gitlab.com/fdroid/repomaker
https://github.com/f-droid/repomaker

django fdroid

Last synced: 9 days ago
JSON representation

mirror of https://gitlab.com/fdroid/repomaker

Awesome Lists containing this project

README

        

[![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 ` where `` 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)