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