summaryrefslogtreecommitdiffstats
path: root/2023/info/windows-after.md
diff options
context:
space:
mode:
Diffstat (limited to '2023/info/windows-after.md')
-rw-r--r--2023/info/windows-after.md1260
1 files changed, 1260 insertions, 0 deletions
diff --git a/2023/info/windows-after.md b/2023/info/windows-after.md
new file mode 100644
index 00000000..4d8d8729
--- /dev/null
+++ b/2023/info/windows-after.md
@@ -0,0 +1,1260 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+<a name="windows-mainVideo-transcript"></a>
+# Transcript (unedited)
+
+[[!template text="""Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and welcome to uh""" start="00:00:00.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Welcome to my talk i'm a little distracted here""" start="00:00:11.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I had a friend who came over and just brought me a whole bunch of peanut butter cups homemade peanut butter cups""" start="00:00:13.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Maybe i'll show those off. Uh""" start="00:00:20.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""later""" start="00:00:22.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, what okay here, uh, put it right there""" start="00:00:23.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All good stuff""" start="00:00:30.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so i'm going to uh get over to my planned uh stuff i'm sharing here""" start="00:00:33.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""hopefully""" start="00:00:41.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, and and we'll jump jump right in because i'm gonna need as much time as I can possibly have today""" start="00:00:42.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""thanks so much for uh joining me for emacs conference and for""" start="00:00:49.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""especially for""" start="00:00:54.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:00:56.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all of you who who participated, you know in the discussions contributing talks and""" start="00:00:57.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, you know, uh, you know, including running the copy the the and it's just so much fun to be here, um""" start="00:01:03.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I guess while i'm standing here and and saying stuff that's that i'm gonna have to""" start="00:01:11.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""transcribe because I didn't uh prepare a""" start="00:01:16.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""recorded version""" start="00:01:20.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I had a lot of trouble trimming this down so I can solve that problem by just talking a lot at the beginning""" start="00:01:22.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""about other stuff, um""" start="00:01:28.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So in addition to the thanks I just want to say thanks also to the""" start="00:01:33.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Folks on the development list that helped me kind of come up to speed on this. I won't make a big list here. But""" start="00:01:37.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:01:43.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And and for all that i've learned from my previous conferences""" start="00:01:45.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's just I can't stress enough what a great opportunity volunteering for""" start="00:01:48.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh free software related things are""" start="00:01:53.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh as a way to get involved people will just totally teach you how to be helpful and i'm loving it""" start="00:01:55.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Sasha can you please maximize?""" start="00:02:00.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hold on""" start="00:02:02.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I can preview the stream, but it's not super easy right now""" start="00:02:14.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I got all my screens kind of dedicated to other stuff""" start="00:02:17.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so should I pause for a second before I get into the slides because there's""" start="00:02:20.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There they'll be hard to see if i'm not full screen""" start="00:02:24.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, yeah, okay, well i'll keep ad-libbing then because I just have a million, uh things I can say, um""" start="00:02:28.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so, uh, let me just quickly talk, uh things that aren't in here. Um,""" start="00:02:37.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm going to mention the mysis2.org and the that project which provides a port""" start="00:02:43.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""of the GNU""" start="00:02:51.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Of uh glibc and a lot of GNU""" start="00:02:53.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and other free software""" start="00:02:58.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, so""" start="00:03:01.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I don't pushing a room to uh a dvd room to stefan""" start="00:03:03.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so i'm gonna take mumble out of my uh, pardon me folks just gonna take mumble out of my speakers here""" start="00:03:12.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay""" start="00:03:19.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, in fact we'll take the speakers out of play entirely and i'll just switch to some headphones""" start="00:03:22.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so""" start="00:03:33.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Gorman you're good to go""" start="00:03:35.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Perfect. What an amazing amount of time. All right. So thanks a lot. Uh today i've got a jam-packed talk""" start="00:03:36.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, i've i've done my best to make""" start="00:03:43.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To make this not too overwhelming, but overall we're going to try to try to actually build""" start="00:03:46.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um emacs while we're talking today and we might actually build several emacs""" start="00:03:52.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so let's take a look at that real quick""" start="00:03:58.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so over here we have a screen where I am""" start="00:04:00.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just once a minute looking. Uh""" start="00:04:05.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Indirectly at whether there have been any pushes, uh upstream to either the emacs 29 or emacs 30 branches""" start="00:04:09.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so i've""" start="00:04:17.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Arranged for us to sort of keep an eye on that""" start="00:04:19.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um while we talk and you know, maybe that's that's one thing that we'll do and then additionally we'll probably""" start="00:04:22.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Fire up a shell. This is the mysis 2 environment that I talked about before""" start="00:04:30.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we'll probably create some directories and things""" start="00:04:36.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But before we get into all that let's let's give some some context. I've been doing my best to try to""" start="00:04:40.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, make sure all this information is on the emacs wiki as well""" start="00:04:47.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, uh, sorry, as I said, I got a little caught off guard. So i'm moving my foot pedals""" start="00:04:51.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To the float back to the floor here""" start="00:04:56.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And I should be able to advance slides here. All right, so""" start="00:05:00.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:05:05.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I kind of provided some special definitions for things i'm going to kind of level set with those""" start="00:05:07.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the uh""" start="00:05:14.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um when I say a binary release i'm talking about some some i'm talking about emacs for windows as""" start="00:05:17.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just ready to run out of its folder or in whatever similar form""" start="00:05:25.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The when I say a build i'm talking about kind of a process of doing that""" start="00:05:30.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um when emacs.get of course, that's the upstream hosted by gnu savannah""" start="00:05:36.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The emacs release is a tarball created from that the sources""" start="00:05:41.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For um emacs are going to be one of those two things""" start="00:05:48.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um very specifically so i'm not going to talk about patches patching there's some implications there perhaps we'll get into it""" start="00:05:54.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:06:02.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So a snapshot is when I build from anything other than a release source""" start="00:06:03.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh a tarball""" start="00:06:09.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, just if I if I say that i'm talking specifically""" start="00:06:11.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""about the uh, the xz""" start="00:06:16.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Version of the file as as a technical point""" start="00:06:18.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so that may come up. All right, nothing else I think up my sleeve. Um""" start="00:06:22.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:06:29.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh as as a key data point it's worth understanding that there's a file called configure ac""" start="00:06:30.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's going to be processed, uh as part of autoconf. We we initially access that when we run""" start="00:06:37.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um autogen as you'll see in a little bit""" start="00:06:44.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:06:48.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The but before but um, so the autogen script will generally consider this. Uh, so in a release build""" start="00:06:49.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this has been thought about kind of for us as part of um making the tarball""" start="00:06:57.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the configure dot a""" start="00:07:03.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""ac""" start="00:07:05.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:07:07.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, I think I pretty much covered covered this so""" start="00:07:08.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um those those that kind of partially built status that's a might be another phrase that you hear me use""" start="00:07:12.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so this""" start="00:07:19.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Slide unpacks that a little more""" start="00:07:20.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:07:24.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So it can be a little confusing to understand what exactly?""" start="00:07:26.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the you know, what is it, you know, how stable is emacs depending on what I have so that I got a""" start="00:07:30.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's kind of a set of rules of thumb here right first I want the highest, uh, you know dot""" start="00:07:36.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh dot release value that I can get assuming that that's higher than one""" start="00:07:43.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If it's if it were to only be one, let's say my choices were 29.1 and 30.1""" start="00:07:49.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I would take 30.1""" start="00:07:56.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:07:58.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""because that's that's weird, but um""" start="00:07:59.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""What you'll normally see is you might see a 28.2""" start="00:08:02.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You might see a 29.1""" start="00:08:06.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here I think 28.2 has got the most most most stable""" start="00:08:08.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:08:15.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""set, uh the""" start="00:08:16.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, or set of release binaries""" start="00:08:18.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:08:21.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""29.1 will will have a little more features, but will tend to be more stable""" start="00:08:23.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""than""" start="00:08:28.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Any lower point releases for 29""" start="00:08:29.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, certainly than any release candidates for 29, which might even have new features""" start="00:08:32.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but are mostly going to just be patches so they're going to become the most stable""" start="00:08:38.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""thing here""" start="00:08:43.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and especially if they they have a""" start="00:08:44.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know if this this is not""" start="00:08:48.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, if this were to be 29.2 release candidate one as well looking forward to seeing""" start="00:08:50.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:08:56.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:08:57.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""30.0.50""" start="00:09:00.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:09:02.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And and in between this this pre-test here, we're talking about kind of developer land. Um, so""" start="00:09:03.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, the expectation is that you know what you're doing that applies to windows users""" start="00:09:10.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh just as much if you are building anything in the snapshot range any of that is going to be in this""" start="00:09:14.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""30.0.50 currently that'll change when""" start="00:09:21.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:09:24.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""when the""" start="00:09:25.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""30 30 an emacs 30 release tags, uh, or release branches come""" start="00:09:27.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so""" start="00:09:34.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's talk about the local um, there's not much to know about what I have going on""" start="00:09:37.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""except that I have my my paths mess messed with so""" start="00:09:43.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, if if that that were to come up if you're wondering how why does this?""" start="00:09:48.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh in in sys command work that's that's probably the way place where you notice it""" start="00:09:52.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I am using windows 10. I haven't tried windows 11""" start="00:09:58.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh as mentioned my sys2 is critical to all this""" start="00:10:02.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There's one script in particular that will error out if you try to do anything other than use my sys's""" start="00:10:06.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""My sys's shell and in fact my sys owns""" start="00:10:11.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or provides three shells and of them that script is designed to work with a specific one of them as we'll come to""" start="00:10:14.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I don't talk about installing the dependencies, but just as as kind of some kind of help. Um,""" start="00:10:23.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You can search using this formula and install""" start="00:10:31.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Using this formula good luck with those, you know grep commands""" start="00:10:37.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And sys is the tool for building the self-installing self-extracting installer or uh executable self-installer""" start="00:10:43.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, the script for that is provided along with the emac source""" start="00:10:51.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and i've provided a helpful link to the main page for the project download link on the left. It is not""" start="00:10:56.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's kind of scare where the way that this link appears, but I have clicked it and it's working for me""" start="00:11:05.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Automation does uh, we'll we have some time we'll be looking at this at a minimum""" start="00:11:14.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I wanted to mention that what I do on my local what you're seeing in the crawler, I hope""" start="00:11:19.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh represents a""" start="00:11:25.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:11:27.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""A simple sleep loop, uh, and we'll we'll look into that if we have time""" start="00:11:30.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I do have a little but I do use like a cron job and so on to clean up some hosting that I pay for""" start="00:11:36.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um where i've got where I where I kind of self-host""" start="00:11:44.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""some uh snapshots""" start="00:11:48.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""more stuff than I feel comfortable uploading to""" start="00:11:50.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, to gnu""" start="00:11:54.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The um""" start="00:11:57.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know, I never said, uh, my name is corwin bruce for the last couple of years i've been the volunteer making""" start="00:12:01.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh making the snapshots the quote-unquote official binaries, uh for windows of the""" start="00:12:08.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:12:15.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Of of emacs for windows. So that's that's all the different versions. Uh help is always welcome with that""" start="00:12:17.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'd be very happy to teach you in more depth. This video is""" start="00:12:23.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know kind of my drop dead file. Uh, I don't have specific plans. Uh, if somebody's like hey get out of the way""" start="00:12:27.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This is the one thing I think I can do""" start="00:12:33.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, hey, that's real relatable""" start="00:12:35.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, um, so I haven't tried uh, the I haven't tried a lot of fun things that I won't talk about""" start="00:12:39.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, the uh, the rest of this talk is going to get into the nitty-gritty as I said, um""" start="00:12:46.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If we can't convince emacs to start building over on that screen, we'll be opening it up here on the center stage""" start="00:12:52.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:12:59.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, this begins and there's there's there's there's great insight here too on the wiki, uh""" start="00:13:01.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With picking an ftp source for any official release""" start="00:13:08.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is for a stable product. Please visit""" start="00:13:12.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um ftp.gnu.org""" start="00:13:16.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Otherwise, you'll want to switch that ftp dot at the beginning to alpha dot and take a pre-test""" start="00:13:19.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, or any snapshot or otherwise then they're not published there""" start="00:13:25.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh next""" start="00:13:30.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, you know""" start="00:13:32.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""i'm gonna you have some examples in here that assume that you're doing a release build that you're doing 29.1, but""" start="00:13:34.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, i'm glancing out of the the right side of my face at the""" start="00:13:41.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Chat on the optance anybody in there wants to direct me at a particular""" start="00:13:48.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, we can make some other we can build something""" start="00:13:53.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Else if you want to see a snapshot build more mention that um the examples that you're going to see here""" start="00:13:56.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That I will without other direction cut and paste""" start="00:14:03.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:14:07.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Are all based on a release bill""" start="00:14:09.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:14:12.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and so, uh, we'll use the uh, I mentioned that there are several shells provided by mysis2""" start="00:14:14.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To the min-gw64""" start="00:14:22.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Shell is the one that we mostly need""" start="00:14:25.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I tested all of this as well with the min-gw32 shell""" start="00:14:28.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:14:34.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So that that should work and and see mix binaries that that work for me""" start="00:14:35.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:14:44.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I as I mentioned, I don't get into the details of installing all your prerequisites""" start="00:14:46.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I found that doing it in a headfirst manner wasn't uh,""" start="00:14:50.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Wasn't difficult and I also found that there's a number of tutorials. I didn't want to pick one to link here""" start="00:14:54.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um there uh""" start="00:15:03.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Here are uh, okay, so""" start="00:15:06.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Our general formula for building emacs irrespective of windows""" start="00:15:10.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""looks like""" start="00:15:15.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Does the configure script exist if not run autogen?""" start="00:15:16.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""from a windows build standpoint""" start="00:15:21.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This is if i'm not running a release that release build call the autogen script""" start="00:15:23.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Right and this would be in the directory where we want to pack this i'll demonstrate""" start="00:15:31.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""within""" start="00:15:35.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""three minutes if uh""" start="00:15:37.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If one if nobody's pushed upstream to emacs""" start="00:15:39.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:15:42.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so, uh the configure, uh, and""" start="00:15:44.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""configure options""" start="00:15:48.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""are uh""" start="00:15:50.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh the configure, you know if the configure sorry if the configure script exists then""" start="00:15:53.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh doesn't doesn't exist. So the only reason so in my process I will always execute that step because I clean everything""" start="00:15:58.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""after every build, um in all my contexts""" start="00:16:06.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, however, if you were you know had a""" start="00:16:10.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Checkout of emacs dot get and you are building it at several releases""" start="00:16:14.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Then maybe you've got a configure script and then you'll want to know""" start="00:16:19.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the you know""" start="00:16:22.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Whether you have to bootstrap and the typical complexities, but otherwise you might be able to skip that in in the abstract""" start="00:16:24.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:16:32.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Is that right or is it is""" start="00:16:36.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Make uh, so and if the make file doesn't exist make install. I know i'm""" start="00:16:38.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Looking at that and i'm questioning whether it's correct. Sorry about that""" start="00:16:43.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um in any case, uh, so autogen configure make install is our recipe autogen""" start="00:16:48.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Creates the configure script configure creates the make file the make file""" start="00:16:55.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um in the case of windows, I almost always want the install""" start="00:17:00.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh and to specify some location where the installed emacs will land this is""" start="00:17:04.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""where""" start="00:17:10.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all of the recipes for packaging emacs""" start="00:17:11.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""go""" start="00:17:14.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and if I were""" start="00:17:15.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know using this as a movie to upgrade I personally would do that by""" start="00:17:18.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""by specifying an install path quote unquote on top of""" start="00:17:23.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh a main installation. I don't do that. I update shortcuts manually based on what specifically I want to try""" start="00:17:27.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh in an effort to to to notice, uh interesting patches and confirm they work on windows""" start="00:17:34.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Which mostly they do there's not a lot of code in my experience that is""" start="00:17:41.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Windows specific and very very little around the build process""" start="00:17:46.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right""" start="00:17:50.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Huge rabbit hole zone and I still have a minute before I have to kick off the first part of our demo""" start="00:17:51.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:18:00.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's let's keep keep diving in""" start="00:18:01.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:18:04.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The those specific part windows specific parts beside the dot exe extension that we're going to find slammed onto all of our familiar""" start="00:18:05.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh executables. We're also going to have emacs client w""" start="00:18:14.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Which is a wrapper that hides?""" start="00:18:18.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um how hard it is to get""" start="00:18:22.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh to take it""" start="00:18:25.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""How bad the abstraction is between the window management layer and the gooey?""" start="00:18:27.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And then all the different parts on windows essentially it wants to create a shell window if we just double click emacs.exe""" start="00:18:32.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So emacs client w""" start="00:18:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh and run emacs are going to solve that problem""" start="00:18:41.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:18:45.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Wrapping emacs and emacs client respectively""" start="00:18:46.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And""" start="00:18:51.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just uh""" start="00:18:53.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so let's let's go ahead and do something i'll i'm going to take away the ticker here for a minute""" start="00:18:56.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And what you're not seeing is off stage. I am""" start="00:19:02.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Killing that so we don't get builds in parallel""" start="00:19:07.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:19:11.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, um""" start="00:19:15.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So at this point i'm going to open up a shell and i'm going to start talking just a little bit about""" start="00:19:17.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""My local build environment, which we haven't gotten into in fact just to make that even easier""" start="00:19:22.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""let's um""" start="00:19:28.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's just take a look at it a little bit probably the easiest spot""" start="00:19:31.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Is""" start="00:19:37.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Here""" start="00:19:40.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so here we have the familiar windows my computer interface""" start="00:19:47.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I have the g drive and the h drive""" start="00:19:52.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""four terabyte drives""" start="00:19:56.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um dedicated to""" start="00:20:00.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""my""" start="00:20:02.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, really overblown emacs build process""" start="00:20:03.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this just lets me be super lazy. There's no reason you need any massive amount of storage to do any of this""" start="00:20:08.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um inside here and now i'll actually switch you back to the other screen""" start="00:20:15.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:20:21.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We'll we'll find""" start="00:20:24.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oops""" start="00:20:35.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Sorry about that""" start="00:20:38.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It didn't take the time to label that one""" start="00:20:40.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Label that one""" start="00:20:42.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so here you can see the primary output that""" start="00:20:44.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That i'm looking at through this automated process""" start="00:20:49.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I come along I look at the bug reports or maybe i'm just restarting my computer and choosing what emacs""" start="00:20:52.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""version at random and then in that case, I look at this modified date and I say""" start="00:20:58.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um my config that I""" start="00:21:03.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know that i'm playing with right now is all set for emacs 30""" start="00:21:05.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or i'm testing them both and i'm relaunching both of these right""" start="00:21:09.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So for me that starts by diving into the install folder going into the bin folder""" start="00:21:13.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Which looks exactly the way my automation leaves it. I then come in to run the run emacs""" start="00:21:18.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And I create a shortcut""" start="00:21:25.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:21:27.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To it""" start="00:21:29.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:21:30.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm a keyboard person. So that's usually done like this""" start="00:21:31.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And then I just know that the context menu is going to come up in the right place so i'll come up and""" start="00:21:36.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:21:42.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Possibly change the change the shortcut, right?""" start="00:21:44.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If I don't mess with it""" start="00:21:53.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:21:56.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here's where i'll add my minus q if that's kind of where my world is at or it kind of depends on what i'm doing""" start="00:21:57.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With these which varies week to week""" start="00:22:03.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so restarting my emacs, uh involves doing the same thing going to my desktop""" start="00:22:07.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And where you'll find a number of emac shortcuts""" start="00:22:12.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and""" start="00:22:17.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um updating the shortcut in the same manner""" start="00:22:20.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Actually, maybe we'll just let's go back there and just show it. So if we look at for example my erc""" start="00:22:23.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You can see it's going to be pointing at one of these""" start="00:22:33.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""clones, and then it's gonna""" start="00:22:37.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Maybe tell me that I want it wants to be full screen. No, not currently and then it might uh,""" start="00:22:39.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Have some stuff in there about auto loading a config and what connections i'm going to some commands i've defined to start connections""" start="00:22:45.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So""" start="00:22:53.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, and sorry I got a phone call I was checking it wasn't in an order the organ the other organizers giving me the hook""" start="00:23:00.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, um, all right, so that's that's probably enough on the local system. Let's get back to""" start="00:23:08.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To to building emacs and now it hopefully makes a certain amount of sense when I say we're gonna wander over to the h drive""" start="00:23:15.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and recreate the structure that""" start="00:23:22.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""both""" start="00:23:25.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""My process sort of assumes and the scripts you'll find in the admin nt""" start="00:23:27.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh build disk folder in source""" start="00:23:34.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Used to assume those scripts are in need of some love and in just a little bit i'll be mentioning a build""" start="00:23:38.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:23:45.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""a uh""" start="00:23:46.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""A a particular bug that you might want to pay attention to if you're interested in making a self installer""" start="00:23:47.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all right, so""" start="00:23:54.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:23:57.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We're going to create""" start="00:23:58.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh an emacs build directory""" start="00:24:01.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we've got a handy git clone stage git clone command stage for ourself that would work""" start="00:24:08.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:24:16.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Do not currently see anybody lobbying for that. So instead we will run the rather faster""" start="00:24:19.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh w get command""" start="00:24:28.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""On savannah, which is not pasted in here. Nice. Let's see if I can freehand it not gonna do it""" start="00:24:30.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:24:37.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:24:45.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Beg your pardon i'm grabbing a url from the internet""" start="00:24:51.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, okay. Yeah, I can't I can't honestly I can't freehand it whatever""" start="00:25:00.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Sorry, I uh""" start="00:25:06.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I didn't have that bookmarked and all handy like I thought I did""" start="00:25:07.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so we'll just say ftp.gnu""" start="00:25:12.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text=""".org""" start="00:25:15.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, what is it pub emacs emacs-29.1""" start="00:25:17.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:25:26.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hmm""" start="00:25:34.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I""" start="00:25:36.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Didn't""" start="00:25:40.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Really think i'd have this command sitting around it makes me want to scrap the whole demo i'm not gonna lie""" start="00:25:43.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, how am I doing your time?""" start="00:25:48.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I think at least 15 minutes. Um, but in the command that you were freehanding should the pub be gnu instead""" start="00:25:51.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, thanks""" start="00:25:59.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm, sorry""" start="00:26:01.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There we go, thank you. All right, and then we'll""" start="00:26:07.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And i'm not sure I provided commands for this either""" start="00:26:17.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But it is trivially easy to do and while that happens we'll get to move on a few slides""" start="00:26:22.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:26:29.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The configure script i'm not talking about in a lot of detail""" start="00:26:31.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But I do want to mention that the gnu binaries are provided with native""" start="00:26:35.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh compilation enabled that's the feature that uses gcc""" start="00:26:41.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""lib gcc get on windows if available that looks gcc get will be used""" start="00:26:46.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but when but if if emacs has that feature then it will take by compile""" start="00:26:53.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""native code and""" start="00:27:01.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""asynchronously""" start="00:27:04.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Compile that as needed""" start="00:27:05.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh with the ahead of time feature""" start="00:27:07.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We're going to do as much of that ahead of time and for folks that are consuming the windows binary""" start="00:27:09.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The thinking goes that they might not have mysys too. They might not have""" start="00:27:14.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Gcc jet they might be""" start="00:27:19.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Happy that they're enabled""" start="00:27:22.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""In a you know a lot of time run emacs on their local environments""" start="00:27:24.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""At all""" start="00:27:30.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know in a maybe a lockdown at a corporate context""" start="00:27:31.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:27:35.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""aside""" start="00:27:36.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that""" start="00:27:37.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There's your first glimpse at the configure""" start="00:27:38.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Program that we're going to run in a moment. In fact, i'm going to go as far as""" start="00:27:42.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Putting it on the clipboard""" start="00:27:47.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:27:49.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Really just looking at this the aot flag""" start="00:27:50.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's the one i'd call attention to but it's worth understanding that windows doesn't provide a dbus capability""" start="00:27:53.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So windows native program isn't gonna be able to depend on dbus. We're gonna""" start="00:27:58.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We're gonna explicitly ask that that be left out. I think that's actually optional. It's documentation""" start="00:28:03.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think the configure program is smart enough to know that we don't want dbus""" start="00:28:09.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""on windows""" start="00:28:13.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, otherwise we tend to compile with things. Um, there there's missing documentation. We could say the uh,""" start="00:28:15.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all of the libraries are treated in the way I mentioned in that""" start="00:28:23.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Jpeg support will be available as long as""" start="00:28:27.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Jpeg is is available in our environment and configure script certainly notices that""" start="00:28:32.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, the new provided binaries are provided with minus o2 and that's also my default personally on windows. Um,""" start="00:28:37.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""However, and i'm going to skip this since I mentioned it""" start="00:28:45.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um mentioned""" start="00:28:49.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, and uh""" start="00:28:51.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:28:54.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So I guess i'll say um, you can um say with""" start="00:28:56.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:29:01.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's worth knowing that you if you're not one reason that that you're building might be because you want to turn off native""" start="00:29:02.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Compilation for whatever reason if you have load juices you get it, but don't want emacs to use it""" start="00:29:08.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, especially as that default looks like it could be changing with emacs 30""" start="00:29:14.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:29:19.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the uh""" start="00:29:20.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the debug configuration, um, this is this is the uh, kind of""" start="00:29:22.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, what what i'm currently using this on commentary. Uh, i've seen on the emacs development list""" start="00:29:27.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:29:34.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, let's check on our checkout and see if we can't get a build running""" start="00:29:40.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this is a release build so I won't be starting with""" start="00:29:44.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so we'll start by hopping into its directory""" start="00:29:49.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we um we have""" start="00:29:53.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:29:59.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But not""" start="00:30:05.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so that tells us we're gonna run""" start="00:30:11.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Our configure program""" start="00:30:15.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But we don't need to run uh config ic""" start="00:30:18.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So""" start="00:30:23.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So let's get that going and""" start="00:30:31.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:30:34.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hopefully that's showing through just enough to be fun not too much to be distracting""" start="00:30:36.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um the uh the unoptimized""" start="00:30:46.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, please report issues if your emacs is crashing, uh to the emacs development list not to me personally""" start="00:30:52.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, although you are of course welcome to copy me""" start="00:30:59.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, if you especially i'm subscribed to that list so I get all the mail so I don't mind being copied""" start="00:31:02.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, and""" start="00:31:09.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""as well""" start="00:31:11.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""if you think it's""" start="00:31:12.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:31:13.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know related to packaging that actually makes sense""" start="00:31:15.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or windows related even and uh, it can be tested with an extra snapchat that should be uploaded to the gnu alpha side""" start="00:31:18.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I could look at that if I have time""" start="00:31:25.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay""" start="00:31:27.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is with the configure script to make file for""" start="00:31:29.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Emacs is really really complicated if time permits which i'm, you know now confident it will not""" start="00:31:32.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We will look at a makefile that I tried writing that orchestrates this whole process that i'm talking about""" start="00:31:39.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um as uh, let's see, so the build uh build process I run my builds with""" start="00:31:47.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh explicitly specifying the max cpu, uh""" start="00:31:54.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""with minus j""" start="00:31:59.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But minus b1 to get the full build, uh full login to your recipes. That is probably the magic thing""" start="00:32:01.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that um""" start="00:32:09.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""shouldn't to understand with uh""" start="00:32:10.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or that uh that that uh that i'm glad that I know, uh as i'm trying to write my automations""" start="00:32:15.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:32:24.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh the um""" start="00:32:26.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So I call that out here the binary, uh releases""" start="00:32:29.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay. So in this section, we're going to start to get into what are all those files""" start="00:32:35.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And there's a bug report related to that that I didn't get into here. So""" start="00:32:39.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, that's kind of to the point about the less said about this the better""" start="00:32:43.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That's my explanation for stepping through some of these slides. Uh, of course""" start="00:32:47.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Share them all um""" start="00:32:52.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hopefully by the time that this video is published""" start="00:32:55.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I mentioned it. Um, I may have mentioned already freshly installed but uh fully installed""" start="00:33:01.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh this the the key distinction here is that uh emacs is""" start="00:33:07.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Distributed in the binary form for windows with some dll files that actually come from the mysis 2""" start="00:33:13.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Project there's an implication there to gcc that I definitely want to get to it talking about""" start="00:33:21.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so freshly installed means""" start="00:33:28.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We haven't copied those binaries from the mysis 2""" start="00:33:31.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh installation""" start="00:33:35.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""into the emacs""" start="00:33:37.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh installation""" start="00:33:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, and then""" start="00:33:41.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When we re-archive that local emacs installation, that's how we're going to create the full zip""" start="00:33:43.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So hopefully that actually is a pretty good summary of what all those files are""" start="00:33:48.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but there are readme files on the ftp. They do a pretty good job""" start="00:33:53.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If you can dig enough to find one and my apologies for uh tardiness getting a new version on that posted""" start="00:33:59.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:34:07.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the emacs""" start="00:34:09.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so those dependencies, uh are listed within the emacs itself and as we'll just talk about in a moment""" start="00:34:10.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There's a way""" start="00:34:17.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh that we can use we can access that""" start="00:34:18.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When we collect them in order to meet the gcc requirement that is essentially""" start="00:34:22.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""to include""" start="00:34:27.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um include the sources for the for those binaries the things that were compiled against""" start="00:34:29.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:34:36.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh, so so here we go, we're we're into the build process""" start="00:34:39.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's just take a look and see if configure it got done it sure did""" start="00:34:42.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and now we can see a table of""" start="00:34:46.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hopefully good, but good and bad news""" start="00:34:49.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um in potential""" start="00:34:51.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um where we're learning that we're using the pdumper strategy and any number of other things that we might be""" start="00:34:53.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Messing with as our motivation for for building ourselves on emacs""" start="00:34:59.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""again, this table represents""" start="00:35:04.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh what you'll what""" start="00:35:07.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""What what it looks like for me when i'm building for the gnu distributed binaries""" start="00:35:10.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so um""" start="00:35:17.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Kind of moving moving as quickly as I can here""" start="00:35:20.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm at 40 after I believe that's the five minute mark""" start="00:35:24.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:35:28.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um having just succeeded in in configuring emacs. I don't think we're going to build it. Uh""" start="00:35:29.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I don't think we're going to actually get to running make install""" start="00:35:35.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but I have it sitting here on my keyboard or clipboard assuming that we will right?""" start="00:35:39.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""No""" start="00:35:49.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, wow""" start="00:35:50.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think i've managed to confuse this. All right, so for me that looks simply like""" start="00:35:52.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh make""" start="00:35:57.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""v equals one""" start="00:35:59.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh install, uh prefix equals""" start="00:36:01.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:36:10.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we can at least get it kicked off""" start="00:36:18.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And that that command is just uh""" start="00:36:22.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just is no no different than I showed on the slide where I where I gave it""" start="00:36:26.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I wasn't planning to stop and explain it. I was just planning to paste it in""" start="00:36:31.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:36:35.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So so again recapping the rest of the process here and maybe actually making it if you can believe it or not""" start="00:36:36.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""through the rest of these slides, um""" start="00:36:42.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We to to create the full set of binaries. We're going to need a no dependent no depth archive. That's without the mysys2""" start="00:36:45.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To uh deal provided dlls just the things that we compile as part of making emacs""" start="00:36:52.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:36:59.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh, the build depth zip script is uh provided with the source distribution is your tool""" start="00:37:02.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""for uh meeting the gpl requirements ride source as mentioned before""" start="00:37:10.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, there is a second bug that I did, uh include some more information on in my notes already""" start="00:37:14.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um that uh""" start="00:37:22.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That gets into the details of this other feature I alluded to""" start="00:37:24.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, i'll just skip into that""" start="00:37:28.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:37:31.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""we can with with uh""" start="00:37:32.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With a an appropriate version of that which you may need a patch""" start="00:37:35.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh to""" start="00:37:41.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To have you can list out the dependencies""" start="00:37:42.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And and that version as well can consider the dependencies of the emacs binary versus the hard-coded list""" start="00:37:45.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You might find depending on when you look at this file in the source tree""" start="00:37:51.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The different um""" start="00:37:56.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:37:59.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I also have a hack here that uh works around the absolute requirement to run this with the mysys2""" start="00:38:00.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And not the mingw64""" start="00:38:07.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""64""" start="00:38:09.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Script""" start="00:38:14.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:38:17.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Once we've made that zip file that contain that's that's our installed emacs without the dlls provided by mysys2""" start="00:38:18.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We'll then unpack the dependencies that were created by that python script. We just talked about from the emacs source tree""" start="00:38:28.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So at that point once those are unpacked we can now make what's called the full""" start="00:38:36.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Installer or sometimes I might call it the unqualified installer because it's just going to be called emacs29.1.zip""" start="00:38:41.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um and that uh that file which which creates the archive""" start="00:38:51.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That""" start="00:38:58.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that that file is exactly the same plus the""" start="00:38:59.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, the dependencies that we unzipped in the bin folder of the installed emacs""" start="00:39:03.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:39:09.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Executable self-installer, which I would love to have more time to talk about I gave a few pointers here on the hard part of running""" start="00:39:10.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""it most importantly""" start="00:39:17.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If i've installed in any kind of funny looking name, I end up renaming it to like emacs-29.1""" start="00:39:19.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or emacs-29. or 30.0.50 or whatever and I just rename that installed""" start="00:39:26.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Emacs folder and then I go to the root of wherever I created that the parent directory above it""" start="00:39:33.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And that's where I make my copy of the emacs nsi""" start="00:39:40.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the the nsis script""" start="00:39:44.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and uh""" start="00:39:47.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That's also where I""" start="00:39:49.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And then uh, then from that parent directory I execute uh making sys uh here I as mentioned""" start="00:39:51.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:39:59.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I I can get away with this because I have it on my path and it's my recollection""" start="00:40:00.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think I tested this and couldn't reproduce the problem. So I didn't document it here, but i've had some problems with running this when""" start="00:40:05.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:40:12.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When nsis wasn't on my path""" start="00:40:13.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh, the the final step here""" start="00:40:16.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And the last the gpl requirement is to include all the sources""" start="00:40:20.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Except when i'm doing a release build I always do this""" start="00:40:25.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and that's the new practice when making snapchat binaries is to go ahead and include the sources""" start="00:40:30.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Even though we might have the specific revision number""" start="00:40:36.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, our thinking is we want absolute clarity""" start="00:40:39.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that that somebody""" start="00:40:44.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh can say okay this binary did this thing from the source for it i'm gonna go take that into my own open source""" start="00:40:45.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""yeah, maybe they would the jerks them into my own open source project and""" start="00:40:53.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:40:57.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Off, you know off they go, uh, and that needs to be possible""" start="00:40:59.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:41:04.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so, um""" start="00:41:06.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Beyond that the rest of this is is really detailed that you find covered in the gnu maintainers manual""" start="00:41:07.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this is the the current set of windows binaries that um, it's busily working on""" start="00:41:14.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""creating a like for like a""" start="00:41:20.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Mirror to behind the scenes here is called a 29.1 underscore two""" start="00:41:23.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, and I have a lot of""" start="00:41:30.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Automation available on this site. So at this point i'm just I think i'm only""" start="00:41:32.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""minute 40 seconds over i'm""" start="00:41:38.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""gonna""" start="00:41:41.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""invite my""" start="00:41:42.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Co-organizers back onto the call or any volunteers that want to jump in and anybody if there's people on the bbb""" start="00:41:44.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'd be happy to take questions if there aren't""" start="00:41:50.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, I have a screen full of""" start="00:41:53.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The automation stuff ready to go as a kind of a second ring in my circus today""" start="00:41:57.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So if you're still with me, thanks a lot for joining me, and I really enjoyed this talk""" start="00:42:03.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, if this is where we're going to close it out. I don't know where we're at for schedule today""" start="00:42:07.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, thanks a lot for a great talk corwin""" start="00:42:13.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um in terms of like schedule, yeah, you went over a little bit for the official like, um""" start="00:42:16.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""schedule or time of your talk, but I think""" start="00:42:22.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We actually have maybe like six or seven more minutes. Um here on stream""" start="00:42:24.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For um questions and such if folks have questions or if you want to like quickly maybe show one or two more things""" start="00:42:29.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:42:36.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But I think the hard stuff is about like""" start="00:42:37.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Maybe 10 minutes ish for now and then we'll have to rush over to um""" start="00:42:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""for the closing remarks, so""" start="00:42:43.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Well, that sounds awesome""" start="00:42:48.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so i'm looking at the the dev chat, uh, I see a comment on cross compiling the emacs""" start="00:42:51.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But i'm sorry, i'm looking at irc primarily, but uh, feel free to jump in if you're on bbb with me or""" start="00:42:58.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, uh, if if you put something on the pad i'm sure""" start="00:43:05.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I will see it between the two of us""" start="00:43:09.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh over here""" start="00:43:13.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so cross compiling emacs for serenity. I haven't tried really any cross compiling. I think that would be very interesting""" start="00:43:14.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I would most likely focus on""" start="00:43:21.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Doing exactly what I do on a gnu system completely ditching""" start="00:43:23.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:43:29.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So I guess with my my remaining time rather than walking through code""" start="00:43:30.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um for my automation which can be another talk if in fact there's an interest in that""" start="00:43:35.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:43:40.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I want to I guess say a couple words about the non-free operating system""" start="00:43:41.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That i'm using here. I did my best to use no""" start="00:43:46.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""non-free software other than""" start="00:43:50.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:43:53.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh the operating system""" start="00:43:55.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is the context for this talk in preparing this talk for you""" start="00:43:57.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I personally have a lot more""" start="00:44:02.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh time and energy I have to say invested in proprietary tools for doing a lot of the things that""" start="00:44:06.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That go into this so I really respect the work of people that pull that off. Um""" start="00:44:14.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm, sorry, I didn't get my pre-recorded stuff. Uh kind of in order for everybody, but I just want to stress like""" start="00:44:20.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, it is all absolutely possible and just hats off to everybody that that used uh entirely free software to get their""" start="00:44:28.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Get their recordings done in time""" start="00:44:36.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, and what you did see""" start="00:44:38.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Unless it was provided by the operating system in my presentation today was all""" start="00:44:41.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh free software with the debatable exception of nsys which styles itself""" start="00:44:46.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""as open source""" start="00:44:51.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""maybe for uh marketing reasons""" start="00:44:53.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh in any case, uh, certainly we can get out of the source""" start="00:44:57.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Thanks for the note corinne, it's good to know that uh""" start="00:45:08.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Building or uh, yeah doing the build of emacs for windows on windows can be done using only free software""" start="00:45:11.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, absolutely""" start="00:45:19.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Probably the right closing note, right?""" start="00:45:23.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, I just uh, thanks again to the organizers for bearing with me and like every time I was like you guys i'm""" start="00:45:26.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Terrible at this. They're just like no you're doing fine. Keep going. You did a great job live last time""" start="00:45:32.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You can do it live, you know and and saying all the right things to just uh, encourage me to come back""" start="00:45:37.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This year and everywhere""" start="00:45:44.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Well, as I said before we were very lucky to have you and the rest of the team of course as well and""" start="00:45:49.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um goes without saying but all the speakers and all the audience the participants as well, so""" start="00:45:54.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:46:08.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, uh, are we we're still live over here that you know, you know me i'm the mike hog that I am I can't resist""" start="00:46:09.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um throwing throwing up another screen here and uh,""" start="00:46:17.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""In fact, let's go ahead and go back to our to our crawler, right?""" start="00:46:22.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And i'll bring back our build if it finishes and maybe we'll show making the installer as well, um""" start="00:46:30.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But I have the cpu count turned down a little bit here""" start="00:46:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Note I didn't specify minus j here""" start="00:46:44.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, so""" start="00:46:47.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Over here is my automation, uh in case you do want to take a look""" start="00:46:49.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I can at least provide the orientation of what you're looking at scrape log is probably my first thing. I want to show off""" start="00:46:52.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, it's not beautiful, but this works, uh, pretty well for me to""" start="00:46:59.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Get a sense if something might have changed in terms of how many warnings or errors are happening""" start="00:47:06.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When I build emacs, so I have this awful automation going on and I frequently want to answer the question""" start="00:47:13.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know, what's the change rate in uh warnings or what have you?""" start="00:47:19.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So this kind of gives me a count""" start="00:47:24.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""of that""" start="00:47:26.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:47:28.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so from there, uh""" start="00:47:29.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Crude ci is the script. We're we're watching run in the other pane""" start="00:47:32.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, you can""" start="00:47:37.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""see it's uh""" start="00:47:39.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just starting to do its thing again""" start="00:47:42.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And uh""" start="00:47:48.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The make file I mentioned this is a top-down rewrite of everything else that i've done it has some bugs right now""" start="00:47:51.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the uh""" start="00:48:00.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:48:03.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Build distribution is the main script that I use for my personal builds""" start="00:48:04.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This is what is run by the crude ci script""" start="00:48:10.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, it has a fun tie-in to this""" start="00:48:13.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh web interface here""" start="00:48:16.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um where we can you don't need the port number when you go to it. That's just if i'm going to post""" start="00:48:19.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the""" start="00:48:25.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:48:28.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Blah blah blah blah this this script is really long and complicated and probably needs some diving into but you can see that""" start="00:48:31.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, one of the complexities I have to deal with is that i'm going to need a something in the format of an emacs dash""" start="00:48:38.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""version for strategic""" start="00:48:44.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um nsys reasons so""" start="00:48:47.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:48:50.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It takes care of kind of every complexity and stuff that I mentioned today in some respects""" start="00:48:51.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, as does the make file build release""" start="00:48:57.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""is""" start="00:49:00.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um another fairly useful""" start="00:49:01.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Incarnation of this this is just focused on the release process and this does work""" start="00:49:05.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""for example to create the""" start="00:49:12.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:49:14.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know like I like well I could""" start="00:49:15.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Like uh for like files as far as I can tell so what are currently posted for emacs 29.1""" start="00:49:17.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and the release candidate""" start="00:49:24.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:49:27.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So i'll probably use that next time and if it's still like for like i'll probably post the ones that came from this""" start="00:49:28.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:49:35.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh building a tree sitter I make some dlls there if you're looking for hints on how to get going or just simply""" start="00:49:37.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""A huge long list of git repositories that make grammars you can use""" start="00:49:45.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is here as well""" start="00:49:50.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, finally I mentioned I have a""" start="00:49:53.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I have a a website where I publish my own personal snapshots that I make""" start="00:49:58.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That folder full of install directories, but all of the usual""" start="00:50:04.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""GNU style binary distributables including the source code and the source code for the dependencies""" start="00:50:08.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:50:14.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:50:15.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:50:17.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So this program is another one of those""" start="00:50:20.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Complicated find commands and therefore potentially the most useful thing in here to take to you""" start="00:50:24.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and here i'm deleting binaries older than 17 years""" start="00:50:29.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh everything except""" start="00:50:34.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the uh""" start="00:50:36.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""No deps file and the sources of it. You'll find on my website""" start="00:50:37.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Currently those indefinitely i'll probably roll out""" start="00:50:41.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""120 days or something""" start="00:50:44.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um for those eventually""" start="00:50:47.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, uh, I can talk about this one even um the uh""" start="00:50:53.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The""" start="00:50:57.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here you'll see the two branches that i'm tracking the job of this script""" start="00:50:58.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Is this runs on the website? I call it with a like a remote rsync""" start="00:51:02.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh type""" start="00:51:07.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, or an ssh remote ssh command""" start="00:51:08.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:51:12.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And right after the rsync r syncing up any new emacs that I built""" start="00:51:13.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and""" start="00:51:19.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, it's""" start="00:51:20.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, its job is to update my fancy directory indexing so let's look at corwin's website""" start="00:51:23.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Here's my emacs 29 folder""" start="00:51:31.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We have about two more minutes corwin""" start="00:51:44.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, it'll take that entire two minutes to uh, load this directory because I am""" start="00:51:47.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Because I have not yet ever pruned any of these dang binaries""" start="00:51:52.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So every version of uh emacs 29 that i've ever made for myself is probably here""" start="00:51:56.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""nice""" start="00:52:02.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I strongly recommend that you bookmark this folder if you're using these for something and you always want the latest""" start="00:52:03.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so here this particular, uh latest 29 emacs 29 latest or simply replace the 29 with 30 to get those""" start="00:52:09.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:52:18.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""alas""" start="00:52:19.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""No, no such luck for tree setter""" start="00:52:20.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""but if we look at""" start="00:52:23.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that""" start="00:52:25.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Live this long without making a typo now look at me""" start="00:52:36.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay""" start="00:52:40.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh""" start="00:52:44.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here, um""" start="00:52:51.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know, we can see the iconification and so on even in the tree sitter folder""" start="00:52:53.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""this is all i'm talking about about the fanciness that's set up by that other script that""" start="00:52:57.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""i'm showing over here and run after each time I run the upload it just""" start="00:53:02.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Looks to see if anything's new and add some lines to the dot htaccess file""" start="00:53:07.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:53:15.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm, particularly proud of this one. I'm not going to lie. Um, linking out to each each""" start="00:53:17.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""project that we're using letting us know the commit version and then""" start="00:53:23.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For the dlls quick link out to the log and the signature file for this dll""" start="00:53:28.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:53:34.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I find that a lot just a lot""" start="00:53:37.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""More readable""" start="00:53:40.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""than uh""" start="00:53:42.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Listing them all out individually and i'd love to do something like that on the new site""" start="00:53:44.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So i'm""" start="00:53:51.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think we've got to be out of time by now. I've just got to say hey, thanks again for having me""" start="00:53:52.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh for those that uh watch the talk either live or after the conference""" start="00:53:56.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh appreciate everyone's support to get me to the point where i'm able to""" start="00:54:02.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh to do this this this cool volunteer task""" start="00:54:06.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, which is fun and easy to do and reach out to me if you're interested in helping with it""" start="00:54:10.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Well, awesome, thanks a lot for the awesome talk corbin and uh, of course as a fellow core core organizer""" start="00:54:19.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For our for all that you do, um in and around emacs conf and of course for uh, can we max as well? It's much appreciated""" start="00:54:26.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Big big words from coming from you my friend""" start="00:54:36.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, thanks for the kind words""" start="00:54:41.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Cheers my pleasure. All right, and with that I think we're gonna uh wrap up the dev track here and we'll be""" start="00:54:45.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With you again shortly in a few minutes on the gen stream the gen track for the closing remarks for today""" start="00:54:52.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um only for today because we're gonna be back tomorrow again as well""" start="00:54:58.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So don't go anywhere and uh, see you on the gen track in a bit""" start="00:55:02.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So""" start="00:55:05.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh my god, I did it we got done within the time you're my hero""" start="00:55:28.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, and thank you so much for just keeping me honest there and uh""" start="00:55:31.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Like helping me keep my eye on the time and such""" start="00:55:36.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You have to look at the recording and see whether you feel like doing it again""" start="00:55:50.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm sorry. I had my sound screwed up and i'm sorry if I talked over somebody I couldn't hear anything on mumble until this very""" start="00:55:56.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""moment""" start="00:56:01.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, uh because he used your webcam for it, um, like as a like a virtual webcam thingy""" start="00:56:03.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It was low res especially when things are changing as you were""" start="00:56:09.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""scrolling around""" start="00:56:13.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So we'll see what kind of recording we can recover from it and then you can decide whether you maybe want to clean it up""" start="00:56:15.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""with like""" start="00:56:20.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""screenshots and""" start="00:56:22.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I recorded on this end too. We shouldn't have that problem with my recording. Thank you. Thank you. Thank you""" start="00:56:24.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think we're still live on the dev stream""" start="00:56:29.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Someone could uh, thanks. Oh, yes""" start="00:56:34.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Because uh, i'll set it to rebroadcast""" start="00:56:38.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, I I love doing that for the closing remarks that's""" start="00:56:45.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""a fine tradition""" start="00:56:49.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or it's a tradition now because i'm pretty sure this means we've done it twice""" start="00:56:52.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I""" start="00:56:55.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Once heard that, you know, uh as a fan""" start="00:57:02.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Meaning like a fannish is a term of endearment for a science fiction fan to another we say we're we're fans or things""" start="00:57:05.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We do our fannish and a fannish tradition then is if you do it three times, it's tradition""" start="00:57:11.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But um, we're on a budget here. So""" start="00:57:18.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Nope""" start="00:57:22.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, I think we should um head over to mumble and talk on mumble""" start="00:57:25.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um and decide and see like which big blue button room we're going to be in for closing""" start="00:57:30.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so we're clear on bbb here""" start="00:57:35.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yep, I think so""" start="00:57:37.760" video="mainVideo-windows" id="subtitle"]]
+
+<a name="windows-qanda-transcript"></a>
+# Q&A transcript (unedited)
+
+[[!template text="""Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and""" start="00:00:00.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""welcome to, uh, uh, welcome to my talk. I'm a little distracted here. I had a friend who came""" start="00:00:06.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""over and just brought me a whole bunch of peanut butter cups, homemade peanut butter cups. Maybe""" start="00:00:14.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'll show those off, uh, later. What? Okay. Here, uh, put it right there.""" start="00:00:20.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""Okay. So I'm going to, uh, get over to my plan, uh, stuff I'm sharing here, hopefully.""" start="00:00:33.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, and, and we'll jump, jump right in because I'm going to need as much time as I can possibly""" start="00:00:42.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""have today. Thanks so much for, uh, joining me for Emacs conference and for, especially for,""" start="00:00:48.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, all of you who, who, who participated, you know, in the discussions, contributing talks and,""" start="00:00:56.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, you know, uh, you know, including running the, the, the, and it's just so much fun to be here.""" start="00:01:03.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I guess while I'm standing here and, and saying stuff that's, that I'm going to have to""" start="00:01:09.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""transcribe, cause I didn't, uh, prepare a recorded version. Uh, I had a lot of trouble""" start="00:01:16.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""trimming this down so I can solve that problem by just talking a lot at the beginning, uh,""" start="00:01:23.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""about other stuff. Um, so in addition to the thanks, I just want to say thanks also to the""" start="00:01:28.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""folks on the development list that helped me kind of come up to speed on this. I won't make a big""" start="00:01:37.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""list here, but, um, and, and, and for all that I've learned from my previous conferences, it's""" start="00:01:41.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""just, I can't stress enough what a great opportunity volunteering for, uh, free software related things""" start="00:01:48.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""are, uh, as a way to get involved. People will just totally teach you how to be helpful and I'm""" start="00:01:55.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""loving it. I can preview the stream, but it's not super easy right now. I got all my screens""" start="00:02:00.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""kind of dedicated to other stuff. So should I pause for a second before I get into the slides?""" start="00:02:18.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""Cause that's, they're, they'll be hard to see if I'm not full screen.""" start="00:02:23.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Yeah, that would be nice. Okay. Well, I'll keep ad libbing then cause I just have a million,""" start="00:02:29.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, things I can say. Um, uh, so, uh, let me just quickly talk, uh, things that aren't in here.""" start="00:02:34.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I'm going to mention the mysis2.org and the, that project, which provides a port""" start="00:02:42.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""of, uh, the GNU, uh, uh, glibc and a lot of GNU and, uh, uh, their free software. Um, so, uh,""" start="00:02:51.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""I don't...""" start="00:03:03.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right, I'm switching a room to, uh, a DVD room to Stefan.""" start="00:03:03.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So I'm going to take mumble out of my, uh, pardon me, folks.""" start="00:03:12.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""It's going to take mumble out of my speakers here.""" start="00:03:16.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""Okay. We'll take the speakers out of play entirely and I'll just switch to some headphones.""" start="00:03:22.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So...""" start="00:03:33.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""Perfect. What an amazing amount of time. All right. So thanks a lot. Uh, today I've got a jam""" start="00:03:36.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""packed talk. Um, I've, I've done my best to make, to make this not too overwhelming,""" start="00:03:42.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""but overall we're going to try to try to actually build, um, Emacs while we're talking today.""" start="00:03:48.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""And we might actually build several Emacs. Uh, so let's take a look at that real quick.""" start="00:03:55.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so over here we have a screen where I am just once a minute looking, uh,""" start="00:04:00.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, indirectly at whether there have been any pushes, uh, upstream to either the Emacs 29 or""" start="00:04:08.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""Emacs 30 branches. So I've arranged for us to sort of keep an eye on that, um, while we talk.""" start="00:04:15.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, you know, maybe that's, that's one thing that we'll do. And then additionally, we'll probably""" start="00:04:24.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""fire up a shell. This is the MySys2 environment that I talked about before,""" start="00:04:30.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""and we'll probably create some directories and things. But before we get into all that, let's,""" start="00:04:36.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""let's give some, some context. Uh, I've been doing my best to try to, uh, make sure all this""" start="00:04:42.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""information is on the Emacs wiki as well. So, uh, sorry, as I said, I got a little caught off guard.""" start="00:04:48.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I'm moving my foot pedals to the floor, back to the floor here. And I should be able to advance""" start="00:04:54.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""slides here. All right. So, um, I kind of provided some special definitions for things. I'm going to""" start="00:05:02.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""kind of level set with those. The, uh, um, when I say a binary release, I'm talking about some,""" start="00:05:11.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""some, uh, I'm talking about Emacs for Windows as, uh, just ready to run out of its folder or""" start="00:05:21.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""in whatever similar form. The, when I say a build, I'm talking about kind of a process of doing that.""" start="00:05:28.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, when Emacs.get, of course, that's the upstream hosted by GNU Savannah.""" start="00:05:36.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""The Emacs release is, is a tarball created from that. The sources for, um, Emacs are going to be""" start="00:05:41.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""one of those two things, um, very specifically. So I'm not going to talk about patches patching.""" start="00:05:51.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""There's some implications there. Perhaps we'll get into it. Uh, so a snapshot is when I build""" start="00:05:58.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""from anything other than a release source, uh, a tarball. Um, just if I, if I say that I'm talking""" start="00:06:06.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""specifically about the, uh, the XZ version of the file as, as a technical point. Um,""" start="00:06:14.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""so that may come up. All right. Nothing else I think up my sleeve. Um, the, uh, as, as a key""" start="00:06:23.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""data point, it's worth understanding that there's a file called configure AC. It's going to be""" start="00:06:32.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""processed, uh, as part of auto-conf. We, we initially access that when we run, um, auto-gen""" start="00:06:38.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""as you'll see in a little bit. Um, the, but before, but, uh, so the auto-gen script will""" start="00:06:46.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""generally consider this, uh, so in a release build, um, this has been thought about kind of for us as""" start="00:06:52.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""part of, um, making the tarball. Um, the configure.ac, um, yeah, I think I pretty much covered,""" start="00:07:00.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""covered this. So, um, those, those that kind of partially built status, that's a,""" start="00:07:10.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""might be another phrase that you hear me use. So this slide unpacks that a little more.""" start="00:07:16.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so it can be a little confusing to understand what exactly the, you know, what is it, you know,""" start="00:07:22.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""how stable is Emacs depending on what I have. So the, I got a kind of set of rules of thumb here,""" start="00:07:29.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""right? First I want the highest, uh, you know, dot, uh, dot release value that I can get,""" start="00:07:36.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""assuming that that's higher than one. If it's, if it were to only be one, let's say,""" start="00:07:43.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""if it were to only be one, let's say my choices were 29.1 and 30.1, I would take 30.1. Um,""" start="00:07:50.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""cause that's, that's weird. But, um, what you'll normally see is you might see a 28.2,""" start="00:07:59.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""you might see a 29.1. So here I think 28.2 is got the most, most, most stable, um,""" start="00:08:06.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""set, uh, the, uh, or set of release binaries. The 29.1 will, will have a little more features,""" start="00:08:16.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""but will tend to be more stable than, uh, any, uh, lower point releases for 29, uh, certainly""" start="00:08:26.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""than any release candidates for 29, which might even have new features, um, but are mostly going""" start="00:08:33.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""to just be packages. So they're going to become the most stable thing here. And especially if""" start="00:08:39.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""they, they, they have a, you know, if this, this is not, uh, if this were to be 29.2 release""" start="00:08:46.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""candidate one as well, looking forward to seeing, um, the, uh, 30.50. Um, and, and in between this,""" start="00:08:53.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""this pretest here, we're talking about kind of developer land. Um, so, um, the expectation is""" start="00:09:04.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""that, you know, what you're doing that applies to windows users, uh, just as much if you are""" start="00:09:11.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""building anything in the snapshot range, any of that is going to be in this 30.0.50. Currently""" start="00:09:16.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""that'll change when the, uh, when the 30, 30, uh, an Emacs 30 release tags, uh, or release branches""" start="00:09:22.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""come. Okay. So let's talk about the local. Um, there's not much to know about what I have going""" start="00:09:32.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""on, except that I have my, my paths mess messed with. So, um, if, if that, that were to come up,""" start="00:09:42.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""if you're wondering how, why does this, uh, and insist command work, that's probably the place""" start="00:09:51.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""where you'd notice it. Uh, I am using windows 10. I haven't tried windows 11, uh, as mentioned,""" start="00:09:57.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""mysis2 is critical to all this. There's one script in particular that will error out if you try to do""" start="00:10:03.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""anything other than use mysis's, mysis's shell. And in fact, mysis owns or provides three shells""" start="00:10:09.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""and of them, that script is designed to work with a specific one of them as, as we'll come to.""" start="00:10:16.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, I don't talk about installing the dependencies, but just as, as kind of some kind of help,""" start="00:10:22.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, you can search using this formula and install, uh, using this formula.""" start="00:10:29.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Good luck with those, you know, grep commands.""" start="00:10:38.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""And this is the tool for building the self-installing self-extracting installer or, uh,""" start="00:10:43.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""executable self-installer. Um, the script for that is provided along with the Emacs source.""" start="00:10:49.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, and I've provided a helpful link to the main page for the project download link on the left.""" start="00:10:56.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""It is not, um, it's kind of scare where the way that this link appears, but I have clicked it and""" start="00:11:03.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""it's working for me. Automation does, uh, we'll, we have some time we'll be looking at this at a""" start="00:11:09.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""minimum. I wanted to mention that what I do on my local, what you're seeing in the crawler, I hope,""" start="00:11:18.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, represents a, uh, a simple sleep loop. Uh, and we'll, we'll look into that if we have time.""" start="00:11:25.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I do have a little bit, I do use like a cron job and so on to clean up some hosting that,""" start="00:11:36.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""that I pay for, um, where I've got, where I, where I kind of self host some, uh, snapshots,""" start="00:11:42.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""more stuff than I feel comfortable uploading to, uh, to GNU. The, um,""" start="00:11:50.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, I never said, uh, my name is Corwin Brust. For the last couple of years, I've been""" start="00:12:01.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""the volunteer making, uh, um, making the snapshots, the quote unquote, official binaries,""" start="00:12:06.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, for windows of the, um, of, of Emacs for windows. So that's, that's all the different""" start="00:12:12.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""versions. Uh, help is always welcome with that. I'd be very happy to teach you in more depth.""" start="00:12:20.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""This video is, you know, kind of my drop dead file. Uh, I don't have specific plans. Uh, if""" start="00:12:25.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""somebody's like, Hey, get out of the way, this is the one thing I think I can do. Um, Hey,""" start="00:12:31.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""that's real relatable. Okay. Um, so I haven't tried, uh, the, I haven't tried a lot of fun""" start="00:12:36.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""things that I won't talk about. Um, the, uh, the rest of this talk is going to get into the""" start="00:12:44.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""nitty gritty. As I said, um, if we can't convince Emacs to start building over on that screen,""" start="00:12:50.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""we'll be opening it up here on the center stage. Um, uh, this begins and there's, there's, there's,""" start="00:12:56.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""there's great insight here too, on the wiki, uh, with picking an FTP source for any official""" start="00:13:05.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""release that is for a stable product, please visit, um, ftp.gnu.org. Otherwise you'll want""" start="00:13:11.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""to switch that FTP dot at the beginning to alpha dot and take a pretest, uh, or any snapshot or""" start="00:13:19.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""otherwise, then publish there the, uh, next, uh, you know, I'm gonna, you have some examples in""" start="00:13:27.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""here that assume that you're doing a release bill that you're doing $29 one, but, um, I am glancing""" start="00:13:36.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""out of the, the right side of my face at the chat on the opt-ins. Anybody in there wants to direct""" start="00:13:43.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""me at a particular, um, we can make some other, we can build something else. If you want to see""" start="00:13:51.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""a snapshot build more mentioned that, um, the examples that you're going to see here that I""" start="00:13:57.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""will, without other direction, cut and paste, um, are all, uh, based on the release bill. So,""" start="00:14:03.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, so, uh, we'll use the, uh, I mentioned that there are several shells provided by MySys2.""" start="00:14:14.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""The MinGW64 shell is the one that we mostly need. Um, I tested all of this as well with the MinGW32""" start="00:14:22.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""shell. Um, so that, that should work and, and see mix binaries that, that, that work for me.""" start="00:14:33.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, I, as I mentioned, I don't get into the details of installing all your prerequisites.""" start="00:14:44.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""I found that doing it in a headfirst manner wasn't, uh, wasn't difficult. And I also found""" start="00:14:50.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""that there's a number of tutorials. I didn't want to pick one to link here.""" start="00:14:56.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, there, uh, here, uh, okay. So our general formula for building Emacs, irrespective of""" start="00:15:01.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""Windows, looks like, does the configure script exist if not run autogen? From a Windows build""" start="00:15:10.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""standpoint, this is, if I'm not running a release, release build, call the autogen script.""" start="00:15:19.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""Right. And this would be in the directory where we want to pack this. I'll demonstrate""" start="00:15:27.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""within three minutes if, uh, if one, if nobody's pushed upstream to Emacs. Um, so, uh, the configure,""" start="00:15:32.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, and, uh, configure options are, uh, uh, the, the configure, you know, if the configure, sorry,""" start="00:15:42.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""the configure script exists, then, uh, it doesn't, doesn't exist. So the only reason,""" start="00:15:54.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""so in my process, I will always execute that step because I clean everything after every build,""" start="00:16:01.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, in all my contexts. Um, however, if you were, you know, had a, a checkout of emacs.get""" start="00:16:07.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""and you are building it at several releases, then maybe you've got a configure script and then you""" start="00:16:16.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""all want to know, um, the, you know, whether you have to bootstrap and the typical complexities,""" start="00:16:21.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""but otherwise you might be able to skip that in, in, in the abstract. Um,""" start="00:16:27.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""is that right? Or is it, is it the make, uh, so, and if they make file doesn't exist,""" start="00:16:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""make install. I know I'm looking at that in question whether it's correct. Sorry about that.""" start="00:16:41.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, in any case, uh, so auto-gen configure make install is our recipe. Auto-gen creates the""" start="00:16:46.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""configure script, configure creates the make file, the make file. Um, in the case of windows,""" start="00:16:55.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""I almost always want the install, uh, and to specify some location where the installed emacs""" start="00:17:01.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""will land. This is where all of the recipes for packaging emacs go. And if I were, uh, you know,""" start="00:17:08.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""using this as a movie to upgrade, I personally would do that by, by specifying an install path,""" start="00:17:19.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""quote unquote, on top of, uh, a main installation. I don't do that. I update shortcuts mainly based""" start="00:17:24.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""on what specifically I want to try, uh, in an effort to, to, to, to notice, uh, interesting""" start="00:17:31.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""patches and confirm they work on windows, which mostly they do. There's not a lot of code in my""" start="00:17:37.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""experience that is, uh, windows specific and very, very little around the build process.""" start="00:17:44.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. Huge rabbit hole zone. And I still have a minute before I have to, uh, kick off""" start="00:17:50.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""the first part of our demo. So let's, let's keep, keep diving in, um, the, those specific part""" start="00:17:57.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""windows specific parts beside the dot exe extension that we're going to find slammed""" start="00:18:07.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""onto all of our familiar, uh, executables. We're also going to have emacs client W,""" start="00:18:11.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""which is a wrapper that hides, um, how hard it is to get, uh, to, to, to get it,""" start="00:18:18.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""how bad the abstraction is between the window management layer and the GUI,""" start="00:18:27.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""and then all the different parts on windows. Essentially, it wants to create a shell window.""" start="00:18:32.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""If we just double click emacs dot exe. So emacs client W, uh, and run emacs,""" start="00:18:37.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""they're going to solve that problem. Um, uh, wrapping emacs and emacs client respectively.""" start="00:18:42.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, um, just, uh, all right. So let's, let's go ahead and do something. I'll, I'm going to""" start="00:18:51.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""take away the ticker here for a minute. And what you're not seeing is off stage. I am killing that""" start="00:19:00.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""so we don't get built in parallel. Um, so, um, so at this point I'm going to open up a shell and""" start="00:19:08.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm going to start talking just a little bit about my local build environment, which we haven't""" start="00:19:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""gotten into. In fact, just to make that even easier, let's, um, let's just take a look at it""" start="00:19:24.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""a little bit. Probably the easiest spot is here.""" start="00:19:32.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So here we have the familiar windows, my computer interface. I have the G drive and the""" start="00:19:47.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""H drive, four terabyte drives, um, dedicated to my, um, really overblown emacs build process.""" start="00:19:55.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, this just lets me be super lazy. There's no reason you need any massive amount of storage""" start="00:20:08.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""to do any of this. Um, inside here, and now I'll actually switch you back to the other screen.""" start="00:20:14.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, we'll, we'll find,""" start="00:20:23.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""oops, sorry about that. I didn't take the time to label that one. Um, so here you can see""" start="00:20:37.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""the primary output that I'm looking at through this automated process. I come along, I look at""" start="00:20:46.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""the bug reports, or maybe I'm just restarting my computer and choosing what emacs version at random.""" start="00:20:53.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""And then in that case, I look at this modified date and I say, um, my config that I, you know,""" start="00:20:59.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""that I'm playing with right now is all set for emacs 30, or I'm testing the both and I'm""" start="00:21:06.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""relaunching both of these. Right. So for me, that starts by diving into the install folder,""" start="00:21:11.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""going into the bin folder, which looks exactly the way my automation leaves it. I then come in""" start="00:21:16.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""to run the run emacs and I create a shortcut, um, to it. So I'm a keyboard person. So that's""" start="00:21:22.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""usually done like this. And then I just know that the context menu is going to come up in the right""" start="00:21:34.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""place. So I'll come up and, um, possibly change the, change the shortcut, right.""" start="00:21:40.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""If I don't mess with it. Um, so here's where I'll add my minus Q, if that's kind of where""" start="00:21:53.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""my world was at, or it kind of depends on what I'm doing with these, which varies week to week.""" start="00:22:01.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so restarting my emacs, uh, involves doing the same thing, going to my desktop""" start="00:22:07.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""and where you'll find a number of emac shortcuts and, um, updating the shortcut in the same manner""" start="00:22:12.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""joint actually, maybe we'll just, let's go back there and just show it.""" start="00:22:23.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""So if we look at, for example, my ERC,""" start="00:22:28.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""you can see, it's going to be pointing at one of these clones and then it's going to""" start="00:22:31.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""maybe tell me that I want, it wants to be full screen. Nope, not currently. And then it might,""" start="00:22:39.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, have some stuff in there about auto-loading at config and what""" start="00:22:44.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""connections I'm going to, some commands I've defined to start connections.""" start="00:22:48.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. And sorry, I got a phone call. I was checking. It wasn't in an org, the org,""" start="00:22:53.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""not the other organizers giving me the hook. So, um, all right. So that's, that's probably""" start="00:22:57.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""enough on the local system. Let's get back to the, to, to building emacs. And now it hopefully makes""" start="00:23:04.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""a certain amount of sense when I say we're going to wander over to the H drive and, and, and, and,""" start="00:23:11.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""hopefully makes a certain amount of sense when I say we're going to wander over to the H drive""" start="00:23:17.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""and recreate the structure that, um, both my process sort of assumes and the scripts you'll""" start="00:23:22.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""find in the admin NT, uh, build disk folder in source used to assume. Those scripts are in need""" start="00:23:31.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""of some love. And in just a little bit, I'll be mentioning a build, uh, a, uh, a, a, a particular""" start="00:23:41.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""bug that you might want to pay attention to if you're interested in making a self-installer.""" start="00:23:49.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So, um, we're going to create, uh, an emacs build directory.""" start="00:23:54.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""And we've got a handy git clone stage, git clone command stage for ourself. That would work. Um,""" start="00:24:04.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""do not currently see anybody lobbying for that. So instead we will run the rather faster""" start="00:24:19.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, W get command on Savannah, which is not pasted in here. Nice. Let's see if I can freehand it.""" start="00:24:27.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Not going to do it. Uh,""" start="00:24:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""okay.""" start="00:24:40.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""I beg your pardon. I'm grabbing a URL from the internet.""" start="00:24:52.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, okay. Yeah, I can, I can honestly, I can freehand it, whatever. Okay. Sorry. I, uh,""" start="00:25:00.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""I didn't have that bookmarked in all handy. Like I thought I did. Um, so we'll just say""" start="00:25:07.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""ftp.gnu.org slash, uh, what is it? Pub emacs, emacs-29.1, uh, .org.gnu.org.exe.""" start="00:25:13.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""I really think I'd have this command sitting around. It makes me want to scrap the whole""" start="00:25:30.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""demo. I'm not going to lie. Okay. How am I doing? Um, I think at least 15 minutes. Um,""" start="00:25:47.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""but in the command that you were freehanding, should the pub be GNU instead?""" start="00:25:54.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, thanks. I'm sorry.""" start="00:25:59.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""There we go. Thank you. All right. And then we'll,""" start="00:26:07.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""and I'm not sure I provided commands for this either,""" start="00:26:17.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""but it is trivially easy to do. And while that happens, we'll get to move on a few slides.""" start="00:26:20.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, the configure script I'm not talking about in a lot of detail, but I do want to mention that the""" start="00:26:31.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""GNU binaries are provided with native, uh, compilation enabled. That's the feature that""" start="00:26:38.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""uses gcc lib gcc get on windows. If available, that lib gcc get will be used. Um, but when,""" start="00:26:44.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""but, uh, if, if, uh, emacs has that feature, then it will take by compile, uh, native code and,""" start="00:26:55.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, asynchronously compile that as needed, uh, with the ahead of time feature. We're going to""" start="00:27:03.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""do as much of that ahead of time. And for folks that are consuming the windows binary, the""" start="00:27:10.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""thinking goes that they might not have my assist too. They might not have lib gcc jet. They might""" start="00:27:15.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""be happy that they're enabled in a, you know, a lot of time running emacs on their local environments""" start="00:27:21.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""at all, you know, in a, maybe a lockdown, uh, corporate context. So aside that, um, there's""" start="00:27:30.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""your first glimpse at the configure, um, program that we're going to run in a moment. In fact,""" start="00:27:39.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm going to go as far as putting it on the clipboard. Um, really just looking at this,""" start="00:27:45.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""the AOT flag is the one I'd call attention to, but it's worth understanding that windows doesn't""" start="00:27:52.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""provide a D bus capability. So windows native program isn't going to be able to depend on D""" start="00:27:57.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""bus. We're going to, we're going to explicitly ask that that be left out. I think that's actually""" start="00:28:02.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""optional and it's documentation. I think the configure program is smart enough to know that""" start="00:28:07.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""we don't want D bus on windows. Um, otherwise we tend to compile with things. Um, there there's""" start="00:28:12.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""missing documentation. We could say the, uh, all of the libraries are treated in the way I mentioned""" start="00:28:20.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""in that, um, JPEG support will be available as long as the JPEG is, is available in our environment""" start="00:28:26.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""and configure script certainly notices that, um, the GNU provided binaries are provided with""" start="00:28:34.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""minus O2. And that's also my default personally on windows. Um, however, and I'm going to skip""" start="00:28:40.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""this since I mentioned it, um, mentioned, uh, and, uh, um, so I guess I'll say, um, you can,""" start="00:28:47.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, say with the, it's worth knowing that you, if you're not one reason that, that you're building""" start="00:28:59.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""might be because you want to turn off native compilation for whatever reason. If you have""" start="00:29:06.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""low juices, you get, get, but don't want Emacs to use it. Uh, especially as that default looks like""" start="00:29:11.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""it could be changing with Emacs 30. Um, the, uh, the debug configuration, um, this is, this is the,""" start="00:29:16.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, kind of, uh, what, what I'm currently using this on commentary, uh, I've seen on the next""" start="00:29:26.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""development list. Let's check on our checkout and see if we can't get a build running. Um,""" start="00:29:33.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""this is a release build, so I won't be starting with, uh, so we'll start by hopping into its""" start="00:29:45.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""directory and we, um, we have, uh, but not. Okay. So that tells us we're going to run""" start="00:29:51.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""our configure program, but we don't need to run a config IC. So,""" start="00:30:14.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""so let's get that going and, uh,""" start="00:30:31.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""hopefully that's showing through just enough to be fun, not too much to be distracting.""" start="00:30:36.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, the, uh, the unoptimized, uh, uh, um, please report issues. If your Emacs is crashing,""" start="00:30:45.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, to the Emacs development list, not to me personally. Um, although you are of course,""" start="00:30:55.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""welcome to copy me. Um, if you especially I'm subscribed to that list, so I get all the mail.""" start="00:31:01.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I don't mind being copied. Uh, and, uh, as well, if you think it's, uh,""" start="00:31:06.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, related to packaging, that actually makes sense or windows related to even, and,""" start="00:31:15.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, it can be tested with an extra snapshot that should be uploaded to the canoe alpha side.""" start="00:31:20.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""I could look at that if I have time. There's with the configure script to make file for""" start="00:31:25.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Emacs is really, really complicated. If time permits, which I'm now confident it will not,""" start="00:31:32.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""we will look at, uh, make file that I tried writing that, uh, orchestrates this whole""" start="00:31:39.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""process that I'm talking about. Um, as, uh, let's see. So the build, uh, build process,""" start="00:31:44.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""I run my builds with, uh, explosively specifying the max CPU, uh, with minus J, but minus B one""" start="00:31:52.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""to get the full build, uh, full log into your recipes. That is probably the magic thing.""" start="00:32:03.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Matt, um, shouldn't to understand what, uh,""" start="00:32:09.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""or that, uh, that, that, uh, that I'm glad that I know, uh, as I'm trying to write my automations,""" start="00:32:16.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, the, um, so I call that out here, the binary, uh, releases. Um, okay. So in this section,""" start="00:32:26.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""we're going to start to get into what are all those files. And there's a bug report related to""" start="00:32:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""that, but I didn't get into here. So, um, that's kind of to the point about the less said about""" start="00:32:41.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""this, the better, uh, that's my explanation for stepping through some of these slides.""" start="00:32:46.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, of course we'll share them all, uh, uh, hopefully by the time that this video is published.""" start="00:32:50.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, I mentioned, um, I may have mentioned already freshly installed, but, uh, fully installed. Uh,""" start="00:32:58.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""the, the, the key distinction here is that, uh, Emacs is distributed in the binary form for Windows""" start="00:33:06.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""with some DLL files that actually come from the mysys2 project. There's an implication there to""" start="00:33:15.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""there's an implication there to GCC that I definitely want to get to it talking about.""" start="00:33:21.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so freshly installed means we haven't copied those binaries from the mysys2, uh,""" start="00:33:28.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""installation into the Emacs, uh, installation. Uh, and then, uh, when we re-archived that""" start="00:33:35.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""local Emacs installation, that's how we're going to create the full zip.""" start="00:33:45.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""So hopefully that actually is a pretty good summary of what all those files are. Um, but""" start="00:33:48.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""there are readme files, uh, on the FTP that do a pretty good job, um, if you can dig enough to find""" start="00:33:54.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""one and my apologies for, uh, tardiness getting a new version on that posted. Um, the Emacs, uh,""" start="00:34:00.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""so those dependencies, uh, are listed within Emacs itself. And as we'll just talk about in a moment,""" start="00:34:11.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""there's a way, uh, that we can use, we can access that when we collect them in order to meet, uh,""" start="00:34:17.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""the GCC requirement that is essentially to include, um, include the sources for the,""" start="00:34:24.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""for those binaries, the things that were compiled against. Um, the, uh, so, so here we go,""" start="00:34:31.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""we're, we're into the build process. Let's just take a look and see if configure it got done.""" start="00:34:41.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""It sure did. And now we can see a table of, of hopefully good, but good and bad news, um,""" start="00:34:45.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""and potential, um, where we're learning that we're using the pdumper strategy and any number of other""" start="00:34:52.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""things that we might be messing with as our motivation for, for building ourselves on Emacs.""" start="00:34:57.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, again, this table represents, uh, what you'll, what, what, what it looks like for me when I'm""" start="00:35:04.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""building for the GNU distributed binaries. All right. So, um, kind of moving, moving as quickly""" start="00:35:12.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""as I can here. I'm at 40 after, I believe that's the five minute mark. So, um, having just succeeded""" start="00:35:22.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""in, in configuring Emacs, I don't think we're going to build it. Uh, uh, I don't think we're""" start="00:35:31.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""going to actually get to running make install. Um, but I have it sitting here on my keyboard""" start="00:35:37.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""or clipboard, assuming that we will, right? No. Oh, wow. I think I've managed to confuse this.""" start="00:35:43.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So for me, that looks simply like, uh, make, uh, V equals one install, uh,""" start="00:35:54.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""prefix equals, uh,""" start="00:36:08.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""and we can at least get it kicked off.""" start="00:36:18.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""And that can, that command is just, uh, just is no, no different than I showed on the slide where""" start="00:36:20.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""I, where I gave it, uh, wasn't planning to stop and explain it. I was just planning to paste it.""" start="00:36:27.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""So, so, so again, recapping the rest of the process here and maybe actually making it,""" start="00:36:33.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""if you can believe it or not, through the rest of these slides, um, we, to, to, to create the""" start="00:36:38.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""full set of binaries, we're going to need a no dependent, no depths archive. That's without the""" start="00:36:44.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""mysys2, uh, deal provided DLLs, just the things that we compile as part of making Emacs. Um,""" start="00:36:49.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""the, uh, the build depths zip script is provided with the source distribution is your tool for,""" start="00:37:00.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, meeting the GPL requirements, right? Source as mentioned before,""" start="00:37:07.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, there is a second bug that I did, uh, include some more information on in my notes already.""" start="00:37:12.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, that, uh, that gets into the details of this other feature I alluded to.""" start="00:37:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I'll just skip into that. Um, we, we can, with, with, uh, with a, an appropriate version""" start="00:37:26.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""of that, which you may need a patch, uh, to, to have, you can list out the dependencies""" start="00:37:35.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""and, and that version as well. Can consider the dependencies of the Emacs binary versus""" start="00:37:42.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""the hard-coded list you might find, depending on when you look at this file in the source tree.""" start="00:37:47.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""The diff, um, so I also have a hack here that, uh, works around the absolute requirement to""" start="00:37:53.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""run this with the mysys2 and not the minGW64 script. Um, once we've made that zip file that""" start="00:38:01.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""contain that's, that's our installed Emacs without the DLLs provided by mysys2, we'll then unpack""" start="00:38:18.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""the dependencies that were created by that Python script we just talked about from the Emacs source""" start="00:38:25.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""tree. At that point, once those are unpacked, we can now make what's called the full installer,""" start="00:38:30.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""or sometimes I might call it the unqualified installer, because it's just going to be called""" start="00:38:38.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""Emacs29.1.zip. Um, and that, uh, that file, which, which creates the, the, the, the, the,""" start="00:38:42.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""which creates the archive, uh, that, uh, that, that, that file is exactly the same,""" start="00:38:54.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""plus the, uh, the dependencies that we unzipped in the bin folder of the installed Emacs.""" start="00:39:02.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""The, uh, executable self-installer, which I would love to have more time to talk about.""" start="00:39:09.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""I gave a few pointers here on the hard part of running it. Most importantly,""" start="00:39:14.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""if I've installed in any kind of funny looking name, I end up renaming it to like Emacs-29.1""" start="00:39:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""or Emacs-29. or 30.0.50 or whatever. And I just renamed that installed Emacs folder.""" start="00:39:26.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""And then I go to the root of wherever I created that, the parent directory above it.""" start="00:39:35.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""And that's where I make my copy of the Emacs NSI, um, the, the NSIS script.""" start="00:39:40.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, uh, that's also where I, and then, um, then from that parent directory, I execute,""" start="00:39:47.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, making sys, uh, here. I, as mentioned, um, I, I can get away with this because I have it""" start="00:39:55.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""on my path and it's my recollection. I think I tested this and couldn't reproduce the problem.""" start="00:40:02.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I didn't document it here, but I've had some problems with running this""" start="00:40:07.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""when, uh, when NSIS wasn't on my path. The, uh, the, the, the final step here""" start="00:40:11.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""and the last, the GPL requirement is to include all the sources, except when I'm doing a release""" start="00:40:20.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""build, I always do this. Um, and that's the new practice when making Snapchat binaries is to go""" start="00:40:27.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""ahead and include the sources, even though we might have the specific revision number, um,""" start="00:40:34.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""our thinking is we want absolute clarity, um, that, that somebody, uh, can say, okay,""" start="00:40:39.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""this binary did this thing, send me the source for it. I'm going to go take that into my own""" start="00:40:46.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""open source, or yeah, maybe they would, the jerks, um, into my own open source project.""" start="00:40:51.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, um, you know, off they go, uh, and that needs to be possible.""" start="00:40:56.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so, um, beyond that, the rest of this is, is really detailed that you find covered in the GNU""" start="00:41:04.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""maintainers manual. Um, this is the, the current set of Windows binaries that, um, it's busily""" start="00:41:12.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""working on creating a like for like a mirror to behind the scenes here is called a 29.1 underscore""" start="00:41:19.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""two. Um, and I have a lot of automation, uh, available on this site. So at this point,""" start="00:41:29.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm just, I think I'm only a minute, 40 seconds over. I'm gonna invite my, uh, co-organizers""" start="00:41:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""back onto the call or any volunteers that want to jump in and anybody, if there's people on the""" start="00:41:45.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""BBB, I'd be happy to take questions. If there aren't, um, I have a screen full of, uh, the""" start="00:41:49.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""automation stuff ready to go as a kind of a second ring in my circus today. So if you're still with""" start="00:41:57.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""me, thanks a lot for joining me. And I really enjoyed this talk. Uh, if this is where we're""" start="00:42:04.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""going to close it out, I don't know where we're at for schedule today. Thanks a lot for a great""" start="00:42:08.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""talk, Corwin. Um, in terms of like schedule, yeah, you went over a little bit for the official,""" start="00:42:14.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""like, um, schedule or time of your talk, but I think, uh, we actually have maybe like six or""" start="00:42:20.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""seven more minutes, um, here on stream for, um, questions and such, if folks have questions,""" start="00:42:26.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""or if you want to like quickly maybe show one or two more things. Um, but I think the hard stuff""" start="00:42:32.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""is about like maybe 10 minutes ish for now. And then we'll have to rush over to, um, uh, for the""" start="00:42:38.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""closing remarks. So, well, that sounds awesome. Okay. So I'm looking at the, the dev chat. Uh,""" start="00:42:43.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""I see a comment on cross-compiling the emacs, but I'm sorry, I'm looking at IRC primarily, but,""" start="00:42:55.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, feel free to jump in if you're on, uh, BBB with me, or, uh, uh, if, if you put something on""" start="00:43:01.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""the pad, I'm sure, uh, we'll see it between the two of us, uh, over here. Okay. So cross-compiling""" start="00:43:08.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""emacs for Serenity. I haven't tried really any cross-compiling. I think that would be very""" start="00:43:16.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""interesting. I would most likely focus on doing exactly what I do on a GNU system, completely""" start="00:43:20.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""ditching. Um, so I guess with my, my remaining time, rather than walking through code, um, for""" start="00:43:28.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""my automation, which can be another talk, if in fact there's an interest in that, um, I want to,""" start="00:43:35.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""I guess, say a couple of words about the non-free operating system that I'm using here. I did my""" start="00:43:42.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""best to use no non-free software other than the, uh, the operating system that is the context for""" start="00:43:48.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""this talk in preparing this talk for you. I personally have a lot more, uh, time and energy,""" start="00:43:58.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""I have to say, invested in proprietary tools for doing a lot of the things that, that go into this.""" start="00:44:07.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I really respect the work of people that pull that off. Um, I'm sorry I didn't get my pre-recorded""" start="00:44:15.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""stuff, uh, kind of in order for everybody, but I just want to stress, like, uh, it is all absolutely""" start="00:44:22.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""possible and just hats off to everybody that, that used, uh, entirely free software to get their,""" start="00:44:30.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""get their recordings done in time. Um, and what you did see, unless it was provided by the operating""" start="00:44:36.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""system in my presentation today, was all, uh, free software with the debatable exception of""" start="00:44:43.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""NSYS, which styles itself as open source, maybe for, uh, marketing reasons.""" start="00:44:49.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""Okay, uh, in any case, uh, certainly we can get all that source.""" start="00:44:56.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Thanks for the note, Corin. It's good to know that, uh, building or, uh, yeah, doing the build of Emacs""" start="00:45:08.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""for Windows on Windows can be done, uh, using only free software. Yeah, absolutely.""" start="00:45:14.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Probably the right closing note, right? Um, I just, uh, thanks again to the organizers for""" start="00:45:23.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""bearing with me. And like, every time I was like, you guys, I'm terrible at this. They're just like,""" start="00:45:29.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""no, you're doing fine. Keep going. You did a great job live last time. You can do it live,""" start="00:45:33.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, and, and saying all the right things to just, uh, encourage me to come back,""" start="00:45:38.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, this year and every year.""" start="00:45:43.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""Well, as I said before, we were very lucky to have you and the rest of the team, of course,""" start="00:45:49.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""as well. And, um, goes without saying, but all the speakers and the audience, the participants as""" start="00:45:53.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""well. So, um, so, uh, are we, we're still live over here that, you know, you know, me, I'm the""" start="00:45:59.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Mike Hogg that I am. I can't resist, um, throwing, throwing up another screen here. And, uh, in fact,""" start="00:46:14.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""let's go ahead and go back to our, to our crawler, right? And I'll bring back our build""" start="00:46:22.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""if it finishes and maybe we'll show making the installer as well. Um, uh, but I have the CPU""" start="00:46:32.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""account turned down a little bit here. Uh, note, I didn't specify minus J here. Um, so, uh, over""" start="00:46:40.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""here is my automation. Uh, in case you do want to take a look, I can at least provide the""" start="00:46:49.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""orientation of what you're looking at. Scrape log is probably my first thing I want to show off.""" start="00:46:54.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, it's not beautiful, but this works, uh, pretty well for me to get a sense of something might""" start="00:46:59.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""have changed in terms of how many warnings or errors are happening when I build Emacs. So I""" start="00:47:08.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""have this whole automation going on and I frequently want to answer the question,""" start="00:47:14.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, what's the change rate in, uh, warnings or what have you. So this kind of gives me a count""" start="00:47:19.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""of that. Um, so from there, uh, accrued CI is the script we're watching run in the other pane.""" start="00:47:26.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, we can see it's, uh, just starting to do its thing again.""" start="00:47:37.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, uh, the make file I mentioned, this is a top-down rewrite of everything else that I've done.""" start="00:47:48.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""It has some bugs right now. Um, the, uh, the build distribution is the main script that I use for my""" start="00:47:57.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""personal builds. This is what is run by the crude CI script. Uh, it has a fun tie-in to this, uh,""" start="00:48:08.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""web interface here, um, where we can, you don't need the port number when you go to it. That's""" start="00:48:17.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""just if I'm going to post. Um, the, uh, blah, blah, blah, blah, blah. This, this script is""" start="00:48:23.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""really long and complicated and probably needs some diving into, but you can see that, um, one""" start="00:48:33.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""of the complexities I have to deal with is that I'm going to need something in the format of an""" start="00:48:39.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""emacs-version for strategic, um, nsys reasons. So, uh, it takes care of kind of every complexity""" start="00:48:43.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""that I mentioned today in some respects, um, as does the make file. Build release is, um, another""" start="00:48:54.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""fairly useful incarnation of this. This is just focused on the release process, and this does""" start="00:49:03.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""work, uh, for example, to create the, the, the, you know, like, like, well, I could like, uh,""" start="00:49:11.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""for like files as far as I can tell. So what are currently posted for emacs 29.1 and the release""" start="00:49:18.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""candidate. Um, so I'll probably use that next time. And if it's still like, for like, I'll""" start="00:49:25.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""probably post the ones that came from this. Um, uh, building, uh, TreeSitter, I make some DLLs""" start="00:49:32.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""there. If you're looking for hints on how to get going or just simply, uh, a huge long list""" start="00:49:40.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""of Git repositories that make grammars, you can use that is here as well. Um, finally, I mentioned""" start="00:49:47.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""I have a, um, I have a website where I publish my own personal snapshots that I make, uh, that""" start="00:49:55.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""folder full of install directories, but all of the usual GNU style binary distributables, including""" start="00:50:04.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""the source code and the source code for the dependencies. Um, the, uh, so this program is""" start="00:50:11.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""another one of those complicated find commands and therefore potentially the most useful thing""" start="00:50:22.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""in here to take to you. Um, and here I'm deleting, uh, binaries older than 17 years. Uh, everything""" start="00:50:27.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""except the, uh, node apps file and the sources of it you'll find on my website. Currently those""" start="00:50:34.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""indefinitely, I'll probably roll out 120 days or something, um, for those eventually.""" start="00:50:42.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, uh, I can talk about this one even. Um, the, uh, so here you'll see the two branches that I'm""" start="00:50:53.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""tracking. The job of this script is, uh, this runs on the website. I call it with a, like a remote""" start="00:51:00.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""rsync, uh, type, uh, or an SSA remote, uh, SSH command. Um, and right after the rsync,""" start="00:51:06.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""rsyncing up any new Emacs that I built. And, uh, it's, uh, it's job is to update my fancy""" start="00:51:15.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""directory indexing. So let's look at Corwin's website. Here's my Emacs 29 folder.""" start="00:51:26.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""We have about two more minutes, Corwin. Yeah. It'll take that entire two minutes to, uh,""" start="00:51:37.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""load this directory because I am, because I have not yet ever pruned any of these dang binaries.""" start="00:51:50.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""So every version of, uh, Emacs 29 that I've ever made for myself is probably here. Nice.""" start="00:51:56.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, I strongly recommend that you bookmark this folder if you're using these for something and""" start="00:52:03.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""you always want the latest. Um, so here, this particular, uh, latest 29, Emacs 29 latest,""" start="00:52:08.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""or simply replace the 29 with 30 to get those. Uh, alas, no, no such luck for TreeSetter.""" start="00:52:14.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""But if we look at, uh, that,""" start="00:52:23.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""live this long without making a typo. Now look at me.""" start="00:52:36.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh-oh. Oh.""" start="00:52:40.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""So here, um, you know, we can see the icon application and so on, even in the TreeSetter""" start="00:52:51.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""folder. This is all I'm talking about, about the fanciness that's set up by that other script that""" start="00:52:56.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm showing over here and run after each time I run the upload. It just""" start="00:53:02.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""looks to see if anything's new and add some lines to the .htaccess file.""" start="00:53:07.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I'm particularly proud of this one. I'm not going to lie. Um, linking out to each,""" start="00:53:15.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""each, uh, project that we're using, letting us know the commit version,""" start="00:53:22.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""and then, uh, for the DLLs, quick link out to the log and the signature file for this DLL. Um,""" start="00:53:26.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""I find that a lot, just a lot more readable than, uh, listing them all out individually. And I'd""" start="00:53:36.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""love to do something like that on the GNU site. So I'm, I think we've got to be out of time by""" start="00:53:46.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""now. I've just got to say, hey, thanks again for having me, uh, for those that, uh, watch the talk""" start="00:53:53.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""either live or after the conference. Uh, appreciate everyone's support to get me to""" start="00:53:59.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""the point where I will be able to, uh, to do this, this, this cool volunteer task,""" start="00:54:04.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, which is fun and easy to do and reach out to me if you're interested in helping with it.""" start="00:54:10.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""Well, awesome. Thanks a lot for the awesome talk, Corbyn. And, uh, of course, as a fellow""" start="00:54:18.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""core, uh, core organizer, uh, for all, for all that you do, um, in and around Emacs Conf""" start="00:54:24.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""and of course for, uh, GNU Emacs as well, it's much appreciated.""" start="00:54:29.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""Big, big words from coming from you, my friend. Um, thanks for the kind words.""" start="00:54:36.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""Cheers. My pleasure. All right. And with that, I think we're gonna, uh, wrap up the dev, uh,""" start="00:54:45.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""track here and, uh, we'll be with you again shortly in a few minutes on the gen stream,""" start="00:54:49.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""the gen track for the closing remarks for today, um, only for today, because we're going to be""" start="00:54:55.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""back tomorrow again as well. So don't go anywhere and, uh, see you on the gen track in a bit.""" start="00:55:00.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh my God, I did it. We got done within the time. You're my hero. Um, and thank you so""" start="00:55:25.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""much for just keeping me honest there and, uh, like helping me keep my eye on the time and such.""" start="00:55:32.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""You have to look at the recording and see whether you feel like doing it again.""" start="00:55:41.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm sorry. I had my sound screwed up and I'm sorry if I talked over somebody,""" start="00:55:56.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""I couldn't hear anything on mumble until this very moment.""" start="00:55:59.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, uh, because he's your webcam for it. Um, like as a, like a virtual webcam thingy,""" start="00:56:03.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""it was low res, especially when things are changing as you're scrolling around. So we'll""" start="00:56:09.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""see what kind of recording we can recover from it. And then you can decide whether you maybe""" start="00:56:15.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""want to clean it up with like screenshots. I recorded on this end too. We shouldn't have""" start="00:56:19.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""that problem with my recording. Thank you. Thank you. Thank you. I think we're still live on the""" start="00:56:26.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""dev stream. Someone could, uh, take that off. Oh, yes. Because, uh, I'll, I'll set it to rebroadcast.""" start="00:56:30.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Yeah. I love doing that for the closing remarks. That's a fine tradition""" start="00:56:45.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""or it's a tradition now. Cause I'm pretty sure this means we've done it twice.""" start="00:56:52.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""I once heard that, you know, uh, as a fan-ish meaning like a fan-ish is a term of endearment""" start="00:57:01.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""for a science fiction fan to another. We say we're, we're fans or things we do are fan-ish and""" start="00:57:07.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""a fan-ish tradition then is if you do it three times, it's tradition, but we're on a budget here.""" start="00:57:12.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""So, all right. I think we should, um, head over to mumble and talk on mumble. Um, and just decide""" start="00:57:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""and see like which big blue button room we're going to be in for closing. Okay. So we're clear""" start="00:57:31.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""on BBB here? Yep. I think so.""" start="00:57:36.240" video="qanda-windows" id="subtitle"]]
+
+Questions or comments? Please e-mail [corwin@bru.st](mailto:corwin@bru.st?subject=Comment%20for%20EmacsConf%202023%20windows%3A%20Windows%20into%20Freedom)
+
+
+<!-- End of emacsconf-publish-after-page -->