d4rken-org / capod

A companion app for AirPods on Android.
https://play.google.com/store/apps/details?id=eu.darken.capod
GNU General Public License v3.0
521 stars 44 forks source link

Do you mind if I write a request to be added to F-Droid? #37

Closed Artem13327 closed 1 year ago

d4rken commented 2 years ago

I don't mind if there is no extra work for me.

Is this the difference between a 3rd party repo and "the default" f-droid repo?

We already have this: https://apt.izzysoft.de/fdroid/index/apk/eu.darken.capod

/cc @IzzySoft

Artem13327 commented 2 years ago

Is crowdin-cli.jar needed to build?

What to specify in the field developer and developer mail?

d4rken commented 2 years ago

Is crowdin-cli.jar needed to build?

No, it's for synchronizing translations.

What to specify in the field developer

darken or Matthias Urhahn

and developer mail?

if it's for admin stuff darken@darken.eu if it's for users support@darken.eu but f-droid users who have issues should go on GitHub, not email me :sweat_smile:.

Artem13327 commented 2 years ago

It is also desirable to tell the site of the developer

d4rken commented 2 years ago
AuthorName: Matthias Urhahn
AuthorEmail: darken@darken.eu
AuthorWebSite: https://darken.eu
Donate: https://github.com/sponsors/d4rken

SourceCode: https://github.com/d4rken-org/capod
IssueTracker: https://github.com/d4rken-org/capod/issues
Changelog: https://github.com/d4rken-org/capod/releases
licaon-kter commented 2 years ago

@d4rken halp https://gitlab.com/fdroid/rfp/-/issues/2222#note_1116255404

d4rken commented 2 years ago

@d4rken halp https://gitlab.com/fdroid/rfp/-/issues/2222#note_1116255404

I replied there.

I don't mind if there is no extra work for me.

This already seems to have failed :frowning:

Artem13327 commented 2 years ago

This already seems to have failed 😦 πŸ˜…

IzzySoft commented 2 years ago

Is this the difference between a 3rd party repo and "the default" f-droid repo?

The F-Droid.org repo is more trusted than mine, for good reasons (which doesn't mean my repo is not trustworthy – but more eyes looking on it plus reproducing the build, thus making sure the APK really corresponds to the source etc is something I cannot do alone :wink: So the F-Droid.org repo is the higher goal you are suggested/recommended to aim at – while of course your app is welcome to stay with my repo if you prefer. For some rough comparison, take a look here.

Donkey-Doug commented 2 years ago

There currently is no release to download in fdroid. I cannot download this app other than manually downloading github releases.

licaon-kter commented 2 years ago

@Donkey-Doug you've seen already that https://gitlab.com/fdroid/rfp/-/issues/2222#note_1116255404 is still open and not merged, right?

the4anoni commented 2 years ago

For some reason IzzyOnDroid version doesn't install, it requires android.hardware.type.watch.

licaon-kter commented 2 years ago

@the4anoni think it's: https://gitlab.com/fdroid/fdroidclient/-/issues/2430 ;(

the4anoni commented 2 years ago

@the4anoni think it's: https://gitlab.com/fdroid/fdroidclient/-/issues/2430 ;(

It actually doesn't install directly from APK.

IzzySoft commented 2 years ago

Uh-Oh… Fixed. My updater had grabbed the wrong APK. When I added the app to my repo, there was just a single APK available at each release. Since v2, there are 2 of them attached to releases/: one is WEAROS and the other not. The WEAROS one requires android.hardware.type.watch, the other does not. I've just told my updater to ignore the WEAROS one and replaced the latest release.

@the4anoni please try again after the next sync today at around 6 pm UTC.

@licaon-kter maybe our recipe needs an update then as well, so we (also) build the other one?

licaon-kter commented 2 years ago

@IzzySoft we're not there yet, still waiting for the devs about other issues, afaik

the4anoni commented 2 years ago

Uh-Oh… Fixed. My updater had grabbed the wrong APK. When I added the app to my repo, there was just a single APK available at each release. Since v2, there are 2 of them attached to releases/: one is WEAROS and the other not. The WEAROS one requires android.hardware.type.watch, the other does not. I've just told my updater to ignore the WEAROS one and replaced the latest release.

@the4anoni please try again after the next sync today at around 6 pm UTC.

@licaon-kter maybe our recipe needs an update then as well, so we (also) build the other one?

Now it works as it should :)

d4rken commented 1 year ago

Alright, we now have a release script. Thanks to some nice scripting work by @jv-k, I had something to start from, my bash isn't great :face_exhaling:. It bumps the version, writes it to all necessary places, creates a VERSION file that F-Droid can hopefully be setup to parse, and then tags the commit and pushes it.

