Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Jockey to F-Droid #388

Open
airon90 opened this issue Feb 18, 2019 · 9 comments
Open

Add Jockey to F-Droid #388

airon90 opened this issue Feb 18, 2019 · 9 comments

Comments

@airon90
Copy link

airon90 commented Feb 18, 2019

Is your feature request related to a problem? Please describe.
Jockey is free-software and it may be added to F-Droid, the Android FOSS app store.

Describe the solution you'd like
A RfP has been added in F-Droid repo. It may be asked for more information if a problem is found. Please read there

Additional context
None

@marverenic
Copy link
Collaborator

I'd be happy to support distributing Jockey on F-Droid. I don't have a good grasp on what all needs to be done here (It sounds like they might need the ability to automatically build the project?). If you have more insight on what the next steps are, or if you'd like to help out with this, then that would be greatly appreciated.

@IzzySoft
Copy link

IzzySoft commented Feb 22, 2019

@marverenic we'd need a build flavor that comes without Fabric and Crashlytics (that is, if you want to keep the two for your Playstore release – otherwise you could of course remove them altogether).

I didn't check all your repo files, but just in case there is: no blobs (e.g. JARs or .so files) are permitted (a year ago, someone reported a libflacJNI.so). F-Droid needs to compile entirely from source.

As we're just on it: thanks to your providing the APKs, your app is currently in my repo (which is to F-Droid rawly what nonfree is on Debian) – but I grab only the "green releases" (i.e. not the "red" pre-releases). If you consider the pre-releases stable enough just let me know and I adjust the settings of my updater to pick them as well.

@marverenic
Copy link
Collaborator

Making a build without Crashlytics should be easy enough. I'm pretty confident that libflacJNI.so is the only binary in the repository, but building it is a different story. I don't believe it's possible to build this binary under Windows at all, and even then it's a fairly manual process (hence why the .so's live in this repo). Google has some instructions on the ExoPlayer repo for how to build this binary.

I'd prefer not to complicate Jockey's build process, partly because I do use Windows for development, but also because I don't want to make the NDK a requirement for CircleCI builds or anyone who wants to clone the repo. It seems like there are two options here:

  • Remove FLAC support from F-Droid releases. This would definitely fix the issue with linking to another binary, but is kind of crappy for users and I'd like to avoid this if possible.
  • Move the FLAC module into a separate open-source project that can be built from source with the NDK on Linux machines. Jockey can either include a published version of this compiled library, or bundle an .aar in the repository. This seems like it would circumvent the restriction on having blobs in the project's repository, but I can see how one would argue that this approach defeats the purpose of having the restriction on bundling pre-compiled code into the repository to begin with.

Would love to get a second opinion on this.

With respect to the repo that you have, I didn't realize that F-Droid had non-free repos, and I think it's awesome that Jockey is in there! I wouldn't consider pre-production releases stable enough to use them as the default option, but I think making them opt-in makes sense (which looks like it's already the case?).

@IzzySoft
Copy link

Making a build without Crashlytics should be easy enough.

That's good news, @marverenic!

I don't believe it's possible to build this binary under Windows at all

I raw guess (I can't vouch for it as I have no build experience): If you keep the binary for "your" build variant, and add the source of it e.g. as git submodule to be used by the "foss" build variant – I think our "integrators" could deal with it (calling out to @Rudloff for confirmation).

As for my repo: it's not an "official" F-Droid repo. But F-Droid gives us the tools so everyone can create their own compatible repos – so that's what I have done. What started as a "little project" meanwhile became the largest repository next to F-Droid – and I became an F-Droid maintainer. My repo still isn't "official" – but considered an addition for those apps not (yet) meeting the strict F-Droid inclusion policy. More than 100 apps which started in my repo at one point managed to meet them, and "moved over" – so my repo also is considered to be a "staging area" or "stepping stone" 😃 Plus several apps which are in F-Droid with their "main" version, additionally have a "development version" in my repo, using a different package ID – so their testers can easily stay up-to-date on those.

So in the end, should Jockey be included with the official repo, and provided your "test builds" use a different package ID, that's what I'd gladly offer you as well.

@Rudloff
Copy link

Rudloff commented Feb 25, 2019

I tried the build instructions you provided for flac and it looks like we can easily build libflacJNI.so from source.

@marverenic
Copy link
Collaborator

@Rudloff Good to hear! With that in mind, what are the next steps here? We definitely need to be able to build Jockey without Crashlytics, but I'm not sure what action (if any) is necessary for the libflacJNI.so binary.

@Rudloff
Copy link

Rudloff commented Feb 25, 2019

I can take care of writing the build recipe for libflacJNI.so on our server.
I think Crashlytics is the only remaining blocker.

@marverenic
Copy link
Collaborator

@Rudloff Thanks for setting that up! #393 includes the required setup to generate a build without any references to Crashlytics. If you don't mind taking a look and confirming that it works as expected, that would be greatly appreciated.

@goyalyashpal
Copy link

hello. Pinging for a reminder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants