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
|
0:00:00.320,0:00:08.080
hello I'm richard stallman
0:00:03.280,0:00:09.200
founder of the gnu project in 1976 I
0:00:08.080,0:00:12.000
developed the first
0:00:09.200,0:00:13.440
Emacs editor with some help from guy
0:00:12.000,0:00:15.839
steele
0:00:13.440,0:00:19.119
then shortly after starting to develop
0:00:15.839,0:00:22.240
the gnu operating system in 1984
0:00:19.119,0:00:24.640
I wanted an Emacs editor for it
0:00:22.240,0:00:25.560
so I started writing gnu Emacs in
0:00:24.640,0:00:28.560
september
0:00:25.560,0:00:28.560
1984.
0:00:29.519,0:00:35.920
several years ago we decided to move
0:00:32.640,0:00:36.559
many of the Emacs list packages outside
0:00:35.920,0:00:39.760
the core
0:00:36.559,0:00:42.960
Emacs distribution into a separate
0:00:39.760,0:00:43.280
package archive that we call the e-max
0:00:42.960,0:00:46.480
list
0:00:43.280,0:00:48.719
package arc elpa
0:00:46.480,0:00:51.520
there were two main reasons for this one
0:00:48.719,0:00:54.320
is to make the emax distribution smaller
0:00:51.520,0:00:55.680
so every user wouldn't have to get all
0:00:54.320,0:00:58.320
the packages
0:00:55.680,0:01:00.480
and install all the packages and the
0:00:58.320,0:01:01.520
other reason was to make it possible to
0:01:00.480,0:01:04.559
release
0:01:01.520,0:01:08.320
individual packages separately
0:01:04.559,0:01:08.320
from Emacs releases
0:01:08.880,0:01:17.040
now at that point somehow we decided to
0:01:13.119,0:01:19.520
support loading packages from
0:01:17.040,0:01:21.119
a variety of different Emacs list
0:01:19.520,0:01:25.520
package archives
0:01:21.119,0:01:29.280
and ours would be called the gnu elpa
0:01:25.520,0:01:32.079
but elpa could be any other
0:01:29.280,0:01:32.799
now I think that naming was a mistake we
0:01:32.079,0:01:35.119
should have
0:01:32.799,0:01:37.759
meant we should have decided that elpa
0:01:35.119,0:01:39.759
referred to our package archive
0:01:37.759,0:01:42.479
and any other package archive should be
0:01:39.759,0:01:46.079
called some other name
0:01:42.479,0:01:48.320
oh well uh this
0:01:46.079,0:01:50.240
is a mistake I believe because it leads
0:01:48.320,0:01:51.119
to a lot of confusion it would have been
0:01:50.240,0:01:55.759
clearer
0:01:51.119,0:01:59.600
if we had uh used the other naming
0:01:55.759,0:02:00.399
because the difference between having a
0:01:59.600,0:02:04.159
package in
0:02:00.399,0:02:07.840
core Emacs and having it in gnu elpa
0:02:04.159,0:02:09.679
is purely a practical convenience matter
0:02:07.840,0:02:12.000
convenience of distribution and
0:02:09.679,0:02:14.879
convenience of maintenance
0:02:12.000,0:02:16.800
we wanted to be able to move packages
0:02:14.879,0:02:20.160
between the two
0:02:16.800,0:02:21.200
whenever that was convenient so to make
0:02:20.160,0:02:23.200
that possible
0:02:21.200,0:02:26.319
we insisted on getting copyright
0:02:23.200,0:02:28.800
assignments for packages in gnu elpa
0:02:26.319,0:02:31.360
just the same way we do for packages in
0:02:28.800,0:02:33.760
core Emacs
0:02:31.360,0:02:36.239
having the facility for installing
0:02:33.760,0:02:39.440
packages from package archives
0:02:36.239,0:02:42.239
led to a tremendous boost in the
0:02:39.440,0:02:44.879
development and release of emax packages
0:02:42.239,0:02:46.560
unfortunately there was a problem with
0:02:44.879,0:02:49.120
the way that was done
0:02:46.560,0:02:50.000
for the most part the developers of
0:02:49.120,0:02:52.480
these packages
0:02:50.000,0:02:53.599
wouldn't even tell us about them they
0:02:52.480,0:02:56.720
posted them
0:02:53.599,0:02:58.480
in another package archive where we
0:02:56.720,0:03:02.000
didn't know about them
0:02:58.480,0:03:03.120
and where they no attempt was made to
0:03:02.000,0:03:06.560
try to fit them
0:03:03.120,0:03:10.879
into Emacs so that they could make sense
0:03:06.560,0:03:14.480
as parts of the Emacs distribution
0:03:10.879,0:03:16.959
this led to both moral problems
0:03:14.480,0:03:19.599
packages that depended on non-free
0:03:16.959,0:03:22.159
software in order to be usable
0:03:19.599,0:03:24.319
and technical problems because the
0:03:22.159,0:03:26.159
developers of those packages didn't
0:03:24.319,0:03:29.519
coordinate with us
0:03:26.159,0:03:33.040
about how to make it useful and
0:03:29.519,0:03:36.000
convenient and clean to have them
0:03:33.040,0:03:36.000
in Emacs
0:03:36.560,0:03:44.840
so the idea of non-gdu elpa
0:03:41.120,0:03:48.319
is an effort to smooth these things
0:03:44.840,0:03:51.680
out the fundamental plan of
0:03:48.319,0:03:54.480
non-gnu eopa is that
0:03:51.680,0:03:56.159
we won't ask for copyright assignments
0:03:54.480,0:03:58.560
for those packages
0:03:56.159,0:04:00.000
so we won't be able to put them into
0:03:58.560,0:04:04.080
core Emacs
0:04:00.000,0:04:06.959
at least not easily but we will
0:04:04.080,0:04:09.200
have some control over how we distribute
0:04:06.959,0:04:09.200
them
0:04:09.519,0:04:15.439
we can put any package into
0:04:12.640,0:04:16.320
non-gnu elpa as long as it's free
0:04:15.439,0:04:19.440
software
0:04:16.320,0:04:23.360
if we like it we can
0:04:19.440,0:04:25.919
set up that way for users to get it
0:04:23.360,0:04:26.720
we could put the package in exactly as
0:04:25.919,0:04:29.919
it is
0:04:26.720,0:04:32.160
if there's no problem at all with it
0:04:29.919,0:04:34.160
we can make an arrangement with the
0:04:32.160,0:04:38.000
packages developers
0:04:34.160,0:04:40.880
to work on it with us and maintain it
0:04:38.000,0:04:42.560
directly for distribution by non-gdu
0:04:40.880,0:04:45.280
elpa
0:04:42.560,0:04:46.080
but if they are not interested we can
0:04:45.280,0:04:49.680
put it in
0:04:46.080,0:04:52.000
ourselves and if we need to make any
0:04:49.680,0:04:55.120
changes we can do so
0:04:52.000,0:04:59.040
so non-gnu elpa
0:04:55.120,0:05:01.360
is not meant to be just a way
0:04:59.040,0:05:02.720
that others can distribute their
0:05:01.360,0:05:05.039
packages
0:05:02.720,0:05:06.000
it's meant at least in a minimal
0:05:05.039,0:05:10.479
technical
0:05:06.000,0:05:12.800
sense to work with gnu Emacs and we'll
0:05:10.479,0:05:14.240
make changes if necessary so that it
0:05:12.800,0:05:18.080
works smoothly with
0:05:14.240,0:05:18.080
Emacs and
0:05:18.720,0:05:23.280
this means that we're going to maintain
0:05:22.160,0:05:27.600
it differently
0:05:23.280,0:05:29.759
from gnu elpa well gnu elpa
0:05:27.600,0:05:31.520
is hosted in a way that is actually
0:05:29.759,0:05:35.600
rather inconvenient
0:05:31.520,0:05:38.639
it is one single git repository
0:05:35.600,0:05:39.039
and so anybody that has access to write
0:05:38.639,0:05:42.560
it
0:05:39.039,0:05:44.639
can write any part of it there are many
0:05:42.560,0:05:46.080
different packages in there maintained
0:05:44.639,0:05:48.080
by different people
0:05:46.080,0:05:50.960
and we have no way to give each one of
0:05:48.080,0:05:54.720
them access to per own package
0:05:50.960,0:05:58.400
and not to the others well with non-gnu
0:05:54.720,0:05:59.440
elpa we plan to fix that the idea is to
0:05:58.400,0:06:02.479
have
0:05:59.440,0:06:05.600
a single git repository where you can
0:06:02.479,0:06:08.800
download various packages from
0:06:05.600,0:06:10.800
but they won't be maintained there each
0:06:08.800,0:06:14.080
of those packages will be
0:06:10.800,0:06:15.280
copied automatically from some other
0:06:14.080,0:06:18.800
place
0:06:15.280,0:06:21.759
probably some other repository where
0:06:18.800,0:06:22.960
the right people have access to work on
0:06:21.759,0:06:26.479
it
0:06:22.960,0:06:28.160
and this way we can avoid giving a
0:06:26.479,0:06:32.000
gigantic number of people
0:06:28.160,0:06:32.000
access to every part of it
0:06:32.240,0:06:40.479
so far non-gnu elpa is just a plan
0:06:37.039,0:06:43.280
we need people to implement the plan
0:06:40.479,0:06:45.120
so if you would like to help please
0:06:43.280,0:06:47.759
write to me
0:06:45.120,0:06:49.520
I think this is a very important step
0:06:47.759,0:06:52.639
for progress
0:06:49.520,0:06:57.919
and it's got to be implemented
0:06:52.639,0:06:57.919
thanks and happy hacking
|