./release.sh -b -p origin  

Option set: Disable committing to new branch.

Option set: Pushing to <origin>, as the last action in this script.

Current version from <VERSION> file: 2.2.1-rc0

Enter a new version number [2.2.1-rc0]: 

Parsing 2.2.1-rc0

βœ…  Successfully parsed 2.2.1-rc0 to 2.2.1-rc0
V_MAJOR=2
V_MINOR=2
V_PATCH=1
V_BUILD_TYPE=rc
V_BUILD_COUNTER=0
Setting version to [2.2.1-rc1 (20201010)] ....

––––––

Parsing version.properties:

Found major, replacing: project.versioning.major=2 -> project.versioning.major=2
Found minor, replacing: project.versioning.minor=2 -> project.versioning.minor=2
Found patch, replacing: project.versioning.patch=1 -> project.versioning.patch=1
Found build, replacing: project.versioning.build=0 -> project.versioning.build=1

βœ… Updated [version.properties] file

βœ… Updated [VERSION] file

Committing...

βœ… [main 63f37e5] Release: 2.2.1-rc1
 2 files changed, 2 insertions(+), 2 deletions(-)

βœ… Added GIT tag

Pushing files + tags to <origin>...

βœ… To github.com:d4rken-org/capod.git
 * [new tag]         v2.2.1-rc1 -> v2.2.1-rc1
To github.com:d4rken-org/capod.git
   01ea08a..63f37e5  main -> main

––––––

βœ… Bumped 2.2.1-rc0 –> 2.2.1-rc1

Done πŸ‘‹πŸ»
jv-k commented 1 year ago

I recommend using ver-bump as a globally installed package, it's superior to that gist that I wrote πŸ™ŒπŸΌ

d4rken commented 1 year ago

I recommend using ver-bump as a globally installed package, it's superior to that gist that I wrote πŸ™ŒπŸΌ

I'd still have to modify it too, to fit this use-case. I don't have a package.json that I need to bump but a custom gradle properties file.

licaon-kter commented 1 year ago
...
> Task :app:packageFossRelease

> Task :app:bugsnagReleaseFoss-releaseTask FAILED
WARNING:API 'ApkVariantOutput.getVersionCodeOverride()' is obsolete and has been replaced with 'VariantOutput.versionCode()'.
It will be removed in version 7.0 of the Android Gradle plugin.
Gradle Properties must be used to change Variant information.
For more information, see https://d.android.com/r/tools/use-properties.
To determine what is calling ApkVariantOutput.getVersionCodeOverride(), use -Pandroid.debug.obsoleteApi=true on the command line to display more information.
WARNING:API 'ApkVariantOutput.getVersionNameOverride()' is obsolete and has been replaced with 'VariantOutput.versionName()'.
It will be removed in version 7.0 of the Android Gradle plugin.
Gradle Properties must be used to change Variant information.
For more information, see https://d.android.com/r/tools/use-properties.
To determine what is calling ApkVariantOutput.getVersionNameOverride(), use -Pandroid.debug.obsoleteApi=true on the command line to display more information.
Bugsnag: Uploading to Releases API
{"errors":["API key not recognised: deadbeef"],"status":"error"}

> Task :app:createFossReleaseApkListingFileRedirect

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:bugsnagReleaseFoss-releaseTask'.
> java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Bugsnag request failed to complete

What's the plan with bugsnag?

Recipe:

  - versionName: 2.7.2-rc0                                                                                                                   
    versionCode: 20702000                                                                                                                    
    commit: 48fd3543e3ca947c06a9b5e805dfeed051538678                                                                                         
    subdir: app                                                                                                                              
    gradle:                                                                                                                                  
      - foss                                                                                                                                 
    rm:                                                                                                                                      
      - crowdin-cli.jar                                                                                                                      
    prebuild:                                                                                                                                
      - cp ../version.properties .                                                                                                           
      - sed -i -e 's/${bugsnagApiKey}/deadbeef/' ../app-wear/src/main/AndroidManifest.xml                                                    
        src/main/AndroidManifest.xml
d4rken commented 1 year ago

What's the plan with bugsnag?

Didn't I move that into an extra flavor? :thinking: I'll look into it, give me a few hours.

d4rken commented 1 year ago

