summaryrefslogblamecommitdiffstats
path: root/2020/info/39.md
blob: 32b06cb77a56cc2722246812f09d683f1cd85d89 (plain) (tree)
1
2
3
4
5
6
7
8
9

                
                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                           
                              
 
                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                        
                                                
 
                      
 
                                                                   
 
                                                                     
                                                              
                                                              
 
                                                     
 
                                                                     






                                                                                                                                                                                                                       
                                                                    
 
                                                                   
 
                            
 
                                                                 
                                                                                                                                                                                         
                                                                     
 
                                                         
 

                                                                      
 

                                                                     

                                                                                                                                                              
                                                                   
                             
 
                                                  
 
                                                                                                                                                                                      
                                                           
 
                                                                  
 
                             
 


                                                                      

                                                               
                                                  
                                                                     
 


                                                                                                
 





                                                                                                                                                                                             
                                                                                                                                                                                                     
                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                 
 
                                          
 
                                                                      
 


                                                                    
 


                                                                                                                                    
 
                                                                             
                                       
 
                                                                      
                                                    
    
 
                                                                                                                    
 


                                                                     
                                                                                                                                           
                                                
 
                                                                      
                                                                          
 
                                                                                                               

                                                                 
                                                 
   
 

                                                                                                                                                              
 
                                                                  
 

                                                                      
                                                                                                                                    



                                                                    
 
                                                                     

                                                                                                                                                                




                                                                      
 

                                                             
                                                                                               








                                                                                                                                                                                                     
                                        
 







                                                                                  

                                                                                                                                                               








                                                                     
       











                                                                      




                                                                                        



























































































































                                                                                                                                                       





















































































































































































































































                                                                                                   
                                                                      
































































































































































































                                                                        
# NonGNU ELPA
Richard Stallman

