15:58:16 <shelikhoo> #startmeeting tor anti-censorship meeting
15:58:16 <shelikhoo> here is our meeting pad: https://pad.riseup.net/p/r.9574e996bb9c0266213d38b91b56c469
15:58:16 <shelikhoo> feel free to add what you've been working on and put items on the agenda
15:58:16 <shelikhoo> the read-write link for meeting pad can be requested via direct message
15:58:16 <MeetBot> Meeting started Thu Feb  1 15:58:16 2024 UTC.  The chair is shelikhoo. Information about MeetBot at http://wiki.debian.org/MeetBot.
15:58:16 <MeetBot> Useful Commands: #action #agreed #help #info #idea #link #topic.
15:58:20 <shelikhoo> Hi! Hi~
15:58:25 <PieroV> o/
15:58:29 <onyinyang> hello! o/
15:58:39 <ggus> o/
15:59:18 <cohosh> hi
16:02:51 <shelikhoo> okay! let's start with the first discussion topic: Tor Browser binaries are getting too big, can we reduce the size of PTs?
16:03:13 <shelikhoo> This topic is from cohosh, isn't it?
16:03:36 <cohosh> i added it because PieroV brought it up in the #tor-anticensorship channel
16:03:48 <PieroV> Yep, I've asked a few info actually :)
16:04:14 <shelikhoo> The primary thing we could do is to merge different binaries into one, as go runtime and other libraries are quite big, and we are shipping a few copies of it
16:04:43 <cohosh> i recall an issue from several years ago discussing this and i've been looking for it on gitlab
16:05:00 <PieroV> 13.0.9 was initially rejected by Google, and we managed to get it accepted by rezipping the apk with 7-zip. This workaround saved us, but we're trying to save whatever we can
16:05:10 <dcf1> cohosh: tpo/applications/tor-browser-build#13770
16:06:20 <cohosh> ah thanks dcf1! that's the one
16:06:23 <ggus> can someone share the edit link for the pad in pvt?
16:06:51 <PieroV> APKs are zip file, I don't know if they can contain symlinks
16:07:00 <PieroV> But maybe we can try something before running tor
16:07:11 <PieroV> E.g., create the symlink in some writable directory
16:07:34 <shelikhoo> even if there is no symbol links, we can just make the first arg the subprogram name
16:07:42 <shelikhoo> this isn't the biggest issue
16:08:02 <shelikhoo> the biggest issue would be the need to unified the version of all the dependencies
16:08:30 <shelikhoo> right now, go don't support ship more than one version of dependencies in a single binary
16:08:48 <PieroV> So, I've seen that IPtProxy has a combined Snowflake + Lyrebird (but we don't need to mobilego part)
16:08:53 <shelikhoo> and if we have some dependencies rely on different version of dependencies, then it could be an issue
16:09:30 <shelikhoo> but otherwise we just need to engineering effort to combine them them all
16:09:30 <PieroV> And replacing the two distinct PT binaries with the single library from IPtProxy saves 6MB on the compressed apk
16:10:17 <shelikhoo> but otherwise we just need the engineering effort to combine them them all
16:12:01 <cohosh> yeah that's another route we can go: just have one PT with all of our supported transports (like how lyrebird has obfs4, meek-lite, scramblesuite, etc)
16:13:18 <shelikhoo> yes, that would also works...
16:13:57 <PieroV> Jeremy_Rand_36C3[m] mentioned a Gobusybox program (https://github.com/u-root/gobusybox) but I haven't tried to play with it yet
16:15:30 <shelikhoo> from a procedure point of view, do we need to include this task into a sponsor and wait it to be funded?
16:16:21 <PieroV> There might be some ideas already going on with Arti
16:17:05 <PieroV> For now maybe with the repacking workaround + minifying JS we might be good for 13.5 (but we're not sure). We'll have to see if it becomes a bigger problem when migrating to the next ESR
16:18:11 <PieroV> We'll see that around June
16:18:47 <PieroV> We're trying to reduce in general, so I was curious to know if you already know of some methods, but we can wait for now
16:20:14 <shelikhoo> yes, there is one method we known of, but it would require some work to implement
16:20:25 <shelikhoo> which is reuse the library included in go program
16:20:28 <dcf1> besides repacking the final apk, it might help to repack omni.ja in Firefox (I seem to remember omni.ja is already being unpacked+repacked for something in TB build)
16:21:26 <dcf1> it seems that there are some tools that can compress zip files with zopfli, if 7-zip is not already using that, it is likely to do a little better https://github.com/google/zopfli/issues/29
16:21:34 <PieroV> Yes, I'm also trying that right now. We can shave another 3-4MB there with JS minifying + repacking
16:21:50 <dcf1> PieroV: I see, that's what you were referring to above
16:22:14 <PieroV> Yes, repacking with 7-zip alone is 600kB
16:24:19 <cohosh> would this busybox method take work? it seems pretty straightforward except for the symlink vs extra argument modifications
16:24:54 <cohosh> oh the dependencies thing shelikhoo brought up, never mind
16:25:29 <shelikhoo> yes, but in the best case. when all libraries works as is, it should just work
16:26:18 <shelikhoo> I think webtunnel could be merged into lyrebird as a first step
16:26:27 <shelikhoo> as it is much more simpler than snowflake
16:26:44 <shelikhoo> so it is less likely to trigger a dependency conflict
16:28:56 <shelikhoo> i will create an issue for merging webtunnel into lyrebird, and we can track it there
16:29:08 <PieroV> Thank you very much!
16:29:13 <cohosh> thanks shelikhoo :)
16:29:35 <shelikhoo> for the merging of snowflake, let's wait a little while before proceed
16:29:55 <shelikhoo> anything else we would like to discuss for this topic?
16:30:27 <shelikhoo> the next topic is:
16:30:28 <shelikhoo> Add WebTunnel built-in bridge in TB or does it need more testing?
16:31:13 <shelikhoo> I think it is fine to include it, even if we don't have a built-in bridge yet
16:32:19 <shelikhoo> so the fist step would be hosting a bridge that would be suitable as a built-in bridge
16:33:30 <cohosh> ggus: was this your discussion topic?
16:33:42 <ggus> yes
16:33:48 <ggus> i wasn't paying attention, sorry
16:34:05 <shelikhoo> sorry I for got to ping ggus...
16:34:08 <shelikhoo> X~X
16:34:17 <shelikhoo> sorry I forgot to ping ggus
16:34:31 <ggus> i thought about exposing more this PT on TB, so we can engage more operators to run webtunnel bridges
16:34:46 <ggus> and also educate users about this new pt
16:35:05 <ggus> so, i thought about adding it to the built-in menu
16:36:34 <ggus> (dunno how useful it could be)
16:38:49 <cohosh> sounds like it's worth a try
16:38:53 <shelikhoo> I think it should be quite useful, as right now there isn't a UI to notify user of a added PT, especially when there is no dedicated binary for that pt
16:38:54 <cohosh> possibly related: https://gitlab.torproject.org/tpo/anti-censorship/team/-/issues/102
16:40:22 <ggus> yeah
16:41:30 <cohosh> okay, so the next step is to find an operator for it?
16:42:08 <cohosh> we have this list of informal requirements: https://gitlab.torproject.org/tpo/anti-censorship/team/-/wikis/Default-Bridges#adding-new-default-bridges
16:42:12 <ggus> yes, there is an operator from MIT running a lot bridges, i could ask them
16:43:32 <cohosh> nice
16:44:56 <ggus> cool! i will reach out to them
16:45:00 <shelikhoo> nice!
16:45:14 <shelikhoo> anything we like to discuss on this topic?
16:45:31 <shelikhoo> and there are 2 announcement this week:
16:45:33 <shelikhoo> 0.4.7.x EOL:"~964 bridges, which means roughly 45% of the advertised bridges bandwidth)" https://forum.torproject.org/t/tor-relays-psa-tor-0-4-7-reaches-end-of-life-eol-on-2024-01-31/11157
16:45:52 <shelikhoo> this one is also from ggus, I think
16:46:17 <ggus> yeah, in february we will reach out to operators and ask them to upgrade to 0.4.8
16:46:26 <ggus> we will start this on week of feb 19th
16:47:05 <ggus> if you're reading this IRC log, please upgrade your bridges!
16:48:02 <shelikhoo> the next discussion topic is:
16:48:04 <shelikhoo> PSA: Elections in Pakistan February 8th.
16:48:16 <ggus> oh, it's not a discussion. it's just fyi
16:48:39 <shelikhoo> oh, yes, it is just an announcement..
16:48:51 <shelikhoo> we don't have an vantage point there
16:48:52 <ggus> every week or so i will try to include which election is coming next
16:49:25 <shelikhoo> yes...
16:49:43 <onyinyang> thanks for that ggus :)
16:49:52 <shelikhoo> yes! thanks ggus!
16:49:54 <shelikhoo> anything else we would like to discuss in this meeting?
16:50:24 <shelikhoo> just a head up that: https://bridges-test.torproject.org/ is live, the rewritten version of bridgedb in rdsys is being tested in staging environment
16:50:32 <shelikhoo> translation support is not added yet
16:50:54 <shelikhoo> it does not distribute real bridges
16:52:08 <shelikhoo> okay, no need to keep everyone here, let's call it a meeting!
16:52:08 <shelikhoo> #endmeeting