Devrait être disponible dans f-droid
Afin de faciliter la découverte, installation, mise à jour de cette application libre et open-source, elle devrait être disponible dans le magasin d'application f-droid (https://f-droid.org/).
Tout à fait d’accord. Do not hesitate to submit the app through the f-droid process: https://f-droid.org/contribute/ https://f-droid.org/forums/forum/submission-queue/
J’ai essayé de compiler l’application avec une version récente de Gradle comme utilisée par le serveur de compilation de F-Droid, sans succès. Une fois ceci fait, je peux assez facilement faire la modification pour que l’application soit cataloguée et compilée par F-Droid.
@ariasuni j’ai mit à jour les scripts de build, ça devrait te permettre de réessayer.
Voici ce que j’obtiens quand j’essaie de compiler ton projet via F-Droid:
INFO: Creating log directory
INFO: Creating output directory
INFO: Using git version 2.19.0
INFO: Building version 1.3 (1) of fr.bepo.clavierexterne
INFO: Getting source for revision b28009358ce8d9df6933acc8ea70718bbc83b970
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/local.properties
INFO: Cleaned build.gradle of keysigning configs at build/fr.bepo.clavierexterne/clavierexterne/build.gradle
ERROR: Could not build app fr.bepo.clavierexterne: Failed to update project at .
==== detail begin ====
*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************
Invalid or unsupported command "update lib-project -p ."
Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk
==== detail end ====
INFO: Build for app fr.bepo.clavierexterne failed:
Failed to update project at .
==== detail begin ====
*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************
Invalid or unsupported command "update lib-project -p ."
Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk
==== detail end ====
INFO: Finished
INFO: 1 build failed
Au passage ça pourait être cool d’avoir des tags git pour pouvoir suivre les mises à jour.
@ariasuni Quelle commande a été lancée pour obtenir cette trace ?
J’ai ajouté les tags v1.1 et v1.3 qui étaient les deux dernières releases.
J’ai réussi à compiler l’application en mettant à jour les informations de compilation (ayant sur ma machine la dernière version des outils de compilation, version 28): https://github.com/ariasuni/bepo-android/commit/467035b1a3478a2fc884e62371087c8c9a015f90
Car, d’après cet article, idéalement on a:
minSdkVersion (lowest possible) <= targetSdkVersion == compileSdkVersion (latest SDK)
Et avec ce fichier de métadonnées.
Cependant, j’obtiens cette sortie:
INFO: Using git version 2.19.0
INFO: Building version 1.3 (1) of fr.bepo.clavierexterne
INFO: Getting source for revision 467035b1a3478a2fc884e62371087c8c9a015f90
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/local.properties
INFO: Cleaned build.gradle of keysigning configs at build/fr.bepo.clavierexterne/clavierexterne/build.gradle
INFO: Cleaning Gradle project...
INFO: Scanning source for common problems...
INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
INFO: Removing APK file at apk/bepo-clavierexterne.apk
INFO: Creating source tarball...
INFO: Building Gradle project...
INFO: Successfully built version 1.3 of fr.bepo.clavierexterne
ERROR: Could not build app fr.bepo.clavierexterne: Failed to find any output apks
INFO: Build for app fr.bepo.clavierexterne failed:
Failed to find any output apks
INFO: Terminé
INFO: 1 build failed
Donc à mon avis, ton script de nettoyage supprime l’APK et fdroidserver n’est plus en mesure de le trouver.
Bizarre. Je voulais bumper le compileSdkVersion, mais je n’ai pas eu le temps de tester. Ne pas hésiter à proposer une PR avec ton changement !
Pour le script de nettoyage, il n’y en a pas, mais une subtilité, est que le "vrai" projet gradle est dans le sous-répertoire "clavierexterne", donc l’apk devrait être dans clavierexterne/build/outputs/apk/ ; peut-être est-ce le soucis ?
ça doit sans doute être ça. il faudrait voir pour modifier ton script de compilation ou indiquer à F-droid où trouver l’APK, selon ce qui est le plus simple et le plus logique.
J’ai essayé de préciser output=apk/bepo-clavierexterne.apk mais le fichier apk est toujours nettoyé, et il échoue donc à le trouver au final.
Non, l'output ça serait plutôt un fichier apk dans clavierexterne/build/outputs/apk/ . Celui à la racine dans apk/ est identique à la version buildée et signé pour Google Play, il n'est pas recomposé.
@ariasuni comment lances-tu le build ?
J’ai indiqué plus haut le fichier de métadonnées; je fais fdroid build fr.bepo.clavierexterne ensuite. J’ai essayé d’indiquer output=clavierexterne/build/outputs/apk/debug/clavierexterne-debug.apk mais il ne le trouve pas, je pense bien qu’il faut utiliser le premier mais trouver pourquoi il est supprimé automatiquement…
@ariasuni c’est vraiment pas loin je pense en spécifiant subdir=clavierexterne et le bon versionCode, ça devrait passer:
diff --git a/metadata/fr.bepo.clavierexterne.txt b/metadata/fr.bepo.clavierexterne.txt
index dd6bcadbd..e2db643d3 100644
--- a/metadata/fr.bepo.clavierexterne.txt
+++ b/metadata/fr.bepo.clavierexterne.txt
@@ -45,10 +45,12 @@ Repo Type:git
Repo:https://github.com/ariasuni/bepo-android
-Build:1.3,1
+Build:1.3,3
commit=467035b1a3478a2fc884e62371087c8c9a015f90
gradle=yes
+ subdir=clavierexterne
Auto Update Mode:None
Update Check Mode:None
Current Version:1.3
-Current Version Code:1
+Current Version Code:3
J’attends ta PR pour le compileSdk :-)
Donc avec:
- https://gitlab.com/ariasuni/fdroiddata/blob/378c8df0fee2224c4f2516b4a9d24714b453f5ca/metadata/fr.bepo.clavierexterne.txt
- et cette modif: https://github.com/ariasuni/bepo-android/commit/b4ec955ad7bdafdace810f733f64c3b8680cb278
J’obtiens:
INFO: Using git version 2.19.0
INFO: Building version 1.3 (1) of fr.bepo.clavierexterne
INFO: Getting source for revision b4ec955ad7bdafdace810f733f64c3b8680cb278
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/local.properties
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/clavierexterne/local.properties
INFO: Cleaned build.gradle of keysigning configs at build/fr.bepo.clavierexterne/clavierexterne/build.gradle
INFO: Cleaning Gradle project...
INFO: Scanning source for common problems...
INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
INFO: Removing APK file at apk/bepo-clavierexterne.apk
INFO: Creating source tarball...
INFO: Building Gradle project...
INFO: Successfully built version 1.3 of fr.bepo.clavierexterne
ERROR: Could not build app fr.bepo.clavierexterne: Wrong package ID - build 9 but expected fr.bepo.clavierexterne
INFO: Build for app fr.bepo.clavierexterne failed:
Wrong package ID - build 9 but expected fr.bepo.clavierexterne
INFO: Terminé
INFO: 1 build failed
Ce qui me laisse penser que c’est un autre problème lié à la façon de build clavierexterne.
En tentant de builder ta version, j’ai ces erreurs:
INFO: Using git version 2.17.1
INFO: Building version 1.3 (1) of fr.bepo.clavierexterne
INFO: Getting source for revision b4ec955ad7bdafdace810f733f64c3b8680cb278
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/local.properties
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/clavierexterne/local.properties
INFO: Cleaned build.gradle of keysigning configs at build/fr.bepo.clavierexterne/clavierexterne/build.gradle
INFO: Cleaning Gradle project...
INFO: Scanning source for common problems...
INFO: Removing APK file at apk/bepo-clavierexterne.apk
INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
INFO: Creating source tarball...
INFO: Building Gradle project...
INFO: Successfully built version 1.3 of fr.bepo.clavierexterne
ERROR: Could not build app fr.bepo.clavierexterne: Unexpected version/version code in output; APK: '1.3' / '3', Expected: '1.3' / '1'
INFO: Build for app fr.bepo.clavierexterne failed:
Unexpected version/version code in output; APK: '1.3' / '3', Expected: '1.3' / '1'
INFO: Finished
INFO: 1 build failed
Une fois le versionCode modifié comme dans le patch plus haut, ça fonctionne bien:
INFO: Creating temporary directory
INFO: Using git version 2.17.1
INFO: Building version 1.3 (3) of fr.bepo.clavierexterne
INFO: Getting source for revision b4ec955ad7bdafdace810f733f64c3b8680cb278
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/local.properties
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/clavierexterne/local.properties
INFO: Cleaned build.gradle of keysigning configs at build/fr.bepo.clavierexterne/clavierexterne/build.gradle
INFO: Cleaning Gradle project...
INFO: Scanning source for common problems...
INFO: Removing APK file at apk/bepo-clavierexterne.apk
INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
INFO: Creating source tarball...
INFO: Building Gradle project...
INFO: Successfully built version 1.3 of fr.bepo.clavierexterne
INFO: success: fr.bepo.clavierexterne
INFO: Finished
INFO: 1 build succeeded
Et j’ai bien le fichier apk fdroid dans unsigned/.
Moi j’obtiens
❯ fdroid build fr.bepo.clavierexterne
INFO: Using git version 2.19.1
INFO: Building version 1.3 (3) of fr.bepo.clavierexterne
INFO: Getting source for revision b4ec955ad7bdafdace810f733f64c3b8680cb278
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/local.properties
INFO: Creating local.properties file at build/fr.bepo.clavierexterne/clavierexterne/local.properties
INFO: Cleaned build.gradle of keysigning configs at build/fr.bepo.clavierexterne/clavierexterne/build.gradle
INFO: Cleaning Gradle project...
INFO: Scanning source for common problems...
INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar
INFO: Removing APK file at apk/bepo-clavierexterne.apk
INFO: Creating source tarball...
INFO: Building Gradle project...
INFO: Successfully built version 1.3 of fr.bepo.clavierexterne
ERROR: Could not build app fr.bepo.clavierexterne: Wrong package ID - build 9 but expected fr.bepo.clavierexterne
INFO: Build for app fr.bepo.clavierexterne failed:
Wrong package ID - build 9 but expected fr.bepo.clavierexterne
INFO: Terminé
INFO: 1 build failed
Je ne comprends pas trop ce qui fait que ça marche chez toi mais pas chez moi…
Je ne sais pas forcément par où commencer, mais il va falloir trouver un moyen de converger. Quelle est ta distribution ? Quelle version/tag de f-droid ? Comment est-ce que f-droid est installé ? Arrives-tu à builder une autre appli f-droid ? Laquelle ? Il n'est pas impossible que mon environnement pollue le build et le fasse réussir, mais l’appli bepo-android est très basique, et le build passe sur travis-ci. Je peux essayer de reproduire ton environnement pour trouver ce qui ne fonctionne pas.
Du coup j’ai réussi à compiler l’application avec Python < 3.7 et les outils Android en version 27, sinon je tombe sur le bug de F-Droid qui fait échouer mes précédentes compilations. Du coup normalement t’as rien à changer sur ton dépôt pour le moment.
Au fait, si jamais tu mets à jour ton application, il faudra ajouter un étiquette (tag) git pour que le changement soit détecté automatiquement par les scripts périodiques de F-Droid.