F-DroidAndApplications

Background

F-Droid will be removed in Replicant 4.0 0004 because it contains many applications that are not FSDG compliant.

Fixing F-droid

As Replicant cannot guarantee to have enough time to dedicate to create an alternate repository, it was decided to do the following.

The only maintenance burden here would be to work with upstream to make sure that the packages are tagged correctly in f-droid data.

In the meantime...

Without an upstream project, each Replicant user would need do the work of reviewing each application she want to use.

As this is very time consuming and would lead to a lot of work duplication, it's best for Replicant to provide some space to share the result of the reviews.

At the same time the reviews would also be tremendously useful to help fixing f-droid data.

Criteria

Since there are free versions of the Android SDK (see the SDK wiki page for more details), we can assume that all the applications that don't require microG to run build fine under at least one of the FSDG compliant GNU/Linux distributions with one of the SDK mentioned in the SDK wiki page.

It might still be useful to mention if we managed to rebuild them with an FSDG distribution and what we used to do that.

We can then review applications in a similar way than how we review packages for FSDG compliant GNU/Linux distributions.

There is also the Criteria for Android applications that was started to clarify the FSDG requirements for Android applications in general but that also applies to third party repositories in existing FSDG GNU/Linux distributions.

Being reviewed

Application and version Download link Review comments
GNU Emacs Version 30.0.50 Being reviewed, but should be OK:
The INSTALL.Android file states that:
* "Emacs is known to run on Android 2.2 (API version 8) or later, with the NDK r10b or later."
* "Building Emacs with an old version of the Android NDK requires special setup. This is because there is no separate C compiler binary for each version of Android in those versions of the NDK. [instructions for doing that]". However nobody tried to built it with the Replicant 4.2 SDK yet.
PureOS and Trisquel also have an SDK but lack an NDK. So someone needs to try to build emacs and it'd be OK.
RepWiFi Version 0.6.2 Being reviewed:
* GPLv3
* Doesn't seem to have any (nonfree) dependency
* Doesn't seem to promote nonfree software or actively push users toward the installation of nonfree software
* TODO: Try to build, though it was probably built as part of Replicant long time ago
Silence Version 0.15.16 Being reviewed:
* GPLv3 (probably GPLv3-only)
* Build systems: Android.mk (has instructions on how to produce a standalone APK), gradle
* Has some dependencies (git submodule):
- libs/com.amulyakhare.textdrawable: MIT
- libs/gradle-witness: MIT
- libs/org.greenrobot.eventbus: Apache 2.0
- libs/org.whispersystems.jobmanager: GPLv3 (build.gradle has "name 'GPLv3'", no mention of GPLv3+ or GPLv3-only)
- libs/org.whispersystems.libpastelog: GPLv3 (build.gradle has "name 'GPLv3'", no mention of GPLv3+ or GPLv3-only)
- libs/org.whispersystems.libsignal: GPLv3 (build.gradle has "name 'GPLv3'", no mention of GPLv3+ or GPLv3-only)
* Doesn't seem to promote nonfree software or actively push users toward the installation of nonfree software
* TODO: Try to build and see if it downloads all the dependencies source code and their dependencies dependencies source code if any

Build tests

Application Distribution status
silence Trisquel 10 (nabia) Failed: Requires gradle version is 4.10.1 instead of 4.4.11.
termux Trisquel 10 (nabia) Failed: Requires gradle version is 6.7.1 instead of 4.4.11.
hello-world-debian-android Trisquel 9 (etiona) Builds and runs fine (GT-I9300, Replicant 6.0 0004).
hello-world-debian-android Trisquel 10 (nabia) Builds fails2
hello-world-debian-android PureOS 10 (byzantium) Builds and runs fine (GT-I9300, Replicant 6.0 0004).

1 The test being done on Trisquel 10 (nabia) were made by following more or less the "Building apps with these packages" instructions in https://bits.debian.org/2017/03/build-android-apps-with-debian.html

2 The build fails due to some Trisquel packaging issues or Java versions:

/usr/lib/android-sdk/build-tools/debian/dx --dex --verbose --min-sdk-version=19 --output=dex/classes.dex src
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
make: *** [Makefile:25: dex/classes.dex] Error 1

Not compliant

Application upstream anti-features Issues Upstream status
F-Droid None * Its repositories that are configured in by default (and enabled by default as well) have non compliant packages like Yalp, making F-Droid itself non compliant. * There is no automatic way to deduce that it's not FSDG compliant
* Upstream probably would not like having F-droid tagged with anti-features
* No current F-droid anti-features apply to that case
Yalp * NonFreeNet Yalp is a package manager that is setup to download applications from a repository that is not FSDG compliant * There is no automatic way to deduce that it's not FSDG compliant
* NonFreeNet is only about non-Free network service and not the license of the packages in the repository
* No current F-droid anti-features apply to that case
TODO:

TODO

Collaboration with the Free Software Directory (FSD)

The Free software Directory has a list of applications that run on Replicant.

We need to see with them how to handle the collaboration between both projects in the long run:

Wikidata

The Free Software Directory (FSD) seems to have way more fields seems to be able to store explanations along with the information. For instance there is a "License note" text form that could have detailed information about the license. It could probably tell which files or which parts are under which license for instance. Wikidata can't do that (it's not meant for text explanations). The Free Software Directory (FSD) also has fields and checkboxes for a lot of information, so Wikidata is probably currently lacking ways to store all that information.

Here's an example for Guix

So it might make more sense to contribute directly to the Free Software Directory (FSD) instead of Wikidata. If you still want to use Wikidata to do query on software, you could for instance: