summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt
blob: 89dc142e7946afc0b0edfe2843fa36df4fe1a16d (plain) (tree)
1
2
3
4
5
6
7
8
9
10




                             

                             
 

                              
 

                             
 

                             









                                       
                             
                                 
               






                                       

                                
 


                                       
 

                                     
 


                             
 

                              
 

                             
 

                             
 


                                   
 

                             
 

                               






                                        
                             
                                 







                                      

                                       
 


                                    



                               

                             
 

                                 
 

                               
 

                             
 

                             
 

                             

                             
                                
 

                              
 


                                  



                                         

                             
 

                               






                                     

                             
 

                             






                                    
                             
                                       



















                                          
                             
                                    

              

                                 
 


                                   
 

                               
 

                             










                                        

                             
 

                                        
 

                             
 

                                        
 

                             



                               


                                    



                             


                             
 

                             

                             
                   






                                      
                             
                                     

           

                             
 


                                      
 

                                       
 

                              
 


                                     
 


                             



                                     

                             
 

                             



                                     

                                         
 

                               
 

                             
 

                                   
 

                             
 

                                  
 


                                     
 

                             
 

                             
 

                             
 

                                    
 

                                     
 


                                      
 


                                      



                                


                              
 

                             
 


                                      






                                      

                             
 


                             
 


                             
 

                                             
 

                                   
 

                              
 

                                           
 

                              
 

                                                 
 

                                
 

                             









                                     

                              
 

                             
 

                                                  




                               
                         
WEBVTT

00:00:00.320 --> 00:00:03.280
Hello, I'm Richard Stallman,

00:00:03.280 --> 00:00:07.816
founder of the GNU project.

00:00:07.816 --> 00:00:09.200
In 1976, I developed the first

00:00:09.200 --> 00:00:12.320
Emacs editor with some help

00:00:12.320 --> 00:00:13.440
from Guy Steele.

00:00:13.440 --> 00:00:15.839
Then, shortly after starting to develop

00:00:15.839 --> 00:00:19.119
the GNU operating system in 1984,

00:00:19.119 --> 00:00:22.240
I wanted an Emacs editor for it.

00:00:22.240 --> 00:00:29.519
So I started writing GNU Emacs in
September 1984.

00:00:29.519 --> 00:00:32.640
Several years ago we decided to move

00:00:32.640 --> 00:00:35.920
many of the Emacs Lisp packages outside

00:00:35.920 --> 00:00:39.866
the core Emacs distribution into

00:00:39.866 --> 00:00:46.480
a separate package archive that we call
the Emacs Lisp package archive ELPA.

00:00:46.480 --> 00:00:49.555
There were two main reasons for this.

00:00:49.555 --> 00:00:51.520
One is to make the Emacs
distribution smaller

00:00:51.520 --> 00:00:54.870
so every user wouldn't have to

00:00:54.870 --> 00:00:55.680
get all the packages

00:00:55.680 --> 00:00:58.820
and install all the packages.

00:00:58.820 --> 00:01:00.480
And the other reason was to make it
possible to

00:01:00.480 --> 00:01:03.485
release individual packages

00:01:03.485 --> 00:01:08.880
separately from Emacs releases.

00:01:08.880 --> 00:01:13.119
Now, at that point somehow we decided to

00:01:13.119 --> 00:01:17.040
support loading packages from

00:01:17.040 --> 00:01:21.119
a variety of different Emacs Lisp
package archives

00:01:21.119 --> 00:01:25.520
and ours would be called the GNU ELPA,

00:01:25.520 --> 00:01:29.280
but ELPA could be any other.

00:01:29.280 --> 00:01:32.945
Now, I think that naming was a mistake.

00:01:32.945 --> 00:01:35.119
We should have meant, we should have
decided that ELPA

00:01:35.119 --> 00:01:37.759
referred to our package archive

00:01:37.759 --> 00:01:39.297
and any other package archive

00:01:39.297 --> 00:01:42.479
should be called some other name.

00:01:42.479 --> 00:01:46.128
Oh, well! Uh this is a mistake,

00:01:46.128 --> 00:01:48.320
I believe, because it leads

00:01:48.320 --> 00:01:49.397
to a lot of confusion.

00:01:49.397 --> 00:01:51.119
It would have been clearer

00:01:51.119 --> 00:01:55.759
if we had used the other naming.

00:01:55.759 --> 00:01:59.812
Because the difference between

00:01:59.812 --> 00:02:04.159
having a package in core Emacs and
having it in GNU ELPA,

00:02:04.159 --> 00:02:07.840
is purely a practical convenience matter.

00:02:07.840 --> 00:02:10.501
Convenience of distribution

00:02:10.501 --> 00:02:12.000
and convenience of maintenance.

00:02:12.000 --> 00:02:14.879
We wanted to be able to move packages

00:02:14.879 --> 00:02:16.800
between the two

00:02:16.800 --> 00:02:19.258
whenever that was convenient.

00:02:19.258 --> 00:02:21.200
So, to make that possible

00:02:21.200 --> 00:02:23.200
we insisted on getting copyright

00:02:23.200 --> 00:02:26.319
assignments for packages in GNU ELPA

00:02:26.319 --> 00:02:31.360
just the same way we do for packages in
core Emacs.

00:02:31.360 --> 00:02:33.760
Having the facility for installing

00:02:33.760 --> 00:02:36.239
packages from package archives,

00:02:36.239 --> 00:02:39.440
led to a tremendous boost in the

00:02:39.440 --> 00:02:42.239
development and release of Emacs packages.

00:02:42.239 --> 00:02:44.879
Unfortunately there was a problem with

00:02:44.879 --> 00:02:46.560
the way that was done.

00:02:46.560 --> 00:02:50.000
For the most part, the developers of
these packages

00:02:50.000 --> 00:02:52.218
wouldn't even tell us about them.

00:02:52.218 --> 00:02:56.027
They posted them in another package
archive

00:02:56.027 --> 00:02:58.480
where we didn't know about them

00:02:58.480 --> 00:03:03.120
and no attempt was made to
try to fit them

00:03:03.120 --> 00:03:06.560
into Emacs so that they could make sense

00:03:06.560 --> 00:03:10.879
as parts of the Emacs distribution.

00:03:10.879 --> 00:03:14.480
This led to both moral problems,

00:03:14.480 --> 00:03:16.375
(packages that depended on

00:03:16.375 --> 00:03:19.599
non-free software in order to be usable)

00:03:19.599 --> 00:03:21.354
and technical problems,

00:03:21.354 --> 00:03:24.877
because the developers of those packages

00:03:24.877 --> 00:03:26.159
didn't coordinate with us

00:03:26.159 --> 00:03:29.519
about how to make it useful and

00:03:29.519 --> 00:03:36.560
convenient and clean to have them in
Emacs.

00:03:36.560 --> 00:03:41.120
So, the idea of NonGNU ELPA

00:03:41.120 --> 00:03:45.337
is an effort to smooth these
things out.

00:03:45.337 --> 00:03:48.319
The fundamental plan of

00:03:48.319 --> 00:03:51.680
NonGNU ELPA is that

00:03:51.680 --> 00:03:54.480
we won't ask for copyright assignments

00:03:54.480 --> 00:03:56.159
for those packages.

00:03:56.159 --> 00:04:00.000
So, we won't be able to put them into
core Emacs;

00:04:00.000 --> 00:04:03.550
at least not easily,

00:04:03.550 --> 00:04:09.519
but we will have some control over how
we distribute them.

00:04:09.519 --> 00:04:14.691
We can put any package into NonGNU ELPA

00:04:14.691 --> 00:04:16.320
as long as it's free software.

00:04:16.320 --> 00:04:23.360
If we like it, we can set up that way
for users to get it.

00:04:23.360 --> 00:04:26.720
We could put the package in
exactly as it is

00:04:26.720 --> 00:04:29.919
if there's no problem at all with it.

00:04:29.919 --> 00:04:32.647
We can make an arrangement

00:04:32.647 --> 00:04:34.160
with the package's developers

00:04:34.160 --> 00:04:38.000
to work on it with us and maintain it

00:04:38.000 --> 00:04:42.560
directly for distribution by NonGNU ELPA,

00:04:42.560 --> 00:04:45.778
but if they are not interested,

00:04:45.778 --> 00:04:48.729
we can put it in ourselves,

00:04:48.729 --> 00:04:50.453
and if we need to make any changes,

00:04:50.453 --> 00:04:52.000
we can do so.

00:04:52.000 --> 00:04:58.688
So, NonGNU ELPA is not meant to be

00:04:58.688 --> 00:05:02.720
just a way that others can distribute
their packages.

00:05:02.720 --> 00:05:04.336
It's meant, at least in

00:05:04.336 --> 00:05:07.574
a minimal technical sense,

00:05:07.574 --> 00:05:10.686
to work with GNU Emacs,

00:05:10.686 --> 00:05:12.305
and we'll make changes if necessary,

00:05:12.305 --> 00:05:17.928
so that it works smoothly with Emacs.

00:05:17.928 --> 00:05:25.365
And this means that we're going to
maintain it differently from GNU ELPA.

00:05:25.365 --> 00:05:31.520
Well, GNU ELPA is hosted in a way that
is actually rather inconvenient.

00:05:31.520 --> 00:05:35.600
It is one single Git repository.

00:05:35.600 --> 00:05:39.039
And so anybody that has access
to write it

00:05:39.039 --> 00:05:41.239
can write any part of it.

00:05:41.239 --> 00:05:46.080
There are many different packages in
there, maintained by different people,

00:05:46.080 --> 00:05:48.080
and we have no way to give each one of

00:05:48.080 --> 00:05:50.960
them access to per own package

00:05:50.960 --> 00:05:53.122
and not to the others.

00:05:53.122 --> 00:05:57.035
Well, with NonGNU ELPA,
we plan to fix that.

00:05:57.035 --> 00:06:01.411
The idea is to have
a single Git repository

00:06:01.411 --> 00:06:05.600
where you can download various packages from.

00:06:05.600 --> 00:06:08.400
But they won't be maintained there.

00:06:08.400 --> 00:06:10.800
Each of those packages will be

00:06:10.800 --> 00:06:15.280
copied automatically from some other place.

00:06:15.280 --> 00:06:18.311
Probably some other repository

00:06:18.311 --> 00:06:22.960
where the right people have access to work on it.

00:06:22.960 --> 00:06:26.375
And this way we can avoid giving

00:06:26.375 --> 00:06:28.160
a gigantic number of people

00:06:28.160 --> 00:06:32.240
access to every part of it.

00:06:32.240 --> 00:06:37.039
So far NonGNU ELPA is just a plan,

00:06:37.039 --> 00:06:40.479
we need people to implement the plan.

00:06:40.479 --> 00:06:43.825
So, if you would like to help,

00:06:43.825 --> 00:06:45.120
please write to me.

00:06:45.120 --> 00:06:49.520
I think this is a very important step for progress

00:06:49.520 --> 00:06:52.639
and it's got to be implemented.

00:06:52.639 --> 00:06:57.919
Thanks and happy hacking!