diff options
Diffstat (limited to '')
-rw-r--r-- | 2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt | 2345 |
1 files changed, 2345 insertions, 0 deletions
diff --git a/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt b/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt new file mode 100644 index 00000000..d95d4ea7 --- /dev/null +++ b/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt @@ -0,0 +1,2345 @@ +WEBVTT + +00:00.000 --> 00:08.480 +Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and welcome to uh + +00:11.440 --> 00:13.760 +Welcome to my talk i'm a little distracted here + +00:13.760 --> 00:20.080 +I had a friend who came over and just brought me a whole bunch of peanut butter cups homemade peanut butter cups + +00:20.080 --> 00:22.080 +Maybe i'll show those off. Uh + +00:22.320 --> 00:23.360 +later + +00:23.360 --> 00:26.480 +Okay, what okay here, uh, put it right there + +00:30.960 --> 00:32.960 +All good stuff + +00:33.920 --> 00:40.800 +Okay, so i'm going to uh get over to my planned uh stuff i'm sharing here + +00:41.340 --> 00:42.880 +hopefully + +00:42.880 --> 00:49.360 +Uh, and and we'll jump jump right in because i'm gonna need as much time as I can possibly have today + +00:49.440 --> 00:53.680 +thanks so much for uh joining me for emacs conference and for + +00:54.620 --> 00:56.480 +especially for + +00:56.480 --> 00:57.600 +um + +00:57.600 --> 01:02.960 +all of you who who participated, you know in the discussions contributing talks and + +01:03.520 --> 01:09.920 +um, you know, uh, you know, including running the copy the the and it's just so much fun to be here, um + +01:11.040 --> 01:15.840 +I guess while i'm standing here and and saying stuff that's that i'm gonna have to + +01:16.620 --> 01:19.680 +transcribe because I didn't uh prepare a + +01:20.560 --> 01:22.080 +recorded version + +01:22.080 --> 01:27.920 +Uh, I had a lot of trouble trimming this down so I can solve that problem by just talking a lot at the beginning + +01:28.960 --> 01:30.960 +about other stuff, um + +01:33.200 --> 01:36.880 +So in addition to the thanks I just want to say thanks also to the + +01:37.120 --> 01:43.040 +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 + +01:43.760 --> 01:45.120 +um + +01:45.120 --> 01:48.560 +And and for all that i've learned from my previous conferences + +01:48.640 --> 01:52.880 +It's just I can't stress enough what a great opportunity volunteering for + +01:53.520 --> 01:55.520 +uh free software related things are + +01:55.920 --> 02:00.480 +Uh as a way to get involved people will just totally teach you how to be helpful and i'm loving it + +02:00.720 --> 02:02.720 +Sasha can you please maximize? + +02:02.880 --> 02:04.880 +Hold on + +02:14.160 --> 02:17.680 +I can preview the stream, but it's not super easy right now + +02:17.760 --> 02:20.240 +I got all my screens kind of dedicated to other stuff + +02:20.400 --> 02:24.400 +so should I pause for a second before I get into the slides because there's + +02:24.960 --> 02:27.760 +There they'll be hard to see if i'm not full screen + +02:28.640 --> 02:36.160 +Yeah, yeah, okay, well i'll keep ad-libbing then because I just have a million, uh things I can say, um + +02:37.520 --> 02:43.280 +Uh, so, uh, let me just quickly talk, uh things that aren't in here. Um, + +02:43.840 --> 02:50.320 +I'm going to mention the mysis2.org and the that project which provides a port + +02:51.360 --> 02:53.360 +of the GNU + +02:53.440 --> 02:57.680 +Of uh glibc and a lot of GNU + +02:58.640 --> 03:00.640 +and other free software + +03:01.280 --> 03:03.280 +um, so + +03:03.280 --> 03:07.760 +Uh, I don't pushing a room to uh a dvd room to stefan + +03:12.080 --> 03:18.660 +All right, so i'm gonna take mumble out of my uh, pardon me folks just gonna take mumble out of my speakers here + +03:19.620 --> 03:21.620 +Okay + +03:22.820 --> 03:30.040 +Okay, in fact we'll take the speakers out of play entirely and i'll just switch to some headphones + +03:33.620 --> 03:35.140 +All right, so + +03:35.140 --> 03:36.820 +Gorman you're good to go + +03:36.820 --> 03:43.140 +Perfect. What an amazing amount of time. All right. So thanks a lot. Uh today i've got a jam-packed talk + +03:43.860 --> 03:46.260 +Um, i've i've done my best to make + +03:46.820 --> 03:52.260 +To make this not too overwhelming, but overall we're going to try to try to actually build + +03:52.900 --> 03:57.700 +Um emacs while we're talking today and we might actually build several emacs + +03:58.100 --> 04:00.100 +Uh, so let's take a look at that real quick + +04:00.420 --> 04:04.900 +Um, so over here we have a screen where I am + +04:05.700 --> 04:08.260 +Just once a minute looking. Uh + +04:09.120 --> 04:16.840 +Indirectly at whether there have been any pushes, uh upstream to either the emacs 29 or emacs 30 branches + +04:17.540 --> 04:19.280 +so i've + +04:19.280 --> 04:22.260 +Arranged for us to sort of keep an eye on that + +04:22.820 --> 04:30.020 +Um while we talk and you know, maybe that's that's one thing that we'll do and then additionally we'll probably + +04:30.660 --> 04:36.180 +Fire up a shell. This is the mysis 2 environment that I talked about before + +04:36.660 --> 04:39.460 +And we'll probably create some directories and things + +04:40.020 --> 04:46.420 +But before we get into all that let's let's give some some context. I've been doing my best to try to + +04:47.060 --> 04:50.420 +Uh, make sure all this information is on the emacs wiki as well + +04:51.060 --> 04:55.860 +So, uh, sorry, as I said, I got a little caught off guard. So i'm moving my foot pedals + +04:56.820 --> 04:58.820 +To the float back to the floor here + +05:00.340 --> 05:04.820 +And I should be able to advance slides here. All right, so + +05:05.700 --> 05:07.700 +um + +05:07.860 --> 05:13.540 +I kind of provided some special definitions for things i'm going to kind of level set with those + +05:14.740 --> 05:16.740 +the uh + +05:17.460 --> 05:24.580 +Um when I say a binary release i'm talking about some some i'm talking about emacs for windows as + +05:25.060 --> 05:29.780 +Just ready to run out of its folder or in whatever similar form + +05:30.340 --> 05:35.620 +The when I say a build i'm talking about kind of a process of doing that + +05:36.420 --> 05:40.760 +Um when emacs.get of course, that's the upstream hosted by gnu savannah + +05:41.620 --> 05:47.140 +The emacs release is a tarball created from that the sources + +05:48.580 --> 05:53.940 +For um emacs are going to be one of those two things + +05:54.740 --> 06:01.460 +Um very specifically so i'm not going to talk about patches patching there's some implications there perhaps we'll get into it + +06:02.660 --> 06:03.620 +uh + +06:03.620 --> 06:08.820 +So a snapshot is when I build from anything other than a release source + +06:09.860 --> 06:11.860 +uh a tarball + +06:11.860 --> 06:15.320 +um, just if I if I say that i'm talking specifically + +06:16.340 --> 06:18.340 +about the uh, the xz + +06:18.980 --> 06:22.100 +Version of the file as as a technical point + +06:22.900 --> 06:29.060 +Um, so that may come up. All right, nothing else I think up my sleeve. Um + +06:29.780 --> 06:30.820 +the + +06:30.820 --> 06:36.900 +Uh as as a key data point it's worth understanding that there's a file called configure ac + +06:37.540 --> 06:43.700 +It's going to be processed, uh as part of autoconf. We we initially access that when we run + +06:44.500 --> 06:47.540 +Um autogen as you'll see in a little bit + +06:48.180 --> 06:49.380 +um + +06:49.380 --> 06:56.340 +The but before but um, so the autogen script will generally consider this. Uh, so in a release build + +06:57.220 --> 07:02.260 +Um, this has been thought about kind of for us as part of um making the tarball + +07:03.300 --> 07:05.300 +um the configure dot a + +07:05.860 --> 07:07.300 +ac + +07:07.300 --> 07:08.580 +um + +07:08.580 --> 07:11.540 +Yeah, I think I pretty much covered covered this so + +07:12.420 --> 07:19.380 +Um those those that kind of partially built status that's a might be another phrase that you hear me use + +07:19.540 --> 07:20.900 +so this + +07:20.900 --> 07:22.900 +Slide unpacks that a little more + +07:24.900 --> 07:26.420 +Um + +07:26.420 --> 07:29.720 +So it can be a little confusing to understand what exactly? + +07:30.580 --> 07:36.100 +the you know, what is it, you know, how stable is emacs depending on what I have so that I got a + +07:36.980 --> 07:43.140 +It's kind of a set of rules of thumb here right first I want the highest, uh, you know dot + +07:43.780 --> 07:49.220 +Uh dot release value that I can get assuming that that's higher than one + +07:49.620 --> 07:55.800 +If it's if it were to only be one, let's say my choices were 29.1 and 30.1 + +07:56.340 --> 07:58.340 +I would take 30.1 + +07:58.340 --> 07:59.220 +um + +07:59.220 --> 08:01.700 +because that's that's weird, but um + +08:02.260 --> 08:05.000 +What you'll normally see is you might see a 28.2 + +08:06.100 --> 08:08.100 +You might see a 29.1 + +08:08.820 --> 08:14.660 +So here I think 28.2 has got the most most most stable + +08:15.540 --> 08:16.580 +um + +08:16.580 --> 08:18.580 +set, uh the + +08:18.740 --> 08:20.740 +uh, or set of release binaries + +08:21.540 --> 08:23.040 +the + +08:23.040 --> 08:27.620 +29.1 will will have a little more features, but will tend to be more stable + +08:28.340 --> 08:29.380 +than + +08:29.380 --> 08:32.200 +Any lower point releases for 29 + +08:32.920 --> 08:37.720 +Uh, certainly than any release candidates for 29, which might even have new features + +08:38.200 --> 08:42.760 +Um, but are mostly going to just be patches so they're going to become the most stable + +08:43.320 --> 08:44.840 +thing here + +08:44.840 --> 08:47.160 +and especially if they they have a + +08:48.120 --> 08:50.120 +You know if this this is not + +08:50.200 --> 08:56.040 +Uh, if this were to be 29.2 release candidate one as well looking forward to seeing + +08:56.680 --> 08:57.960 +um + +08:57.960 --> 08:59.960 +the + +09:00.180 --> 09:02.180 +30.0.50 + +09:02.280 --> 09:03.240 +um + +09:03.240 --> 09:09.800 +And and in between this this pre-test here, we're talking about kind of developer land. Um, so + +09:10.680 --> 09:14.360 +Um, the expectation is that you know what you're doing that applies to windows users + +09:14.920 --> 09:20.680 +Uh just as much if you are building anything in the snapshot range any of that is going to be in this + +09:21.220 --> 09:24.040 +30.0.50 currently that'll change when + +09:24.680 --> 09:25.880 +the + +09:25.880 --> 09:27.080 +when the + +09:27.080 --> 09:32.520 +30 30 an emacs 30 release tags, uh, or release branches come + +09:34.120 --> 09:36.120 +Okay, so + +09:37.480 --> 09:43.160 +Let's talk about the local um, there's not much to know about what I have going on + +09:43.640 --> 09:47.560 +except that I have my my paths mess messed with so + +09:48.840 --> 09:52.520 +Um, if if that that were to come up if you're wondering how why does this? + +09:52.840 --> 09:58.040 +Uh in in sys command work that's that's probably the way place where you notice it + +09:58.600 --> 10:01.640 +Uh, I am using windows 10. I haven't tried windows 11 + +10:02.120 --> 10:06.040 +Uh as mentioned my sys2 is critical to all this + +10:06.200 --> 10:11.240 +There's one script in particular that will error out if you try to do anything other than use my sys's + +10:11.720 --> 10:14.520 +My sys's shell and in fact my sys owns + +10:14.920 --> 10:21.800 +Or provides three shells and of them that script is designed to work with a specific one of them as we'll come to + +10:23.160 --> 10:30.040 +I don't talk about installing the dependencies, but just as as kind of some kind of help. Um, + +10:31.000 --> 10:35.000 +You can search using this formula and install + +10:37.000 --> 10:40.920 +Using this formula good luck with those, you know grep commands + +10:43.640 --> 10:50.860 +And sys is the tool for building the self-installing self-extracting installer or uh executable self-installer + +10:51.820 --> 10:55.580 +Um, the script for that is provided along with the emac source + +10:56.780 --> 11:03.900 +Um, and i've provided a helpful link to the main page for the project download link on the left. It is not + +11:05.180 --> 11:10.700 +It's kind of scare where the way that this link appears, but I have clicked it and it's working for me + +11:14.200 --> 11:19.340 +Automation does uh, we'll we have some time we'll be looking at this at a minimum + +11:19.340 --> 11:24.540 +I wanted to mention that what I do on my local what you're seeing in the crawler, I hope + +11:25.260 --> 11:27.260 +uh represents a + +11:27.740 --> 11:29.740 +uh + +11:30.700 --> 11:35.580 +A simple sleep loop, uh, and we'll we'll look into that if we have time + +11:36.540 --> 11:43.820 +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 + +11:44.380 --> 11:47.580 +Um where i've got where I where I kind of self-host + +11:48.300 --> 11:50.300 +some uh snapshots + +11:50.700 --> 11:53.260 +more stuff than I feel comfortable uploading to + +11:54.220 --> 11:56.220 +uh, to gnu + +11:57.820 --> 11:59.820 +The um + +12:01.740 --> 12:07.500 +You know, I never said, uh, my name is corwin bruce for the last couple of years i've been the volunteer making + +12:08.220 --> 12:14.380 +Uh making the snapshots the quote-unquote official binaries, uh for windows of the + +12:15.580 --> 12:17.100 +um + +12:17.100 --> 12:23.180 +Of of emacs for windows. So that's that's all the different versions. Uh help is always welcome with that + +12:23.180 --> 12:26.540 +I'd be very happy to teach you in more depth. This video is + +12:27.100 --> 12:33.420 +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 + +12:33.500 --> 12:35.500 +This is the one thing I think I can do + +12:35.660 --> 12:37.660 +Um, hey, that's real relatable + +12:39.100 --> 12:46.220 +Okay, um, so I haven't tried uh, the I haven't tried a lot of fun things that I won't talk about + +12:46.940 --> 12:52.540 +um, the uh, the rest of this talk is going to get into the nitty-gritty as I said, um + +12:52.860 --> 12:58.620 +If we can't convince emacs to start building over on that screen, we'll be opening it up here on the center stage + +12:59.500 --> 13:01.500 +um + +13:01.900 --> 13:07.820 +Uh, this begins and there's there's there's there's great insight here too on the wiki, uh + +13:08.300 --> 13:11.980 +With picking an ftp source for any official release + +13:12.780 --> 13:15.500 +That is for a stable product. Please visit + +13:16.460 --> 13:18.460 +Um ftp.gnu.org + +13:19.020 --> 13:24.220 +Otherwise, you'll want to switch that ftp dot at the beginning to alpha dot and take a pre-test + +13:25.020 --> 13:29.260 +Uh, or any snapshot or otherwise then they're not published there + +13:30.140 --> 13:32.140 +The uh next + +13:32.540 --> 13:34.540 +uh, you know + +13:34.620 --> 13:41.260 +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 + +13:41.820 --> 13:47.260 +um, i'm glancing out of the the right side of my face at the + +13:48.060 --> 13:52.480 +Chat on the optance anybody in there wants to direct me at a particular + +13:53.180 --> 13:55.820 +Um, we can make some other we can build something + +13:56.540 --> 14:02.460 +Else if you want to see a snapshot build more mention that um the examples that you're going to see here + +14:03.500 --> 14:06.540 +That I will without other direction cut and paste + +14:07.260 --> 14:09.100 +um + +14:09.100 --> 14:11.100 +Are all based on a release bill + +14:12.380 --> 14:14.380 +so + +14:14.620 --> 14:21.840 +Um, and so, uh, we'll use the uh, I mentioned that there are several shells provided by mysis2 + +14:22.160 --> 14:24.160 +To the min-gw64 + +14:25.520 --> 14:28.160 +Shell is the one that we mostly need + +14:28.880 --> 14:33.440 +Um, I tested all of this as well with the min-gw32 shell + +14:34.240 --> 14:35.680 +um + +14:35.680 --> 14:40.400 +So that that should work and and see mix binaries that that work for me + +14:44.080 --> 14:46.000 +Uh + +14:46.000 --> 14:50.180 +I as I mentioned, I don't get into the details of installing all your prerequisites + +14:50.720 --> 14:53.920 +I found that doing it in a headfirst manner wasn't uh, + +14:54.640 --> 15:00.240 +Wasn't difficult and I also found that there's a number of tutorials. I didn't want to pick one to link here + +15:03.280 --> 15:05.280 +Um there uh + +15:06.160 --> 15:08.400 +Here are uh, okay, so + +15:10.240 --> 15:14.960 +Our general formula for building emacs irrespective of windows + +15:15.520 --> 15:16.800 +looks like + +15:16.800 --> 15:20.420 +Does the configure script exist if not run autogen? + +15:21.280 --> 15:23.280 +from a windows build standpoint + +15:23.920 --> 15:30.400 +This is if i'm not running a release that release build call the autogen script + +15:31.040 --> 15:34.580 +Right and this would be in the directory where we want to pack this i'll demonstrate + +15:35.200 --> 15:37.040 +within + +15:37.040 --> 15:39.040 +three minutes if uh + +15:39.600 --> 15:42.240 +If one if nobody's pushed upstream to emacs + +15:42.800 --> 15:43.920 +um + +15:44.000 --> 15:47.120 +so, uh the configure, uh, and + +15:48.080 --> 15:50.080 +configure options + +15:50.320 --> 15:52.320 +are uh + +15:53.600 --> 15:58.480 +Uh the configure, you know if the configure sorry if the configure script exists then + +15:58.800 --> 16:05.760 +Uh doesn't doesn't exist. So the only reason so in my process I will always execute that step because I clean everything + +16:06.480 --> 16:09.860 +after every build, um in all my contexts + +16:10.820 --> 16:13.700 +um, however, if you were you know had a + +16:14.320 --> 16:19.140 +Checkout of emacs dot get and you are building it at several releases + +16:19.300 --> 16:22.100 +Then maybe you've got a configure script and then you'll want to know + +16:22.740 --> 16:24.580 +um the you know + +16:24.580 --> 16:31.800 +Whether you have to bootstrap and the typical complexities, but otherwise you might be able to skip that in in the abstract + +16:32.820 --> 16:34.820 +um + +16:36.100 --> 16:38.100 +Is that right or is it is + +16:38.420 --> 16:42.820 +Make uh, so and if the make file doesn't exist make install. I know i'm + +16:43.380 --> 16:46.100 +Looking at that and i'm questioning whether it's correct. Sorry about that + +16:48.020 --> 16:54.440 +Um in any case, uh, so autogen configure make install is our recipe autogen + +16:55.060 --> 16:59.620 +Creates the configure script configure creates the make file the make file + +17:00.020 --> 17:04.120 +Um in the case of windows, I almost always want the install + +17:04.840 --> 17:09.560 +Uh and to specify some location where the installed emacs will land this is + +17:10.440 --> 17:11.320 +where + +17:11.320 --> 17:13.980 +all of the recipes for packaging emacs + +17:14.680 --> 17:15.720 +go + +17:15.720 --> 17:17.720 +and if I were + +17:18.600 --> 17:22.440 +You know using this as a movie to upgrade I personally would do that by + +17:23.080 --> 17:26.440 +by specifying an install path quote unquote on top of + +17:27.240 --> 17:33.640 +Uh a main installation. I don't do that. I update shortcuts manually based on what specifically I want to try + +17:34.120 --> 17:39.640 +Uh in an effort to to to notice, uh interesting patches and confirm they work on windows + +17:41.240 --> 17:45.560 +Which mostly they do there's not a lot of code in my experience that is + +17:46.200 --> 17:49.720 +Windows specific and very very little around the build process + +17:50.360 --> 17:51.400 +All right + +17:51.400 --> 17:59.160 +Huge rabbit hole zone and I still have a minute before I have to kick off the first part of our demo + +18:00.120 --> 18:01.240 +so + +18:01.240 --> 18:03.880 +Let's let's keep keep diving in + +18:04.200 --> 18:05.240 +um + +18:05.240 --> 18:13.400 +The those specific part windows specific parts beside the dot exe extension that we're going to find slammed onto all of our familiar + +18:14.040 --> 18:17.640 +Uh executables. We're also going to have emacs client w + +18:18.360 --> 18:22.040 +Which is a wrapper that hides? + +18:22.760 --> 18:24.760 +um how hard it is to get + +18:25.160 --> 18:27.160 +Uh to take it + +18:27.640 --> 18:31.800 +How bad the abstraction is between the window management layer and the gooey? + +18:32.440 --> 18:38.940 +And then all the different parts on windows essentially it wants to create a shell window if we just double click emacs.exe + +18:39.480 --> 18:41.480 +So emacs client w + +18:41.640 --> 18:44.200 +Uh and run emacs are going to solve that problem + +18:45.160 --> 18:46.680 +um + +18:46.680 --> 18:49.260 +Wrapping emacs and emacs client respectively + +18:51.640 --> 18:53.400 +And + +18:53.400 --> 18:55.400 +Just uh + +18:56.520 --> 19:02.360 +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 + +19:02.520 --> 19:06.600 +And what you're not seeing is off stage. I am + +19:07.400 --> 19:09.900 +Killing that so we don't get builds in parallel + +19:11.480 --> 19:13.480 +Um + +19:15.960 --> 19:17.480 +So, um + +19:17.480 --> 19:21.720 +So at this point i'm going to open up a shell and i'm going to start talking just a little bit about + +19:22.360 --> 19:27.640 +My local build environment, which we haven't gotten into in fact just to make that even easier + +19:28.520 --> 19:30.520 +let's um + +19:31.160 --> 19:36.040 +Let's just take a look at it a little bit probably the easiest spot + +19:37.560 --> 19:39.560 +Is + +19:40.280 --> 19:42.280 +Here + +19:47.720 --> 19:51.980 +All right, so here we have the familiar windows my computer interface + +19:52.600 --> 19:56.200 +I have the g drive and the h drive + +19:56.840 --> 19:58.840 +four terabyte drives + +20:00.040 --> 20:02.040 +um dedicated to + +20:02.440 --> 20:03.720 +my + +20:03.720 --> 20:07.000 +um, really overblown emacs build process + +20:08.200 --> 20:15.240 +Um, this just lets me be super lazy. There's no reason you need any massive amount of storage to do any of this + +20:15.800 --> 20:20.600 +Um inside here and now i'll actually switch you back to the other screen + +20:21.960 --> 20:23.960 +um + +20:24.040 --> 20:26.040 +We'll we'll find + +20:35.880 --> 20:37.880 +Oops + +20:38.600 --> 20:40.600 +Sorry about that + +20:40.680 --> 20:42.680 +It didn't take the time to label that one + +20:42.680 --> 20:44.600 +Label that one + +20:44.600 --> 20:48.680 +Um, so here you can see the primary output that + +20:49.400 --> 20:52.440 +That i'm looking at through this automated process + +20:52.600 --> 20:58.280 +I come along I look at the bug reports or maybe i'm just restarting my computer and choosing what emacs + +20:58.840 --> 21:02.920 +version at random and then in that case, I look at this modified date and I say + +21:03.480 --> 21:05.480 +um my config that I + +21:05.880 --> 21:09.160 +You know that i'm playing with right now is all set for emacs 30 + +21:09.320 --> 21:12.760 +Or i'm testing them both and i'm relaunching both of these right + +21:13.240 --> 21:17.720 +So for me that starts by diving into the install folder going into the bin folder + +21:18.200 --> 21:24.520 +Which looks exactly the way my automation leaves it. I then come in to run the run emacs + +21:25.000 --> 21:27.000 +And I create a shortcut + +21:27.480 --> 21:29.480 +um + +21:29.640 --> 21:30.760 +To it + +21:30.760 --> 21:31.960 +so + +21:31.960 --> 21:35.880 +I'm a keyboard person. So that's usually done like this + +21:36.760 --> 21:41.800 +And then I just know that the context menu is going to come up in the right place so i'll come up and + +21:42.840 --> 21:44.840 +um + +21:44.900 --> 21:49.080 +Possibly change the change the shortcut, right? + +21:53.080 --> 21:55.080 +If I don't mess with it + +21:56.680 --> 21:57.640 +Um + +21:57.640 --> 22:03.800 +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 + +22:03.880 --> 22:06.840 +With these which varies week to week + +22:07.480 --> 22:11.820 +Um, so restarting my emacs, uh involves doing the same thing going to my desktop + +22:12.600 --> 22:15.740 +And where you'll find a number of emac shortcuts + +22:17.000 --> 22:19.000 +and + +22:20.680 --> 22:23.240 +Um updating the shortcut in the same manner + +22:23.960 --> 22:31.580 +Actually, maybe we'll just let's go back there and just show it. So if we look at for example my erc + +22:33.880 --> 22:36.360 +You can see it's going to be pointing at one of these + +22:37.400 --> 22:39.400 +clones, and then it's gonna + +22:39.720 --> 22:45.080 +Maybe tell me that I want it wants to be full screen. No, not currently and then it might uh, + +22:45.560 --> 22:52.620 +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 + +22:53.340 --> 22:55.340 +So + +23:00.620 --> 23:06.940 +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 + +23:08.700 --> 23:14.380 +So, um, all right, so that's that's probably enough on the local system. Let's get back to + +23:15.580 --> 23:22.380 +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 + +23:22.620 --> 23:24.700 +and recreate the structure that + +23:25.660 --> 23:27.180 +both + +23:27.180 --> 23:33.660 +My process sort of assumes and the scripts you'll find in the admin nt + +23:34.300 --> 23:37.740 +Uh build disk folder in source + +23:38.940 --> 23:44.860 +Used to assume those scripts are in need of some love and in just a little bit i'll be mentioning a build + +23:45.420 --> 23:46.940 +uh + +23:46.940 --> 23:47.900 +a uh + +23:47.900 --> 23:53.980 +A a particular bug that you might want to pay attention to if you're interested in making a self installer + +23:54.780 --> 23:56.780 +all right, so + +23:57.020 --> 23:58.140 +um + +23:58.140 --> 24:00.140 +We're going to create + +24:01.260 --> 24:04.160 +Uh an emacs build directory + +24:08.460 --> 24:15.500 +And we've got a handy git clone stage git clone command stage for ourself that would work + +24:16.380 --> 24:18.380 +um + +24:19.420 --> 24:26.160 +Do not currently see anybody lobbying for that. So instead we will run the rather faster + +24:28.140 --> 24:30.140 +Uh w get command + +24:30.940 --> 24:37.020 +On savannah, which is not pasted in here. Nice. Let's see if I can freehand it not gonna do it + +24:37.820 --> 24:39.820 +uh + +24:45.500 --> 24:47.500 +Um + +24:51.980 --> 24:56.480 +Beg your pardon i'm grabbing a url from the internet + +25:00.060 --> 25:04.460 +Uh, okay. Yeah, I can't I can't honestly I can't freehand it whatever + +25:06.060 --> 25:07.660 +Sorry, I uh + +25:07.660 --> 25:11.340 +I didn't have that bookmarked and all handy like I thought I did + +25:12.060 --> 25:14.300 +Um, so we'll just say ftp.gnu + +25:15.260 --> 25:17.260 +.org + +25:17.900 --> 25:24.560 +Uh, what is it pub emacs emacs-29.1 + +25:26.460 --> 25:28.460 +Uh + +25:34.860 --> 25:36.860 +Hmm + +25:36.860 --> 25:38.860 +I + +25:40.700 --> 25:42.700 +Didn't + +25:43.100 --> 25:48.060 +Really think i'd have this command sitting around it makes me want to scrap the whole demo i'm not gonna lie + +25:48.940 --> 25:50.940 +Okay, how am I doing your time? + +25:51.820 --> 25:58.140 +Um, I think at least 15 minutes. Um, but in the command that you were freehanding should the pub be gnu instead + +25:59.100 --> 26:01.100 +Oh, thanks + +26:01.100 --> 26:03.100 +I'm, sorry + +26:07.420 --> 26:13.420 +There we go, thank you. All right, and then we'll + +26:17.820 --> 26:20.220 +And i'm not sure I provided commands for this either + +26:22.940 --> 26:29.660 +But it is trivially easy to do and while that happens we'll get to move on a few slides + +26:29.820 --> 26:31.820 +Um + +26:31.820 --> 26:35.660 +The configure script i'm not talking about in a lot of detail + +26:35.740 --> 26:40.460 +But I do want to mention that the gnu binaries are provided with native + +26:41.820 --> 26:46.080 +Uh compilation enabled that's the feature that uses gcc + +26:46.620 --> 26:53.020 +lib gcc get on windows if available that looks gcc get will be used + +26:53.740 --> 27:00.620 +Um, but when but if if emacs has that feature then it will take by compile + +27:01.420 --> 27:03.420 +native code and + +27:04.040 --> 27:05.100 +asynchronously + +27:05.100 --> 27:07.100 +Compile that as needed + +27:07.340 --> 27:09.340 +uh with the ahead of time feature + +27:09.660 --> 27:14.860 +We're going to do as much of that ahead of time and for folks that are consuming the windows binary + +27:14.860 --> 27:19.020 +The thinking goes that they might not have mysys too. They might not have + +27:19.740 --> 27:21.740 +Gcc jet they might be + +27:22.140 --> 27:24.140 +Happy that they're enabled + +27:24.140 --> 27:28.400 +In a you know a lot of time run emacs on their local environments + +27:30.460 --> 27:31.580 +At all + +27:31.580 --> 27:34.700 +You know in a maybe a lockdown at a corporate context + +27:35.420 --> 27:36.460 +so + +27:36.460 --> 27:37.660 +aside + +27:37.660 --> 27:38.860 +that + +27:38.860 --> 27:40.880 +There's your first glimpse at the configure + +27:42.140 --> 27:46.220 +Program that we're going to run in a moment. In fact, i'm going to go as far as + +27:47.020 --> 27:49.020 +Putting it on the clipboard + +27:49.100 --> 27:50.540 +um + +27:50.540 --> 27:53.260 +Really just looking at this the aot flag + +27:53.340 --> 27:58.620 +It's the one i'd call attention to but it's worth understanding that windows doesn't provide a dbus capability + +27:58.700 --> 28:02.700 +So windows native program isn't gonna be able to depend on dbus. We're gonna + +28:03.500 --> 28:08.960 +We're gonna explicitly ask that that be left out. I think that's actually optional. It's documentation + +28:09.260 --> 28:12.940 +I think the configure program is smart enough to know that we don't want dbus + +28:13.660 --> 28:15.100 +on windows + +28:15.100 --> 28:22.860 +Um, otherwise we tend to compile with things. Um, there there's missing documentation. We could say the uh, + +28:23.340 --> 28:26.780 +all of the libraries are treated in the way I mentioned in that + +28:27.900 --> 28:30.700 +Jpeg support will be available as long as + +28:32.060 --> 28:36.940 +Jpeg is is available in our environment and configure script certainly notices that + +28:37.500 --> 28:44.700 +Um, the new provided binaries are provided with minus o2 and that's also my default personally on windows. Um, + +28:45.580 --> 28:48.380 +However, and i'm going to skip this since I mentioned it + +28:49.260 --> 28:51.260 +um mentioned + +28:51.260 --> 28:53.260 +uh, and uh + +28:54.620 --> 28:56.460 +Um + +28:56.460 --> 29:00.380 +So I guess i'll say um, you can um say with + +29:01.420 --> 29:02.300 +the + +29:02.300 --> 29:08.620 +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 + +29:08.920 --> 29:14.140 +Compilation for whatever reason if you have load juices you get it, but don't want emacs to use it + +29:14.700 --> 29:18.400 +Uh, especially as that default looks like it could be changing with emacs 30 + +29:19.420 --> 29:20.540 +um + +29:20.540 --> 29:22.060 +the uh + +29:22.060 --> 29:27.100 +the debug configuration, um, this is this is the uh, kind of + +29:27.740 --> 29:34.060 +Uh, what what i'm currently using this on commentary. Uh, i've seen on the emacs development list + +29:34.060 --> 29:36.060 +Um + +29:40.620 --> 29:44.220 +All right, let's check on our checkout and see if we can't get a build running + +29:44.620 --> 29:48.300 +Um, this is a release build so I won't be starting with + +29:49.260 --> 29:51.920 +Uh, so we'll start by hopping into its directory + +29:53.980 --> 29:57.100 +And we um we have + +29:59.020 --> 30:01.020 +Uh + +30:05.020 --> 30:07.020 +But not + +30:11.260 --> 30:14.060 +Okay, so that tells us we're gonna run + +30:15.660 --> 30:17.660 +Our configure program + +30:18.540 --> 30:21.260 +But we don't need to run uh config ic + +30:23.260 --> 30:25.260 +So + +30:31.340 --> 30:33.580 +So let's get that going and + +30:34.060 --> 30:36.060 +uh + +30:36.060 --> 30:41.280 +Hopefully that's showing through just enough to be fun not too much to be distracting + +30:46.540 --> 30:49.440 +Um the uh the unoptimized + +30:52.140 --> 30:58.320 +Um, please report issues if your emacs is crashing, uh to the emacs development list not to me personally + +30:59.100 --> 31:02.220 +Um, although you are of course welcome to copy me + +31:02.700 --> 31:08.540 +Um, if you especially i'm subscribed to that list so I get all the mail so I don't mind being copied + +31:09.100 --> 31:11.020 +uh, and + +31:11.020 --> 31:12.380 +as well + +31:12.380 --> 31:13.740 +if you think it's + +31:13.740 --> 31:15.100 +uh + +31:15.100 --> 31:17.500 +You know related to packaging that actually makes sense + +31:18.060 --> 31:24.700 +Or windows related even and uh, it can be tested with an extra snapchat that should be uploaded to the gnu alpha side + +31:25.100 --> 31:27.500 +I could look at that if I have time + +31:27.820 --> 31:29.340 +Okay + +31:29.340 --> 31:31.660 +That is with the configure script to make file for + +31:32.200 --> 31:39.500 +Emacs is really really complicated if time permits which i'm, you know now confident it will not + +31:39.900 --> 31:45.500 +We will look at a makefile that I tried writing that orchestrates this whole process that i'm talking about + +31:47.180 --> 31:53.900 +Um as uh, let's see, so the build uh build process I run my builds with + +31:54.380 --> 31:58.220 +Uh explicitly specifying the max cpu, uh + +31:59.340 --> 32:01.180 +with minus j + +32:01.180 --> 32:08.380 +But minus b1 to get the full build, uh full login to your recipes. That is probably the magic thing + +32:09.100 --> 32:10.620 +that um + +32:10.620 --> 32:12.620 +shouldn't to understand with uh + +32:15.980 --> 32:23.520 +Or that uh that that uh that i'm glad that I know, uh as i'm trying to write my automations + +32:24.700 --> 32:26.700 +um + +32:26.940 --> 32:28.940 +Uh the um + +32:29.820 --> 32:34.060 +So I call that out here the binary, uh releases + +32:35.020 --> 32:39.100 +Okay. So in this section, we're going to start to get into what are all those files + +32:39.500 --> 32:43.020 +And there's a bug report related to that that I didn't get into here. So + +32:43.580 --> 32:47.340 +Um, that's kind of to the point about the less said about this the better + +32:47.660 --> 32:51.420 +That's my explanation for stepping through some of these slides. Uh, of course + +32:52.380 --> 32:54.380 +Share them all um + +32:55.820 --> 32:58.220 +Hopefully by the time that this video is published + +33:01.180 --> 33:07.180 +I mentioned it. Um, I may have mentioned already freshly installed but uh fully installed + +33:07.660 --> 33:13.020 +uh this the the key distinction here is that uh emacs is + +33:13.400 --> 33:20.700 +Distributed in the binary form for windows with some dll files that actually come from the mysis 2 + +33:21.000 --> 33:26.220 +Project there's an implication there to gcc that I definitely want to get to it talking about + +33:28.060 --> 33:30.620 +Um, so freshly installed means + +33:31.340 --> 33:34.700 +We haven't copied those binaries from the mysis 2 + +33:35.340 --> 33:37.180 +uh installation + +33:37.180 --> 33:39.180 +into the emacs + +33:39.480 --> 33:41.260 +uh installation + +33:41.260 --> 33:43.020 +uh, and then + +33:43.020 --> 33:48.300 +When we re-archive that local emacs installation, that's how we're going to create the full zip + +33:48.620 --> 33:53.020 +So hopefully that actually is a pretty good summary of what all those files are + +33:53.660 --> 33:57.900 +Um, but there are readme files on the ftp. They do a pretty good job + +33:59.020 --> 34:05.900 +If you can dig enough to find one and my apologies for uh tardiness getting a new version on that posted + +34:07.260 --> 34:09.180 +um + +34:09.180 --> 34:10.620 +the emacs + +34:10.620 --> 34:17.020 +Uh, so those dependencies, uh are listed within the emacs itself and as we'll just talk about in a moment + +34:17.020 --> 34:18.300 +There's a way + +34:18.300 --> 34:21.500 +uh that we can use we can access that + +34:22.220 --> 34:26.880 +When we collect them in order to meet the gcc requirement that is essentially + +34:27.660 --> 34:29.660 +to include + +34:29.660 --> 34:35.260 +Um include the sources for the for those binaries the things that were compiled against + +34:36.460 --> 34:38.460 +um + +34:39.100 --> 34:42.620 +The uh, so so here we go, we're we're into the build process + +34:42.700 --> 34:46.060 +Let's just take a look and see if configure it got done it sure did + +34:46.540 --> 34:48.540 +and now we can see a table of + +34:49.080 --> 34:51.080 +Hopefully good, but good and bad news + +34:51.900 --> 34:53.580 +um in potential + +34:53.580 --> 34:58.940 +um where we're learning that we're using the pdumper strategy and any number of other things that we might be + +34:59.180 --> 35:03.820 +Messing with as our motivation for for building ourselves on emacs + +35:04.860 --> 35:06.860 +again, this table represents + +35:07.340 --> 35:09.260 +uh what you'll what + +35:10.060 --> 35:15.280 +What what it looks like for me when i'm building for the gnu distributed binaries + +35:17.900 --> 35:19.900 +All right, so um + +35:20.780 --> 35:23.740 +Kind of moving moving as quickly as I can here + +35:24.540 --> 35:28.140 +I'm at 40 after I believe that's the five minute mark + +35:28.780 --> 35:29.660 +so + +35:29.660 --> 35:34.780 +Um having just succeeded in in configuring emacs. I don't think we're going to build it. Uh + +35:35.100 --> 35:39.180 +I don't think we're going to actually get to running make install + +35:39.900 --> 35:45.500 +Um, but I have it sitting here on my keyboard or clipboard assuming that we will right? + +35:49.100 --> 35:50.460 +No + +35:50.460 --> 35:52.460 +Oh, wow + +35:52.780 --> 35:56.940 +I think i've managed to confuse this. All right, so for me that looks simply like + +35:57.660 --> 35:59.740 +uh make + +35:59.740 --> 36:01.740 +v equals one + +36:01.740 --> 36:09.200 +Uh install, uh prefix equals + +36:10.700 --> 36:12.700 +uh + +36:18.380 --> 36:20.380 +And we can at least get it kicked off + +36:22.860 --> 36:25.740 +And that that command is just uh + +36:26.620 --> 36:30.540 +Just is no no different than I showed on the slide where I where I gave it + +36:31.020 --> 36:34.460 +Uh, I wasn't planning to stop and explain it. I was just planning to paste it in + +36:35.500 --> 36:36.700 +so + +36:36.700 --> 36:42.060 +So so again recapping the rest of the process here and maybe actually making it if you can believe it or not + +36:42.300 --> 36:44.460 +through the rest of these slides, um + +36:45.180 --> 36:52.240 +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 + +36:52.400 --> 36:58.740 +To uh deal provided dlls just the things that we compile as part of making emacs + +36:59.520 --> 37:01.520 +um + +37:02.400 --> 37:09.760 +The uh, the build depth zip script is uh provided with the source distribution is your tool + +37:10.240 --> 37:14.320 +for uh meeting the gpl requirements ride source as mentioned before + +37:14.880 --> 37:21.360 +Um, there is a second bug that I did, uh include some more information on in my notes already + +37:22.240 --> 37:24.240 +um that uh + +37:24.800 --> 37:27.840 +That gets into the details of this other feature I alluded to + +37:28.640 --> 37:30.640 +Um, i'll just skip into that + +37:31.200 --> 37:32.560 +um + +37:32.560 --> 37:34.640 +we can with with uh + +37:35.440 --> 37:40.240 +With a an appropriate version of that which you may need a patch + +37:41.040 --> 37:42.560 +uh to + +37:42.560 --> 37:44.660 +To have you can list out the dependencies + +37:45.540 --> 37:51.060 +And and that version as well can consider the dependencies of the emacs binary versus the hard-coded list + +37:51.060 --> 37:54.900 +You might find depending on when you look at this file in the source tree + +37:56.980 --> 37:58.980 +The different um + +37:59.060 --> 38:00.020 +so + +38:00.020 --> 38:06.440 +I also have a hack here that uh works around the absolute requirement to run this with the mysys2 + +38:07.060 --> 38:09.060 +And not the mingw64 + +38:09.060 --> 38:11.060 +64 + +38:14.340 --> 38:16.340 +Script + +38:17.460 --> 38:18.500 +Um + +38:18.500 --> 38:27.080 +Once we've made that zip file that contain that's that's our installed emacs without the dlls provided by mysys2 + +38:28.420 --> 38:35.140 +We'll then unpack the dependencies that were created by that python script. We just talked about from the emacs source tree + +38:36.020 --> 38:40.980 +So at that point once those are unpacked we can now make what's called the full + +38:41.600 --> 38:47.640 +Installer or sometimes I might call it the unqualified installer because it's just going to be called emacs29.1.zip + +38:51.060 --> 38:56.520 +Um and that uh that file which which creates the archive + +38:58.580 --> 38:59.780 +That + +38:59.780 --> 39:03.140 +that that file is exactly the same plus the + +39:03.780 --> 39:08.340 +Uh, the dependencies that we unzipped in the bin folder of the installed emacs + +39:09.700 --> 39:10.720 +the + +39:10.720 --> 39:17.460 +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 + +39:17.460 --> 39:19.460 +it most importantly + +39:19.940 --> 39:25.880 +If i've installed in any kind of funny looking name, I end up renaming it to like emacs-29.1 + +39:26.840 --> 39:33.240 +Or emacs-29. or 30.0.50 or whatever and I just rename that installed + +39:33.880 --> 39:39.800 +Emacs folder and then I go to the root of wherever I created that the parent directory above it + +39:40.360 --> 39:43.420 +And that's where I make my copy of the emacs nsi + +39:44.120 --> 39:46.600 +um the the nsis script + +39:47.560 --> 39:49.400 +and uh + +39:49.400 --> 39:51.400 +That's also where I + +39:51.960 --> 39:59.160 +And then uh, then from that parent directory I execute uh making sys uh here I as mentioned + +39:59.800 --> 40:00.920 +um + +40:00.920 --> 40:05.160 +I I can get away with this because I have it on my path and it's my recollection + +40:05.240 --> 40:11.480 +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 + +40:12.040 --> 40:13.160 +uh + +40:13.160 --> 40:15.160 +When nsis wasn't on my path + +40:16.920 --> 40:19.960 +The uh, the the final step here + +40:20.440 --> 40:25.260 +And the last the gpl requirement is to include all the sources + +40:25.780 --> 40:29.640 +Except when i'm doing a release build I always do this + +40:30.200 --> 40:35.800 +Um, and that's the new practice when making snapchat binaries is to go ahead and include the sources + +40:36.280 --> 40:38.840 +Even though we might have the specific revision number + +40:39.400 --> 40:43.000 +Um, our thinking is we want absolute clarity + +40:44.120 --> 40:45.480 +that that somebody + +40:45.480 --> 40:51.720 +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 + +40:53.160 --> 40:57.160 +yeah, maybe they would the jerks them into my own open source project and + +40:57.880 --> 40:59.480 +um + +40:59.480 --> 41:03.340 +Off, you know off they go, uh, and that needs to be possible + +41:04.840 --> 41:06.520 +um + +41:06.520 --> 41:07.960 +so, um + +41:07.960 --> 41:13.640 +Beyond that the rest of this is is really detailed that you find covered in the gnu maintainers manual + +41:14.280 --> 41:20.120 +Um, this is the the current set of windows binaries that um, it's busily working on + +41:20.760 --> 41:22.760 +creating a like for like a + +41:23.400 --> 41:29.320 +Mirror to behind the scenes here is called a 29.1 underscore two + +41:30.280 --> 41:32.280 +um, and I have a lot of + +41:32.900 --> 41:37.720 +Automation available on this site. So at this point i'm just I think i'm only + +41:38.520 --> 41:40.520 +minute 40 seconds over i'm + +41:41.080 --> 41:42.120 +gonna + +41:42.120 --> 41:44.120 +invite my + +41:44.360 --> 41:50.200 +Co-organizers back onto the call or any volunteers that want to jump in and anybody if there's people on the bbb + +41:50.280 --> 41:53.080 +I'd be happy to take questions if there aren't + +41:53.640 --> 41:56.520 +um, I have a screen full of + +41:57.240 --> 42:02.200 +The automation stuff ready to go as a kind of a second ring in my circus today + +42:03.320 --> 42:07.240 +So if you're still with me, thanks a lot for joining me, and I really enjoyed this talk + +42:07.480 --> 42:11.560 +Uh, if this is where we're going to close it out. I don't know where we're at for schedule today + +42:13.080 --> 42:15.180 +Um, thanks a lot for a great talk corwin + +42:16.760 --> 42:21.640 +Um in terms of like schedule, yeah, you went over a little bit for the official like, um + +42:22.120 --> 42:24.120 +schedule or time of your talk, but I think + +42:24.760 --> 42:29.080 +We actually have maybe like six or seven more minutes. Um here on stream + +42:29.800 --> 42:35.400 +For um questions and such if folks have questions or if you want to like quickly maybe show one or two more things + +42:36.200 --> 42:37.000 +um + +42:37.080 --> 42:39.080 +But I think the hard stuff is about like + +42:39.480 --> 42:42.520 +Maybe 10 minutes ish for now and then we'll have to rush over to um + +42:43.320 --> 42:45.320 +for the closing remarks, so + +42:48.120 --> 42:50.120 +Well, that sounds awesome + +42:51.320 --> 42:58.280 +Okay, so i'm looking at the the dev chat, uh, I see a comment on cross compiling the emacs + +42:58.440 --> 43:05.160 +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 + +43:05.320 --> 43:08.840 +Uh, uh, if if you put something on the pad i'm sure + +43:09.400 --> 43:12.520 +I will see it between the two of us + +43:13.160 --> 43:14.840 +Uh over here + +43:14.840 --> 43:21.080 +Okay, so cross compiling emacs for serenity. I haven't tried really any cross compiling. I think that would be very interesting + +43:21.160 --> 43:23.160 +I would most likely focus on + +43:23.720 --> 43:28.760 +Doing exactly what I do on a gnu system completely ditching + +43:29.320 --> 43:30.280 +um + +43:30.280 --> 43:34.600 +So I guess with my my remaining time rather than walking through code + +43:35.160 --> 43:39.560 +Um for my automation which can be another talk if in fact there's an interest in that + +43:40.200 --> 43:41.240 +um + +43:41.240 --> 43:45.560 +I want to I guess say a couple words about the non-free operating system + +43:46.200 --> 43:49.800 +That i'm using here. I did my best to use no + +43:50.660 --> 43:52.760 +non-free software other than + +43:53.640 --> 43:55.400 +the + +43:55.400 --> 43:57.400 +Uh the operating system + +43:57.720 --> 44:01.720 +That is the context for this talk in preparing this talk for you + +44:02.120 --> 44:05.080 +I personally have a lot more + +44:06.520 --> 44:13.560 +Uh time and energy I have to say invested in proprietary tools for doing a lot of the things that + +44:14.920 --> 44:19.480 +That go into this so I really respect the work of people that pull that off. Um + +44:20.200 --> 44:27.400 +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 + +44:28.280 --> 44:35.480 +Uh, it is all absolutely possible and just hats off to everybody that that used uh entirely free software to get their + +44:36.200 --> 44:38.200 +Get their recordings done in time + +44:38.680 --> 44:40.680 +um, and what you did see + +44:41.640 --> 44:45.560 +Unless it was provided by the operating system in my presentation today was all + +44:46.040 --> 44:51.080 +Uh free software with the debatable exception of nsys which styles itself + +44:51.720 --> 44:53.320 +as open source + +44:53.320 --> 44:56.120 +maybe for uh marketing reasons + +44:57.480 --> 45:00.460 +Uh in any case, uh, certainly we can get out of the source + +45:08.120 --> 45:10.840 +Thanks for the note corinne, it's good to know that uh + +45:11.320 --> 45:18.600 +Building or uh, yeah doing the build of emacs for windows on windows can be done using only free software + +45:19.880 --> 45:21.880 +Yeah, absolutely + +45:23.480 --> 45:25.480 +Probably the right closing note, right? + +45:26.120 --> 45:32.440 +um, I just uh, thanks again to the organizers for bearing with me and like every time I was like you guys i'm + +45:32.520 --> 45:36.760 +Terrible at this. They're just like no you're doing fine. Keep going. You did a great job live last time + +45:37.000 --> 45:43.000 +You can do it live, you know and and saying all the right things to just uh, encourage me to come back + +45:44.840 --> 45:46.840 +This year and everywhere + +45:49.720 --> 45:54.120 +Well, as I said before we were very lucky to have you and the rest of the team of course as well and + +45:54.760 --> 45:59.960 +um goes without saying but all the speakers and all the audience the participants as well, so + +46:08.360 --> 46:09.720 +Um + +46:09.720 --> 46:17.000 +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 + +46:17.800 --> 46:21.720 +um throwing throwing up another screen here and uh, + +46:22.280 --> 46:27.000 +In fact, let's go ahead and go back to our to our crawler, right? + +46:30.840 --> 46:36.120 +And i'll bring back our build if it finishes and maybe we'll show making the installer as well, um + +46:39.480 --> 46:42.040 +But I have the cpu count turned down a little bit here + +46:44.200 --> 46:46.600 +Note I didn't specify minus j here + +46:47.400 --> 46:49.400 +um, so + +46:49.480 --> 46:52.840 +Over here is my automation, uh in case you do want to take a look + +46:52.920 --> 46:59.480 +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 + +46:59.800 --> 47:05.800 +um, it's not beautiful, but this works, uh, pretty well for me to + +47:06.280 --> 47:12.440 +Get a sense if something might have changed in terms of how many warnings or errors are happening + +47:13.080 --> 47:18.620 +When I build emacs, so I have this awful automation going on and I frequently want to answer the question + +47:19.260 --> 47:23.500 +You know, what's the change rate in uh warnings or what have you? + +47:24.140 --> 47:26.140 +So this kind of gives me a count + +47:26.460 --> 47:28.220 +of that + +47:28.220 --> 47:29.820 +um + +47:29.820 --> 47:31.820 +so from there, uh + +47:32.460 --> 47:36.860 +Crude ci is the script. We're we're watching run in the other pane + +47:37.980 --> 47:39.900 +um, you can + +47:39.900 --> 47:41.900 +see it's uh + +47:42.780 --> 47:45.020 +Just starting to do its thing again + +47:48.860 --> 47:50.860 +And uh + +47:51.420 --> 47:58.620 +The make file I mentioned this is a top-down rewrite of everything else that i've done it has some bugs right now + +48:00.300 --> 48:02.460 +um the uh + +48:03.660 --> 48:04.460 +the + +48:04.460 --> 48:09.660 +Build distribution is the main script that I use for my personal builds + +48:10.140 --> 48:13.260 +This is what is run by the crude ci script + +48:13.820 --> 48:16.380 +Uh, it has a fun tie-in to this + +48:16.700 --> 48:18.700 +Uh web interface here + +48:19.340 --> 48:24.380 +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 + +48:25.260 --> 48:27.260 +um the + +48:28.380 --> 48:30.380 +Uh + +48:31.100 --> 48:37.980 +Blah blah blah blah this this script is really long and complicated and probably needs some diving into but you can see that + +48:38.540 --> 48:44.540 +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 + +48:44.860 --> 48:46.860 +version for strategic + +48:47.100 --> 48:49.580 +um nsys reasons so + +48:50.140 --> 48:51.900 +uh + +48:51.900 --> 48:56.460 +It takes care of kind of every complexity and stuff that I mentioned today in some respects + +48:57.020 --> 48:59.980 +Um, as does the make file build release + +49:00.780 --> 49:01.660 +is + +49:01.660 --> 49:04.160 +um another fairly useful + +49:05.240 --> 49:11.580 +Incarnation of this this is just focused on the release process and this does work + +49:12.060 --> 49:14.060 +for example to create the + +49:14.380 --> 49:15.420 +the + +49:15.420 --> 49:17.420 +You know like I like well I could + +49:17.980 --> 49:23.760 +Like uh for like files as far as I can tell so what are currently posted for emacs 29.1 + +49:24.860 --> 49:26.860 +and the release candidate + +49:27.660 --> 49:28.860 +um + +49:28.860 --> 49:34.300 +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 + +49:35.580 --> 49:37.340 +um + +49:37.340 --> 49:44.940 +Uh building a tree sitter I make some dlls there if you're looking for hints on how to get going or just simply + +49:45.580 --> 49:49.900 +A huge long list of git repositories that make grammars you can use + +49:50.780 --> 49:52.780 +That is here as well + +49:53.580 --> 49:56.620 +um, finally I mentioned I have a + +49:58.300 --> 50:03.980 +Um, I have a a website where I publish my own personal snapshots that I make + +50:04.540 --> 50:07.820 +That folder full of install directories, but all of the usual + +50:08.360 --> 50:13.920 +GNU style binary distributables including the source code and the source code for the dependencies + +50:14.860 --> 50:15.980 +um + +50:15.980 --> 50:17.820 +the + +50:17.820 --> 50:19.820 +uh + +50:20.460 --> 50:23.180 +So this program is another one of those + +50:24.300 --> 50:28.700 +Complicated find commands and therefore potentially the most useful thing in here to take to you + +50:29.340 --> 50:33.340 +Um, and here i'm deleting binaries older than 17 years + +50:34.220 --> 50:36.220 +uh everything except + +50:36.220 --> 50:37.500 +the uh + +50:37.500 --> 50:41.020 +No deps file and the sources of it. You'll find on my website + +50:41.580 --> 50:44.140 +Currently those indefinitely i'll probably roll out + +50:44.760 --> 50:46.760 +120 days or something + +50:47.020 --> 50:49.020 +um for those eventually + +50:53.580 --> 50:57.340 +Oh, uh, I can talk about this one even um the uh + +50:57.740 --> 50:58.700 +The + +50:58.700 --> 51:02.380 +So here you'll see the two branches that i'm tracking the job of this script + +51:02.780 --> 51:07.020 +Is this runs on the website? I call it with a like a remote rsync + +51:07.740 --> 51:08.620 +uh type + +51:08.620 --> 51:11.420 +Uh, or an ssh remote ssh command + +51:12.060 --> 51:13.740 +um + +51:13.740 --> 51:18.220 +And right after the rsync r syncing up any new emacs that I built + +51:19.020 --> 51:20.540 +and + +51:20.540 --> 51:22.540 +uh, it's + +51:23.180 --> 51:29.920 +Uh, its job is to update my fancy directory indexing so let's look at corwin's website + +51:31.580 --> 51:35.040 +Here's my emacs 29 folder + +51:44.780 --> 51:46.780 +We have about two more minutes corwin + +51:47.420 --> 51:52.380 +Yeah, it'll take that entire two minutes to uh, load this directory because I am + +51:52.940 --> 51:56.140 +Because I have not yet ever pruned any of these dang binaries + +51:56.380 --> 52:01.500 +So every version of uh emacs 29 that i've ever made for myself is probably here + +52:02.540 --> 52:03.580 +nice + +52:03.580 --> 52:09.660 +Uh, I strongly recommend that you bookmark this folder if you're using these for something and you always want the latest + +52:09.980 --> 52:17.500 +Um, so here this particular, uh latest 29 emacs 29 latest or simply replace the 29 with 30 to get those + +52:18.220 --> 52:19.080 +uh + +52:19.080 --> 52:20.140 +alas + +52:20.140 --> 52:22.620 +No, no such luck for tree setter + +52:23.180 --> 52:25.180 +but if we look at + +52:25.740 --> 52:27.740 +that + +52:36.380 --> 52:39.100 +Live this long without making a typo now look at me + +52:40.220 --> 52:42.220 +Okay + +52:44.780 --> 52:46.780 +Oh + +52:51.500 --> 52:53.180 +So here, um + +52:53.180 --> 52:57.100 +You know, we can see the iconification and so on even in the tree sitter folder + +52:57.180 --> 53:01.420 +this is all i'm talking about about the fanciness that's set up by that other script that + +53:02.380 --> 53:06.940 +i'm showing over here and run after each time I run the upload it just + +53:07.900 --> 53:12.780 +Looks to see if anything's new and add some lines to the dot htaccess file + +53:15.900 --> 53:17.180 +Um + +53:17.180 --> 53:22.700 +I'm, particularly proud of this one. I'm not going to lie. Um, linking out to each each + +53:23.500 --> 53:27.020 +project that we're using letting us know the commit version and then + +53:28.300 --> 53:33.100 +For the dlls quick link out to the log and the signature file for this dll + +53:34.140 --> 53:36.140 +um + +53:37.020 --> 53:39.020 +I find that a lot just a lot + +53:40.540 --> 53:42.220 +More readable + +53:42.220 --> 53:44.060 +than uh + +53:44.060 --> 53:48.620 +Listing them all out individually and i'd love to do something like that on the new site + +53:51.180 --> 53:52.220 +So i'm + +53:52.220 --> 53:56.540 +I think we've got to be out of time by now. I've just got to say hey, thanks again for having me + +53:56.780 --> 54:01.740 +Uh for those that uh watch the talk either live or after the conference + +54:02.460 --> 54:05.820 +uh appreciate everyone's support to get me to the point where i'm able to + +54:06.540 --> 54:10.220 +Uh to do this this this cool volunteer task + +54:10.380 --> 54:14.220 +Uh, which is fun and easy to do and reach out to me if you're interested in helping with it + +54:19.020 --> 54:25.740 +Well, awesome, thanks a lot for the awesome talk corbin and uh, of course as a fellow core core organizer + +54:26.060 --> 54:33.280 +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 + +54:36.140 --> 54:39.100 +Big big words from coming from you my friend + +54:41.740 --> 54:43.740 +Um, thanks for the kind words + +54:45.020 --> 54:51.660 +Cheers my pleasure. All right, and with that I think we're gonna uh wrap up the dev track here and we'll be + +54:52.300 --> 54:58.140 +With you again shortly in a few minutes on the gen stream the gen track for the closing remarks for today + +54:58.620 --> 55:01.900 +Um only for today because we're gonna be back tomorrow again as well + +55:02.460 --> 55:05.760 +So don't go anywhere and uh, see you on the gen track in a bit + +55:05.760 --> 55:07.760 +So + +55:28.080 --> 55:31.680 +Oh my god, I did it we got done within the time you're my hero + +55:31.840 --> 55:35.440 +um, and thank you so much for just keeping me honest there and uh + +55:36.720 --> 55:39.300 +Like helping me keep my eye on the time and such + +55:50.880 --> 55:53.680 +You have to look at the recording and see whether you feel like doing it again + +55:56.160 --> 56:01.360 +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 + +56:01.360 --> 56:03.360 +moment + +56:03.520 --> 56:08.960 +Oh, uh because he used your webcam for it, um, like as a like a virtual webcam thingy + +56:09.520 --> 56:12.960 +It was low res especially when things are changing as you were + +56:13.520 --> 56:15.120 +scrolling around + +56:15.120 --> 56:20.720 +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 + +56:20.720 --> 56:22.080 +with like + +56:22.080 --> 56:24.080 +screenshots and + +56:24.240 --> 56:28.960 +I recorded on this end too. We shouldn't have that problem with my recording. Thank you. Thank you. Thank you + +56:29.360 --> 56:31.360 +I think we're still live on the dev stream + +56:34.240 --> 56:37.440 +Someone could uh, thanks. Oh, yes + +56:38.880 --> 56:42.180 +Because uh, i'll set it to rebroadcast + +56:45.520 --> 56:48.480 +Yeah, I I love doing that for the closing remarks that's + +56:49.680 --> 56:51.680 +a fine tradition + +56:52.000 --> 56:55.280 +Or it's a tradition now because i'm pretty sure this means we've done it twice + +56:55.440 --> 56:57.440 +I + +57:02.560 --> 57:05.360 +Once heard that, you know, uh as a fan + +57:05.680 --> 57:11.680 +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 + +57:11.680 --> 57:17.440 +We do our fannish and a fannish tradition then is if you do it three times, it's tradition + +57:18.000 --> 57:20.000 +But um, we're on a budget here. So + +57:22.880 --> 57:24.880 +Nope + +57:25.920 --> 57:29.840 +All right, I think we should um head over to mumble and talk on mumble + +57:30.080 --> 57:34.640 +Um and decide and see like which big blue button room we're going to be in for closing + +57:35.200 --> 57:37.200 +Okay, so we're clear on bbb here + +57:37.760 --> 57:39.760 +Yep, I think so + |