summaryrefslogtreecommitdiffstats
path: root/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt')
-rw-r--r--2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt2345
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
+