1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
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
|