dyhkwong / Exclave

A fork of SagerNet powered by V2Ray and its derivatives
https://t.me/exclavian
Other
530 stars 30 forks source link

publish on F-Droid #105

Open rhjdvsgsgks opened 1 week ago

rhjdvsgsgks commented 1 week ago

hi

Any plan to publish this application to F-Droid? Sagernet exists there before but was removed due to its discontinuation. Therefore, publishing a fork of Sagernet to F-Droid should not be too hard since upstream already meets the requirements. I guess the only thing missing is your consent to publish to F-Droid.

dyhkwong commented 5 days ago

If someone can help me realize reproducible build (so that the APKs published on F-Droid can be signed by myself) and other necessary procedures I will not oppose the inclusion. However, I have no interest in doing it on my own.

It seems that gomobile does not support reproducible build, I can switch to https://github.com/SagerNet/gomobile (like sing-box for Android) if necessary.

And how about those plugins (some are rarely maintained, some upstream developers has stopped development)? I don't think it is necessary to publish any plugins on F-Droid. Maybe we should only talk about the app itself?

klzgrad commented 4 days ago

should oppose redistribution

I don't oppose redistribution and the license permits it , but hopefully I have convinced you it is technically unnecessary and confusing for every plugin-integrating app to repackage it without substantial modification. I'm open to F-Droid packaging of these plugins for common use by SagerNet forks.

It was confusing in that SagerNet and NekoBox maintained the Naive plugin for a period of time and then due to circumstances they stopped maintenance of their apps and the plugin while the plugin core binary (libnaive.so) was being updated on schedule. After the second time I subsumed the plugin apk build code into main repo so that the maintenance of the plugin can be sustained.

dyhkwong commented 3 days ago

Let's not talking about reproducible build first. Are prebuilt binaries ever allowed on F-Droid? I think someone dismissed something when they published SagerNet on F-droid.

linsui commented 3 days ago

Data files are allowed and can even be non-free. But the geoip files should be from a legal source. IIUC the maxmind data doesn't allow redistribution. We can use other geoip data. This is what we do in NixOS.

Is that difficult to generate the BrowserBridge js file?

Since SFA is reproducible I thought we can make Exclave reproducible, too.

dyhkwong commented 3 days ago

Is that difficult to generate the BrowserBridge js file?

Is "browser bridge" considered to be a part of the code and need to be built from source? If so I'm afraid I need to choose not bundle it with the app and let users load it themselves. Building browser bridge from source requires very old toolchains and I don't know if it possible to produce the same hash as the official one.

linsui commented 2 days ago

Is "browser bridge" considered to be a part of the code and need to be built from source?

Is it used? Not sure if this is needed for mobile.

Is the very old toolchain go 1.19.3? It's not very old for debian. :) https://packages.debian.org/bookworm/golang-go If we can't rebuild the officiale file you can rebuild it and it should be easier to be reproducible.

dyhkwong commented 2 days ago

It is used on mobile ("use browser forwarding" of WebSocket) but it is an optional dependency. The official one was compiled with go 1.12.16 and never got updated. I can rebuild it with go 1.19, but need to modify the source code to remove the hardcoded hash restriction. It is user's responsibility not to install malware and sideload malware code.

linsui commented 2 days ago

Ah, now I understand what it is. I thought it should be built from source. I feel that it's better to rebuild it with go 1.19 and update the hardcoded hash.