summaryrefslogtreecommitdiffstats
path: root/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt1394
1 files changed, 1394 insertions, 0 deletions
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.
+