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