@licaon-kter Thanks, can we recheck against this branch (#88): https://github.com/d4rken-org/capod/tree/foss_fdroid_tweaks

or should I create a release with this?

edit: nvm build fails :frowning_face: Gradle :angry: edi2: Okay pr checks pass :relaxed:

I don't mind if there is no extra work for me.

:smiling_face_with_tear: famous last words

d4rken commented 1 year ago

https://gitlab.com/fdroid/fdroiddata/-/merge_requests/12569

IzzySoft commented 1 year ago

@d4rken do you want me to keep it in my repo once it becomes available at F-Droid? I see you've mastered the "supreme discipline" and are going with reproducible builds, so there'd be no conflict: users can install from F-Droid (for added trust) and profit from faster updates via my repo if they wish.

d4rken commented 1 year ago

@d4rken do you want me to keep it in my repo once it becomes available at F-Droid? I see you've mastered the "supreme discipline" and are going with reproducible builds, so there'd be no conflict: users can install from F-Droid (for added trust) and profit from faster updates via my repo if they wish.

I'd be okay with keeping both if you think there is benefit. Your solution was very low maintenance so far for me ☺️.

Not sure what I did do for reproducible builds, but it did require quite some patience to get it all to work in the end πŸ˜….

Thanks to @licaon-kter who helped me along πŸ₯².

IzzySoft commented 1 year ago

I'd be okay with keeping both if you think there is benefit. Your solution was very low maintenance so far for me :relaxed:.

Glad to read it was easy going – and marked for keep. Once it shows up at F-Droid, on my repo's website it will have the hint of being available in both places.

And yes, sometimes RB works out-of-the-box, at other times it needs some tweaking. Luckily the cases we cannot get it working and have to give up are few.

shuvashish76 commented 1 year ago

https://github.com/d4rken-org/capod#license

I wonder what's the license of those assets πŸ€” because F-Droid already use them. No license means F-Droid should add "Non-Free Assets" AntiFeature in my opinion.

IzzySoft commented 12 months ago

@d4rken I'm afraid @shuvashish76 is right there and we'll have to add the NonFreeAssets then. Unless that section is meant as "not covered by GPL but …" – and the "but" is another libre license (e.g. CC-BY 4.0 or CC-BY-SA 4.0, see here for a list of options). Can you please clarify?

d4rken commented 12 months ago

Thanks for the ping @IzzySoft , sorry for missing your comment @shuvashish76.

The excluded assets are not available under another libre license at this time.

I'm not super well versed in the open-source license details, maybe you could educate me here. I've read conflicting opinions online about whether the GPL3 only covers source-code, not assets like icons, by default.

Looking at other projects on F-Droid without the NonFreeAssets tag, some projects specify and extra license for assets and some don't.

My intention is to disallow just copying the app 1:1 and e.g. just adding ads. To prevent bad actors from creating a look a-like to trick users.

I would be okay with adding the NonFreeAssets tag. I think the source-code is what is important for users to review, and to other developers to build upon. The icons are not that important to this cause.

Note that other projects of mine have similar license setups, so we will have to add the NonFreeAssets tag there too.

IzzySoft commented 12 months ago

Thanks for your fast response, @d4rken! Yes, I can 100% understand your intention, and (personally) even share it. Unfortunately, any license restricting this (like, including a not-for-commercial-use as CC BY-NC-SA does), would count as violating a FLOSS freedom principle.

Luckily, for assets like icons, screenshots, other graphics etc., their "license-less" or "ND" availability does not break F-Droid's inclusion policy – it just requires the NonFreeAssets anti-feature to be declared. So if that's OK with you, we can do just that.

An alternative might be using AGPL for the entire project. This could then cover the assets as well, requiring "forkers" to provide their code AGPL'd and public when publishing their APKs (which most of the copy-cats won't do; just if they would do, that would leave you without means to oppose it, as the license then covers it). Those who do not care about licenses will copy-cat nevertheless, whichever license you declare (or not declare). We wouldn't need NonFreeNet then as all parts would be covered. At least to my understanding – with the usual IANAL-disclaimer.

Leaving it for you to decide. If NonFreeAssets is fine for you, I'd add them to the apps in my repo and at F-Droid. @shuvashish76 already provided a list, if you want to check if an app was missed (or should not be on the list): CAPod, Octi, Permission Pilot, SD Maid 2/SE. Can you confirm?

d4rken commented 12 months ago

Leaving it for you to decide. If NonFreeAssets is fine for you, I'd add them to the apps in my repo and at F-Droid.

Let's do this for now.

@shuvashish76 already provided a list, if you want to check if an app was missed (or should not be on the list): CAPod, Octi, Permission Pilot, SD Maid 2/SE. Can you confirm?

List looks correct.

IzzySoft commented 12 months ago

OK, then let me see that I can find their YAMLs… OK, done in my repo (BlueMusic and WLDonate are not affected?), will go for F-Droid.org then.

Btw, while on it: Is any of your apps using an in-app updater which is active by default (and maybe cannot even be disabled), @d4rken? SDMaid was reported to me as having such. If so, please make it at least opt-in, especially if such an app is at F-Droid.org (as it otherwise violates the inclusion policy).