tigase/stork

Publish on F-Droid

Opened this issue · 13 comments

Some good stuff so far:

  • free gradle flavour that doesn't use Google services

And the bad ones:

  • cleaning up to do: 1, 2, 3, remove push toggle in Settings
  • "Untrusted" maven repo. Can these be build at app build time or are they available from other trusted ones?

@licaon-kter We were thinking about publishing them to public repositories, but quite often (mostly on central) there was a clash with our "parent" - my understanding was that it would be difficult to publish it there so in the end those projects would still somehow fallback on non-trusted repository.

I think building dependencies (jaxmpp-* and tigase-xmltools - build times, without tests ~20s and ~5s respecitvely) would be easier to achieve.

It's not an issue of time, just of them being easy to build, with clear instructions and such.

They are just maven projects hosted on github (https://github.com/tigase/jaxmpp and https://github.com/tigase/tigase-xmltools) so it would go like this:

https://github.com/tigase/tigase-xmltools.git
cd tigase-xmltools
mvn clean install

https://github.com/tigase/jaxmpp.git
cd jaxmpp
mvn -Pandroid clean install

(you can add -DskipTests to speedup build)

@licaon-kter please check https://gitlab.com/fdroid/fdroiddata/-/merge_requests/6827 – the app was already on F-Droid, it just got "lost" when the repo was moved. Most things I've already updated, just that Maven repo is a show-stopper for my MR. Maybe you can pick up from where I left?

It's live :)

Thanks eveyrone for the contribution! :-)

https://f-droid.org/en/packages/org.tigase.messenger.phone.pro/

Trying to update

  - versionName: 3.2.4.f
    versionCode: 95
    commit: fcbdfe6eee886ebac8b3dbd756c481f0ac449087
    subdir: app
    sudo:
      - apt-get update || apt-get update
      - apt-get install -y openjdk-11-jdk-headless
      - update-alternatives --auto java
    gradle:
      - free
    srclibs:
      - tigase-xmltools@tigase-xmltools-4.0.1
      - jaxmpp@4b23dff06ca3af93893e90684bc1c582749889ef
    prebuild:
      - JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 $$SDK$$/tools/bin/sdkmanager 'platforms;android-28' 'build-tools;28.0.3'
      - sed -i -e '/firebase/d' -e '/com.google.gms/d' ../build.gradle build.gradle
      - sed -i -e '/maven-repo.tigase.org/d' ../build.gradle
    scanignore:
      - app/src/main/res/raw/trust_store_bks
    build:
      - pushd $$tigase-xmltools$$
      - mvn -DskipTests clean install
      - popd
      - pushd $$jaxmpp$$
      - mvn -Pandroid -DskipTests clean install
      - popd

...fails to build jaxmpp

+ mvn -Pandroid -DskipTests clean install
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for tigase:jaxmpp-android:[unknown-version]: Could not find artifact tigase:tigase-jaxmpp:pom:3.6.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 25, column 10
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project tigase:jaxmpp-android:[unknown-version] (/home/vagrant/build/srclib/jaxmpp/jaxmpp-android/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for tigase:jaxmpp-android:[unknown-version]: Could not find artifact tigase:tigase-jaxmpp:pom:3.6.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 25, column 10 -> [Help 2]

Thoughts?

Hmm, it should use 3.6.1-SNAPSHOT already:

jaxmppVersion=3.6.1-SNAPSHOT

We build jaxmpp to that commit since .1 is not tagged, and that fails.

Yeah, I remembered about self build.

I corrected the artifacts versions and it should work now.

Updated recipe since we're using Bullseye now:

  - versionName: 3.2.4.f
    versionCode: 95
    commit: fcbdfe6eee886ebac8b3dbd756c481f0ac449087
    subdir: app
    sudo:
      - apt-get update
      - apt-get install -y maven
    gradle:
      - free
    srclibs:
      - tigase-xmltools@tigase-xmltools-4.0.1
      - jaxmpp@e6d0d5b08e4cfb1a69a699cea65def4b7aac6456
    prebuild:
      - sdkmanager 'platforms;android-28' 'build-tools;28.0.3'
      - sed -i -e '/firebase/d' -e '/com.google.gms/d' ../build.gradle build.gradle
      - sed -i -e '/maven-repo.tigase.org/d' ../build.gradle
    scanignore:
      - app/src/main/res/raw/trust_store_bks
    build:
      - export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
      - pushd $$tigase-xmltools$$
      - mvn -DskipTests clean install
      - popd
      - pushd $$jaxmpp$$
      - mvn -Pandroid -DskipTests clean install
      - popd

new error: org.tigase.messenger.phone.pro_95.log.gz

(strange that if I don't specify JAVA_HOME it fails earlier:
org.tigase.messenger.phone.pro_95.log.gz)

Could you try building jaxmpp with JDK1.8?

Yup, builds with Java8.

  - versionName: 3.2.4.f
    versionCode: 95
    commit: fcbdfe6eee886ebac8b3dbd756c481f0ac449087
    subdir: app
    sudo:
      - echo "deb http://deb.debian.org/debian stretch main" > /etc/apt/sources.list.d/stretch.list
      - apt-get update
      - apt-get install -y maven
      - apt-get install -y -t stretch openjdk-8-jdk-headless
    gradle:
      - free
    srclibs:
      - tigase-xmltools@tigase-xmltools-4.0.1
      - jaxmpp@e6d0d5b08e4cfb1a69a699cea65def4b7aac6456
    prebuild:
      - sdkmanager 'platforms;android-28' 'build-tools;28.0.3'
      - sed -i -e '/firebase/d' -e '/com.google.gms/d' ../build.gradle build.gradle
      - sed -i -e '/maven-repo.tigase.org/d' ../build.gradle
    scanignore:
      - app/src/main/res/raw/trust_store_bks
    build:
      - export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      - pushd $$tigase-xmltools$$
      - mvn -Pandroid -DskipTests clean install
      - popd
      - pushd $$jaxmpp$$
      - mvn -Pandroid -DskipTests clean install
      - popd
      - export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

OMEMO and online status are still broken though, call button does not appear to test A/V :( but hey, "Parrot IM" can't come soon enough, right? 🤷