[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--39-nongnu-elpa--richard-stallman.webm" size="282M" subtitles="/2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt" duration="6:56"]] 
[Download compressed .webm video (72.9M)](https://media.emacsconf.org/2020/emacsconf-2020--39-nongnu-elpa--richard-stallman--compressed32.webm)  
[Download compressed .webm video (20.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--39-nongnu-elpa--richard-stallman--vp9-q56-video-original-audio.webm)
[View transcript](#transcript)

[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.webm" size="470M" subtitles="/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt" duration="46:42" download="Download Q&A video"]]  
[Download compressed Q&A .webm video (0)](https://media.emacsconf.org/2020/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman--compressed32.webm)  
[Download compressed Q&A .webm video (44M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman--vp9-q56-video-original-audio.webm)
[View transcript for Q&A](#transcript-questions)

<!-- from the pad --->

- Actual start and end time (EST): Start: 2020-11-29T11.09.04; Q&A:
  2020-11-29T11.15.59; End: 2020-11-29T12.04.31

# Questions
(speaker can answer in any order or choose which ones to respond to).

## Q30: Would you mind sharing your Emacs configuration files?
[RMS] Configuration files are personal and will not be shared.

## Q29: Have you ever looked into Magit?
[RMS] No, but I might when it gets merged into Emacs.

RMS mentioned he heard it's being worked on and it indeed is, tarsius
wrote about the progress on that on emacs-devel some time ago.

## Q28: Are there any more interesting projects you have in mind over and above NonGNU ELPA and look for people to contribute?


## Q27: Is interfacing with non-free hardware enablement libraries like OpenGL or Vulkan with free code considered a "big compromise" ? (those libraries are for hardware accelerated graphics, if you aren't familiar)


## Q26: How often do you personally use Emacs?
Most of the day. Occasionally uses LibreOffice and media
players. Occasionally even SSH into a machine that runs Emacs on it.

Read PDF files a lot. Would be nice to read and edit them in Emacs.

(ann: pdf-tools might help.)

Uses [Xournal](http://xournal.sourceforge.net/) to annotate PDFs.

## Q25: What is your opinion on higher education, especially given the current situation with COVID-19 where students are required to use non-free software to comply with their courses?
He'd resist. However, he admits that he is in a position where he can
resist, especially as a Free Software advocator.

<https://www.gnu.org/philosophy/saying-no-even-once.html>

However, there are a lot of points in-between saying "no" all the time
and never saying "no" at all. You can still advocate Free Software and
state your reluctance.

Exactly as a student that is tho only one in the department that uses
GNU/Linux, if something doesn't work its my fault for using Fedora
(even when Windows install doesnt work either) and I am on my own.

## Q24: Is there any plan to moving more packages from core emacs into ELPA? Would you be opposed to it? For example: newsticker, libraries with niche appeal.

## Q23: How do you see the future of GNU Emacs ? (btw, thank you !)
[RMS] I don't see the future.

"From past experiences, there will be challenges."

## Q22: If you knew that you would get hit by a bus tomorrow, say because of a fortune-teller, what would you leave behind in terms of advice for stewardship of Emacs and its future?
Focus on keeping the community strong in defending freedom.

If given the choice to have more people developing the software or
defending the software, choose the latter.

Guard your soul carefully. :P

(The question could be rephrased with, say a brain tumor or
something. Not to be morbid! just wondering if you had such
thoughts. about guidance or even just "what do you want your legacy to
be defined as?")

## Q21: Which are your preferred packages that you usually use?

## Q20: What tools from pre-UNIX days do you miss?

DDT as login shell (!)  (<- didn't he say GDB? don't think so. gdb is
not pre-UNIX as it's GNU) NO. DDT was (I think) a TOPS20 thing.

- What is DDT?  Dynamic Debugging
  Tool. <https://en.wikipedia.org/wiki/Dynamic_debugging_technique> (I
  guess)
  <https://www.livingcomputers.org/UI/UserDocs/TOPS-20-v7-1/3_TOPS-20_DDT_(Debugger)_Manual.pdf>

## Q19: Magic wand time: what would you change about free-software? (aside "yay, we won") [ETA: magic wand="make a wish about what you want to see happen, have happended differently, etc."]
- Don't give up!  20yrs is nothing!  We'll get 'em yet.💪
- What is Magic wand time? Nah, if you can use the magic to change
  anything.
- Show everyone why most software needs to be copylefted, so that our
  community does not need to use software produced by proprietary
  software developers.

## Q18: What do you recommend to a recent graduate who wants to get his first job but can't find one that deals with free-software and every job or interview he gets it's non-free software related?
Very sad thing. I would get a different kind of job. I would live
cheaply (more flexibility).

## Q17: You've been a very important part of the Free Software movement, some argue the most important part. I very much appreciate that! Thank you. I think it's necessary to encourage more diversity within Emacs, however, that's difficult to do with the instances of sexual harassment that have come out. Are you or do you plan to work on addressing those situations and preventing further situations going forward?
[Not going to be answered. (Everyone, please also remember CoC)].

I will forgive them if they stop bullying.

Emacs is being extended in Emacs Lisp, and implementing something else
will be hard to nearly impossible, though nice.

- Note from RMS: "If someone who has condemned me unjustly takes it
  back, that will make it safe for me to empathize with any feelings
  of hurt that pers might have felt as a result of the
  misunderstanding and I will be very glad to show compassion."

## Q16: How is the current state of the work in progress Pagure Git repository? Is it going to have the main Emacs repository on it?
That's more of an FSF project (the FSF forge project). There is
ongoing work on it by the FSF tech team. Also agreement to possibly
run another VM of the forge software for the GNU project.

## Q14: Which is your favorite programming language ? if Lisp, which variant?
Don't exactly have a favourite variant.

Emacs-Lisp was originally used in an environment with only a .5MB user
memory environment. That also contributed to the design of Elisp.

## Q13: Is it ok to use the AGPL for Emacs packages?
Yes.

## Q12: Won't the NonGNU ELPA link to non-free sites like GitHub? This does: <https://elpa.gnu.org/nongnu/caml.html>
- Same for GNU ELPA <https://elpa.gnu.org/packages/company.html>

Mistake to talk about a non-free site. A site is not a program. It
also depends on whether the JavaScript is non-free. See
<https://www.gnu.org/philosophy/free-sw.en.html> for a description of
what Free Software is.

## Q11: Who gets to make the final decision regarding NonGNU ELPA? Is this a community decision or something that you get the last word on?
The Emacs maintainers will be in charge of this.

## Q10: Which distro of GNU/Linux do you use? Guix? or something else?
Trisquel <https://trisquel.info/> <https://en.wikipedia.org/wiki/Trisquel>

## Q9: Are there any plans to implement security considerations in NonGNU Elpa? Required code signing or other?
Probably should. Emacs maintainers verifying can take care of the
security. With automatic copying, we'll need to make sure we're
fetching the packages securely

## Q8: Do you / have you used Vi(m) or evil mode?
No.

## Q7: When you wrote that you could add a package to NonGNU ELPA, are you implying that you would add packages with or without package maintainers knowledge?
Yes. Of course! The packages are free software. Everyone is entitled
to redistribute them. That's the idea behind free software.

The idea, that packages in a package archives must only be mirrors
contradicts(?) the idea of free software.

If a package is being maintained by developers cooperating with NonGNU
ELPA, then they're (the NonELPA maintainers) are fine with it, as
there is enough to do.

## Q6: Why do you insist on using 'per' and 'pers' when it's clear the LBGTQIA+ community is generally not happy with that language?
Not happy with using "they" as singular, causes gratuitous
confusion. Do not accept the demands of other people re: changing my
country grammar.
<https://stallman.org/articles/genderless-pronouns.html> - not a GNU
Project policy, personal ideas on the subject. 

If you feel offended: contact RMS privately and explain your reasons.

## Q5: Any thoughts of packages being added as <https://en.wikipedia.org/wiki/Post_open_source> (a school of thought discarding licenses altogether) into ELPA ?

Not familiar with the URL, unlikely to have much in
common. Disregarding licenses - basically asking to lose. Not going to
disregard the question of whether the software we recommend to people
is free software or not. That's basically blindfolding yourself to the
legal issues. If you want to contribute to the free world, put free
licenses on your code

- <https://gnu.org/licenses>
- <https://www.gnu.org/licenses/license-recommendations.html>
- <https://www.gnu.org/licenses/license-list.en.html>

## Q4: Is it possible to work with the MELPA team to integrate that into Emacs in a better way?
No. The goal doesn't make sense. MELPA, the way it's done, doesn't
belong within Emacs. (Copyright assignments unfeasible). Could MELPA
be merged with NonGNU ELPA? MELPA doesn't modify packages, puts
packages in with only a little bit of checking. There are a lot of
packages in MELPA that we'd like to get into NonGNU ELPA. They've got
to be looked at one by one. If MELPA contributors want to get
involved, that would be great. Haven't tried asking them, still
getting things set up.

## Q3: I don't quite get the benefits of a NonGNU ELPA with respect to other archives such as MELPA. Can you please give use some more details on what you have in mind? Are you seeking for control?
I hope that people now see the benefits.

## Q2: Does NonGNU ELPA already exist? Or is this a sort of "plan" for the future?
In between. The creation of it has started. There's an archive and you
can download packages. There's a repository to put it in. It's not
supposed to be like ELPA where there's one repo for everything. Some
packages will make an arrangement with the developers who will do
things as things should be done, and their code will be copied over
automatically (or manually with verification). In other cases, we'll
need to have our own repo for particular packages. Still working out
the procedures, how to make the arrangements with developers, etc.


## Q1: What is an example of a package currently in a non-ELPA repo that does not work well with Emacs? Since integration with Emacs is described as a problem.
s.el - that made me aware that there's an issue here. Beautifully
written package, very useful for people. There's just one thing wrong
with it - it gobbled up the namespace of symbols starting with s-. I
was shocked to discover that someone had used such a short prefix
without coordinating. Any attempt to use s- for anything else =
problem. New symbol renaming feature - the idea is that you rename
that file to something else, and then you define symbol renaming to
run the same code without interfering with global namespace. &#x2026;
We can put packages in NonGNU ELPA and make changes to them to help
them fit in.

# Notes
- ELPA was created to make it possible to release Emacs packages
  independently of Emacs releases.
- Package archives in general lead to a boost of package
  development/generation. However, those packages were created without
  notifying the GNU Emacs team/GNU ELPA managers.
- NonGNU ELPA will not require copyright assignments, but must be free
  (as in freedom) software.
- GNU ELPA is one big Git repository, and giving someone access grants
  them access to everything.
- Note from RMS: "If someone who has condemned me unjustly takes it
  back, that will make it safe for me to empathize with any feelings
  of hurt that pers might have felt as a result of the
  misunderstanding and I will be very glad to show compassion."

<!-- transcript: 2020/subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt -->

<a name="transcript"></a>
# Transcript

[[!template new="1" text="Hello, I'm Richard Stallman," start="00:00:00.320" video="mainVideo" id=subtitle]]
[[!template text="founder of the GNU project." start="00:00:03.280" video="mainVideo" id=subtitle]]
[[!template text="In 1976, I developed the first" start="00:00:07.816" video="mainVideo" id=subtitle]]
[[!template text="Emacs editor with some help" start="00:00:09.200" video="mainVideo" id=subtitle]]
[[!template text="from Guy Steele." start="00:00:12.320" video="mainVideo" id=subtitle]]
[[!template text="Then, shortly after starting to develop" start="00:00:13.440" video="mainVideo" id=subtitle]]
[[!template text="the GNU operating system in 1984," start="00:00:15.839" video="mainVideo" id=subtitle]]
[[!template text="I wanted an Emacs editor for it." start="00:00:19.119" video="mainVideo" id=subtitle]]
[[!template text="So I started writing GNU Emacs in September 1984." start="00:00:22.240" video="mainVideo" id=subtitle]]
[[!template new="1" text="Several years ago we decided to move" start="00:00:29.519" video="mainVideo" id=subtitle]]
[[!template text="many of the Emacs Lisp packages outside" start="00:00:32.640" video="mainVideo" id=subtitle]]
[[!template text="the core Emacs distribution into" start="00:00:35.920" video="mainVideo" id=subtitle]]
[[!template text="a separate package archive that we call the Emacs Lisp package archive ELPA." start="00:00:39.866" video="mainVideo" id=subtitle]]
[[!template text="There were two main reasons for this." start="00:00:46.480" video="mainVideo" id=subtitle]]
[[!template text="One is to make the Emacs distribution smaller" start="00:00:49.555" video="mainVideo" id=subtitle]]
[[!template text="so every user wouldn't have to" start="00:00:51.520" video="mainVideo" id=subtitle]]
[[!template text="get all the packages" start="00:00:54.870" video="mainVideo" id=subtitle]]
[[!template text="and install all the packages." start="00:00:55.680" video="mainVideo" id=subtitle]]
[[!template text="And the other reason was to make it possible to" start="00:00:58.820" video="mainVideo" id=subtitle]]
[[!template text="release individual packages" start="00:01:00.480" video="mainVideo" id=subtitle]]
[[!template text="separately from Emacs releases." start="00:01:03.485" video="mainVideo" id=subtitle]]
[[!template new="1" text="Now, at that point somehow we decided to" start="00:01:08.880" video="mainVideo" id=subtitle]]
[[!template text="support loading packages from" start="00:01:13.119" video="mainVideo" id=subtitle]]
[[!template text="a variety of different Emacs Lisp package archives" start="00:01:17.040" video="mainVideo" id=subtitle]]
[[!template text="and ours would be called the GNU ELPA," start="00:01:21.119" video="mainVideo" id=subtitle]]
[[!template text="but ELPA could be any other." start="00:01:25.520" video="mainVideo" id=subtitle]]
[[!template text="Now, I think that naming was a mistake." start="00:01:29.280" video="mainVideo" id=subtitle]]
[[!template text="We should have meant, we should have decided that ELPA" start="00:01:32.945" video="mainVideo" id=subtitle]]
[[!template text="referred to our package archive" start="00:01:35.119" video="mainVideo" id=subtitle]]
[[!template text="and any other package archive" start="00:01:37.759" video="mainVideo" id=subtitle]]
[[!template text="should be called some other name." start="00:01:39.297" video="mainVideo" id=subtitle]]
[[!template text="Oh, well! Uh this is a mistake," start="00:01:42.479" video="mainVideo" id=subtitle]]
[[!template text="I believe, because it leads" start="00:01:46.128" video="mainVideo" id=subtitle]]
[[!template text="to a lot of confusion." start="00:01:48.320" video="mainVideo" id=subtitle]]
[[!template text="It would have been clearer" start="00:01:49.397" video="mainVideo" id=subtitle]]
[[!template text="if we had used the other naming." start="00:01:51.119" video="mainVideo" id=subtitle]]
[[!template new="1" text="Because the difference between" start="00:01:55.759" video="mainVideo" id=subtitle]]
[[!template text="having a package in core Emacs and having it in GNU ELPA," start="00:01:59.812" video="mainVideo" id=subtitle]]
[[!template text="is purely a practical convenience matter." start="00:02:04.159" video="mainVideo" id=subtitle]]
[[!template text="Convenience of distribution" start="00:02:07.840" video="mainVideo" id=subtitle]]
[[!template text="and convenience of maintenance." start="00:02:10.501" video="mainVideo" id=subtitle]]
[[!template text="We wanted to be able to move packages" start="00:02:12.000" video="mainVideo" id=subtitle]]
[[!template text="between the two" start="00:02:14.879" video="mainVideo" id=subtitle]]
[[!template text="whenever that was convenient." start="00:02:16.800" video="mainVideo" id=subtitle]]
[[!template text="So, to make that possible" start="00:02:19.258" video="mainVideo" id=subtitle]]
[[!template text="we insisted on getting copyright" start="00:02:21.200" video="mainVideo" id=subtitle]]
[[!template text="assignments for packages in GNU ELPA" start="00:02:23.200" video="mainVideo" id=subtitle]]
[[!template text="just the same way we do for packages in core Emacs." start="00:02:26.319" video="mainVideo" id=subtitle]]
[[!template new="1" text="Having the facility for installing" start="00:02:31.360" video="mainVideo" id=subtitle]]
[[!template text="packages from package archives," start="00:02:33.760" video="mainVideo" id=subtitle]]
[[!template text="led to a tremendous boost in the" start="00:02:36.239" video="mainVideo" id=subtitle]]
[[!template text="development and release of Emacs packages." start="00:02:39.440" video="mainVideo" id=subtitle]]
[[!template text="Unfortunately there was a problem with" start="00:02:42.239" video="mainVideo" id=subtitle]]
[[!template text="the way that was done." start="00:02:44.879" video="mainVideo" id=subtitle]]
[[!template text="For the most part, the developers of these packages" start="00:02:46.560" video="mainVideo" id=subtitle]]
[[!template text="wouldn't even tell us about them." start="00:02:50.000" video="mainVideo" id=subtitle]]
[[!template text="They posted them in another package archive" start="00:02:52.218" video="mainVideo" id=subtitle]]
[[!template text="where we didn't know about them" start="00:02:56.027" video="mainVideo" id=subtitle]]
[[!template text="and no attempt was made to try to fit them" start="00:02:58.480" video="mainVideo" id=subtitle]]
[[!template text="into Emacs so that they could make sense" start="00:03:03.120" video="mainVideo" id=subtitle]]
[[!template text="as parts of the Emacs distribution." start="00:03:06.560" video="mainVideo" id=subtitle]]
[[!template text="This led to both moral problems," start="00:03:10.879" video="mainVideo" id=subtitle]]
[[!template text="(packages that depended on" start="00:03:14.480" video="mainVideo" id=subtitle]]
[[!template text="non-free software in order to be usable)" start="00:03:16.375" video="mainVideo" id=subtitle]]
[[!template text="and technical problems," start="00:03:19.599" video="mainVideo" id=subtitle]]
[[!template text="because the developers of those packages" start="00:03:21.354" video="mainVideo" id=subtitle]]
[[!template text="didn't coordinate with us" start="00:03:24.877" video="mainVideo" id=subtitle]]
[[!template text="about how to make it useful and" start="00:03:26.159" video="mainVideo" id=subtitle]]
[[!template text="convenient and clean to have them in Emacs." start="00:03:29.519" video="mainVideo" id=subtitle]]
[[!template new="1" text="So, the idea of NonGNU ELPA" start="00:03:36.560" video="mainVideo" id=subtitle]]
[[!template text="is an effort to smooth these things out." start="00:03:41.120" video="mainVideo" id=subtitle]]
[[!template text="The fundamental plan of" start="00:03:45.337" video="mainVideo" id=subtitle]]
[[!template text="NonGNU ELPA is that" start="00:03:48.319" video="mainVideo" id=subtitle]]
[[!template text="we won't ask for copyright assignments" start="00:03:51.680" video="mainVideo" id=subtitle]]
[[!template text="for those packages." start="00:03:54.480" video="mainVideo" id=subtitle]]
[[!template text="So, we won't be able to put them into core Emacs;" start="00:03:56.159" video="mainVideo" id=subtitle]]
[[!template text="at least not easily," start="00:04:00.000" video="mainVideo" id=subtitle]]
[[!template text="but we will have some control over how we distribute them." start="00:04:03.550" video="mainVideo" id=subtitle]]
[[!template text="We can put any package into NonGNU ELPA" start="00:04:09.519" video="mainVideo" id=subtitle]]
[[!template text="as long as it's free software." start="00:04:14.691" video="mainVideo" id=subtitle]]
[[!template text="If we like it, we can set up that way for users to get it." start="00:04:16.320" video="mainVideo" id=subtitle]]
[[!template text="We could put the package in exactly as it is" start="00:04:23.360" video="mainVideo" id=subtitle]]
[[!template text="if there's no problem at all with it." start="00:04:26.720" video="mainVideo" id=subtitle]]
[[!template text="We can make an arrangement" start="00:04:29.919" video="mainVideo" id=subtitle]]
[[!template text="with the package's developers" start="00:04:32.647" video="mainVideo" id=subtitle]]
[[!template text="to work on it with us and maintain it" start="00:04:34.160" video="mainVideo" id=subtitle]]
[[!template text="directly for distribution by NonGNU ELPA," start="00:04:38.000" video="mainVideo" id=subtitle]]
[[!template text="but if they are not interested," start="00:04:42.560" video="mainVideo" id=subtitle]]
[[!template text="we can put it in ourselves," start="00:04:45.778" video="mainVideo" id=subtitle]]
[[!template text="and if we need to make any changes," start="00:04:48.729" video="mainVideo" id=subtitle]]
[[!template text="we can do so." start="00:04:50.453" video="mainVideo" id=subtitle]]
[[!template text="So, NonGNU ELPA is not meant to be" start="00:04:52.000" video="mainVideo" id=subtitle]]
[[!template text="just a way that others can distribute their packages." start="00:04:58.688" video="mainVideo" id=subtitle]]
[[!template text="It's meant, at least in" start="00:05:02.720" video="mainVideo" id=subtitle]]
[[!template text="a minimal technical sense," start="00:05:04.336" video="mainVideo" id=subtitle]]
[[!template text="to work with GNU Emacs," start="00:05:07.574" video="mainVideo" id=subtitle]]
[[!template text="and we'll make changes if necessary," start="00:05:10.686" video="mainVideo" id=subtitle]]
[[!template text="so that it works smoothly with Emacs." start="00:05:12.305" video="mainVideo" id=subtitle]]
[[!template text="And this means that we're going to maintain it differently from GNU ELPA." start="00:05:17.928" video="mainVideo" id=subtitle]]
[[!template new="1" text="Well, GNU ELPA is hosted in a way that is actually rather inconvenient." start="00:05:25.365" video="mainVideo" id=subtitle]]
[[!template text="It is one single Git repository." start="00:05:31.520" video="mainVideo" id=subtitle]]
[[!template text="And so anybody that has access to write it" start="00:05:35.600" video="mainVideo" id=subtitle]]
[[!template text="can write any part of it." start="00:05:39.039" video="mainVideo" id=subtitle]]
[[!template text="There are many different packages in there, maintained by different people," start="00:05:41.239" video="mainVideo" id=subtitle]]
[[!template text="and we have no way to give each one of" start="00:05:46.080" video="mainVideo" id=subtitle]]
[[!template text="them access to per own package" start="00:05:48.080" video="mainVideo" id=subtitle]]
[[!template text="and not to the others." start="00:05:50.960" video="mainVideo" id=subtitle]]
[[!template text="Well, with NonGNU ELPA, we plan to fix that." start="00:05:53.122" video="mainVideo" id=subtitle]]
[[!template text="The idea is to have a single Git repository" start="00:05:57.035" video="mainVideo" id=subtitle]]
[[!template text="where you can download various packages from." start="00:06:01.411" video="mainVideo" id=subtitle]]
[[!template text="But they won't be maintained there." start="00:06:05.600" video="mainVideo" id=subtitle]]
[[!template text="Each of those packages will be" start="00:06:08.400" video="mainVideo" id=subtitle]]
[[!template text="copied automatically from some other place." start="00:06:10.800" video="mainVideo" id=subtitle]]
[[!template text="Probably some other repository" start="00:06:15.280" video="mainVideo" id=subtitle]]
[[!template text="where the right people have access to work on it." start="00:06:18.311" video="mainVideo" id=subtitle]]
[[!template text="And this way we can avoid giving" start="00:06:22.960" video="mainVideo" id=subtitle]]
[[!template text="a gigantic number of people" start="00:06:26.375" video="mainVideo" id=subtitle]]
[[!template new="1" text="access to every part of it." start="00:06:28.160" video="mainVideo" id=subtitle]]
[[!template text="So far NonGNU ELPA is just a plan," start="00:06:32.240" video="mainVideo" id=subtitle]]
[[!template text="we need people to implement the plan." start="00:06:37.039" video="mainVideo" id=subtitle]]
[[!template text="So, if you would like to help," start="00:06:40.479" video="mainVideo" id=subtitle]]
[[!template text="please write to me." start="00:06:43.825" video="mainVideo" id=subtitle]]
[[!template text="I think this is a very important step for progress" start="00:06:45.120" video="mainVideo" id=subtitle]]
[[!template text="and it's got to be implemented." start="00:06:49.520" video="mainVideo" id=subtitle]]
[[!template text="Thanks and happy hacking!" start="00:06:52.639" video="mainVideo" id=subtitle]]
<!-- /transcript -->


<!-- transcript: 2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt -->

<a name="transcript-questions"></a>
# Transcript: Q&A

Okay. So, the first question is, "What is an example of a package
currently in a non-ELPA repo that does not work well with Emacs?"
Well, one of them is s.el, and this is what made me aware that there
was an issue here that caused problems. Well, s.el is a beautifully
written package that appears to be very useful for people. And there's
just one thing wrong with it. It gobbled up the name space of symbols
starting with s dash. And I was shocked to discover that somebody who
had not coordinated with the Emacs developers at all, had implemented
a package using such a short prefix, which isn't the right way to do
things. Oh, by the way, the questions have moved off the screen, this
is no good. I can continue answering this one, but I'll be stuck when
this one is over. Anyway, so… I was told that there was nothing I
could do about it, that so many users, packages were using s.el and
thus essentially using that definition of the s-* symbols, that any
attempt to use them publicly or privately for anything else would lead
to horrible problems. And I don't like that.  I decided, I wanted to
do something a) so that wouldn't happen again and b) to make it
unhappen in that case. Well, the way to make it unhappen in that case
is with a new symbol renaming feature. The idea is, you rename that
file to something else, and then you define an s.el that sets up
symbol renaming and then loads the something else.  So, it actually
runs the same code, it just doesn't globally define the symbols s dash
whatever, but they appear to work for the programs that explicitly
require s.el or the s package. So, this gets the same behavior for all
the programs that are using that library and doesn't interfere with
the global name space at all. However, to do that we need to have a
package s.el, that isn't the same totally. A short one file that's
totally different. Plus, we've got to have the file that normally is
called s.el available, but under another name. Well, how are we going
to do that? We can't put this into Emacs in a nice way that won't make
the maintainer angry. (or the developer of that package.) But we can
do it with NonGNU ELPA. We can put those two things into NonGNU ELPA
without any difficulty. And this shows one of the advantages. We can
put files, we can put packages into NonGNU ELPA and make changes in
them. Now, in general we wouldn't go to the effort of making big
changes. That's just too much to do unless something's really
important. But small changes that help things fit in are easy to
do. Okay, oh, so basically the recording didn't get anything until
now. I just saw a note pop up, "this session is now being recorded". I
hope it's been recorded all along. It would be a shame to spoil… Oh,
good okay. So, that's one of the issues.

(04:27) "Does NonGNU ELPA already exist or is this a sort of "plan"?"
I don't know why you have to put scare quotes around the word plan.
It's sort of in between. The creation of it is started. You will find
that there is an archive that it's possible to download packages from,
and there is a repository to put them in, but that's not the way it's
really supposed to work. This is not supposed to be like the GNU ELPA,
where there's one repo for all the packages and thus anyone who wants
to edit any of them, anyone that we want to have edit any of them, has
got to have access to the whole thing for one thing. Some packages
will make an arrangement with the developers, and they'll assure us
that they will do things as things should be done, and then we'll have
their repo copied automatically or in other cases, say, copied
manually with a little checking every so often. In other cases we'll
need to have our own repo for a particular package. But we shouldn't
have a single repo for all the packages. We should have a repo for
each package, so that the people working on that can get access to
modify it. This has to be finished setting up, and we're still working
out the procedures. For instance, for making the arrangements with the
developers of a package so that we can, we hope, entrust its
development to them and rely on them directly. And there may be more
that needs to be worked on. Oh! There's so many questions.

(06:36) Well, I hope you… The third question is, what are the
benefits? I hope that people now see the benefits. I've described
them.

(06:46) Next question, "Is it possible to work with the MELPA team to
integrate that into Emacs?" No, because the goal doesn't make sense.
MELPA the way it's done, does not belong inside Emacs in any
sense. Well, first of all, it can't literally be inside Emacs. We
don't have copyright assignments for that code and to get it would be
unfeasible, but we're not asking for copyright assignments for NonGNU
ELPA so that's you might wonder could MELPA be merged with NonGNU
ELPA? The problem is, MELPA doesn't modify the packages. It's just a
place to find releases of packages wherever they happen to be, and
they put packages in with only a little bit of checking. So, no. There
are a lot of packages that are in MELPA that we'd like to get into
NonGNU ELPA. I don't know the names of most of them, but I expect most
of them would be fine to have. But they've got to be looked at one by
one. There are some rules for NonGNU ELPA, and the only way to check
them is to check them on one package at a time, and that's going to
take effort. Now, with the people who work on MELPA want to get
involved of this, that would be great. I haven't tried asking
them. First we've got to get this thing set up. I doubt they would
want to, but if they said yes, that would be wonderful.

(08:44) "Any thoughts of packages being added…" I'm afraid. Any
thoughts of packages being added as some URL I don't know anything
about, but it talks about open source, which means I'm very unlikely
to have much in common with whatever they say about either licensing
or what's right and wrong. But this seems to be something about
disregarding licenses altogether. Well, that is basically asking to
lose. There are reasons why we developed GNU licenses to release
software, why we have criteria for which licenses make a program free
software. If the program doesn't carry a license or if it carries a
non-free license, that program is not free software. Now, you can
maybe get away with disregarding that fact unless somebody, an author
or publisher stops you. But we're not going to take… we're not
basically going to disregard the question of whether the software we
recommend to people, really is free software or not. That's basically
blindfolding yourself to the legal situation of the software you're
distributing, it's a terrible idea. If they disregard our licenses
they will hear from us about it. And if you want to contribute to the
free world put free licenses on your code and choose good ones. To get
this information, look at gnu.org/licenses, and one page that's
important is license-recommendations.html, that's where we advise you
on what license we would recommend you use depending on the
circumstances. There's also license-list.html which describes a lot of
licenses and says which ones are free, which ones are compatible with
the GNU GPL. It's really important to use only GPL compatible licenses
so that the various programs can be combined together or linked. You
can also get other information about GNU licenses and the reasons why
they are written the way they are. Oh sorry, I don't see the next
question.

(12:03) "Why do I insist on using per and pers?" I'm not happy with
using they, which is a plural pronoun with a singular antecedent.
It's bad because it causes confusion that is completely gratuitous.
Many sentences become a lot of work to parse and understand if you add
that ambiguity, that source of regular ambiguity. Now, I do not accept
the demands of other people in regard to changing my grammar. You can
try to convince me, but no one is entitled to give me orders about
that or state their desires and expect obedience, not for me and not
from you or anyone. We are all equally entitled to decide how we will
speak and how we won't speak. I've spelled out all of these points in
a file called stallman.org/articles/genderless-pronouns.html
(corrected), of course, this is not a GNU project policy, it's my own
personal ideas on the subject. If any of you feels offended by my
referring to you with a singular gender-neutral pronoun, feel free to
contact me privately and explain to me your reasons. I will pay
attention to them, I'll think about them assuming that they're not
something I've already considered and decided to dismiss before. But
you must not speak to me as if I had no business not obeying you
because that's rude, and it is not likely to convince me to change my
mind. I believe it is not actually of stating offense to anyone, and
the fact that somebody disagrees with me does not mean I'm wrong, but
I always can be wrong.

(15:00) "When you wrote that you could add a package to NonGNU ELPA,
are you implying that you would add packages with or without package
maintainer's knowledge?" Of course, the packages we would distribute
in this way are free software. Everyone is entitled to redistribute
them and everyone is also entitled to modify them and redistribute
them, that's part of the meaning of free software. I have been unable
to understand how there came to be an idea that those who redistribute
packages have some obligation to be mere mirrors and not modify things
themselves. Well, if a package is being maintained by developers who
are cooperating with us, we'll normally just leave it to them. After
all, we have lots of other work to do. They are clearly experts on the
packages they've developed, let's leave it to them if they make that
sort of arrangement with us. But that's up to them, we can't insist
that anyone make an arrangement with us, but since those programs are
free software, anyone is free to redistribute them, and we will do
that.

(16:41) "Have you ever used vi or vim or evil mode?" No.

(16:52) "Are there any plans to implement security considerations in
NonGNU ELPA?" We probably should, and this will have to be
implemented, but at the moment developer Emacs maintainers will copy
packages into it, and so as long as they are verifying the packages
and getting the packages from the right place that will take care of
the security. Once there is… When with automatic copying in, will have
to do something to make sure that we're fetching the packages
securely. Some of you might be interested in helping to design and
implement this system. "What distro do I use?"

(17:52) Well, which distro of GNU/Linux do I use? I use Trisquel, I
haven't tried most of the free distros and the reason is, it's not
crucial that I do so, we don't need me to rate the various free
distros on practical questions because anyone can do that as well as I
can. And so you can tell people what you think of using them. For me,
what's important to me is to inform people of the difference between
the free distros and the non-free distros, making sure people are
aware that if you install a non-free GNU/Linux distro, you'll get a
free operating system with non-free stuff in various quantities added,
thus you will not reach freedom, although you'll make a lot of
progress compared with using for instance, Windows or macOS or
whatever vicious thing it might be. I'd like people to be aware of
this next step towards getting freedom for yourself and your own
computing, so that you can do that if you want to.

(19:29) "Who gets to make the final decision regarding NonGNU ELPA?"
The Emacs maintainers are going to be in charge of this, because it's
not just a technical decision it has with only technical consequences
but in general unless there's some severe problem with the package we
will want to put it in, and I expect most packages won't have a
problem, and we can just put them in when we get to them.

(20:11) "Won't the ELPA link to non-free sites like GitHub?" It's a
mistake to talk about a non-free site, because a site is not a
program. A program is either free or non-free, and we have clearly
stated criteria for that in gnu.org/philosophy/free-sw.html we have
the free software definition, but a site, well, there're programs on
it, but it doesn't make sense to ask whether the site is free or not,
it's too simplistic a question to have a meaningful answer. Now, one
thing you can ask about is, does the site send JavaScript to the
user's machine, to the user's browser and if so, is that JavaScript
non-free. Well, GitHub does send non-free JavaScript for some
operations, so we consider it unsatisfactory as a repository, but that
doesn't mean linking to it is a bad thing to do regardless of what the
purpose is. For instance, if the purpose is to refer to some things
that you can access without running the non-free JavaScript, then it's
okay for that purpose. So, if now that you understand the details of
this issue, you think that there is a problem with the link to caml…,
there's, sorry, a link in caml.html, well, report it to bug-gnu-emacs,
report it as an Emacs bug, but do think about the criteria I've just
said because maybe it's not a problem.

(22:18) "Is it okay to use the GNU Affero GPL for Emacs packages?"
Yes it is.

(22:28) "Which is your favorite programming language? If Lisp, which
variant?" Well, I don't exactly have a favorite variant, but when I
designed Emacs Lisp, I did the best thing I could think of at the
time, subject to the need to keep it small. For the first few years it
was important for GNU Emacs to run in a machine which could only give
it half a meg of user space. So, there are a lot of constructs that
clearly were desirable to include that I left out because we could
make it work without them and then a lot of those have been added
since because it's been a long time since we needed to keep Emacs so
rigorously small.

(23:40) Someone is asking about the FSF's repository project. Well, we
agreed that there would be another virtual machine running one of
those for the GNU project, but that's as far as the discussion went.

(24:15) Question 17 is extremely insulting! I have not engaged in
sexual harassment, don't expect me to plead guilty to such a nasty
claim. People have been accusing me of many things, some of which are
basically mole hills and some of which are false. So, I'm not going to
give them anything, I have been bullied in a horrible way, that was
wrong. I would like the bullies to apologize to me, and when I see
that they're not bullying, I will forgive them. I would like to have
conversations with them if any of the mole hills annoyed someone, I'm
happy to talk with per and thus help resolve things with peace. And my
opinion on "diversity" within Emacs. Well, Emacs is never going to be
diverse, it is extended in one language, Emacs Lisp ;-}. Well, I don't
know, we did have an idea of implementing extensibility using Scheme
and the hope was that Guile could be integrated with Emacs, that
turned out to be difficult, it may be impossible but in principle it
might be a good thing, that would be a small amount of diversity, but
it's not that important. What I think is really important for
developing Emacs is to make it do word processing. I sometimes use
LibreOffice, and yeah I can make it do things. It has features for
WYSIWYG which are very nice, but it's in other regards, it's not
Emacs, and it doesn't have the abilities of Emacs, and it should. So,
I urge people to work on extending Emacs in that direction adding the
features that a word processor has to have.

(27:13) The last question I can answer is 18. Yes, it's a very sad
thing how many companies insist on using non-free software. Well, I
would get a different kind of job, that's a decision I made many years
ago early in the GNU project, I decided, I would not… first I would
not get a job developing non-free software. And later on I decided,
once I could stop using non-free software, that is once we had a
GNU/Linux system that we could switch over to and… Oh, wait. I thought
magic wand time meant it was time to stop, but now I rather ask the
question. So, what do you do, well, if I were you, I'd probably not
work for any of those companies. If I needed to make money, I'd get a
job, but I get some other kind of job that didn't involve using
software or that let me choose the software I would use.  But I would
live cheaply, you know, the less you spend, the less you need to make
and the more time you can take away from your paid work and the more
flexibility you have in which paid work you can do. Being in a
position to say no to avoid being desperate to say yes strengthens
your position, and you need that. One way you can help do that is by
not having children. Now, that is a tangent, but it can't be denied
that raising children is very expensive, I have heard many people say
that they are uncomfortable with their jobs, but they have to do those
jobs to make enough money to support their children.  Well, think
about that, be aware that's likely to happen to you, before you make
that decision.

(30:06) "What would I change about free software?" Well, since this is
magic, I would magically find a way of showing everyone why most free
software needs to be copy lefted, so that our community would not
basically submit to abuse by proprietary software developers. Of
course, I could go further if I could magically recruit a hundred
thousand good programmers to do lots of work improving free software.
We might… Well, if we could do this 20 years ago, we might have wiped
out non-free systems, and then we wouldn't have had horrible things
like World Wide Web DRM, that no one has the courage to resist if
they're desperately trying to get money for anything, and if they need
approval of companies, of the big companies that push for DRM, then
they don't dare even resist as much as they can resist. And look what
happened to the World Wide Web consortium, they surrendered blatantly
and ignominiously by endorsing the DRM system. So what can you do? I
don't have a magic wand, I'm a human being with the capabilities I
have, but the advantage of great firmness in campaigning for free
software, and this enables me to do things that no one else will do.

(32:27) "What tools from pre-UNIX days do you miss?" Well, I don't. I
don't think about them with missing them actually. It was sort of nice
to have ddt as your login shell. So, in using modern terminology,
because that meant at any time you could stop a program, load its
debugging symbols, and start examining the data in the
instructions. You could debug it that way, and then you could even
patch in instructions to continue running that job with the bug fixed,
in fact, you could even do this with the system kernel, so that your
jobs wouldn't get lost. I did that quite a few times, of course,
sometimes I saw what was wrong, and I just had to fix a piece of data,
but sometimes it took me a long time to figure out how to get the
system to keep on going. But with the work I had done, I didn't want
to lose that work, and, so one of the first features I put into GNU
Emacs was auto save.

(33:47) I'm not going to try to figure out which packages I actually
used.

(33:54) "If I knew, I would get hit by a bus tomorrow, say because of
a fortune-teller." No, a fortune-teller doesn't give you any
knowledge, it's just superstitious hand waving. So, assuming that I
talked… that I got a reading from a fortune-teller, which is
implausible enough to begin with, that wouldn't give me any knowledge
about what was going to happen to me. Oh, by the way fortune-tellers
generally play back to you facts that they've discovered about you
together with cold reading, which means, they say things calculated to
make it appear that they know more than they do or things that sound
wise to anyone, so you can say the same thing to, say, 100 people and
80 or 90 of them will say, "boy that was really accurate". But what if
for some reason… "What advice would I give for stewardship of Emacs?"
Well, basically focus on keeping the community strong in defending
freedom, if you have a choice between keeping the community strong in
defending freedom and getting more people to participate in the
development, you've got to choose the freedom. It is very easy for
free software projects to subordinate freedom to other criteria, and
once that happens, it's easy for those who don't care much about
freedom, such as, sometimes companies that might offer you some money
to purchase your soul, not that there are really things that exist
called souls, it's a metaphor, but it's an important metaphor for
something important. People in the community have to be thinking about
freedom when they make decisions about what is wise to do. The
decision to set up NonGNU ELPA has a drawback, it was a compromise.
Now, a lot of people will tell you that I am uncompromising and say
that, that's a flaw. Well, they're wrong. I make little compromises
very often, and occasionally I make a medium-sized compromise. The
compromise is, in the past we wanted to get copyright assignments for
the packages in GNU ELPA, so that we could move them into core Emacs,
and of course, sometimes we move packages in the other direction, that
way where we distribute a given package, is something we can decide
purely technically. And however make insisting on getting copyright
assignments for all the packages in GNU ELPA meant that we had to say
"sorry, no, we will not install that package in GNU ELPA, unless the
authors sign copyright assignments". And sometimes that's a lot of
trouble. Well, NonGNU ELPA won't require copyright assignments. If
there's a free package, we can make whatever changes, presumably
small, otherwise, we would probably say we don't have time, and then
put it in. But it does have the drawback that, in general we won't be
able to move those packages into core Emacs without getting the legal
papers then that we didn't get before.

(38:20) "How do you see the future of GNU Emacs?" I don't see the
future. I used to say that my crystal ball is cloudy today,
unfortunately, that has another meaning which is quite ironic. We
certainly don't want our lives to be somewhere in a cloud, because
that clouds remind, and then people start cheating you and taking
advantage of you, and it's horrible. But I don't see the future, I
just can be sure from the past that there will be challenges where
some of the people involved want to make a big compromise that isn't
worth it, and they may even get the impression that it's up to
them. Well, actually Emacs has appointed maintainers just as every GNU
package does, and they are the ones in charge of developing that
package, and this is for a good reason because the appointed
maintainers take responsibility to carry out the GNU project policies,
and most important of all are the ones that make the whole system work
together, and the ethical standards to respect freedom and defend
freedom.

(39:59) "Is there any plan to move more packages from core Emacs into
ELPA?" I don't know whether there is a plan, I suppose if there's a
plan, we probably would have done it. If there had been a plan, some
have been moved. I don't see this as a fundamentally important issue,
it's a matter of what's convenient for the users, and their advantages
and disadvantages to each choice.

(40:29) "What is your opinion on higher education requiring non-free
software, for instance…" Well, I wouldn't matriculate in a school
which did that, unless I saw a way I could refuse. Now, of course, I
do this because I can get away with it, and therefore my doing it is
extremely important to show somebody does resist. I don't expect most
people who support free school, who advocate free software to go that
far. I published an article in the spring entitled saying no even once
is helping, saying no to non-free software even once, because the more
you do it, the more you help, but even doing it a little in a way that
other people notice, is starting to help. So, please don't think that
your choices are either be as firm and stubborn as I am or just give
up and let yourself drift helplessly as if you had no volition.  There
are a lot of points in between there, and you can surely manage to say
no some of the time and show people an example of saying no some of
the time, for instance, you could say to people, "You know I hate the
fact that my school makes me use Zoom, so whenever I'm not being
forced, I'm not going to use it". Or "I hate the fact that the only
way I can talk to that group of people is with Zoom, but for anything
else I will feel better about myself if I don't". See, lots of ways to
say no some of the time, and yield some of the time, and when you try
saying no occasionally, you may just develop the ability to say no
more often. Now, whether you would ever get to be as stubborn as I am?
I don't know, but what I find is that I like the fact that I've never
made this kind of compromise. I feel I have a reputation to maintain,
nobody's forcing me, but I get satisfaction out of maintaining…, out
of being able to continue to say I will not.  And that also can happen
at various different levels, so, you can get that satisfaction of
fully maintaining a refusal that applies only to certain areas. (Amin:
since it's noon already, let's maybe take one or two more questions
and then break for the lunch break) Okay. (Amin: Thank you).

(44:03) "How often do you personally use Emacs?" is the lowest
question now. Well, I use it most of the day. I occasionally do use
other things, in fact, I occasionally edit with LibreOffice, I
occasionally use media players, I occasionally ssh to a machine and
type some commands on it, which occasionally includes running Emacs on
it. I read PDF files a lot, would be nice if you could get those into
Emacs, so that I could read them with Emacs commands, and I maybe even
edit them with the Emacs commands when they can be edited. I use
Xournal sometimes to write on a PDF file. "Are there any more
interesting projects you have in mind over and above NonGNU ELPA?" I
can't think of one right now, well, there are things that the GNU
project needs doing, there are packages that don't have maintainers or
could use more maintainers. Talk with maintainers@gnu.org, and the
assistant GNUisances will help you find a package where you can do
good. Not for beginners though, you got to learn a substantive
substantial level of capacity to develop and debug programs before you
can be a maintainer.

(46:00) "Have I ever looked at Magit?" No, I haven't, but I believe
work is being done to get it put into Emacs, and at that point I'll
give it a try. I do not want to share my configuration files they're
personal. How about if we end this now? (Amin: sounds good to me,
thank you very much Richard for joining in for live questions.) Okay.

<!-- /transcript -->