14:59:45 #startmeeting Tor Browser Weekly Meeting 2022-04-04 14:59:45 Meeting started Mon Apr 4 14:59:45 2022 UTC. The chair is richard. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:59:45 Useful Commands: #action #agreed #help #info #idea #link #topic. 14:59:49 hello everyone! 14:59:54 pad: https://pad.riseup.net/p/tor-tbb-keep 15:00:10 hi! 15:00:40 as usual, please fill in your todos and todones, add any discussion points, and please update your boards to better reflect reality 15:00:59 o/ 15:01:04 o/ 15:03:01 o/ 15:04:51 ok first up is easy hopefully 15:04:53 sysrqb 15:05:10 I need delete permissions on our git because we need to delete a branch 15:05:11 for reasons? 15:05:22 aguestuser: (why do we need to delete geckoview-99.0b3-11.50-1 ?) 15:05:34 richard: because it's 2.5GB of stuff 15:05:57 that we don't really need. It was introduced by some bug on a shell script to automatically find the commit to perform the rebase on 15:06:18 ahh I see 15:06:26 richard: there was a whole discussion about how i accidentally created the branch based off of a cinnabar clone of the upstream mercurial branch 15:06:27 it copied some branch from the hg-git bridge, instead of getting it directly from gecko-dev 15:06:27 it's a separate commit history for all firefox commits 15:06:47 well i'll keep poking sysrqb until i get delete access 15:06:51 ok PieroV 15:06:57 richard: you may ask tpa directly 15:07:05 I think they're the ones who set permissions 15:07:07 (there is a script to use that to derrive the gecko-dev commit hash from the hg tag, but the script didn't work and i picked up after the weekend and just grabbed the commit from the cinnabar clone) 15:07:17 it's also possible to open a ticket and ask gitolite admins to delete the branch 15:07:27 (not really remembering enough context to recall that by doing so i was introducing an entirely different commit tree) 15:07:32 alright I'll do all those things 15:07:57 aguestuser/PieroV so is there any reason to not apply the alpha reording to alpha geckoview? 15:08:19 richard: time/more important stuff to do :) 15:08:54 yeah that's fair 15:09:25 but I should done soon with the bridges/about:preferences#connection 15:09:29 I would say it's p low priority atm though may be higher priority relatively soon vOv 15:10:00 richard: I reminded of it because we're getting the crashes on geckoview 15:10:17 (or, to be more precise, loading problems) 15:10:23 ah, so may be helpful for debugging you think? 15:10:35 and if vanilla FF works, I don't know if we can bisect geckoview 15:10:46 but it would be useful in case 15:11:08 in any case, that 15:11:10 so ignoring the patch reording 15:11:16 in the current alpha branch 15:11:25 that issue seems to be painful 15:11:33 okay 15:11:43 what's the difference in applied patches between geckoview alpha and tor-browser alpha 15:12:01 geckoview dropped some patches 15:12:27 and I think that some modifications were done only to tor-browser. That's why I was proposing to "merge" the patch sets on 102 15:12:47 But I think this has low priority wrt aguestuser's point, I think we could proceed with his first 15:12:58 yeah fair enough 15:13:18 i would say, sounds like a plan, but only after we get the rest of the android world under control 15:13:23 and speaking of which 15:13:28 how are things aguestuser? 15:13:28 ayo 15:14:03 getting toolchain working was hard but we thought we got it, then 3 runtime halting errors causing crash 15:14:13 all resolved except a mystery "cannot find mozglue" bug 15:14:45 there is a painfully long convo about it in tor-browser-build#40446 15:14:53 aguestuser: could it be related to us using old SDKs? 15:15:05 (Android SDKs, I mean) 15:15:20 but useful input to help me keep moving would be: (1) any institutional memory about mozglue (how we build it) 15:15:37 (2) any isntitutional memory about how/why we pick the flags that go into `.mozconfigs` 15:15:58 currently trying out PieroV's idea to try using our build env to build vanilla firefox 15:16:30 so we can determine whether mozglue crash is due to probelm in (a) our build tooling, (b) source code changes 15:16:46 but that is failing on flags in mozconfig being off 15:16:50 having dug into mozconfig 15:16:52 aguestuser: (2): we have some custom flags, that I've recently touched 15:17:01 i see that there's actually guite a big surface area for bugs there 15:17:28 I have no idea re mozglue, that's always just sort of happened in tor-browser/firefox builds 15:17:28 for example the Tor Browser version, update, etc. They're the ones I usually comment to get a working build of Firefox 15:17:39 and its also unclear to me which flags we introduce, which we borrow from moz, etc. 15:17:42 aguestuser, when I did the ARM/POWER mozconfigs, I routinely grabbed mozconfigs from Arch Linux ARM and Talospace, both of which are updated every major release. 15:18:14 this is the set of all possible mozconfig flags used upstream: http://eweiibe6tdjsdprb4px6rqrzzcsi22m4koia44kc5pcjr7nec2rlxyad.onion/tpo/applications/tor-browser/-/tree/geckoview-99.0b3-11.5-1/mobile/android/config/mozconfigs 15:18:19 (there are a lot) 15:18:20 and re .mozconfig your best bet is most likely the commit history for those files in tor-browser-build 15:18:28 some of the flags we set are the same as what upstream sets 15:18:30 some are custom 15:18:31 for the 'why' q 15:19:07 i don't know how close it is worth poking into this... but it occurs to me that a lot happens at this layer 15:19:25 so drift in what flags we set vs. what flags are set upstream could be a source of a bug? 15:19:28 So basically, if you have a mozconfig issue that's specific to one platform, try to find a distro that builds for that platform and see what they do 15:19:54 If this is Android, F-Droid might be the distro to check 15:19:54 Jeremy_Rand_Talos_: in this case actually we're speaking of Android 15:20:33 yes. and we have 5 different mozconfig files for android builds 15:20:40 1 for each arch and 1 for the "merge" step 15:20:48 aguestuser: but the 4 platform ones are very similar 15:20:52 true 15:21:04 I think the only difference is --target 15:21:08 otoh if we have vanilla ff building in our system, it'll be 'easy' to check if lack of some flags is causing the current issues 15:21:10 so one generic "android" one which borrows a lot from upstream but introduces other stuff 15:21:42 PieroV, yeah so I would check what F-Droid did when they bumped to the Firefox version that's breaking for you. 15:22:15 here is a representative one: http://eweiibe6tdjsdprb4px6rqrzzcsi22m4koia44kc5pcjr7nec2rlxyad.onion/tpo/applications/tor-browser-build/-/blob/master/projects/geckoview/mozconfig-android-x86 15:22:24 Might or might not yield useful insights but it's definitely the approach that worked for me with ARM/POWER 15:23:05 several i obviously need to comment out if i'm tryig to build vanilla ff 15:23:08 maybe looking what changed related to mozglue in upstream geckoview between the old and new release 15:23:10 (eg anything mentioning tor) 15:23:32 but then for others there is no "vanilla FF" version of the flag 15:23:44 b/c they set the flag differently for beta/release/nightly etc 15:23:59 it's perhaps a red herring (likely a red herring) 15:24:08 we're using beta (lines 25-26 of the mozconfig) 15:24:19 but i guess i just wnated to raise it to (1) understand how we arrived at picking the flags we picked 15:24:20 so I think you should look the beta ones 15:25:15 and (2) convince myself that flipping enough of these to get the build to work won't have destroyed the "control" nature of the basleine "control" build i'm trying to generate 15:25:17 does that make sense? 15:25:19 many flags are the same we set on Firefox 15:25:27 okay that's reassuring 15:25:34 (hadn't had a chance to poke at them yet) 15:25:45 also curious: *where* are these build flags picked up? 15:25:55 projects/firefox 15:26:01 (which i can probably figure out on my own in tor-browser.git) 15:26:01 we have a bunch of mozconfigs also there 15:26:29 PieroV: projects/firefox picks up the build flags? (is not what i think you meant?) 15:26:41 like how does mach interpret our custom build flags? 15:26:45 --enable-optimize / --enable-rust-simd are optimization things 15:27:17 aguestuser: projects/firefox is like geckoview, we have the various mozconfig (one for each platform) that are automatically copied as .mozconfig when building TBB 15:28:22 PieroV: gotcha. so just comparing mozconfigs between tb-build projects could help me get a sense of the general gist of how we use mozconfigs? 15:28:24 (so yes, the build flags are picked up from projects/firefox is what I meant) 15:28:37 but ultimately mach picks up the flags, yes? 15:29:10 like someone at mozilla wrote some code or we patched it to recognize what `-disable-tor-launcher` means? 15:29:46 (or --with-tor-browser-version etc?) 15:29:48 from what I understood, mach first reads mozconfig / .mozconfig (you can only have one of them), then it reads the command line. In doubt, it uses the one specified in the command line 15:29:49 we have some patch to recognize this flag 15:29:55 tor mozconfig stuff was added by us 15:30:02 exists in some python in the build somewhere iirc 15:30:02 aha! where does that live? 15:30:07 they are in the patch that begins with TB3 15:30:13 ty! 15:30:26 TB3: Tor Browser's official .mozconfigs. 15:30:37 okay, i think that's enough for me to orient w.r.t. mozconfigs.... 15:30:55 curious to pick up on boklm's suggestion about comparing changes in mozglue between versions 15:31:08 what are hotspots where such changes might occur 15:31:17 the error we are seeing is opaque b/c... 15:31:21 it is an error in the java code 15:31:28 (GeckoLoader) 15:31:43 trying to go find a mozglue binary it expects to be able to find 15:31:45 then not finding it 15:31:57 so it's almost certainly not an error in the java code 15:32:11 but the java runtime error is all we have to go ff 15:32:21 ok 15:32:25 I think I would start with checking for commit messages mentioning mozglue, and see if there's anything interesting there 15:32:55 this is the error in q: http://eweiibe6tdjsdprb4px6rqrzzcsi22m4koia44kc5pcjr7nec2rlxyad.onion/tpo/applications/tor-browser-build/-/issues/40446#note_2792777 15:33:05 or a diff between the two versions, looking for mozglue stuff there 15:33:24 aguestuser, maybe a dumb idea but if you can run something like strace on Android, that might help you find what binary is missing 15:34:01 aguestuser: have you tried decompressing the .aar and see if we have libmozglue.so there? I haven't, yet 15:34:33 PieroV: nope. that's a good idea! hypo being we built it, but put it in a different location than where gv expects to find it 15:34:47 is it important / does anyone know what `mozglue` actually does? 15:35:40 aguestuser: fact is that we don't know where geckoview expects it, because I think that it's something tied to how Android loads stuff. That's why I was asking if something changed there, and if Moz is using some of the old SDKs that we're using 15:35:51 aguestuser, not 100% sure but I believe it's a "miscellaneous important stuff that didn't fit anywhere else" lib. 15:35:55 I think we don't do anything to build it ourself, it's built as part of the geckoview build 15:36:05 (i found this which wasn't terribly illuminating: https://wiki.mozilla.org/Modules/Core#Mozglue) 15:38:50 (btw, libmozglue.so is indeed in the .aar, in the jni directory) 15:38:52 boklm: hmm... that seems to suggest it's something in the geckoview rebase we might want to pay more attention to? (ie: if we don't touch this in tor-browser-build, it's likely not drift between tor-browser-build and upstream mach that caused the issue? but if the issue is in geckoview build... how could it pertain to source code cahnges?) 15:40:06 wait, I've just discovered a thing: geckoview-beta-omni is only 1.2MB for my build 15:40:59 was about to type: "at any rate: seems hopefully simple to get a vanilla FF build working as basis of comparision (given above discussion of flags), and looking through commit messages in gv seems like at least a new idea" 15:41:05 but PieroV that seems interesting! 15:41:36 (btw, libmozglue.so is indeed in the .aar, in the jni directory) <-- this was for an arch build (the first one I've found) 15:41:54 so, I wanted to check that omni had the files for all the architectures 15:42:11 PieroV: oh! and the omni does not? 15:42:35 No, and it's only 1.2MB, instead of being > 50MB 15:43:16 (I'm speaking of geckoview-7af7603f41ea-32c545.tar.gz, but you may check that you have a similar result on your out/geckoview) 15:43:37 aha! okay! also a new (and most promising yet) direction to explore! 15:43:54 :) 15:44:05 ok a couple things from me i forgot: 15:44:18 (might have to do w/ recent name change w/ `find *omni*` to avoid packaging exoplayer thing) 15:44:27 thanks for hlep all! 15:44:49 boklm: our builds are all matching for 11.0.10 so we're good to go for signing (if you haven't already started) 15:45:06 i'm planning on trying out the signing process for the next desktop alpha, but we'll see how it goes 15:45:06 I already started this weekend 15:45:14 boklm: yeah i figured :) 15:45:35 aguestuser: we had tentatively planned on waiting and having a joint android+dekstop alpha 11.5a10 15:45:51 i'm guessing that plan no longer makes sense? 15:47:05 well given all the anroid discussion, i'm going to assume no so I'll prep alpha desktop release this week 15:47:23 richard: the alpha was to be based on v100 15:47:33 mmhm 15:47:36 But we haven't rebased to it yet (nor we have rebased the alpha to v99) 15:47:52 right 15:48:23 11.5a10 is desktop only and I'll get started on it today/tomorrow depending 15:48:36 ok does anyone have anything else? 15:48:37 (we also have the release meeting later) 15:48:59 oh right, Jeremy_Rand_Talos: it's been in there awhile, but thanks for the fix to our fonts project in tor-browser-build :) 15:49:35 richard, you are welcome! This fix came about from my ongoing Cirrus experiments. 15:49:42 if nobody has anything else i'm going to call it here 15:50:15 richard: okay! (sorry was poking at things PieroV pointed out) 15:50:23 alright then 15:50:26 #endmeeting