From df8e6092e2c8b49b6dcf3ae967d63562e3d05710 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Mon, 1 Jan 2024 19:16:11 -0500 Subject: add unedited captions --- ...windows-into-freedom--corwin-brust--answers.vtt | 1394 ++++++++++++++++++++ 1 file changed, 1394 insertions(+) create mode 100644 2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt (limited to '2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt') diff --git a/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt b/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt new file mode 100644 index 00000000..7dbb18c5 --- /dev/null +++ b/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt @@ -0,0 +1,1394 @@ +WEBVTT + +00:00.000 --> 00:06.880 +Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and + +00:06.880 --> 00:14.800 +welcome to, uh, uh, welcome to my talk. I'm a little distracted here. I had a friend who came + +00:14.800 --> 00:20.320 +over and just brought me a whole bunch of peanut butter cups, homemade peanut butter cups. Maybe + +00:20.320 --> 00:26.400 +I'll show those off, uh, later. What? Okay. Here, uh, put it right there. + +00:33.840 --> 00:41.760 +Okay. So I'm going to, uh, get over to my plan, uh, stuff I'm sharing here, hopefully. + +00:42.800 --> 00:48.640 +Uh, and, and we'll jump, jump right in because I'm going to need as much time as I can possibly + +00:48.640 --> 00:55.520 +have today. Thanks so much for, uh, joining me for Emacs conference and for, especially for, + +00:56.400 --> 01:03.520 +um, all of you who, who, who participated, you know, in the discussions, contributing talks and, + +01:03.520 --> 01:09.600 +um, you know, uh, you know, including running the, the, the, and it's just so much fun to be here. + +01:09.600 --> 01:16.320 +Um, I guess while I'm standing here and, and saying stuff that's, that I'm going to have to + +01:16.320 --> 01:23.280 +transcribe, cause I didn't, uh, prepare a recorded version. Uh, I had a lot of trouble + +01:23.280 --> 01:28.880 +trimming this down so I can solve that problem by just talking a lot at the beginning, uh, + +01:28.880 --> 01:37.120 +about other stuff. Um, so in addition to the thanks, I just want to say thanks also to the + +01:37.120 --> 01:41.920 +folks on the development list that helped me kind of come up to speed on this. I won't make a big + +01:41.920 --> 01:48.880 +list here, but, um, and, and, and for all that I've learned from my previous conferences, it's + +01:48.880 --> 01:55.200 +just, I can't stress enough what a great opportunity volunteering for, uh, free software related things + +01:55.200 --> 02:00.080 +are, uh, as a way to get involved. People will just totally teach you how to be helpful and I'm + +02:00.080 --> 02:18.800 +loving it. I can preview the stream, but it's not super easy right now. I got all my screens + +02:18.800 --> 02:23.680 +kind of dedicated to other stuff. So should I pause for a second before I get into the slides? + +02:23.680 --> 02:27.680 +Cause that's, they're, they'll be hard to see if I'm not full screen. + +02:29.440 --> 02:34.240 +Yeah, that would be nice. Okay. Well, I'll keep ad libbing then cause I just have a million, + +02:34.240 --> 02:42.960 +uh, things I can say. Um, uh, so, uh, let me just quickly talk, uh, things that aren't in here. + +02:42.960 --> 02:50.320 +Um, I'm going to mention the mysis2.org and the, that project, which provides a port + +02:51.280 --> 03:03.520 +of, uh, the GNU, uh, uh, glibc and a lot of GNU and, uh, uh, their free software. Um, so, uh, + +03:03.520 --> 03:03.840 +I don't... + +03:03.840 --> 03:07.760 +All right, I'm switching a room to, uh, a DVD room to Stefan. + +03:12.080 --> 03:15.440 +All right. So I'm going to take mumble out of my, uh, pardon me, folks. + +03:16.080 --> 03:18.640 +It's going to take mumble out of my speakers here. + +03:22.800 --> 03:30.080 +Okay. We'll take the speakers out of play entirely and I'll just switch to some headphones. + +03:33.600 --> 03:34.720 +All right. So... + +03:36.720 --> 03:42.240 +Perfect. What an amazing amount of time. All right. So thanks a lot. Uh, today I've got a jam + +03:42.400 --> 03:48.720 +packed talk. Um, I've, I've done my best to make, to make this not too overwhelming, + +03:48.720 --> 03:55.040 +but overall we're going to try to try to actually build, um, Emacs while we're talking today. + +03:55.040 --> 04:00.400 +And we might actually build several Emacs. Uh, so let's take a look at that real quick. + +04:00.400 --> 04:08.160 +Um, so over here we have a screen where I am just once a minute looking, uh, + +04:08.480 --> 04:15.360 +uh, indirectly at whether there have been any pushes, uh, upstream to either the Emacs 29 or + +04:15.360 --> 04:24.320 +Emacs 30 branches. So I've arranged for us to sort of keep an eye on that, um, while we talk. + +04:24.320 --> 04:30.000 +And, you know, maybe that's, that's one thing that we'll do. And then additionally, we'll probably + +04:30.640 --> 04:36.640 +fire up a shell. This is the MySys2 environment that I talked about before, + +04:36.640 --> 04:42.160 +and we'll probably create some directories and things. But before we get into all that, let's, + +04:42.160 --> 04:48.080 +let's give some, some context. Uh, I've been doing my best to try to, uh, make sure all this + +04:48.080 --> 04:54.240 +information is on the Emacs wiki as well. So, uh, sorry, as I said, I got a little caught off guard. + +04:54.240 --> 05:02.640 +So I'm moving my foot pedals to the floor, back to the floor here. And I should be able to advance + +05:02.640 --> 05:11.760 +slides here. All right. So, um, I kind of provided some special definitions for things. I'm going to + +05:11.760 --> 05:21.680 +kind of level set with those. The, uh, um, when I say a binary release, I'm talking about some, + +05:21.680 --> 05:27.440 +some, uh, I'm talking about Emacs for Windows as, uh, just ready to run out of its folder or + +05:28.080 --> 05:35.600 +in whatever similar form. The, when I say a build, I'm talking about kind of a process of doing that. + +05:36.400 --> 05:41.040 +Um, when Emacs.get, of course, that's the upstream hosted by GNU Savannah. + +05:41.600 --> 05:51.680 +The Emacs release is, is a tarball created from that. The sources for, um, Emacs are going to be + +05:51.680 --> 05:58.480 +one of those two things, um, very specifically. So I'm not going to talk about patches patching. + +05:58.480 --> 06:06.720 +There's some implications there. Perhaps we'll get into it. Uh, so a snapshot is when I build + +06:06.720 --> 06:14.880 +from anything other than a release source, uh, a tarball. Um, just if I, if I say that I'm talking + +06:14.880 --> 06:23.600 +specifically about the, uh, the XZ version of the file as, as a technical point. Um, + +06:23.600 --> 06:32.480 +so that may come up. All right. Nothing else I think up my sleeve. Um, the, uh, as, as a key + +06:32.480 --> 06:38.320 +data point, it's worth understanding that there's a file called configure AC. It's going to be + +06:38.320 --> 06:46.160 +processed, uh, as part of auto-conf. We, we initially access that when we run, um, auto-gen + +06:46.160 --> 06:52.720 +as you'll see in a little bit. Um, the, but before, but, uh, so the auto-gen script will + +06:52.720 --> 07:00.160 +generally consider this, uh, so in a release build, um, this has been thought about kind of for us as + +07:00.240 --> 07:10.480 +part of, um, making the tarball. Um, the configure.ac, um, yeah, I think I pretty much covered, + +07:10.480 --> 07:16.880 +covered this. So, um, those, those that kind of partially built status, that's a, + +07:16.880 --> 07:22.640 +might be another phrase that you hear me use. So this slide unpacks that a little more. + +07:22.880 --> 07:29.520 +Um, so it can be a little confusing to understand what exactly the, you know, what is it, you know, + +07:29.520 --> 07:36.160 +how stable is Emacs depending on what I have. So the, I got a kind of set of rules of thumb here, + +07:36.160 --> 07:43.680 +right? First I want the highest, uh, you know, dot, uh, dot release value that I can get, + +07:43.680 --> 07:50.080 +assuming that that's higher than one. If it's, if it were to only be one, let's say, + +07:50.160 --> 07:58.560 +if it were to only be one, let's say my choices were 29.1 and 30.1, I would take 30.1. Um, + +07:59.200 --> 08:05.520 +cause that's, that's weird. But, um, what you'll normally see is you might see a 28.2, + +08:06.080 --> 08:15.760 +you might see a 29.1. So here I think 28.2 is got the most, most, most stable, um, + +08:16.560 --> 08:26.160 +set, uh, the, uh, or set of release binaries. The 29.1 will, will have a little more features, + +08:26.160 --> 08:33.680 +but will tend to be more stable than, uh, any, uh, lower point releases for 29, uh, certainly + +08:33.680 --> 08:39.600 +than any release candidates for 29, which might even have new features, um, but are mostly going + +08:39.600 --> 08:46.000 +to just be packages. So they're going to become the most stable thing here. And especially if + +08:46.000 --> 08:53.600 +they, they, they have a, you know, if this, this is not, uh, if this were to be 29.2 release + +08:53.600 --> 09:04.960 +candidate one as well, looking forward to seeing, um, the, uh, 30.50. Um, and, and in between this, + +09:04.960 --> 09:11.840 +this pretest here, we're talking about kind of developer land. Um, so, um, the expectation is + +09:11.840 --> 09:16.560 +that, you know, what you're doing that applies to windows users, uh, just as much if you are + +09:16.560 --> 09:22.960 +building anything in the snapshot range, any of that is going to be in this 30.0.50. Currently + +09:22.960 --> 09:32.240 +that'll change when the, uh, when the 30, 30, uh, an Emacs 30 release tags, uh, or release branches + +09:32.240 --> 09:42.880 +come. Okay. So let's talk about the local. Um, there's not much to know about what I have going + +09:42.880 --> 09:51.200 +on, except that I have my, my paths mess messed with. So, um, if, if that, that were to come up, + +09:51.200 --> 09:57.120 +if you're wondering how, why does this, uh, and insist command work, that's probably the place + +09:57.120 --> 10:03.760 +where you'd notice it. Uh, I am using windows 10. I haven't tried windows 11, uh, as mentioned, + +10:03.760 --> 10:09.520 +mysis2 is critical to all this. There's one script in particular that will error out if you try to do + +10:09.520 --> 10:16.560 +anything other than use mysis's, mysis's shell. And in fact, mysis owns or provides three shells + +10:16.560 --> 10:21.760 +and of them, that script is designed to work with a specific one of them as, as we'll come to. + +10:22.720 --> 10:29.120 +Uh, I don't talk about installing the dependencies, but just as, as kind of some kind of help, + +10:29.680 --> 10:38.480 +um, you can search using this formula and install, uh, using this formula. + +10:38.480 --> 10:40.800 +Good luck with those, you know, grep commands. + +10:43.520 --> 10:49.440 +And this is the tool for building the self-installing self-extracting installer or, uh, + +10:49.520 --> 10:55.600 +executable self-installer. Um, the script for that is provided along with the Emacs source. + +10:56.720 --> 11:03.280 +Um, and I've provided a helpful link to the main page for the project download link on the left. + +11:03.280 --> 11:09.680 +It is not, um, it's kind of scare where the way that this link appears, but I have clicked it and + +11:09.680 --> 11:18.960 +it's working for me. Automation does, uh, we'll, we have some time we'll be looking at this at a + +11:18.960 --> 11:24.560 +minimum. I wanted to mention that what I do on my local, what you're seeing in the crawler, I hope, + +11:25.280 --> 11:35.600 +uh, represents a, uh, a simple sleep loop. Uh, and we'll, we'll look into that if we have time. + +11:36.560 --> 11:42.960 +Um, I do have a little bit, I do use like a cron job and so on to clean up some hosting that, + +11:42.960 --> 11:50.160 +that I pay for, um, where I've got, where I, where I kind of self host some, uh, snapshots, + +11:50.720 --> 11:58.880 +more stuff than I feel comfortable uploading to, uh, to GNU. The, um, + +12:01.760 --> 12:06.480 +you know, I never said, uh, my name is Corwin Brust. For the last couple of years, I've been + +12:06.480 --> 12:12.480 +the volunteer making, uh, um, making the snapshots, the quote unquote, official binaries, + +12:12.480 --> 12:20.560 +uh, for windows of the, um, of, of Emacs for windows. So that's, that's all the different + +12:20.560 --> 12:25.680 +versions. Uh, help is always welcome with that. I'd be very happy to teach you in more depth. + +12:25.680 --> 12:31.920 +This video is, you know, kind of my drop dead file. Uh, I don't have specific plans. Uh, if + +12:31.920 --> 12:36.480 +somebody's like, Hey, get out of the way, this is the one thing I think I can do. Um, Hey, + +12:36.480 --> 12:44.640 +that's real relatable. Okay. Um, so I haven't tried, uh, the, I haven't tried a lot of fun + +12:44.640 --> 12:50.400 +things that I won't talk about. Um, the, uh, the rest of this talk is going to get into the + +12:50.400 --> 12:56.560 +nitty gritty. As I said, um, if we can't convince Emacs to start building over on that screen, + +12:56.560 --> 13:05.120 +we'll be opening it up here on the center stage. Um, uh, this begins and there's, there's, there's, + +13:05.120 --> 13:11.520 +there's great insight here too, on the wiki, uh, with picking an FTP source for any official + +13:11.520 --> 13:19.760 +release that is for a stable product, please visit, um, ftp.gnu.org. Otherwise you'll want + +13:19.760 --> 13:27.280 +to switch that FTP dot at the beginning to alpha dot and take a pretest, uh, or any snapshot or + +13:27.280 --> 13:36.640 +otherwise, then publish there the, uh, next, uh, you know, I'm gonna, you have some examples in + +13:36.640 --> 13:43.440 +here that assume that you're doing a release bill that you're doing $29 one, but, um, I am glancing + +13:43.520 --> 13:51.440 +out of the, the right side of my face at the chat on the opt-ins. Anybody in there wants to direct + +13:51.440 --> 13:57.840 +me at a particular, um, we can make some other, we can build something else. If you want to see + +13:57.840 --> 14:03.840 +a snapshot build more mentioned that, um, the examples that you're going to see here that I + +14:03.840 --> 14:12.560 +will, without other direction, cut and paste, um, are all, uh, based on the release bill. So, + +14:14.640 --> 14:22.320 +um, so, uh, we'll use the, uh, I mentioned that there are several shells provided by MySys2. + +14:22.960 --> 14:33.120 +The MinGW64 shell is the one that we mostly need. Um, I tested all of this as well with the MinGW32 + +14:33.120 --> 14:40.400 +shell. Um, so that, that should work and, and see mix binaries that, that, that work for me. + +14:44.080 --> 14:50.720 +Uh, I, as I mentioned, I don't get into the details of installing all your prerequisites. + +14:50.720 --> 14:56.560 +I found that doing it in a headfirst manner wasn't, uh, wasn't difficult. And I also found + +14:56.560 --> 15:00.240 +that there's a number of tutorials. I didn't want to pick one to link here. + +15:01.040 --> 15:10.800 +Um, there, uh, here, uh, okay. So our general formula for building Emacs, irrespective of + +15:10.800 --> 15:19.600 +Windows, looks like, does the configure script exist if not run autogen? From a Windows build + +15:19.600 --> 15:27.600 +standpoint, this is, if I'm not running a release, release build, call the autogen script. + +15:27.840 --> 15:32.080 +Right. And this would be in the directory where we want to pack this. I'll demonstrate + +15:32.080 --> 15:42.640 +within three minutes if, uh, if one, if nobody's pushed upstream to Emacs. Um, so, uh, the configure, + +15:42.640 --> 15:53.280 +uh, and, uh, configure options are, uh, uh, the, the configure, you know, if the configure, sorry, + +15:54.240 --> 16:01.520 +the configure script exists, then, uh, it doesn't, doesn't exist. So the only reason, + +16:01.520 --> 16:07.920 +so in my process, I will always execute that step because I clean everything after every build, + +16:07.920 --> 16:16.880 +um, in all my contexts. Um, however, if you were, you know, had a, a checkout of emacs.get + +16:16.880 --> 16:21.440 +and you are building it at several releases, then maybe you've got a configure script and then you + +16:21.440 --> 16:27.600 +all want to know, um, the, you know, whether you have to bootstrap and the typical complexities, + +16:27.600 --> 16:33.200 +but otherwise you might be able to skip that in, in, in the abstract. Um, + +16:36.080 --> 16:41.520 +is that right? Or is it, is it the make, uh, so, and if they make file doesn't exist, + +16:41.520 --> 16:46.080 +make install. I know I'm looking at that in question whether it's correct. Sorry about that. + +16:46.640 --> 16:55.600 +Um, in any case, uh, so auto-gen configure make install is our recipe. Auto-gen creates the + +16:55.600 --> 17:01.840 +configure script, configure creates the make file, the make file. Um, in the case of windows, + +17:01.840 --> 17:08.080 +I almost always want the install, uh, and to specify some location where the installed emacs + +17:08.080 --> 17:19.120 +will land. This is where all of the recipes for packaging emacs go. And if I were, uh, you know, + +17:19.120 --> 17:24.640 +using this as a movie to upgrade, I personally would do that by, by specifying an install path, + +17:24.640 --> 17:31.520 +quote unquote, on top of, uh, a main installation. I don't do that. I update shortcuts mainly based + +17:31.520 --> 17:37.600 +on what specifically I want to try, uh, in an effort to, to, to, to notice, uh, interesting + +17:37.600 --> 17:44.400 +patches and confirm they work on windows, which mostly they do. There's not a lot of code in my + +17:44.400 --> 17:49.760 +experience that is, uh, windows specific and very, very little around the build process. + +17:50.320 --> 17:57.440 +All right. Huge rabbit hole zone. And I still have a minute before I have to, uh, kick off + +17:57.440 --> 18:07.120 +the first part of our demo. So let's, let's keep, keep diving in, um, the, those specific part + +18:07.120 --> 18:11.920 +windows specific parts beside the dot exe extension that we're going to find slammed + +18:11.920 --> 18:17.680 +onto all of our familiar, uh, executables. We're also going to have emacs client W, + +18:18.400 --> 18:26.880 +which is a wrapper that hides, um, how hard it is to get, uh, to, to, to get it, + +18:27.600 --> 18:31.760 +how bad the abstraction is between the window management layer and the GUI, + +18:32.400 --> 18:37.040 +and then all the different parts on windows. Essentially, it wants to create a shell window. + +18:37.040 --> 18:42.960 +If we just double click emacs dot exe. So emacs client W, uh, and run emacs, + +18:42.960 --> 18:49.440 +they're going to solve that problem. Um, uh, wrapping emacs and emacs client respectively. + +18:51.600 --> 19:00.320 +And, um, just, uh, all right. So let's, let's go ahead and do something. I'll, I'm going to + +19:00.320 --> 19:08.080 +take away the ticker here for a minute. And what you're not seeing is off stage. I am killing that + +19:08.080 --> 19:19.680 +so we don't get built in parallel. Um, so, um, so at this point I'm going to open up a shell and + +19:19.680 --> 19:24.240 +I'm going to start talking just a little bit about my local build environment, which we haven't + +19:24.240 --> 19:32.640 +gotten into. In fact, just to make that even easier, let's, um, let's just take a look at it + +19:32.640 --> 19:40.640 +a little bit. Probably the easiest spot is here. + +19:47.680 --> 19:55.280 +All right. So here we have the familiar windows, my computer interface. I have the G drive and the + +19:55.680 --> 20:07.200 +H drive, four terabyte drives, um, dedicated to my, um, really overblown emacs build process. + +20:08.160 --> 20:14.000 +Um, this just lets me be super lazy. There's no reason you need any massive amount of storage + +20:14.000 --> 20:22.080 +to do any of this. Um, inside here, and now I'll actually switch you back to the other screen. + +20:23.040 --> 20:26.560 +Um, we'll, we'll find, + +20:37.280 --> 20:46.480 +oops, sorry about that. I didn't take the time to label that one. Um, so here you can see + +20:46.480 --> 20:53.760 +the primary output that I'm looking at through this automated process. I come along, I look at + +20:53.760 --> 20:59.840 +the bug reports, or maybe I'm just restarting my computer and choosing what emacs version at random. + +20:59.840 --> 21:06.240 +And then in that case, I look at this modified date and I say, um, my config that I, you know, + +21:06.240 --> 21:11.120 +that I'm playing with right now is all set for emacs 30, or I'm testing the both and I'm + +21:11.120 --> 21:16.400 +relaunching both of these. Right. So for me, that starts by diving into the install folder, + +21:16.400 --> 21:22.720 +going into the bin folder, which looks exactly the way my automation leaves it. I then come in + +21:22.720 --> 21:34.320 +to run the run emacs and I create a shortcut, um, to it. So I'm a keyboard person. So that's + +21:34.320 --> 21:40.400 +usually done like this. And then I just know that the context menu is going to come up in the right + +21:40.400 --> 21:49.120 +place. So I'll come up and, um, possibly change the, change the shortcut, right. + +21:53.120 --> 22:01.280 +If I don't mess with it. Um, so here's where I'll add my minus Q, if that's kind of where + +22:01.280 --> 22:06.800 +my world was at, or it kind of depends on what I'm doing with these, which varies week to week. + +22:07.440 --> 22:12.000 +Um, so restarting my emacs, uh, involves doing the same thing, going to my desktop + +22:12.560 --> 22:23.200 +and where you'll find a number of emac shortcuts and, um, updating the shortcut in the same manner + +22:23.920 --> 22:28.000 +joint actually, maybe we'll just, let's go back there and just show it. + +22:28.000 --> 22:31.600 +So if we look at, for example, my ERC, + +22:31.760 --> 22:39.040 +you can see, it's going to be pointing at one of these clones and then it's going to + +22:39.760 --> 22:44.720 +maybe tell me that I want, it wants to be full screen. Nope, not currently. And then it might, + +22:44.720 --> 22:48.720 +uh, have some stuff in there about auto-loading at config and what + +22:48.720 --> 22:52.560 +connections I'm going to, some commands I've defined to start connections. + +22:53.280 --> 22:57.680 +All right. And sorry, I got a phone call. I was checking. It wasn't in an org, the org, + +22:57.680 --> 23:04.160 +not the other organizers giving me the hook. So, um, all right. So that's, that's probably + +23:04.160 --> 23:11.440 +enough on the local system. Let's get back to the, to, to building emacs. And now it hopefully makes + +23:11.440 --> 23:17.440 +a certain amount of sense when I say we're going to wander over to the H drive and, and, and, and, + +23:17.920 --> 23:22.560 +hopefully makes a certain amount of sense when I say we're going to wander over to the H drive + +23:22.560 --> 23:31.520 +and recreate the structure that, um, both my process sort of assumes and the scripts you'll + +23:31.520 --> 23:41.440 +find in the admin NT, uh, build disk folder in source used to assume. Those scripts are in need + +23:41.440 --> 23:49.440 +of some love. And in just a little bit, I'll be mentioning a build, uh, a, uh, a, a, a particular + +23:49.440 --> 23:54.000 +bug that you might want to pay attention to if you're interested in making a self-installer. + +23:54.800 --> 24:04.320 +All right. So, um, we're going to create, uh, an emacs build directory. + +24:04.320 --> 24:16.960 +And we've got a handy git clone stage, git clone command stage for ourself. That would work. Um, + +24:19.360 --> 24:26.160 +do not currently see anybody lobbying for that. So instead we will run the rather faster + +24:27.120 --> 24:36.080 +uh, W get command on Savannah, which is not pasted in here. Nice. Let's see if I can freehand it. + +24:36.080 --> 24:40.000 +Not going to do it. Uh, + +24:40.720 --> 24:41.840 +okay. + +24:52.000 --> 24:56.560 +I beg your pardon. I'm grabbing a URL from the internet. + +25:00.080 --> 25:06.960 +Uh, okay. Yeah, I can, I can honestly, I can freehand it, whatever. Okay. Sorry. I, uh, + +25:07.680 --> 25:13.200 +I didn't have that bookmarked in all handy. Like I thought I did. Um, so we'll just say + +25:13.200 --> 25:30.480 +ftp.gnu.org slash, uh, what is it? Pub emacs, emacs-29.1, uh, .org.gnu.org.exe. + +25:30.480 --> 25:47.040 +I really think I'd have this command sitting around. It makes me want to scrap the whole + +25:47.040 --> 25:54.720 +demo. I'm not going to lie. Okay. How am I doing? Um, I think at least 15 minutes. Um, + +25:54.720 --> 25:58.160 +but in the command that you were freehanding, should the pub be GNU instead? + +25:59.120 --> 26:01.680 +Oh, thanks. I'm sorry. + +26:07.440 --> 26:13.360 +There we go. Thank you. All right. And then we'll, + +26:17.760 --> 26:20.160 +and I'm not sure I provided commands for this either, + +26:20.720 --> 26:29.600 +but it is trivially easy to do. And while that happens, we'll get to move on a few slides. + +26:31.760 --> 26:38.000 +Um, the configure script I'm not talking about in a lot of detail, but I do want to mention that the + +26:38.000 --> 26:44.720 +GNU binaries are provided with native, uh, compilation enabled. That's the feature that + +26:44.800 --> 26:55.360 +uses gcc lib gcc get on windows. If available, that lib gcc get will be used. Um, but when, + +26:55.360 --> 27:03.200 +but, uh, if, if, uh, emacs has that feature, then it will take by compile, uh, native code and, + +27:03.200 --> 27:10.880 +uh, asynchronously compile that as needed, uh, with the ahead of time feature. We're going to + +27:10.880 --> 27:15.360 +do as much of that ahead of time. And for folks that are consuming the windows binary, the + +27:15.360 --> 27:21.360 +thinking goes that they might not have my assist too. They might not have lib gcc jet. They might + +27:21.360 --> 27:28.560 +be happy that they're enabled in a, you know, a lot of time running emacs on their local environments + +27:30.400 --> 27:39.120 +at all, you know, in a, maybe a lockdown, uh, corporate context. So aside that, um, there's + +27:39.120 --> 27:45.120 +your first glimpse at the configure, um, program that we're going to run in a moment. In fact, + +27:45.120 --> 27:52.160 +I'm going to go as far as putting it on the clipboard. Um, really just looking at this, + +27:52.160 --> 27:57.120 +the AOT flag is the one I'd call attention to, but it's worth understanding that windows doesn't + +27:57.120 --> 28:02.000 +provide a D bus capability. So windows native program isn't going to be able to depend on D + +28:02.000 --> 28:07.600 +bus. We're going to, we're going to explicitly ask that that be left out. I think that's actually + +28:07.600 --> 28:12.080 +optional and it's documentation. I think the configure program is smart enough to know that + +28:12.080 --> 28:20.080 +we don't want D bus on windows. Um, otherwise we tend to compile with things. Um, there there's + +28:20.080 --> 28:26.320 +missing documentation. We could say the, uh, all of the libraries are treated in the way I mentioned + +28:26.320 --> 28:34.880 +in that, um, JPEG support will be available as long as the JPEG is, is available in our environment + +28:34.880 --> 28:40.320 +and configure script certainly notices that, um, the GNU provided binaries are provided with + +28:40.320 --> 28:47.280 +minus O2. And that's also my default personally on windows. Um, however, and I'm going to skip + +28:47.280 --> 28:59.680 +this since I mentioned it, um, mentioned, uh, and, uh, um, so I guess I'll say, um, you can, + +28:59.680 --> 29:06.560 +um, say with the, it's worth knowing that you, if you're not one reason that, that you're building + +29:06.560 --> 29:11.200 +might be because you want to turn off native compilation for whatever reason. If you have + +29:11.200 --> 29:16.640 +low juices, you get, get, but don't want Emacs to use it. Uh, especially as that default looks like + +29:16.640 --> 29:26.480 +it could be changing with Emacs 30. Um, the, uh, the debug configuration, um, this is, this is the, + +29:26.480 --> 29:33.200 +uh, kind of, uh, what, what I'm currently using this on commentary, uh, I've seen on the next + +29:33.200 --> 29:45.280 +development list. Let's check on our checkout and see if we can't get a build running. Um, + +29:45.280 --> 29:51.440 +this is a release build, so I won't be starting with, uh, so we'll start by hopping into its + +29:51.440 --> 30:14.080 +directory and we, um, we have, uh, but not. Okay. So that tells us we're going to run + +30:14.640 --> 30:23.440 +our configure program, but we don't need to run a config IC. So, + +30:31.280 --> 30:34.320 +so let's get that going and, uh, + +30:36.000 --> 30:41.360 +hopefully that's showing through just enough to be fun, not too much to be distracting. + +30:45.040 --> 30:55.760 +Um, the, uh, the unoptimized, uh, uh, um, please report issues. If your Emacs is crashing, + +30:55.760 --> 31:01.200 +uh, to the Emacs development list, not to me personally. Um, although you are of course, + +31:01.200 --> 31:06.960 +welcome to copy me. Um, if you especially I'm subscribed to that list, so I get all the mail. + +31:06.960 --> 31:14.000 +So I don't mind being copied. Uh, and, uh, as well, if you think it's, uh, + +31:15.040 --> 31:20.160 +you know, related to packaging, that actually makes sense or windows related to even, and, + +31:20.160 --> 31:25.120 +uh, it can be tested with an extra snapshot that should be uploaded to the canoe alpha side. + +31:25.120 --> 31:31.600 +I could look at that if I have time. There's with the configure script to make file for + +31:32.160 --> 31:39.840 +Emacs is really, really complicated. If time permits, which I'm now confident it will not, + +31:39.840 --> 31:44.240 +we will look at, uh, make file that I tried writing that, uh, orchestrates this whole + +31:44.240 --> 31:52.160 +process that I'm talking about. Um, as, uh, let's see. So the build, uh, build process, + +31:52.160 --> 32:03.120 +I run my builds with, uh, explosively specifying the max CPU, uh, with minus J, but minus B one + +32:03.120 --> 32:08.320 +to get the full build, uh, full log into your recipes. That is probably the magic thing. + +32:09.040 --> 32:12.560 +Matt, um, shouldn't to understand what, uh, + +32:16.000 --> 32:23.600 +or that, uh, that, that, uh, that I'm glad that I know, uh, as I'm trying to write my automations, + +32:26.960 --> 32:36.080 +uh, the, um, so I call that out here, the binary, uh, releases. Um, okay. So in this section, + +32:36.080 --> 32:41.120 +we're going to start to get into what are all those files. And there's a bug report related to + +32:41.120 --> 32:46.640 +that, but I didn't get into here. So, um, that's kind of to the point about the less said about + +32:46.640 --> 32:50.800 +this, the better, uh, that's my explanation for stepping through some of these slides. + +32:50.800 --> 32:58.240 +Uh, of course we'll share them all, uh, uh, hopefully by the time that this video is published. + +32:58.960 --> 33:06.640 +Oh, I mentioned, um, I may have mentioned already freshly installed, but, uh, fully installed. Uh, + +33:06.640 --> 33:15.200 +the, the, the key distinction here is that, uh, Emacs is distributed in the binary form for Windows + +33:15.200 --> 33:21.600 +with some DLL files that actually come from the mysys2 project. There's an implication there to + +33:21.760 --> 33:26.160 +there's an implication there to GCC that I definitely want to get to it talking about. + +33:28.080 --> 33:35.840 +Um, so freshly installed means we haven't copied those binaries from the mysys2, uh, + +33:35.840 --> 33:45.360 +installation into the Emacs, uh, installation. Uh, and then, uh, when we re-archived that + +33:45.360 --> 33:48.640 +local Emacs installation, that's how we're going to create the full zip. + +33:48.640 --> 33:54.160 +So hopefully that actually is a pretty good summary of what all those files are. Um, but + +33:54.160 --> 34:00.320 +there are readme files, uh, on the FTP that do a pretty good job, um, if you can dig enough to find + +34:00.320 --> 34:11.120 +one and my apologies for, uh, tardiness getting a new version on that posted. Um, the Emacs, uh, + +34:11.120 --> 34:17.040 +so those dependencies, uh, are listed within Emacs itself. And as we'll just talk about in a moment, + +34:17.040 --> 34:24.240 +there's a way, uh, that we can use, we can access that when we collect them in order to meet, uh, + +34:24.240 --> 34:31.840 +the GCC requirement that is essentially to include, um, include the sources for the, + +34:31.840 --> 34:41.200 +for those binaries, the things that were compiled against. Um, the, uh, so, so here we go, + +34:41.200 --> 34:45.280 +we're, we're into the build process. Let's just take a look and see if configure it got done. + +34:45.280 --> 34:52.240 +It sure did. And now we can see a table of, of hopefully good, but good and bad news, um, + +34:52.240 --> 34:57.840 +and potential, um, where we're learning that we're using the pdumper strategy and any number of other + +34:57.840 --> 35:04.320 +things that we might be messing with as our motivation for, for building ourselves on Emacs. + +35:04.320 --> 35:12.560 +Um, again, this table represents, uh, what you'll, what, what, what it looks like for me when I'm + +35:12.560 --> 35:22.720 +building for the GNU distributed binaries. All right. So, um, kind of moving, moving as quickly + +35:22.720 --> 35:31.200 +as I can here. I'm at 40 after, I believe that's the five minute mark. So, um, having just succeeded + +35:31.200 --> 35:37.040 +in, in configuring Emacs, I don't think we're going to build it. Uh, uh, I don't think we're + +35:37.040 --> 35:42.720 +going to actually get to running make install. Um, but I have it sitting here on my keyboard + +35:43.280 --> 35:54.320 +or clipboard, assuming that we will, right? No. Oh, wow. I think I've managed to confuse this. + +35:54.320 --> 36:06.240 +All right. So for me, that looks simply like, uh, make, uh, V equals one install, uh, + +36:08.160 --> 36:11.040 +prefix equals, uh, + +36:18.400 --> 36:19.920 +and we can at least get it kicked off. + +36:20.640 --> 36:27.680 +And that can, that command is just, uh, just is no, no different than I showed on the slide where + +36:27.680 --> 36:32.160 +I, where I gave it, uh, wasn't planning to stop and explain it. I was just planning to paste it. + +36:33.360 --> 36:38.640 +So, so, so again, recapping the rest of the process here and maybe actually making it, + +36:38.640 --> 36:44.320 +if you can believe it or not, through the rest of these slides, um, we, to, to, to create the + +36:44.800 --> 36:49.600 +full set of binaries, we're going to need a no dependent, no depths archive. That's without the + +36:49.600 --> 36:57.760 +mysys2, uh, deal provided DLLs, just the things that we compile as part of making Emacs. Um, + +37:00.320 --> 37:07.840 +the, uh, the build depths zip script is provided with the source distribution is your tool for, + +37:07.840 --> 37:11.760 +uh, meeting the GPL requirements, right? Source as mentioned before, + +37:12.640 --> 37:18.560 +um, there is a second bug that I did, uh, include some more information on in my notes already. + +37:19.680 --> 37:25.600 +Um, that, uh, that gets into the details of this other feature I alluded to. + +37:26.480 --> 37:35.120 +Um, I'll just skip into that. Um, we, we can, with, with, uh, with a, an appropriate version + +37:35.680 --> 37:42.240 +of that, which you may need a patch, uh, to, to have, you can list out the dependencies + +37:42.240 --> 37:47.200 +and, and that version as well. Can consider the dependencies of the Emacs binary versus + +37:47.200 --> 37:51.680 +the hard-coded list you might find, depending on when you look at this file in the source tree. + +37:53.680 --> 38:01.360 +The diff, um, so I also have a hack here that, uh, works around the absolute requirement to + +38:01.600 --> 38:18.320 +run this with the mysys2 and not the minGW64 script. Um, once we've made that zip file that + +38:18.320 --> 38:25.360 +contain that's, that's our installed Emacs without the DLLs provided by mysys2, we'll then unpack + +38:25.360 --> 38:30.960 +the dependencies that were created by that Python script we just talked about from the Emacs source + +38:30.960 --> 38:38.080 +tree. At that point, once those are unpacked, we can now make what's called the full installer, + +38:38.080 --> 38:42.800 +or sometimes I might call it the unqualified installer, because it's just going to be called + +38:42.800 --> 38:54.800 +Emacs29.1.zip. Um, and that, uh, that file, which, which creates the, the, the, the, the, + +38:54.800 --> 39:02.640 +which creates the archive, uh, that, uh, that, that, that file is exactly the same, + +39:02.640 --> 39:08.400 +plus the, uh, the dependencies that we unzipped in the bin folder of the installed Emacs. + +39:09.680 --> 39:14.480 +The, uh, executable self-installer, which I would love to have more time to talk about. + +39:14.480 --> 39:18.720 +I gave a few pointers here on the hard part of running it. Most importantly, + +39:19.680 --> 39:26.640 +if I've installed in any kind of funny looking name, I end up renaming it to like Emacs-29.1 + +39:26.640 --> 39:35.200 +or Emacs-29. or 30.0.50 or whatever. And I just renamed that installed Emacs folder. + +39:35.200 --> 39:39.680 +And then I go to the root of wherever I created that, the parent directory above it. + +39:40.320 --> 39:46.560 +And that's where I make my copy of the Emacs NSI, um, the, the NSIS script. + +39:47.520 --> 39:55.600 +And, uh, that's also where I, and then, um, then from that parent directory, I execute, + +39:55.600 --> 40:02.560 +uh, making sys, uh, here. I, as mentioned, um, I, I can get away with this because I have it + +40:02.560 --> 40:07.520 +on my path and it's my recollection. I think I tested this and couldn't reproduce the problem. + +40:07.520 --> 40:11.200 +So I didn't document it here, but I've had some problems with running this + +40:11.200 --> 40:20.400 +when, uh, when NSIS wasn't on my path. The, uh, the, the, the final step here + +40:20.400 --> 40:27.600 +and the last, the GPL requirement is to include all the sources, except when I'm doing a release + +40:27.600 --> 40:34.320 +build, I always do this. Um, and that's the new practice when making Snapchat binaries is to go + +40:34.320 --> 40:39.840 +ahead and include the sources, even though we might have the specific revision number, um, + +40:39.840 --> 40:46.800 +our thinking is we want absolute clarity, um, that, that somebody, uh, can say, okay, + +40:46.800 --> 40:51.200 +this binary did this thing, send me the source for it. I'm going to go take that into my own + +40:51.200 --> 40:56.800 +open source, or yeah, maybe they would, the jerks, um, into my own open source project. + +40:56.880 --> 41:03.360 +And, um, you know, off they go, uh, and that needs to be possible. + +41:04.800 --> 41:12.480 +Um, so, um, beyond that, the rest of this is, is really detailed that you find covered in the GNU + +41:12.480 --> 41:19.520 +maintainers manual. Um, this is the, the current set of Windows binaries that, um, it's busily + +41:19.520 --> 41:29.040 +working on creating a like for like a mirror to behind the scenes here is called a 29.1 underscore + +41:29.040 --> 41:36.080 +two. Um, and I have a lot of automation, uh, available on this site. So at this point, + +41:36.080 --> 41:45.200 +I'm just, I think I'm only a minute, 40 seconds over. I'm gonna invite my, uh, co-organizers + +41:45.200 --> 41:49.760 +back onto the call or any volunteers that want to jump in and anybody, if there's people on the + +41:49.760 --> 41:57.440 +BBB, I'd be happy to take questions. If there aren't, um, I have a screen full of, uh, the + +41:57.440 --> 42:04.080 +automation stuff ready to go as a kind of a second ring in my circus today. So if you're still with + +42:04.080 --> 42:08.640 +me, thanks a lot for joining me. And I really enjoyed this talk. Uh, if this is where we're + +42:08.640 --> 42:14.560 +going to close it out, I don't know where we're at for schedule today. Thanks a lot for a great + +42:14.560 --> 42:20.880 +talk, Corwin. Um, in terms of like schedule, yeah, you went over a little bit for the official, + +42:20.880 --> 42:26.880 +like, um, schedule or time of your talk, but I think, uh, we actually have maybe like six or + +42:26.880 --> 42:32.640 +seven more minutes, um, here on stream for, um, questions and such, if folks have questions, + +42:32.640 --> 42:38.320 +or if you want to like quickly maybe show one or two more things. Um, but I think the hard stuff + +42:38.320 --> 42:43.520 +is about like maybe 10 minutes ish for now. And then we'll have to rush over to, um, uh, for the + +42:43.520 --> 42:55.520 +closing remarks. So, well, that sounds awesome. Okay. So I'm looking at the, the dev chat. Uh, + +42:55.520 --> 43:01.040 +I see a comment on cross-compiling the emacs, but I'm sorry, I'm looking at IRC primarily, but, + +43:01.040 --> 43:08.080 +uh, feel free to jump in if you're on, uh, BBB with me, or, uh, uh, if, if you put something on + +43:08.160 --> 43:16.400 +the pad, I'm sure, uh, we'll see it between the two of us, uh, over here. Okay. So cross-compiling + +43:16.400 --> 43:20.640 +emacs for Serenity. I haven't tried really any cross-compiling. I think that would be very + +43:20.640 --> 43:28.240 +interesting. I would most likely focus on doing exactly what I do on a GNU system, completely + +43:28.240 --> 43:35.760 +ditching. Um, so I guess with my, my remaining time, rather than walking through code, um, for + +43:35.760 --> 43:42.080 +my automation, which can be another talk, if in fact there's an interest in that, um, I want to, + +43:42.080 --> 43:48.480 +I guess, say a couple of words about the non-free operating system that I'm using here. I did my + +43:48.480 --> 43:58.880 +best to use no non-free software other than the, uh, the operating system that is the context for + +43:58.880 --> 44:07.920 +this talk in preparing this talk for you. I personally have a lot more, uh, time and energy, + +44:07.920 --> 44:15.840 +I have to say, invested in proprietary tools for doing a lot of the things that, that go into this. + +44:15.840 --> 44:22.000 +So I really respect the work of people that pull that off. Um, I'm sorry I didn't get my pre-recorded + +44:22.000 --> 44:30.320 +stuff, uh, kind of in order for everybody, but I just want to stress, like, uh, it is all absolutely + +44:30.320 --> 44:35.520 +possible and just hats off to everybody that, that used, uh, entirely free software to get their, + +44:36.240 --> 44:43.360 +get their recordings done in time. Um, and what you did see, unless it was provided by the operating + +44:43.360 --> 44:49.200 +system in my presentation today, was all, uh, free software with the debatable exception of + +44:49.200 --> 44:56.160 +NSYS, which styles itself as open source, maybe for, uh, marketing reasons. + +44:56.720 --> 45:00.400 +Okay, uh, in any case, uh, certainly we can get all that source. + +45:08.080 --> 45:14.640 +Thanks for the note, Corin. It's good to know that, uh, building or, uh, yeah, doing the build of Emacs + +45:14.720 --> 45:20.880 +for Windows on Windows can be done, uh, using only free software. Yeah, absolutely. + +45:23.440 --> 45:29.520 +Probably the right closing note, right? Um, I just, uh, thanks again to the organizers for + +45:29.520 --> 45:33.920 +bearing with me. And like, every time I was like, you guys, I'm terrible at this. They're just like, + +45:33.920 --> 45:38.240 +no, you're doing fine. Keep going. You did a great job live last time. You can do it live, + +45:38.240 --> 45:43.040 +you know, and, and saying all the right things to just, uh, encourage me to come back, + +45:43.920 --> 45:46.160 +uh, this year and every year. + +45:49.760 --> 45:53.520 +Well, as I said before, we were very lucky to have you and the rest of the team, of course, + +45:53.520 --> 45:59.520 +as well. And, um, goes without saying, but all the speakers and the audience, the participants as + +45:59.520 --> 46:14.240 +well. So, um, so, uh, are we, we're still live over here that, you know, you know, me, I'm the + +46:14.240 --> 46:22.800 +Mike Hogg that I am. I can't resist, um, throwing, throwing up another screen here. And, uh, in fact, + +46:22.800 --> 46:32.160 +let's go ahead and go back to our, to our crawler, right? And I'll bring back our build + +46:32.160 --> 46:40.480 +if it finishes and maybe we'll show making the installer as well. Um, uh, but I have the CPU + +46:40.480 --> 46:49.680 +account turned down a little bit here. Uh, note, I didn't specify minus J here. Um, so, uh, over + +46:49.680 --> 46:54.000 +here is my automation. Uh, in case you do want to take a look, I can at least provide the + +46:54.000 --> 46:59.760 +orientation of what you're looking at. Scrape log is probably my first thing I want to show off. + +46:59.760 --> 47:08.400 +Um, it's not beautiful, but this works, uh, pretty well for me to get a sense of something might + +47:08.400 --> 47:14.640 +have changed in terms of how many warnings or errors are happening when I build Emacs. So I + +47:14.720 --> 47:18.640 +have this whole automation going on and I frequently want to answer the question, + +47:19.280 --> 47:25.600 +you know, what's the change rate in, uh, warnings or what have you. So this kind of gives me a count + +47:26.400 --> 47:36.880 +of that. Um, so from there, uh, accrued CI is the script we're watching run in the other pane. + +47:37.840 --> 47:44.960 +Um, we can see it's, uh, just starting to do its thing again. + +47:48.800 --> 47:56.960 +And, uh, the make file I mentioned, this is a top-down rewrite of everything else that I've done. + +47:57.040 --> 48:08.640 +It has some bugs right now. Um, the, uh, the build distribution is the main script that I use for my + +48:08.640 --> 48:17.120 +personal builds. This is what is run by the crude CI script. Uh, it has a fun tie-in to this, uh, + +48:17.120 --> 48:23.200 +web interface here, um, where we can, you don't need the port number when you go to it. That's + +48:23.200 --> 48:33.680 +just if I'm going to post. Um, the, uh, blah, blah, blah, blah, blah. This, this script is + +48:33.680 --> 48:39.120 +really long and complicated and probably needs some diving into, but you can see that, um, one + +48:39.120 --> 48:43.760 +of the complexities I have to deal with is that I'm going to need something in the format of an + +48:43.840 --> 48:53.920 +emacs-version for strategic, um, nsys reasons. So, uh, it takes care of kind of every complexity + +48:54.480 --> 49:03.120 +that I mentioned today in some respects, um, as does the make file. Build release is, um, another + +49:03.120 --> 49:11.360 +fairly useful incarnation of this. This is just focused on the release process, and this does + +49:11.360 --> 49:18.800 +work, uh, for example, to create the, the, the, you know, like, like, well, I could like, uh, + +49:18.800 --> 49:25.600 +for like files as far as I can tell. So what are currently posted for emacs 29.1 and the release + +49:25.600 --> 49:32.400 +candidate. Um, so I'll probably use that next time. And if it's still like, for like, I'll + +49:32.400 --> 49:40.960 +probably post the ones that came from this. Um, uh, building, uh, TreeSitter, I make some DLLs + +49:40.960 --> 49:47.120 +there. If you're looking for hints on how to get going or just simply, uh, a huge long list + +49:47.120 --> 49:55.840 +of Git repositories that make grammars, you can use that is here as well. Um, finally, I mentioned + +49:55.840 --> 50:04.800 +I have a, um, I have a website where I publish my own personal snapshots that I make, uh, that + +50:04.800 --> 50:11.680 +folder full of install directories, but all of the usual GNU style binary distributables, including + +50:11.680 --> 50:22.320 +the source code and the source code for the dependencies. Um, the, uh, so this program is + +50:22.320 --> 50:27.680 +another one of those complicated find commands and therefore potentially the most useful thing + +50:27.680 --> 50:34.960 +in here to take to you. Um, and here I'm deleting, uh, binaries older than 17 years. Uh, everything + +50:34.960 --> 50:42.240 +except the, uh, node apps file and the sources of it you'll find on my website. Currently those + +50:42.240 --> 50:48.800 +indefinitely, I'll probably roll out 120 days or something, um, for those eventually. + +50:53.600 --> 51:00.400 +Oh, uh, I can talk about this one even. Um, the, uh, so here you'll see the two branches that I'm + +51:00.400 --> 51:06.560 +tracking. The job of this script is, uh, this runs on the website. I call it with a, like a remote + +51:06.560 --> 51:15.920 +rsync, uh, type, uh, or an SSA remote, uh, SSH command. Um, and right after the rsync, + +51:15.920 --> 51:26.080 +rsyncing up any new Emacs that I built. And, uh, it's, uh, it's job is to update my fancy + +51:26.080 --> 51:34.880 +directory indexing. So let's look at Corwin's website. Here's my Emacs 29 folder. + +51:37.360 --> 51:50.400 +We have about two more minutes, Corwin. Yeah. It'll take that entire two minutes to, uh, + +51:50.400 --> 51:56.400 +load this directory because I am, because I have not yet ever pruned any of these dang binaries. + +51:56.400 --> 52:02.800 +So every version of, uh, Emacs 29 that I've ever made for myself is probably here. Nice. + +52:03.600 --> 52:08.480 +Uh, I strongly recommend that you bookmark this folder if you're using these for something and + +52:08.480 --> 52:14.240 +you always want the latest. Um, so here, this particular, uh, latest 29, Emacs 29 latest, + +52:14.240 --> 52:22.560 +or simply replace the 29 with 30 to get those. Uh, alas, no, no such luck for TreeSetter. + +52:23.120 --> 52:26.320 +But if we look at, uh, that, + +52:36.400 --> 52:40.320 +live this long without making a typo. Now look at me. + +52:40.320 --> 52:46.080 +Uh-oh. Oh. + +52:51.520 --> 52:56.720 +So here, um, you know, we can see the icon application and so on, even in the TreeSetter + +52:56.720 --> 53:01.440 +folder. This is all I'm talking about, about the fanciness that's set up by that other script that + +53:02.400 --> 53:06.880 +I'm showing over here and run after each time I run the upload. It just + +53:07.840 --> 53:12.640 +looks to see if anything's new and add some lines to the .htaccess file. + +53:15.840 --> 53:22.400 +Um, I'm particularly proud of this one. I'm not going to lie. Um, linking out to each, + +53:22.400 --> 53:26.560 +each, uh, project that we're using, letting us know the commit version, + +53:26.560 --> 53:34.320 +and then, uh, for the DLLs, quick link out to the log and the signature file for this DLL. Um, + +53:36.960 --> 53:46.160 +I find that a lot, just a lot more readable than, uh, listing them all out individually. And I'd + +53:46.160 --> 53:53.360 +love to do something like that on the GNU site. So I'm, I think we've got to be out of time by + +53:53.360 --> 53:59.600 +now. I've just got to say, hey, thanks again for having me, uh, for those that, uh, watch the talk + +53:59.600 --> 54:04.400 +either live or after the conference. Uh, appreciate everyone's support to get me to + +54:04.400 --> 54:10.320 +the point where I will be able to, uh, to do this, this, this cool volunteer task, + +54:10.320 --> 54:14.160 +uh, which is fun and easy to do and reach out to me if you're interested in helping with it. + +54:18.960 --> 54:24.320 +Well, awesome. Thanks a lot for the awesome talk, Corbyn. And, uh, of course, as a fellow + +54:24.320 --> 54:29.920 +core, uh, core organizer, uh, for all, for all that you do, um, in and around Emacs Conf + +54:29.920 --> 54:33.280 +and of course for, uh, GNU Emacs as well, it's much appreciated. + +54:36.160 --> 54:43.200 +Big, big words from coming from you, my friend. Um, thanks for the kind words. + +54:45.040 --> 54:49.840 +Cheers. My pleasure. All right. And with that, I think we're gonna, uh, wrap up the dev, uh, + +54:49.840 --> 54:55.360 +track here and, uh, we'll be with you again shortly in a few minutes on the gen stream, + +54:55.360 --> 55:00.400 +the gen track for the closing remarks for today, um, only for today, because we're going to be + +55:00.400 --> 55:07.520 +back tomorrow again as well. So don't go anywhere and, uh, see you on the gen track in a bit. + +55:25.920 --> 55:32.720 +Oh my God, I did it. We got done within the time. You're my hero. Um, and thank you so + +55:32.720 --> 55:41.520 +much for just keeping me honest there and, uh, like helping me keep my eye on the time and such. + +55:41.520 --> 55:53.680 +You have to look at the recording and see whether you feel like doing it again. + +55:56.160 --> 55:59.520 +I'm sorry. I had my sound screwed up and I'm sorry if I talked over somebody, + +55:59.520 --> 56:01.680 +I couldn't hear anything on mumble until this very moment. + +56:03.520 --> 56:08.960 +Oh, uh, because he's your webcam for it. Um, like as a, like a virtual webcam thingy, + +56:09.440 --> 56:15.760 +it was low res, especially when things are changing as you're scrolling around. So we'll + +56:15.760 --> 56:19.920 +see what kind of recording we can recover from it. And then you can decide whether you maybe + +56:19.920 --> 56:26.480 +want to clean it up with like screenshots. I recorded on this end too. We shouldn't have + +56:26.480 --> 56:30.720 +that problem with my recording. Thank you. Thank you. Thank you. I think we're still live on the + +56:30.720 --> 56:42.240 +dev stream. Someone could, uh, take that off. Oh, yes. Because, uh, I'll, I'll set it to rebroadcast. + +56:45.520 --> 56:50.640 +Yeah. I love doing that for the closing remarks. That's a fine tradition + +56:52.000 --> 56:58.480 +or it's a tradition now. Cause I'm pretty sure this means we've done it twice. + +57:01.680 --> 57:07.360 +I once heard that, you know, uh, as a fan-ish meaning like a fan-ish is a term of endearment + +57:07.360 --> 57:12.240 +for a science fiction fan to another. We say we're, we're fans or things we do are fan-ish and + +57:12.800 --> 57:18.960 +a fan-ish tradition then is if you do it three times, it's tradition, but we're on a budget here. + +57:19.680 --> 57:31.600 +So, all right. I think we should, um, head over to mumble and talk on mumble. Um, and just decide + +57:31.600 --> 57:36.240 +and see like which big blue button room we're going to be in for closing. Okay. So we're clear + +57:36.240 --> 57:39.600 +on BBB here? Yep. I think so. + -- cgit v1.2.3