* [ELPA] New package: repology.el @ 2020-12-30 16:23 Nicolas Goaziou 2020-12-30 19:34 ` Jean Louis 2020-12-30 21:58 ` [ELPA] New package: repology.el (v2) Nicolas Goaziou 0 siblings, 2 replies; 252+ messages in thread From: Nicolas Goaziou @ 2020-12-30 16:23 UTC (permalink / raw) To: emacs-devel [-- Attachment #1: Type: text/plain, Size: 370 bytes --] Hello, I wrote a small library to access to Repology API (<https://repology.org>) from Emacs. I'd like to submit it for inclusion in GNU ELPA, as it might be useful to others. I'm attaching the sole file since it has no interweb existence so far. Please let me know if it is not suitable for inclusion, or needs more work. Thank you. Regards, -- Nicolas Goaziou [-- Attachment #2: Repology library --] [-- Type: application/emacs-lisp, Size: 40913 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-30 16:23 [ELPA] New package: repology.el Nicolas Goaziou @ 2020-12-30 19:34 ` Jean Louis 2020-12-30 21:01 ` Clément Pit-Claudel 2020-12-31 11:46 ` Nicolas Goaziou 2020-12-30 21:58 ` [ELPA] New package: repology.el (v2) Nicolas Goaziou 1 sibling, 2 replies; 252+ messages in thread From: Jean Louis @ 2020-12-30 19:34 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-devel While I may find that package personally useful for research of various packages on multiple OS distributions, it is not for GNU ELPA, IMHO, as GNU is all about free software and teaching people about free software. Package leads or guides people to research packages that are proprietary software without giving any warning, at least in the lookup function. I do not find it useful for Emacs and alright for GNU ELPA as GNU is about free software and this package is leading people to various OS distributions that are not endorsed by the FSF and that provide non-free software. Additionally the lookup result does not provide license information thus putting all proprietary software available from various package repositories together with free sofware and leads people to confusions. For me this is no go for GNU ELPA. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-30 19:34 ` Jean Louis @ 2020-12-30 21:01 ` Clément Pit-Claudel 2020-12-31 13:31 ` Jean Louis 2020-12-31 11:46 ` Nicolas Goaziou 1 sibling, 1 reply; 252+ messages in thread From: Clément Pit-Claudel @ 2020-12-30 21:01 UTC (permalink / raw) To: emacs-devel On 12/30/20 2:34 PM, Jean Louis wrote: > While I may find that package personally useful for research of > various packages on multiple OS distributions, it is not for GNU ELPA, > IMHO, as GNU is all about free software and teaching people about free > software. By the same logic, eww is not for GNU ELPA or Emacs, since it allows people to browse the web without displaying license information. Also, repology itself is GNU GPL. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-30 21:01 ` Clément Pit-Claudel @ 2020-12-31 13:31 ` Jean Louis 0 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2020-12-31 13:31 UTC (permalink / raw) To: Clément Pit-Claudel; +Cc: emacs-devel * Clément Pit-Claudel <cpitclaudel@gmail.com> [2020-12-31 00:02]: > On 12/30/20 2:34 PM, Jean Louis wrote: > > While I may find that package personally useful for research of > > various packages on multiple OS distributions, it is not for GNU ELPA, > > IMHO, as GNU is all about free software and teaching people about free > > software. > > By the same logic, eww is not for GNU ELPA or Emacs, since it allows > people to browse the web without displaying license information. I am trying to get what you mean, but it looks like I cannot. Maybe you quoted one part of text or let some other part out so that I cannot connect the dots. Browsers offer access to networks but not specific references to non free software. GNU project should not deliver browser that offers direct reference to a database of free software. If users do it themselves, they are free to do so, just as users are free to install proprietary software on GNU/Linux, those are private issues that are actually beyond GNU. GNU project is not about forbidding users do what they wish. GNU teaches users free software philosophy. Putting a package in GNU ELPA that does not make ethical distinction would be contrary to what is already being done in GNU and in FSF. GNU project teaches users about free software. It points out to problems with proprietary software. It does not and should not serve as a platform or access to platform for users of free software to search, find references to software without ethical distinction. Repology.org and package repology.el is contradiction to what GNU and FSF efforts are about. We teach users distinction between free software and proprietary software, and we tell people WHY. Please see the Free Software Directory: https://directory.fsf.org/wiki/Main_Page It is directory of free software. What I would not find logical is that we do not have GNU ELPA package that provides API to Free Software Directory. But we would then have repology.org package that provides API to software without ethical distinction, be it proprietary or free software or software with unclear licensing, it does not matter there. > Also, repology itself is GNU GPL. We discussed already that GNU GPL software may be ethical and not ethical. For example malware, viruses and backdoors can be also licensed as GNU GPL software but are not ethical. GNU GPL software may control or be made exclusively to work with proprietary software. It may provide access to search engine that provides information about software without ethical distinction if it is free software or proprietary. All those are examples showing how GNU GPL licensed software may not fulfill my personal ethical criteria. As this message is my personal opinion. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-30 19:34 ` Jean Louis 2020-12-30 21:01 ` Clément Pit-Claudel @ 2020-12-31 11:46 ` Nicolas Goaziou 2020-12-31 13:11 ` Jean Louis 1 sibling, 1 reply; 252+ messages in thread From: Nicolas Goaziou @ 2020-12-31 11:46 UTC (permalink / raw) To: emacs-devel Hello, Jean Louis <bugs@gnu.support> writes: > Additionally the lookup result does not provide license information > thus putting all proprietary software available from various package > repositories together with free sofware and leads people to > confusions. The license information is here, stored in each package. However, the UI does not display at the "project" level. You need to look at a package to see it. It is possible to display it at the "project" level, too, by configuring `repology-display-projects-columns'. See, for example, how outdated package versions are collected in this variable. However, depending on the repository, the license information may be incomplete, inaccurate, or downwards misleading. So I'm not sure it is a good idea to display it by default. It can be done, tho. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-31 11:46 ` Nicolas Goaziou @ 2020-12-31 13:11 ` Jean Louis 2020-12-31 20:30 ` Ulrich Mueller 0 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2020-12-31 13:11 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-devel * Nicolas Goaziou <mail@nicolasgoaziou.fr> [2020-12-31 14:54]: > However, depending on the repository, the license information may be > incomplete, inaccurate, or downwards misleading. So I'm not sure it is > a good idea to display it by default. It can be done, tho. GNU project is development of free software. It does not contribute and should not contribute to installations, references, promotion or support to non-free software, neither it shall support remote servers doing so. Specific free GNU/Linux operating systems and their packages are promoted and supported by GNU project: https://www.gnu.org/distros/free-distros.html Others are not supported: https://www.gnu.org/distros/common-distros.html As non-free packages are not advertised by GNU project neither by free endorsed OSes it would be contradiction to advertise such non-free packages through this package. GNU ELPA should not promote such non-free packages and should not provide API to remote server that lists, searches, indexes and provides results where non-free packages may be included. The package you proposed does not teach users about free software but advertises non-free software. repology.org compiles databases of free software and non-free software together without any ethical distinction. It is in contradiction how endorsed free software GNU/Linux operating systems are structured, see: https://www.gnu.org/distros/free-system-distribution-guidelines.html Additionally it advertises third party server about which we know nothing of, which would collecting data from Emacs users. Repology server does not give credits to GNU. Why would GNU give credits and kudos to Repology server? Debian GNU/Linux is named just "Debian" at repology.org. GNU Guix is named just "Guix" instead of "GNU Guix" on repology.org Parabola GNU/Linux-libre is called "Parabola" without mentioning the full name of the system on repology.org Hyperbola GNU/Linux-libre is not mentioned by its full name, but rather just as "Hyperbola" on repology.org, not giving proper credits to GNU. Trisquel, etc. the same. GNU/Linux system is named "Linux" on repology.org, please see: Why do you call the system we use GNU/Linux and not Linux? https://www.gnu.org/gnu/gnu-linux-faq.html#why Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-31 13:11 ` Jean Louis @ 2020-12-31 20:30 ` Ulrich Mueller 2021-01-01 7:31 ` Richard Stallman 2021-01-01 10:05 ` Jean Louis 0 siblings, 2 replies; 252+ messages in thread From: Ulrich Mueller @ 2020-12-31 20:30 UTC (permalink / raw) To: emacs-devel >>>>> On Thu, 31 Dec 2020, Jean Louis wrote: > GNU project is development of free software. It does not contribute > and should not contribute to installations, references, promotion or > support to non-free software, neither it shall support remote servers > doing so. > Specific free GNU/Linux operating systems and their packages are > promoted and supported by GNU project: > https://www.gnu.org/distros/free-distros.html I've always wondered how many of the Emacs developers are actually using one of these? On free hardware with free firmware, because everything else would be inconsequent. > Others are not supported: > https://www.gnu.org/distros/common-distros.html > As non-free packages are not advertised by GNU project neither by free > endorsed OSes it would be contradiction to advertise such non-free > packages through this package. GNU ELPA should not promote such > non-free packages and should not provide API to remote server that > lists, searches, indexes and provides results where non-free packages > may be included. > The package you proposed does not teach users about free software but > advertises non-free software. > repology.org compiles databases of free software and non-free software > together without any ethical distinction. I find your standpoint rather extreme, because the vast majority of the projects there is distributed under a free software license. If there weren't any such services as repology.org, users would likely use a search engine to find a specific package. How is that better? > It is in contradiction how endorsed free software GNU/Linux operating > systems are structured, see: > https://www.gnu.org/distros/free-system-distribution-guidelines.html > Additionally it advertises third party server about which we know > nothing of, which would collecting data from Emacs users. IIUC their server's software is licensed under GPLv3+ and publicly available. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-31 20:30 ` Ulrich Mueller @ 2021-01-01 7:31 ` Richard Stallman 2021-01-01 10:05 ` Jean Louis 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-01 7:31 UTC (permalink / raw) To: Ulrich Mueller; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > repology.org compiles databases of free software and non-free software > > together without any ethical distinction. > I find your standpoint rather extreme, because the vast majority of the > projects there is distributed under a free software license. You and Jean Louis are talking about two different questions. Related, yes, but not the same. What he said and what you said do not directly conflict. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2020-12-31 20:30 ` Ulrich Mueller 2021-01-01 7:31 ` Richard Stallman @ 2021-01-01 10:05 ` Jean Louis 2021-01-01 11:56 ` Eli Zaretskii 2021-01-02 5:30 ` Richard Stallman 1 sibling, 2 replies; 252+ messages in thread From: Jean Louis @ 2021-01-01 10:05 UTC (permalink / raw) To: Ulrich Mueller; +Cc: emacs-devel * Ulrich Mueller <ulm@gentoo.org> [2020-12-31 23:32]: > > repology.org compiles databases of free software and non-free software > > together without any ethical distinction. > > I find your standpoint rather extreme, because the vast majority of the > projects there is distributed under a free software license. The difference is that references to non-free software would not be provided by GNU ELPA package to users. If free software references on GNU.org are extreme, then my standpoint is extreme too, but I am not a conformist that has desires to be in a non-extreme class of people so I do not mind how it is classified, seen, perceived or criticized. I do not make my analysis or present my personal opinions to conform them to non-extreme class. Just as the GNU website does not provide references to non-free software catalogue, then why should such package be part of GNU ELPA and unintentionally or intentionally promote non-free software. Note the "GNU" in GNU ELPA. And Happy New Free Software Year. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-01 10:05 ` Jean Louis @ 2021-01-01 11:56 ` Eli Zaretskii 2021-01-02 9:56 ` Jean Louis 2021-01-02 5:30 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-01 11:56 UTC (permalink / raw) To: Jean Louis; +Cc: ulm, emacs-devel > Date: Fri, 1 Jan 2021 13:05:54 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: emacs-devel@gnu.org > > references to non-free software would not be provided by GNU ELPA > package to users. Ulrich, please take what Jean says here with a grain of salt, because he doesn't speak on behalf of the Emacs project (even though he sometimes sounds like he is). These opinions are his own. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-01 11:56 ` Eli Zaretskii @ 2021-01-02 9:56 ` Jean Louis 0 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-02 9:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ulm, emacs-devel * Eli Zaretskii <eliz@gnu.org> [2021-01-01 14:57]: > > Date: Fri, 1 Jan 2021 13:05:54 +0300 > > From: Jean Louis <bugs@gnu.support> > > Cc: emacs-devel@gnu.org > > > > references to non-free software would not be provided by GNU ELPA > > package to users. > > Ulrich, please take what Jean says here with a grain of salt, because > he doesn't speak on behalf of the Emacs project (even though he > sometimes sounds like he is). These opinions are his own. Which I have myself explicitly and already mentioned it. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-01 10:05 ` Jean Louis 2021-01-01 11:56 ` Eli Zaretskii @ 2021-01-02 5:30 ` Richard Stallman 2021-01-04 12:09 ` Dmitry Gutov 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-02 5:30 UTC (permalink / raw) To: Jean Louis; +Cc: ulm, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Just as the GNU website does not provide references to non-free > software catalogue, then why should such package be part of GNU ELPA > and unintentionally or intentionally promote non-free software. Note > the "GNU" in GNU ELPA. There is no need to argue for or against this position, because it reflects the GNU Project's policy as stated in the node References in the GNU Coding Standards. We won't suggest that people use repology.org unless it changes its practice on this point. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-02 5:30 ` Richard Stallman @ 2021-01-04 12:09 ` Dmitry Gutov 2021-01-04 14:39 ` Alfred M. Szmidt 2021-01-05 6:33 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-04 12:09 UTC (permalink / raw) To: rms, Jean Louis; +Cc: ulm, emacs-devel On 02.01.2021 07:30, Richard Stallman wrote: > > Just as the GNU website does not provide references to non-free > > software catalogue, then why should such package be part of GNU ELPA > > and unintentionally or intentionally promote non-free software. Note > > the "GNU" in GNU ELPA. > > There is no need to argue for or against this position, because it > reflects the GNU Project's policy as stated in the node References in > the GNU Coding Standards. We won't suggest that people use > repology.org unless it changes its practice on this point. repology.org is not a software catalogue. It doesn't have any links to the programs themselves, or even pointers to their home pages. Its purpose is to show which version has been published where, and who is maintaining that. As such, it's untenable to suggest that this project, or the proposed package, promote any particular piece of software listed. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 12:09 ` Dmitry Gutov @ 2021-01-04 14:39 ` Alfred M. Szmidt 2021-01-04 15:00 ` Ulrich Mueller 2021-01-04 15:02 ` Dmitry Gutov 2021-01-05 6:33 ` Richard Stallman 1 sibling, 2 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-04 14:39 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, rms, bugs, emacs-devel It doesn't have any links to the programs themselves, or even pointers to their home pages. Its purpose is to show which version has been published where, and who is maintaining that. That doesn't really matter, the list lists non-free software packages and users can easily think that the program is free software (since there is no license information associated with it). That alone is a good reason to not suggest it. Since this web site does almost the same job as the Free Software Directory, why not interface against that instead? That lists exclusivley packages that have been confirmed to be free software. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 14:39 ` Alfred M. Szmidt @ 2021-01-04 15:00 ` Ulrich Mueller 2021-01-04 16:32 ` Alfred M. Szmidt 2021-01-05 6:45 ` Richard Stallman 2021-01-04 15:02 ` Dmitry Gutov 1 sibling, 2 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-04 15:00 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: ulm, emacs-devel, rms, bugs, Dmitry Gutov >>>>> On Mon, 04 Jan 2021, Alfred M Szmidt wrote: > That doesn't really matter, the list lists non-free software packages > and users can easily think that the program is free software (since > there is no license information associated with it). That alone is a > good reason to not suggest it. > Since this web site does almost the same job as the Free Software > Directory, why not interface against that instead? That lists > exclusivley packages that have been confirmed to be free software. These are completely different services. The FSD is a catalogue of free software with human readable descriptions (and IIUC, entries are maintained by humans). Whereas Repology provides lists of packages and their versions, with the info being obtained from various repositories in an automated way. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 15:00 ` Ulrich Mueller @ 2021-01-04 16:32 ` Alfred M. Szmidt 2021-01-05 6:45 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-04 16:32 UTC (permalink / raw) To: Ulrich Mueller; +Cc: ulm, emacs-devel, rms, bugs, dgutov > Since this web site does almost the same job as the Free Software > Directory, why not interface against that instead? That lists > exclusivley packages that have been confirmed to be free software. These are completely different services. The FSD is a catalogue of free software with human readable descriptions (and IIUC, entries are maintained by humans). Whereas Repology provides lists of packages and their versions, with the info being obtained from various repositories in an automated way. That is a difference in how they are implemented, now in their purpose, no? FSD lists the version of packages. ;; The results of a query revolve around three types of objects: ;; projects, packages and problems. Using this library, you can find ;; projects matching certain criteria, packages in a given project, From the above I don't see how they are "completely" different, it seems one could do the same but using the FSD -- the only thing missing might be "bug" reports. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 15:00 ` Ulrich Mueller 2021-01-04 16:32 ` Alfred M. Szmidt @ 2021-01-05 6:45 ` Richard Stallman 2021-01-05 8:56 ` Alfred M. Szmidt 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-05 6:45 UTC (permalink / raw) To: Ulrich Mueller; +Cc: ams, dgutov, ulm, bugs, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Whereas Repology provides lists of packages and > their versions, with the info being obtained from various repositories > in an automated way. Is Repology a Lisp program? Is Repology a list of packages and their versions? Is it both, packaged together? What makes it useful? Supposing there were no nonfree Elisp packages in the world, why would you want something like Repology? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-05 6:45 ` Richard Stallman @ 2021-01-05 8:56 ` Alfred M. Szmidt 2021-01-07 7:34 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-05 8:56 UTC (permalink / raw) To: rms; +Cc: ulm, dgutov, bugs, emacs-devel Is Repology a list of packages and their versions? It is a website that lists what binary (both free software and non-free software) packages are available in different opreating systems; with some version information, and some other meta data like current bugs reported against the program. Is it both, packaged together? repology.el is a emacs library(?) to access and query Repology.org for information about packages. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-05 8:56 ` Alfred M. Szmidt @ 2021-01-07 7:34 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-07 7:34 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: ulm, emacs-devel, bugs, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > It is a website that lists what binary (both free software and > non-free software) packages Too bad. We should avoid recommending use of repology.org. (This doesn't imply actively discouraging people from using it. There is no need to go THAT far.) If repology.el is a simple interface to repology.org, we should not recommend repology.el. Unless we can find a way to fix the problem of showing nonfree packages. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 14:39 ` Alfred M. Szmidt 2021-01-04 15:00 ` Ulrich Mueller @ 2021-01-04 15:02 ` Dmitry Gutov 2021-01-04 16:29 ` Alfred M. Szmidt 1 sibling, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-04 15:02 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: ulm, rms, bugs, emacs-devel On 04.01.2021 16:39, Alfred M. Szmidt wrote: > It doesn't have any links to the programs themselves, or even pointers > to their home pages. Its purpose is to show which version has been > published where, and who is maintaining that. > > That doesn't really matter, the list lists non-free software packages > and users can easily think that the program is free software (since > there is no license information associated with it). Do you have an example? Sounds like something that's easy to fix in the package's UI. > Since this web site does almost the same job as the Free Software > Directory, why not interface against that instead? That lists > exclusivley packages that have been confirmed to be free software. It does not do the same job. Again, it's not a software catalogue/directory. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 15:02 ` Dmitry Gutov @ 2021-01-04 16:29 ` Alfred M. Szmidt 2021-01-04 17:08 ` Dmitry Gutov 0 siblings, 1 reply; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-04 16:29 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, rms, bugs, emacs-devel > It doesn't have any links to the programs themselves, or even pointers > to their home pages. Its purpose is to show which version has been > published where, and who is maintaining that. > > That doesn't really matter, the list lists non-free software packages > and users can easily think that the program is free software (since > there is no license information associated with it). Do you have an example? nmap. Or anything to do with FPGA development. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 16:29 ` Alfred M. Szmidt @ 2021-01-04 17:08 ` Dmitry Gutov 2021-01-04 17:12 ` Alfred M. Szmidt 2021-01-06 5:02 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-04 17:08 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: ulm, rms, bugs, emacs-devel On 04.01.2021 18:29, Alfred M. Szmidt wrote: > > It doesn't have any links to the programs themselves, or even pointers > > to their home pages. Its purpose is to show which version has been > > published where, and who is maintaining that. > > > > That doesn't really matter, the list lists non-free software packages > > and users can easily think that the program is free software (since > > there is no license information associated with it). > > Do you have an example? > > nmap. What about it? An example would be a URL to a web page which shows something which might be misconstrued by the user. Especially when such situation is the fault of the project, and not of the underlying sources of information. https://repology.org/project/nmap/packages (okay, this shows the homepage too) clearly shows the non-standard license where it can. And the GPLv2 license for older versions. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:08 ` Dmitry Gutov @ 2021-01-04 17:12 ` Alfred M. Szmidt 2021-01-04 17:17 ` Dmitry Gutov 2021-01-04 17:43 ` Clément Pit-Claudel 2021-01-06 5:02 ` Richard Stallman 1 sibling, 2 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-04 17:12 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, rms, bugs, emacs-devel > > It doesn't have any links to the programs themselves, or even pointers > > to their home pages. Its purpose is to show which version has been > > published where, and who is maintaining that. > > > > That doesn't really matter, the list lists non-free software packages > > and users can easily think that the program is free software (since > > there is no license information associated with it). > > Do you have an example? > > nmap. What about it? It is non-free software. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:12 ` Alfred M. Szmidt @ 2021-01-04 17:17 ` Dmitry Gutov 2021-01-04 17:58 ` Alfred M. Szmidt 2021-01-04 17:43 ` Clément Pit-Claudel 1 sibling, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-04 17:17 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: ulm, rms, bugs, emacs-devel On 04.01.2021 19:12, Alfred M. Szmidt wrote: > It is non-free software. Anything else you would like to address in my last email? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:17 ` Dmitry Gutov @ 2021-01-04 17:58 ` Alfred M. Szmidt 0 siblings, 0 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-04 17:58 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, rms, bugs, emacs-devel > It is non-free software. Anything else you would like to address in my last email? I don't see anything that needs to be addressed, so I did not address it -- it is all mentioned in (standards) References. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:12 ` Alfred M. Szmidt 2021-01-04 17:17 ` Dmitry Gutov @ 2021-01-04 17:43 ` Clément Pit-Claudel 2021-01-04 17:55 ` Vasilij Schneidermann 2021-01-04 19:14 ` Ulrich Mueller 1 sibling, 2 replies; 252+ messages in thread From: Clément Pit-Claudel @ 2021-01-04 17:43 UTC (permalink / raw) To: emacs-devel On 1/4/21 12:12 PM, Alfred M. Szmidt wrote: > > > It doesn't have any links to the programs themselves, or even pointers > > > to their home pages. Its purpose is to show which version has been > > > published where, and who is maintaining that. > > > > > > That doesn't really matter, the list lists non-free software packages > > > and users can easily think that the program is free software (since > > > there is no license information associated with it). > > > > Do you have an example? > > > > nmap. > > What about it? > > It is non-free software. Are you equating "free" with "GPL-compatible", or did I miss something about nmap? (Last time I checked, nmap was FLOSS) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:43 ` Clément Pit-Claudel @ 2021-01-04 17:55 ` Vasilij Schneidermann 2021-01-04 18:51 ` Clément Pit-Claudel 2021-01-06 5:03 ` Richard Stallman 2021-01-04 19:14 ` Ulrich Mueller 1 sibling, 2 replies; 252+ messages in thread From: Vasilij Schneidermann @ 2021-01-04 17:55 UTC (permalink / raw) To: Clément Pit-Claudel; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 518 bytes --] > Are you equating "free" with "GPL-compatible", or did I miss something > about nmap? (Last time I checked, nmap was FLOSS) While the evaluation is terse, it is warranted: nmap is listed as GPL2 in my package manager for some reason, but happens to use a custom license based on the GPL2: https://nmap.org/npsl/ One of the listed goals is "Prohibit redistribution and use of Nmap within proprietary hardware and software products." This most likely violates the four freedoms and thereby makes it GPL-incompatible. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:55 ` Vasilij Schneidermann @ 2021-01-04 18:51 ` Clément Pit-Claudel 2021-01-04 22:21 ` Vasilij Schneidermann 2021-01-06 5:03 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Clément Pit-Claudel @ 2021-01-04 18:51 UTC (permalink / raw) To: emacs-devel On 1/4/21 12:55 PM, Vasilij Schneidermann wrote: >> Are you equating "free" with "GPL-compatible", or did I miss something >> about nmap? (Last time I checked, nmap was FLOSS) > > While the evaluation is terse, it is warranted: nmap is listed as GPL2 > in my package manager for some reason, but happens to use a custom > license based on the GPL2: https://nmap.org/npsl/ > > One of the listed goals is "Prohibit redistribution and use of Nmap > within proprietary hardware and software products." This most likely > violates the four freedoms and thereby makes it GPL-incompatible. Yes, but GPL-compatibility isn't what we were debating, is it? The claim was that nmap is non-free. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 18:51 ` Clément Pit-Claudel @ 2021-01-04 22:21 ` Vasilij Schneidermann 2021-01-05 2:09 ` Stefan Monnier 0 siblings, 1 reply; 252+ messages in thread From: Vasilij Schneidermann @ 2021-01-04 22:21 UTC (permalink / raw) To: Clément Pit-Claudel; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 213 bytes --] > Yes, but GPL-compatibility isn't what we were debating, is it? The > claim was that nmap is non-free. Violating the four freedoms makes a license non-free, thereby having GPL incompatibility as a side effect. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 22:21 ` Vasilij Schneidermann @ 2021-01-05 2:09 ` Stefan Monnier 2021-01-05 6:42 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Stefan Monnier @ 2021-01-05 2:09 UTC (permalink / raw) To: Clément Pit-Claudel; +Cc: emacs-devel >> Yes, but GPL-compatibility isn't what we were debating, is it? The >> claim was that nmap is non-free. > Violating the four freedoms makes a license non-free, thereby having GPL > incompatibility as a side effect. I suggest you look a bit closer: the license was changed quite recently, and since the issue was brought up, the maintainers have clarified the intent, making it clear that the problems in the license are *not* intended are there is every reason to believe that they will be fixed soon. So, `nmap` has always been Free Software and the maintainers still want to keep it that way. The current license has *bugs*, that's it. Stefan ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-05 2:09 ` Stefan Monnier @ 2021-01-05 6:42 ` Richard Stallman 2021-01-05 9:28 ` Ulrich Mueller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-05 6:42 UTC (permalink / raw) To: Stefan Monnier; +Cc: cpitclaudel, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I suggest you look a bit closer: the license was changed quite recently, > and since the issue was brought up, the maintainers have clarified the > intent, making it clear that the problems in the license are *not* > intended are there is every reason to believe that they will be > fixed soon. If they fix the problems, the problems will be gone. But it sounds like they are doing something strange and unusual and it is worth looking at THAT. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-05 6:42 ` Richard Stallman @ 2021-01-05 9:28 ` Ulrich Mueller 0 siblings, 0 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-05 9:28 UTC (permalink / raw) To: Richard Stallman; +Cc: cpitclaudel, Stefan Monnier, emacs-devel >>>>> On Tue, 05 Jan 2021, Richard Stallman wrote: [about nmap] >> I suggest you look a bit closer: the license was changed quite >> recently, and since the issue was brought up, the maintainers have >> clarified the intent, making it clear that the problems in the >> license are *not* intended are there is every reason to believe that >> they will be fixed soon. > If they fix the problems, the problems will be gone. > But it sounds like they are doing something strange and unusual > and it is worth looking at THAT. That would be very valuable input indeed. Upstream has been made aware of the problem, but it looks like neither they nor anybody else participating in the discussion at https://github.com/nmap/nmap/issues/2199 have any legal background. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:55 ` Vasilij Schneidermann 2021-01-04 18:51 ` Clément Pit-Claudel @ 2021-01-06 5:03 ` Richard Stallman 2021-01-06 9:44 ` Alfred M. Szmidt 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-06 5:03 UTC (permalink / raw) To: Vasilij Schneidermann; +Cc: cpitclaudel, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > One of the listed goals is "Prohibit redistribution and use of Nmap > within proprietary hardware and software products." That goal sounds like it might conflict with the free software definition. I say "might" because I can't tell from just that. Maybe this is ok, maybe not. It would take some thought. What do they mean by "proprietary hardware products"? The meaning is not obvious, so we do not classify "hardware" as free or proprietary. (See https://gnu.org/philosophy/free-hardware-designs.html.) In any case, it is not their _goals_ that would either satisfy the free software definition or not. Rather, it is their actual _license_ that would make the difference. The goals might help interpret it, or might show what license changes they want to make. Would you like to email me their current license text plus what they say about its goals? Did someone say that they were continuing to adjust their license and what they are using is not final? I think so. Anyway, if repology.org has a general practice of listing only free software, I would not criticize it for having difficulty with an unclear case like this. What matters for judging repology.org is its general policy. Can someone show me that? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 5:03 ` Richard Stallman @ 2021-01-06 9:44 ` Alfred M. Szmidt 2021-01-07 17:51 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-06 9:44 UTC (permalink / raw) To: rms; +Cc: cpitclaudel, emacs-devel, mail Did someone say that they were continuing to adjust their license and what they are using is not final? I think so. Xilinx FPGA tool chains are listed in repology, I'm quite sure one could find more examples of other non-free software -- for example all of debians non-free repository seems to be listed there listed there, it lists non-free firmware, etc. Concentrating on nmap here is a redherring. Anyway, if repology.org has a general practice of listing only free software, I would not criticize it for having difficulty with an unclear case like this. It does not from what I could see on the web page, it lists everything that is added. What matters for judging repology.org is its general policy. Can someone show me that? They don't have one, what I could see. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 9:44 ` Alfred M. Szmidt @ 2021-01-07 17:51 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-07 17:51 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: cpitclaudel, emacs-devel, mail [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Anyway, if repology.org has a general practice of listing only free > software, I would not criticize it for having difficulty with an > unclear case like this. > It does not from what I could see on the web page, it lists everything > that is added. What repology is doing is a grave wrong to the free software community, so grave that a single apology would not be sufficient. They need to publish an apology, followed by a repology. ;-} -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:43 ` Clément Pit-Claudel 2021-01-04 17:55 ` Vasilij Schneidermann @ 2021-01-04 19:14 ` Ulrich Mueller 2021-01-04 19:17 ` Clément Pit-Claudel 1 sibling, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-04 19:14 UTC (permalink / raw) To: Clément Pit-Claudel; +Cc: emacs-devel >>>>> On Mon, 04 Jan 2021, Clément Pit-Claudel wrote: > On 1/4/21 12:12 PM, Alfred M. Szmidt wrote: >> > nmap. >> >> What about it? >> >> It is non-free software. > Are you equating "free" with "GPL-compatible", or did I miss something > about nmap? (Last time I checked, nmap was FLOSS) This is contested by several distros for nmap-7.90 and later, which comes with a changed license: https://github.com/nmap/nmap/issues/2199 ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 19:14 ` Ulrich Mueller @ 2021-01-04 19:17 ` Clément Pit-Claudel 0 siblings, 0 replies; 252+ messages in thread From: Clément Pit-Claudel @ 2021-01-04 19:17 UTC (permalink / raw) To: Ulrich Mueller; +Cc: emacs-devel On 1/4/21 2:14 PM, Ulrich Mueller wrote: >>>>>> On Mon, 04 Jan 2021, Clément Pit-Claudel wrote: > >> On 1/4/21 12:12 PM, Alfred M. Szmidt wrote: >>>> nmap. >>> >>> What about it? >>> >>> It is non-free software. > >> Are you equating "free" with "GPL-compatible", or did I miss something >> about nmap? (Last time I checked, nmap was FLOSS) > > This is contested by several distros for nmap-7.90 and later, which > comes with a changed license: > https://github.com/nmap/nmap/issues/2199 Thanks a lot for the pointer! ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 17:08 ` Dmitry Gutov 2021-01-04 17:12 ` Alfred M. Szmidt @ 2021-01-06 5:02 ` Richard Stallman 2021-01-06 10:58 ` Dmitry Gutov 2021-01-06 14:41 ` Jean Louis 1 sibling, 2 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-06 5:02 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ams, ulm, bugs, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > https://repology.org/project/nmap/packages (okay, this shows the > homepage too) clearly shows the non-standard license where it can. I am having trouble understanding that page. It gives a lot of details but does not explicitly say how they relate to each other. In particular, I don't know who the many packages listed relate to each other. I can only guess that they all relate to the program nmap somehow. Also, I don't know what facts that page is trying to present. Most importantly, does Repology list nmap with nonfree packages as a peculiar exception because it has had a peculiar history recently? Or does repology.org regularly list nonfree programs without trying to distinguish? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 5:02 ` Richard Stallman @ 2021-01-06 10:58 ` Dmitry Gutov 2021-01-06 14:41 ` Jean Louis 1 sibling, 0 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-06 10:58 UTC (permalink / raw) To: rms; +Cc: ams, ulm, bugs, emacs-devel On 06.01.2021 07:02, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > https://repology.org/project/nmap/packages (okay, this shows the > > homepage too) clearly shows the non-standard license where it can. > > I am having trouble understanding that page. It gives a lot of > details but does not explicitly say how they relate to each other. > In particular, I don't know who the many packages listed > relate to each other. I can only guess that they all relate to > the program nmap somehow. Seems like it shows all packages that have "nmap" in their name or description string there. > Also, I don't know what facts that page is trying to present. Check out https://repology.org/about: About Repology is a service which tracks and compares package versions in more than 120 package repositories. Purpose For package/port maintainers: Discover new releases of software you maintain packages for Find new projects to package Get in touch with fellow maintainers to improve packages together Keep package naming and versioning schemes in sync to other repos for your and your user's convenience Fix problems detected by repology, such as broken links For software authors: Keep track of where and how well your project is packaged Keep in touch with your product package maintainers For users: Discover new releases of software you use Pick distribution most suitable for you, in terms of package quantity, freshness or stability Keep in touch with maintainers of software you use > Most importantly, does Repology list nmap with nonfree packages as a > peculiar exception because it has had a peculiar history recently? Or > does repology.org regularly list nonfree programs without trying to > distinguish? It tries to provide the correct license information. That's about it. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 5:02 ` Richard Stallman 2021-01-06 10:58 ` Dmitry Gutov @ 2021-01-06 14:41 ` Jean Louis 2021-01-06 14:59 ` Arthur Miller 1 sibling, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-06 14:41 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, emacs-devel, ulm, Dmitry Gutov Example user experience with repology: 1. M-x load-file RET repology.el RET 2. M-x repology RET s search RET toys OK RET then I can find list like below. docbook-toys 5 - - etoys 40 5.0.2408 4.0.2340 and many others. Then if I click on `etoys' I get list like: AUR etoys 5.0.2408 - fallback-mnt-aur@repology Debian Oldstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Debian Stable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Debian Testing etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Debian Unstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Deepin etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Devuan 1.0 (Jessie) etoys 4.0.2340 non-free/games jredrejo@debian.org holger@debian.org Devuan 2.0 (ASCII) etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Devuan 3.0 (Beowulf) etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Devuan 4.0 (Chimaera) etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Devuan Unstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Kali Linux Rolling etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Pardus etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Parrot etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Raspbian Oldstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Raspbian Stable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk Raspbian Testing etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk In the same manner I can stumble upon nvidia or other non-free graphics drivers, and plethora of other non-free software: Debian Stable Backports nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Debian Testing nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Debian Unstable nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Devuan 4.0 (Chimaera) nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Devuan Unstable nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Kali Linux Rolling nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org MX Linux MX-17 Testing nvidia-graphics-drivers-tesla-418 418.165.02 non-free/libs pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org MX Linux MX-19 Testing nvidia-graphics-drivers-tesla-418 418.165.02 non-free/libs pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Parrot nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Raspbian Testing nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org Most of times it will not say clearly "non-free" as I have just listed those from Debian non-free. GNU ELPA should not provide access to an indexed catalogue of non-free software. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 14:41 ` Jean Louis @ 2021-01-06 14:59 ` Arthur Miller 2021-01-06 15:21 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-06 14:59 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, emacs-devel, ulm, Dmitry Gutov Jean Louis <bugs@gnu.support> writes: > Example user experience with repology: > > 1. M-x load-file RET repology.el RET > 2. M-x repology RET s search RET toys OK RET > > then I can find list like below. > > docbook-toys 5 - - > etoys 40 5.0.2408 4.0.2340 > > and many others. Then if I click on `etoys' I get list like: > > AUR etoys 5.0.2408 - fallback-mnt-aur@repology > Debian Oldstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Debian Stable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Debian Testing etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Debian Unstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Deepin etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Devuan 1.0 (Jessie) etoys 4.0.2340 non-free/games jredrejo@debian.org holger@debian.org > Devuan 2.0 (ASCII) etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Devuan 3.0 (Beowulf) etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Devuan 4.0 (Chimaera) etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Devuan Unstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Kali Linux Rolling etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Pardus etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Parrot etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Raspbian Oldstable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Raspbian Stable etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > Raspbian Testing etoys 5.0.2408 non-free/games pkg-sugar-devel@lists.alioth.debian.org dr@jones.dk > > In the same manner I can stumble upon nvidia or other non-free > graphics drivers, and plethora of other non-free software: > > Debian Stable Backports nvidia-graphics-drivers-tesla-418 418.165.02 > non-free/misc pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org > bluca@debian.org > Debian Testing nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc > pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org > Debian Unstable nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc > pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org > Devuan 4.0 (Chimaera) nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc > pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org > Devuan Unstable nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc > pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org > Kali Linux Rolling nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc > pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org > MX Linux MX-17 Testing nvidia-graphics-drivers-tesla-418 418.165.02 > non-free/libs pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org > bluca@debian.org > MX Linux MX-19 Testing nvidia-graphics-drivers-tesla-418 418.165.02 > non-free/libs pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org > bluca@debian.org > Parrot nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc > pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org > Raspbian Testing nvidia-graphics-drivers-tesla-418 418.165.02 non-free/misc > pkg-nvidia-devel@lists.alioth.debian.org anbe@debian.org bluca@debian.org > > Most of times it will not say clearly "non-free" as I have just listed > those from Debian non-free. > > GNU ELPA should not provide access to an indexed catalogue of non-free > software. > > Jean As I see, it says "non-free", so what is the problem? I think it is rather informative to see if a piece of software is free or not free, that way I can at least avoid non-free ones. Are we now dogmatically religious where non-free software is forbidden to even be mentioned as non-free? That smells to me as a slippery slope into dogmatism and absolutism. Is there free-speach if people are not allowed to speak freely about some subject(s) like mentioning non-free software? I think the problem for you is that you see that list as a "recommendation list". If you instead interpret it as a "black list", than having list of non-free software becomes a useful listing in terms of things to avoid :-). Cheers /a ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 14:59 ` Arthur Miller @ 2021-01-06 15:21 ` Jean Louis 2021-01-06 16:23 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-06 15:21 UTC (permalink / raw) To: Arthur Miller; +Cc: ulm, ams, Dmitry Gutov, Richard Stallman, emacs-devel * Arthur Miller <arthur.miller@live.com> [2021-01-06 18:00]: > As I see, it says "non-free", so what is the problem? Maybe you should review the fact that Debian does designate their non-free repository but that repology.el package will show all other repositories with non-free software, not being designated as non-free by any manner. So your perception does not come from practical and personal use of that software, rather from my example, that was not exhaustive. Example with etoys package, as classified non-free in Debian will not be shown as non-free in Ubuntu: From repology.el output: Ubuntu 12.04 etoys 4.0.2340 multiverse/games jredrejo@debian.org holger@debian.org because the 4th column is name of repository in repology. It need not say "non-free" at all. When clicking on that entry above, user finds following: repo ubuntu_12_04 subrepo precise/multiverse srcname etoys visiblename etoys version 4.0.2340 maintainers jredrejo@debian.org holger@debian.org categories multiverse/games status outdated origversion 4.0.2340-1 > I think it is rather informative to see if a piece of software is free > or not free, that way I can at least avoid non-free ones. As from example above, it does not says nothing about the license at all and thus does not serve to you as user to "recognize if software is free or not-free". That is why you should make better your personal research. > Are we now dogmatically religious where non-free software is forbidden > to even be mentioned as non-free? That smells to me as a slippery slope > into dogmatism and absolutism. GNU.org website does not offer directories of various software where plethora of non-free software package descriptions can be found, researched, and inspected. Why should Emacs do that? It is not aligned with overall goals of GNU. It is matter of freedom and liberty and teaching people free software and not religion. > Is there free-speach if people are not allowed to speak freely about > some subject(s) like mentioning non-free software? That is absolutely not subject of repology.el package. It should be clear that everybody is free to speak about anything. It is not subject of this discussion. GNU is project about free software. It should not offer access to users to search, verify, find references to non-free software. Just think little about that, bakery is about baking bread, it should not (not normally) offer soaps on the bread shelves. Normally it will also not offer milk on the same shelves. Diary factories normally do not produce alcohol in their same factories. GNU.org is about free software, it is not about giving references to non-free software. Yet many non-free software are mentioned on GNU.org website and references are given to free software with similar functionality. If a package like repology.el would say this software ABC is non-free software, which you may replace by using this XYZ free software, that would be useful. If it only offers queries and results from a software database without distinction or without supporting GNU purposes, then it should not be in GNU ELPA. By free speech, it can be on any other server. Why not. > I think the problem for you is that you see that list as a > "recommendation list". If you instead interpret it as a "black > list", than having list of non-free software becomes a useful > listing in terms of things to avoid :-). I have no problem with anything. If it comes in GNU ELPA, I will denounce the package on my website and say why it should not be there, even if it is there. My opinions are personal and not representative of GNU project. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 15:21 ` Jean Louis @ 2021-01-06 16:23 ` Arthur Miller 2021-01-06 18:53 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-06 16:23 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, Dmitry Gutov, ulm, emacs-devel Jean Louis <bugs@gnu.support> writes: > * Arthur Miller <arthur.miller@live.com> [2021-01-06 18:00]: >> As I see, it says "non-free", so what is the problem? > > Maybe you should review the fact that Debian does designate their > non-free repository but that repology.el package will show all other > repositories with non-free software, not being designated as non-free > by any manner. So your perception does not come from practical and > personal use of that software, rather from my example, that was not > exhaustive. No. I don't use repology myself it is true. But if that is the case, then repology.el can fix it in it's gui? No? >> I think it is rather informative to see if a piece of software is free >> or not free, that way I can at least avoid non-free ones. > > As from example above, it does not says nothing about the license at > all and thus does not serve to you as user to "recognize if software > is free or not-free". That is why you should make better your personal > research. If it says non-free than it is quite clear for anyone with a bit of intelligence in their head that it is, well: NON-FREE! >> Are we now dogmatically religious where non-free software is forbidden >> to even be mentioned as non-free? That smells to me as a slippery slope >> into dogmatism and absolutism. > > GNU.org website does not offer directories of various software where > plethora of non-free software package descriptions can be found, > researched, and inspected. And? I don't like haggis; does it mean you should not like it? > It is matter of freedom and liberty and > teaching people free software and not religion. I didn't said that GNU teaches people about religion. I said you are religious dogmatic about software. >> Is there free-speach if people are not allowed to speak freely about >> some subject(s) like mentioning non-free software? > > That is absolutely not subject of repology.el package. It should be > clear that everybody is free to speak about anything. It is not > subject of this discussion. GNU is project about free software. It > should not offer access to users to search, verify, find references to > non-free software. So dogmatic. Why not? It may be useful for people to find references to non-free software so they are not misstankely using them. Isn't it? You know, a black list; sort of. > Just think little about that, bakery is about baking bread, it should > not (not normally) offer soaps on the bread shelves. Normally it will > also not offer milk on the same shelves. Unless owner decides to sell soaps and milk too. For the most part, it is just a practical choice by hardware used, storage space, demand etc. In software world, there are less practical limitations than in physical world. > GNU.org is about free software, it is not about giving references to > non-free software. Yet many non-free software are mentioned on GNU.org > website and references are given to free software with similar > functionality. > > If a package like repology.el would say this software ABC is non-free > software, which you may replace by using this XYZ free software, that > would be useful. If it only offers queries and results from a software > database without distinction or without supporting GNU purposes, then > it should not be in GNU ELPA. You have so little faith in other human beings to think with their own heads. However I don't think everyone is happy with decisions being made for them. Some people prefer liberty to decide for themselves, otherwise they might feel oppressed. Freedom and liberty is letting people decide for themselves. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 16:23 ` Arthur Miller @ 2021-01-06 18:53 ` Jean Louis 2021-01-06 19:26 ` Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 252+ messages in thread From: Jean Louis @ 2021-01-06 18:53 UTC (permalink / raw) To: Arthur Miller; +Cc: ulm, ams, emacs-devel, Richard Stallman, Dmitry Gutov * Arthur Miller <arthur.miller@live.com> [2021-01-06 19:24]: > > As from example above, it does not says nothing about the license at > > all and thus does not serve to you as user to "recognize if software > > is free or not-free". That is why you should make better your personal > > research. > If it says non-free than it is quite clear for anyone with a bit of > intelligence in their head that it is, well: NON-FREE! Try using it yourself. Since I gave you my last example, I did not get impression that you improved your perception. This is because you did not try it. My conclusion is that it does not say for every piece of software that it is non-free. It is probably only for those software from Debian, that it gives the name of repository in the fourth column and Debian keeps name of repository "non-free". Repology.org server provides references to software packages from plethora of repositories. Other repositories may not name the repository "non-free", so you may not easily distinguish about that. And, I also gave example that package information may not show at all which license is used by specific package. Sometimes it may show, sometimes not. Take for example the proprietary black list by the fully free Parabola GNU/Linux distribution: https://git.parabola.nu/blacklist.git/plain/blacklist.txt and then use repology.el package to search for those packages. Then try searching for a popular non-free browser such as "Opera" You may find an entry like this: SlackBuilds network/opera-developer 74.0.3890.0 network edps.mundognu@gmail.com where it gives following information: repo slackbuilds srcname network/opera-developer visiblename network/opera-developer version 74.0.3890.0 maintainers edps.mundognu@gmail.com downloads https://download1.operacdn.com/pub/opera-developer/74.0.3890.0/linux/opera-developer_74.0.3890.0_amd64.deb www https://www.opera.com/ categories network status ignored origversion - And in such information there is hyperlink on how to download non-free software. Nothing says if software is free or not. This is becuse SlackBuilds unethical repository probably does not provide license information on software they package, including proprietary software. If however, user clocks on the entry like this: nixpkgs unstable opera 68.0.3618.63 - fallback-mnt-nix@repology then one can get some information as the nixpkgs unethical repository, does provide information that they are distributing proprietary software, they mention it as "Unfree": repo nix_unstable name opera visiblename opera version 68.0.3618.63 maintainers fallback-mnt-nix@repology licenses Unfree www https://www.opera.com/ summary Web browser status outdated origversion - Other unethical repository like Solus would spit out result by repology.el like this: repo solus srcname opera-stable binname opera-stable visiblename opera-stable version 73.0.3856.329 maintainers harveydevel@gmail.com licenses Distributable www https://www.opera.com/ summary The Opera browser brings you more speed, more discoveries and more safety on the web - all for free categories network.web.browser status newest origversion - "Distributable" is vague and does not say really what license it is, but I do ensure you that Opera is proprietary software. And so on, and so on. By putting repology.el into GNU ELPA, GNU software like Emacs will become a good reference to unethical software repositories promoting among proprietary software. > > It is matter of freedom and liberty and > > teaching people free software and not religion. > I didn't said that GNU teaches people about religion. I said you are > religious dogmatic about software. Who I am, or how I am is not subject of this. I do need to conform to yours or anybody's standards or classes of society. Subject is the Emacs package repology.el and if inclusion into GN ELPA is aligned with GNU purposes. I am free software user and cannot recommend any proprietary software to any party, so I do not recommend that GNU Emacs in official GNU repository becomes a platform to promote proprietary software packages. And I can hardly understand why you promote such view point. People reading this mailing list shall know that GNU Emacs is about free software. Attempt to promote proprietary software by including repology.el in GNU ELPA is confusing free software users reading this mailing list. So if you wish to promote proprietary software just find some other platform, but not GNU.org. You could for example open up your website and open up your own ELPA repository and include repology.el and provide access to references on proprietary software. It would be less typing then what we discuss here. I do think that attempt to include the repology.el is the attempt to make better advertising for the unethical website repology.org Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 18:53 ` Jean Louis @ 2021-01-06 19:26 ` Eli Zaretskii 2021-01-06 21:18 ` Alfred M. Szmidt ` (2 more replies) 2021-01-06 20:36 ` Arthur Miller 2021-01-07 7:49 ` Richard Stallman 2 siblings, 3 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-06 19:26 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Wed, 6 Jan 2021 21:53:08 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: ulm@gentoo.org, ams@gnu.org, emacs-devel@gnu.org, > Richard Stallman <rms@gnu.org>, Dmitry Gutov <dgutov@yandex.ru> > > "Distributable" is vague and does not say really what license it is, > but I do ensure you that Opera is proprietary software. > > And so on, and so on. > > By putting repology.el into GNU ELPA, GNU software like Emacs will > become a good reference to unethical software repositories promoting > among proprietary software. Showing information about a package and a link to download it is a far cry from "promoting" it. Suppose I want to download a potentially non-free package to study its code, or even just to understand with what kind of license it is distributed (since you say the site itself doesn't tell) -- is this "verboten" as well in Jean Louis's interpretation of what a Free Software follower should and shouldn't do? IOW, since when providing _information_ about something means we endorse it? Are we allowed to discuss "the bad guys", or should we pretend they don't exist, for the fear that if we do mention them, that could be interpreted as "promoting" them and their views? If you think for a while, you will realize that this is the kind of slippery slope that leads to the company of the bastards that accused Richard in justifying obnoxious and criminal behavior. "You are either with us or against us." ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 19:26 ` Eli Zaretskii @ 2021-01-06 21:18 ` Alfred M. Szmidt 2021-01-06 21:25 ` Dmitry Gutov ` (2 more replies) 2021-01-07 7:49 ` Richard Stallman 2021-01-07 8:15 ` Jean Louis 2 siblings, 3 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-06 21:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, bugs, ulm, emacs-devel, arthur.miller, dgutov Showing information about a package and a link to download it is a far cry from "promoting" it. Suppose I want to download a potentially non-free package to study its code, or even just to understand with what kind of license it is distributed (since you say the site itself doesn't tell) -- is this "verboten" as well in Jean Louis's interpretation of what a Free Software follower should and shouldn't do? I think the issue here isn't what you, I, or Jean Louis does -- but what the GNU project does. The GNU project doesn't want to give non-free software the remote changes of success, so mentioning or linking to it unless it is very well known would be working against its own goals. This is all written down in the GNU coding standards, what GNU project should or shouldn't do, in the now so overly quoted section 'References to Non-Free Software and Documentation'. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 21:18 ` Alfred M. Szmidt @ 2021-01-06 21:25 ` Dmitry Gutov 2021-01-07 7:47 ` Richard Stallman [not found] ` <E1kxGuO-00079C-NR@fencepost.gnu.org> 2021-01-07 8:54 ` Jean Louis 2021-01-07 14:07 ` Eli Zaretskii 2 siblings, 2 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-06 21:25 UTC (permalink / raw) To: Alfred M. Szmidt, Eli Zaretskii Cc: ulm, emacs-devel, arthur.miller, bugs, rms On 06.01.2021 23:18, Alfred M. Szmidt wrote: > The GNU project doesn't want to give non-free software the remote > changes of success, so mentioning or linking to it unless it is very > well known would be working against its own goals. This is all > written down in the GNU coding standards, what GNU project should or > shouldn't do, in the now so overly quoted section 'References to > Non-Free Software and Documentation'. If your interpretation is right (and I'm not sure it is), think this kind of "ostrich" approach to the adversary seems like the most puzzling part of the GNU policy. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 21:25 ` Dmitry Gutov @ 2021-01-07 7:47 ` Richard Stallman [not found] ` <E1kxGuO-00079C-NR@fencepost.gnu.org> 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-07 7:47 UTC (permalink / raw) To: Dmitry Gutov; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > If your interpretation is right (and I'm not sure it is), think this > kind of "ostrich" approach to the adversary seems like the most puzzling > part of the GNU policy. This is a tricky trade-off between various disadvantages, so I think debating it would be a big time sink. If your judgment is different from mine, so be it. If someone has a constructive suggestion for a change in this policy, please send it to me personally. It is a tangent on this list. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
[parent not found: <E1kxGuO-00079C-NR@fencepost.gnu.org>]
[parent not found: <b94804db-7140-d450-6fc2-5afa440a8736@yandex.ru>]
[parent not found: <E1kxZru-0007Cl-DD@fencepost.gnu.org>]
* Re: [ELPA] New package: repology.el [not found] ` <E1kxZru-0007Cl-DD@fencepost.gnu.org> @ 2021-01-07 18:46 ` Dmitry Gutov 2021-01-07 21:07 ` Alfred M. Szmidt [not found] ` <2c5399e3-fa36-575d-d662-c7498dc334d6@yandex.ru> [not found] ` <834kjslexq.fsf@gnu.org> 2 siblings, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-07 18:46 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, eliz On 07.01.2021 20:18, Alfred M. Szmidt wrote: > You are exagerating. Nobody is saying don't do research, I'm quite > sure you are capable of finding that information on your own. But it > is a different thing for GNU do provide that information for you. But GNU software shouldn't help me in research? > Compare it to listing weapons on a web page by an organization that is > trying to get them removed from the streets... Bad comparison. Please refer to the first paragraph of the email you were replying to. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 18:46 ` Dmitry Gutov @ 2021-01-07 21:07 ` Alfred M. Szmidt 2021-01-08 7:04 ` Eli Zaretskii 2021-01-09 6:37 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-07 21:07 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, eliz > You are exagerating. Nobody is saying don't do research, I'm quite > sure you are capable of finding that information on your own. But it > is a different thing for GNU do provide that information for you. But GNU software shouldn't help me in research? In the research of non-free software, obviously no. > Compare it to listing weapons on a web page by an organization that is > trying to get them removed from the streets... Bad comparison. Please refer to the first paragraph of the email you were replying to. Maybe you could explain why it is a bad comparison. I read the first paragraph, but I fail to see what your point here is. If the idea of weapons is what is bother some, one could replace it with an organization trying to eliminate all polka candy, while still listing or providing a way to search manufacturers of polka candy. The point that was tried to be made here is that it isn't a self serving goal. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 21:07 ` Alfred M. Szmidt @ 2021-01-08 7:04 ` Eli Zaretskii 2021-01-08 10:14 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Göktuğ Kayaalp ` (2 more replies) 2021-01-09 6:37 ` Richard Stallman 1 sibling, 3 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 7:04 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov > From: "Alfred M. Szmidt" <ams@gnu.org> > Cc: eliz@gnu.org, bugs@gnu.support, arthur.miller@live.com, > rms@gnu.org, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Thu, 07 Jan 2021 16:07:13 -0500 > > > You are exagerating. Nobody is saying don't do research, I'm quite > > sure you are capable of finding that information on your own. But it > > is a different thing for GNU do provide that information for you. > > But GNU software shouldn't help me in research? > > In the research of non-free software, obviously no. And that is a serious problem, because GNU maintainers need to do that quite frequently, as part of their job they do for GNU. And other software users and professionals are likely to do that as well, in order to study software algorithms and implementations. Let me remind you that (AFAIK) one of the main reasons for starting GNU was the inability to share ideas about software design and implementation, due to commercial entities' enforcement of a system where showing the code was prohibited. It would be ironic if the GNU project prevented its followers from exercising the same freedom, by denying us the information about where to find that source code to begin with. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 7:04 ` Eli Zaretskii @ 2021-01-08 10:14 ` Göktuğ Kayaalp 2021-01-08 11:46 ` Jean Louis 2021-01-08 13:53 ` [ELPA] New package: repology.el Jean Louis 2021-01-08 17:22 ` Alfred M. Szmidt 2 siblings, 1 reply; 252+ messages in thread From: Göktuğ Kayaalp @ 2021-01-08 10:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, bugs, ulm, ams, arthur.miller, dgutov On 2021-01-08 09:04 +02, Eli Zaretskii <eliz@gnu.org> wrote: >> From: "Alfred M. Szmidt" <ams@gnu.org> >> > You are exagerating. Nobody is saying don't do research, I'm quite >> > sure you are capable of finding that information on your own. But it >> > is a different thing for GNU do provide that information for you. >> But GNU software shouldn't help me in research? >> In the research of non-free software, obviously no. > [... snip ...] It would be ironic if the GNU project prevented its > followers from exercising the same freedom, by denying us the > information about where to find that source code to begin with. Well said. All freedoms are both limited and ensured by other freedoms and the practicalities of the world we’re in, and a lot of talk here actively ignores that in some weird and sad doublethink fashion. Free software is a privilege, as it is. It requires a lot of knowledge about computing praxis and culture, internet culture, legal stuff, and politics. Not everyone knows these stuff and it is not easy to learn this stuff well. You need to invest a lot of time, which is increasingly more scarce for most of the world, even for formerly privileged folk. People can hardly find time for recreative and/or social activities. I assume the first and foremost principle of GNU and FSF would be to have software freedom prevail for all. That’s a good cause and one I can get behind as an individual. It’s fundamental and inevitable and unavoidable for free software to interact and cooperate with non-free software, if such a goal is not limited to the use cases of some privileged hackers. Most software, and most of popular software is closed source. Most users of software _cannot_ avoid non-free software. By witholding vital information regarding integration/interaction with a mostly non-free world, information _that we HAVE_ from most people on Earth that use computers, we are but comdeming them to non-free software. And we are doing what politicians do: ignoring the real problems of the people we think we’re helping as we enjoy our privileges atop our ivory towers, and an abyss grows between our reality and the reality of the greater world. Such an attitude reeks of hubris and privilege and disconnect and a distinct lack of empathy. And that’s not only off putting but also creates concrete obstructions for wide spread adoption of FOSS, which in turn means software freedom is one that only a tiny cabal out of all people can enjoy. If software freedom is instead to be a human right and free software is to be accessible to all, a great stepping stone would be to cooperate with the non-free world so excellently as to render the virtues and advantages of FOSS indubitably and unmistakably obvious to even non-technical users. Perfect is the enemy of good. Purism contaminates. Elitism breeds ignorance and malice. I want to be brief about this, what I’m telling should hopefully be clear but if not I can follow up with a more concrete writeup a few days later when I’ll have more ample time. -- İ. Göktuğ Kayaalp / @cadadr / <https://www.gkayaalp.com/> pgp: 024C 30DD 597D 142B 49AC 40EB 465C D949 B101 2427 ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 10:14 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Göktuğ Kayaalp @ 2021-01-08 11:46 ` Jean Louis 2021-01-08 12:51 ` Aldric Giacomoni ` (5 more replies) 0 siblings, 6 replies; 252+ messages in thread From: Jean Louis @ 2021-01-08 11:46 UTC (permalink / raw) To: emacs-tangents, Göktuğ Kayaalp, Eli Zaretskii Cc: ulm, dgutov, rms, arthur.miller, ams >Free software is a privilege, as it is. It requires a lot of knowledge >about computing praxis and culture, internet culture, legal stuff, and >politics. How privilege? I don't see how is free software privilege. Not for me. It should be basic human right for users to have control of their data, and not to let other companies or individuals control my data. Better said proprietary software is mischievous unfortunate degrading event of human history and we are working to the reverse it. >It’s fundamental and inevitable and unavoidable for free software to >interact and cooperate with non-free software, if such a goal is not >limited to the use cases of some privileged hackers. We have fully free software that need not ever interact or cooperate with non free. So I don't know where you pull out that anti information. Just start with www.gnu.org to find software that never ever need to cooperate with proprietary software. >Most software, >and >most of popular software is closed source. I did not count to say so. But what is popular it does not matter in GNU project, what matters is that we do have fully free software and operating systems. >Most users of software >_cannot_ avoid non-free software. Whoever is informed well and decides so themselves can switch to fully free software. People make decisions on their own. GNU project is everything else but not ivory tower. Otherwise you would not be able to discuss here. What GNU project promotes is free software. GNU never says to its users to use exclusively free software and never condemns people for using proprietary software. I thus do not see where is problem. Your statements are too general and I do not see how they relate. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 11:46 ` Jean Louis @ 2021-01-08 12:51 ` Aldric Giacomoni 2021-01-08 16:23 ` Ulrich Mueller ` (4 subsequent siblings) 5 siblings, 0 replies; 252+ messages in thread From: Aldric Giacomoni @ 2021-01-08 12:51 UTC (permalink / raw) To: Jean Louis Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov, Göktuğ Kayaalp, Eli Zaretskii [-- Attachment #1: Type: text/plain, Size: 2406 bytes --] *sigh* It should be a basic human right. That isn't the current reality. It is currently a privilege. Many good folks are working very hard to transform this privilege into a basic human right. Are we done trolling yet? > Your statements are too general and I do not see how they relate It's okay don't worry about it. Your point of view is the only correct one, so don't work too hard in exploring other people's. -- Aldric. Sent from a mobile device. On Fri, Jan 8, 2021, 06:46 Jean Louis <bugs@gnu.support> wrote: > > > > >Free software is a privilege, as it is. It requires a lot of knowledge > >about computing praxis and culture, internet culture, legal stuff, and > >politics. > > How privilege? I don't see how is free software privilege. Not for me. It > should be basic human right for users to have control of their data, and > not to let other companies or individuals control my data. > > Better said proprietary software is mischievous unfortunate degrading > event of human history and we are working to the reverse it. > > >It’s fundamental and inevitable and unavoidable for free software to > >interact and cooperate with non-free software, if such a goal is not > >limited to the use cases of some privileged hackers. > > We have fully free software that need not ever interact or cooperate with > non free. So I don't know where you pull out that anti information. Just > start with www.gnu.org to find software that never ever need to cooperate > with proprietary software. > > > >Most software, > >and > >most of popular software is closed source. > > I did not count to say so. But what is popular it does not matter in GNU > project, what matters is that we do have fully free software and operating > systems. > > >Most users of software > >_cannot_ avoid non-free software. > > Whoever is informed well and decides so themselves can switch to fully > free software. People make decisions on their own. > > GNU project is everything else but not ivory tower. Otherwise you would > not be able to discuss here. > > What GNU project promotes is free software. GNU never says to its users > to use exclusively free software and never condemns people for using > proprietary software. > > I thus do not see where is problem. > > Your statements are too general and I do not see how they relate. > > > > [-- Attachment #2: Type: text/html, Size: 3281 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 11:46 ` Jean Louis 2021-01-08 12:51 ` Aldric Giacomoni @ 2021-01-08 16:23 ` Ulrich Mueller 2021-01-08 18:47 ` Jean Louis 2021-01-09 6:42 ` Richard Stallman 2021-01-08 19:17 ` Göktuğ Kayaalp ` (3 subsequent siblings) 5 siblings, 2 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-08 16:23 UTC (permalink / raw) To: Jean Louis Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov, Göktuğ Kayaalp, Eli Zaretskii >>>>> On Fri, 08 Jan 2021, Jean Louis wrote: > What GNU project promotes is free software. GNU never says to its > users to use exclusively free software and never condemns people for > using proprietary software. Yet it maintains a blacklist of common GNU/Linux distros and labels them as "unethical", even if these distros (like Debian and Fedora) have a clear policy to exclude anything non-free from their main repositories. I am certain that these distro maintainers act in good faith if they mention (for example) CPU microcode for Spectre mitigation in their documentation, even if that microcode isn't free software. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 16:23 ` Ulrich Mueller @ 2021-01-08 18:47 ` Jean Louis 2021-01-09 6:42 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-08 18:47 UTC (permalink / raw) To: Ulrich Mueller Cc: emacs-tangents, rms, ams, arthur.miller, dgutov, Göktuğ Kayaalp, Eli Zaretskii * Ulrich Mueller <ulm@gentoo.org> [2021-01-08 19:25]: > >>>>> On Fri, 08 Jan 2021, Jean Louis wrote: > > > What GNU project promotes is free software. GNU never says to its > > users to use exclusively free software and never condemns people for > > using proprietary software. > > Yet it maintains a blacklist of common GNU/Linux distros and labels them > as "unethical", even if these distros (like Debian and Fedora) have a > clear policy to exclude anything non-free from their main > repositories. I am not sure if I understand well. Do you perceive labeling some distros as unethical same as labeling users of the distro unethical? For me that is not the same. Majority of GNU/Linux users are not well informed about free software. pDecision makers are well informed and they make conscious decisions to provide access to proprietary software. For that set of people I would say they act in a way that is contrary to free software philosophy, they use it only technically without teaching people about it. So I say, they do act with lack of responsibility in that regards. They value their technical capabilities more than freedom of their users. > I am certain that these distro maintainers act in good faith if they > mention (for example) CPU microcode for Spectre mitigation in their > documentation, even if that microcode isn't free software. They may act in good faith. But that may not be aligned to free software principles. Good faith as general term is not same as good faith to provide fully free software OS. I do not think that GNU project ever said anything about mentioning any proprietary software in relation on how to liberate users. So what if people mention it? I see no problem mentioning proprietary software as long as we clearly say what is the problem with it. Example: https://www.gnu.org/proprietary/malware-microsoft.html So there is mentioning of Microsoft Windows there many times. Problems are clearly listed with references for more understanding. Then, Hyperbola GNU/Linux-libre https://www.hyperbola.info also mentions proprietary software and relevant software that is risk to software freedom in a package named `your-freedom' Example line from there is like: abiword:abiword:::[semifree] Hard-codes nonfree fonts, [uses-nonprivacy] has non-privacy search engines and translators e.g. Google search engine and the defunct AltaVista’s Babel Fish translator which queries are redirected to the main Yahoo! page Then maybe Hyperbola maintainers try to rectify it by changing something in that software. Or other example: acetoneiso2::fsf:AcetoneISO:[uses-nonfree] ask to download and install nonfree poweriso akonadi-calendar-tools::::[uses-nonfree] only useful with nonfree qt5-webengine apm::::[uses-nonfree] has no policy against distributing nonfree software through their online database of Atom packages, [uses-nonfree][uses-nonsecurity] make-depends on coffee-script and depends on npm ark:ark:::[uses-nonfree] recommends nonfree unrar As you may see, software that relates to proprietary is mentioned and nonfree software is mentioned, and purpose of mentioning it is to point out that it is nonfree. If we come back to repology.org server, they do not have the purpose to say distinguish, so they just follow data structure of packages they are pulling, regardless if such data structure does not speak or does speak about the license of the software. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 16:23 ` Ulrich Mueller 2021-01-08 18:47 ` Jean Louis @ 2021-01-09 6:42 ` Richard Stallman 2021-01-11 14:11 ` Arthur Miller 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:42 UTC (permalink / raw) To: Ulrich Mueller Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov, self, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > What GNU project promotes is free software. GNU never says to its > > users to use exclusively free software and never condemns people for > > using proprietary software. > Yet it maintains a blacklist of common GNU/Linux distros and labels them > as "unethical", even if these distros (like Debian and Fedora) have a > clear policy to exclude anything non-free from their main repositories. This is a miscommunication. You and Jean are talking about different things. Jean is presenting the GNU Project's moral philosophy. We say that every nonfree program is an injustice, so recommending a nonfree program for use is unethical. To lead users to run it is unethical. When we say that a distro is unethical, that simply means that the distro contains or recommends or leads users to run nonfree software. Nothing other than that. It's not a personal criticism of the distro developers. I'm confident that the Debian developers and the Gentoo developers are honest and follow their moral codes. We don't mean to criticize them as people. We try to make this clear in gnu.org/distros. If you see anything there which is not clear, please write me privately and show me the text you mean. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-09 6:42 ` Richard Stallman @ 2021-01-11 14:11 ` Arthur Miller 2021-01-12 6:09 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-11 14:11 UTC (permalink / raw) To: Richard Stallman Cc: emacs-tangents, bugs, Ulrich Mueller, ams, dgutov, self, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > What GNU project promotes is free software. GNU never says to its > > > users to use exclusively free software and never condemns people for > > > using proprietary software. > > > Yet it maintains a blacklist of common GNU/Linux distros and labels them > > as "unethical", even if these distros (like Debian and Fedora) have a > > clear policy to exclude anything non-free from their main repositories. > > This is a miscommunication. You and Jean are talking about different > things. It is a miscommunication, albeit on GNU project side. Not all humans have possibility to use non-free software in all aspects of their life :-). I think GNU project should tell people to use exclusively free software *whenever they can*, and advice people to demand software companies to produce free software. As a side note, I think GNU project should make along better with non-free world and work via other tools (actively via politics) to promote usage and development of free software in society. > Jean is presenting the GNU Project's moral philosophy. We say that > every nonfree program is an injustice, so recommending a nonfree > program for use is unethical. To lead users to run it is unethical. > > When we say that a distro is unethical, that simply means that the > distro contains or recommends or leads users to run nonfree software. > Nothing other than that. > > It's not a personal criticism of the distro developers. I'm confident > that the Debian developers and the Gentoo developers are honest and > follow their moral codes. We don't mean to criticize them as people. > > We try to make this clear in gnu.org/distros. If you see anything > there which is not clear, please write me privately and show me the > text you mean. This is a bit paradoxical again. For the first, there is a slight problem with saying that people's work is unethical, but not people themselves. I understand what you mean, but I am afraid that a wider audience is not that understanding. If we need to describe what we mean with "ethical/unethical", than there is a bit of a problem already. Maybe this wording of being ethical/non-ethical is not always the best practial solution to achieve the goal of having free software life. Maybe talking about offering better alternative in terms of freedom and practical issues can be a better tool. I am just thinking loud ... ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-11 14:11 ` Arthur Miller @ 2021-01-12 6:09 ` Richard Stallman 2021-01-12 14:29 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-12 6:09 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, self, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > It is a miscommunication, albeit on GNU project side. Not all humans have > possibility to use non-free software in all aspects of their life :-). Why argue the question? > I think GNU project should tell people to use exclusively free software > *whenever they can*, It's possible you've been misinformed about what the GNU Project says to the public about using software. Have you looked at what we actually say? You can find it in https://gnu.org/philosophy/. To start with, look at fsf.org/tedx, https://gnu.org/philosophy/free-software-even-more-important.html, and https://gnu.org/philosophy/saying-no-even-once.html. > This is a bit paradoxical again. For the first, there is a slight > problem with saying that people's work is unethical, but not people > themselves. I understand what you mean, but I am afraid that a wider > audience is not that understanding. I think it is important to be able to condemn an act without condemning the person who does it. Nuances like that are important. To simplify them away would result in being too harsh on the people. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-12 6:09 ` Richard Stallman @ 2021-01-12 14:29 ` Arthur Miller 0 siblings, 0 replies; 252+ messages in thread From: Arthur Miller @ 2021-01-12 14:29 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, self, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > It is a miscommunication, albeit on GNU project side. Not all humans have > > possibility to use non-free software in all aspects of their life :-). > > Why argue the question? It is important to have the enbaling option, i.e. possibility. If a non-swimmer sees a drowning man in a lake, it is not unethical to not jump into the lake to save the drowning man. It is easy to be righteous for a well fed man in a cozy home having all > > I think GNU project should tell people to use exclusively free software > > *whenever they can*, > > It's possible you've been misinformed about what the GNU Project says > to the public about using software. Have you looked at what we > actually say? You can find it in https://gnu.org/philosophy/. I haven't red everything; some. I must admit when I wrote the sentence you quoted, I was thinking of that text (part 8.) I linked to, not of the rest. It was the one that was the basis for the argumentation here, so I just focused on that one. > To start with, look at fsf.org/tedx, I didn't know you had a ted-talk :-). Yes, I will watch it. > https://gnu.org/philosophy/free-software-even-more-important.html, > and https://gnu.org/philosophy/saying-no-even-once.html. > > > This is a bit paradoxical again. For the first, there is a slight > > problem with saying that people's work is unethical, but not people > > themselves. I understand what you mean, but I am afraid that a wider > > audience is not that understanding. > > I think it is important to be able to condemn an act without > condemning the person who does it. Nuances like that are important. > To simplify them away would result in being too harsh on the people. I think you are correct about that one. I was thinking about it more later, and I think I was going to far there. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 11:46 ` Jean Louis 2021-01-08 12:51 ` Aldric Giacomoni 2021-01-08 16:23 ` Ulrich Mueller @ 2021-01-08 19:17 ` Göktuğ Kayaalp 2021-01-09 6:41 ` Richard Stallman ` (2 more replies) 2021-01-09 6:40 ` Richard Stallman ` (2 subsequent siblings) 5 siblings, 3 replies; 252+ messages in thread From: Göktuğ Kayaalp @ 2021-01-08 19:17 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov, eliz On 2021-01-08 11:46 GMT, Jean Louis <bugs@gnu.support> wrote: >>Free software is a privilege, as it is. It requires a lot of >>knowledge about computing praxis and culture, internet culture, legal >>stuff, and politics. > How privilege? I don't see how is free software privilege. Not for > me. It should be basic human right for users to have control of their > data, and not to let other companies or individuals control my data. That’s what a privileged person would say. E.g., I’m an ethnically Turkish guy in Turkey. I look Turkish, I speak Standard Turkish with flawless mid-upper class Istanbulite accent, I’m a cisgender and heterosexual male. And I’m highly educated individual with a family backing his higher ed adventure. This means I don’t get stopped and searched, I don’t get harassed on the street, I don’t need to be afraid of the police, that I won’t be arrested or attacked for what language I speak, I won’t be looked down upon, and won’t have to worry about a lot of things women, LGBTQ+, and non-Turkish ethnicities will have to worry about. There’s a whole host of experiences that I will never have to get to know in person just because who I am. That’s how privilege works. It has you live in a safe, protective bubble. And it blurs the vision of the outer world. Free software is a privilege if you don’t have the time to learn a whole new culture. Free software is a privilege if your hardware can’t run it and you don’t have the money to buy stuff that does (for most people even a dongle is a serious investment). Free software is a privilege if you don’t get to make decisions about what software to use. Free software is a privilege if a clan of so-called software freedom advocates are censoring vital information because they happened to like so, saying nonsense like: > We have fully free software that need not ever interact or cooperate > with non free. This might be partially true for a software developer working only on free software, but it’s a privileged position because very little people have the chance to learn enough to do that and an even little opportunities exist for those who do put in the time. Meanwhile the rest of us plebeians have to make Zoom work on our computers, use sub-optimal hardware, and figure things on our own. All the while the likes of you see themselves entitled to judge the morality of our choices and obligations. >>Most software, and most of popular software is closed source. > I did not count to say so. But what is popular it does not matter in > GNU project, what matters is that we do have fully free software and > operating systems. We don’t. Nobody has. Maybe, as the one who attempts to deny the experience of billions of people, it’s kinda on you to do the counting there. >>Most users of software _cannot_ avoid non-free software. > Whoever is informed well and decides so themselves can switch to fully > free software. People make decisions on their own. No. If you have to use Zoom for your classes or meetings, you have to. If you need to use WhatsApp, you have to. Nobody but a very small amount of people are free in making these decisions. > GNU project is everything else but not ivory tower. Otherwise you > would not be able to discuss here. Neat little non sequitur there. GNU opens itself to the world and asks everyone to back its cause so you don’t get to pick who says what anyways. > What GNU project promotes is free software. GNU never says to its > users to use exclusively free software [...] If you make it hard to use non-free software one _has_ to use with free software they _want_ to use, this is effectively a discriminatory, exclusionary, and unegalitarian practice. And it’s also anti-GNU because this makes it _really_ hard to suggest people that they give free software a try. > [...] and never condemns people for using proprietary software. Yeah, no. All in all, if GNU wants to be a fun little software guys group like 9front or OpenBSD, fine, but be honest about it. If GNU and FSF wants to fight for everyone’s software freedom and will continue to ask donations for this cause, then this is not the way to do it. It comes off as entitled and disconnected. Today, there’s nothing that’s uniquely copyleft software, maybe except Emacs. LLVM and clang is as good as GCC, coreutils is better than BSD userland or busybox but not by a huge margin, Zsh is by no means inferior to Bash, etc. OSes like FreeBSD are almost fully viable on desktop, and most of what works on GNU/Linux works there. If copyleft and free-as-in-speech-not-beer is to remain relevant in the future, this whole attitude needs to change. > Your statements are too general and I do not see how they relate. You do not _want_ to see, FTFY. There’s a reason I changed the subject line. But all in all, to satisfy your unprecedented love for specific things and your dislike of attempting to make that last little connection: your attack on repology.el comes from a privileged position and the condemnation of even linking to information regarding non-free software in the form of repology.org, going so far as to suggesting stealing these people’s work and creating a knock-off ‘frepology.org’ comes from a privileged, exclusionary, and backwards position. This whole thing represents a self-destructive anti-free-software stance that is detrimental to the quest for software freedom as a right for all humans, and only caters to the handful FOSS zealots (one of which is I) who have put years into learning this whole travesty of an online culture and surrounding issues. As someone who believes in software freedom as a general good for human society I think you and the likes of you are hurting this endeavour. -- İ. Göktuğ Kayaalp / @cadadr / <https://www.gkayaalp.com/> pgp: 024C 30DD 597D 142B 49AC 40EB 465C D949 B101 2427 ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 19:17 ` Göktuğ Kayaalp @ 2021-01-09 6:41 ` Richard Stallman 2021-01-11 14:24 ` Arthur Miller 2021-10-04 13:46 ` Time to dial back the dialectic? [was: Re: Privileges and practicalities] dick 2021-01-09 7:25 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Jean Louis 2021-01-10 17:18 ` Devin Prater 2 siblings, 2 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:41 UTC (permalink / raw) To: GöktuÄ Kayaalp Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > No. If you have to use Zoom for your classes or meetings, you have to. > If you need to use WhatsApp, you have to. Not necessarily. I know people who have pressured/convinced institutions such as schools to let them use free software instead. It is not easy, and only a fraction succeed -- but that is better than zero chance. Pkease do not exaggerate hopelessness. You are aware of many forms of mistreatment of disprivileged groups. Usually there are campaigns to end those patterns of mistreatment. Society is starting to become aware of them. Nonfree software is an injustice too. Escaping it is not easy -- but our work is to make it easier and encourage people to escape. Hardly anyone recognizes this injustice, so one of our priorities is making people notice. Every time I mention that I refuse to use Zoom or WhatsApp, it is a chance to make people aware of the issue, and that is progress. > If you make it hard to use non-free software one _has_ to use with free > software they _want_ to use, this is effectively a discriminatory, > exclusionary, and unegalitarian practice. We never _make_ our programs not run on nonfree systems. You're attacking a straw man. Perhaps you've misunderstood what our practices are. We make our programs work with free software because that's what we want. If you want to change them to interoperate with some nonfree program or system, you are free to do that. We might even help maintain your changes, if they are easy to merge in. But we always give priority to using software in the Free World, on GNU. The last part of your message seems to be a lot of vituperation. If you have such a low opinion of our efforts, nobody insists you have to participate. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-09 6:41 ` Richard Stallman @ 2021-01-11 14:24 ` Arthur Miller 2021-01-12 6:09 ` Richard Stallman 2021-10-04 13:46 ` Time to dial back the dialectic? [was: Re: Privileges and practicalities] dick 1 sibling, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-11 14:24 UTC (permalink / raw) To: Richard Stallman Cc: emacs-tangents, bugs, ulm, ams, dgutov, Göktuğ Kayaalp, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > No. If you have to use Zoom for your classes or meetings, you have to. > > If you need to use WhatsApp, you have to. > > Not necessarily. I know people who have pressured/convinced > institutions such as schools to let them use free software instead. > It is not easy, and only a fraction succeed -- but that is better than > zero chance. > > Pkease do not exaggerate hopelessness. > > You are aware of many forms of mistreatment of disprivileged groups. > Usually there are campaigns to end those patterns of mistreatment. > Society is starting to become aware of them. > > Nonfree software is an injustice too. Escaping it is not easy -- but > our work is to make it easier and encourage people to escape. Indeed. Well said. > Hardly anyone recognizes this injustice, so one of our priorities is > making people notice. Every time I mention that I refuse to use Zoom > or WhatsApp, it is a chance to make people aware of the issue, > and that is progress. > > > > If you make it hard to use non-free software one _has_ to use with free > > software they _want_ to use, this is effectively a discriminatory, > > exclusionary, and unegalitarian practice. > > We never _make_ our programs not run on nonfree systems. > You're attacking a straw man. > > Perhaps you've misunderstood what our practices are. > > We make our programs work with free software because that's what we > want. If you want to change them to interoperate with some nonfree > program or system, you are free to do that. We might even help > maintain your changes, if they are easy to merge in. I think this is the line of action that should be definitely be worked more on. > But we always give priority to using software in the Free World, > on GNU. And together with the statement above, I think the more progress could be made if make GNU OS (Linux based) more attractive to more people. Unfortuantely most people as you say are neither aware of the issue not do they care for anything else but technical side of the computing. It is sad fact, that people don't value their freedom and privacy more, but it is a fact we have to work with nontheless. I think if GNU OS is made more compelling for more people on other premisses than just privacy and freedom, for example economics in both short and long run (politics again), than it might attract bigger grassroot which might give more inertia to GNU. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-11 14:24 ` Arthur Miller @ 2021-01-12 6:09 ` Richard Stallman 2021-01-12 14:19 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-12 6:09 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, self, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > And together with the statement above, I think the more progress could be > made if make GNU OS (Linux based) more attractive to more > people. Of course, we try to do that. It is easier said than done. There is no way to do it in general -- only various ways to do a lit of it in specific. Those depend on volunteers who want to work on it. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-12 6:09 ` Richard Stallman @ 2021-01-12 14:19 ` Arthur Miller 0 siblings, 0 replies; 252+ messages in thread From: Arthur Miller @ 2021-01-12 14:19 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, self, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > And together with the statement above, I think the more progress could be > > made if make GNU OS (Linux based) more attractive to more > > people. > > Of course, we try to do that. It is easier said than done. There is > no way to do it in general -- only various ways to do a lit of it in > specific. Those depend on volunteers who want to work on it. Yes I know I am aware of it. I believe that as a general rule of act we need to give people more incentive to work on Free software. This can come from more people using free software. Which is kind of a circle, not evil one though :-). I am suggesting for GNU to try to work more towards giving people that incentive. Maybe via political means, by persuading politicians and taxpayers that they have interest to pay for development of free software. For example if they "buy" (sponsor) development of free software, they can use it themselves. They (taxpayers) can save money in the long run when developers for some reason stop developing it, more companies would have insight in the software and be able to pick up development, contribute, etc. There are many reasons why taxpayers might wish to invest in free software rather then in closed source software. Not to mention personal freedom and privace as well as guarantee that organisations, company and institutions are not spyed on either. Openess of software is probably the only guarantee for personal privacy which is important for any democracy and freedom. I think general audience is not that introduced in problems about the software and why prefer free (at least open source) software vs. closed source software. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Time to dial back the dialectic? [was: Re: Privileges and practicalities] 2021-01-09 6:41 ` Richard Stallman 2021-01-11 14:24 ` Arthur Miller @ 2021-10-04 13:46 ` dick 2021-10-04 14:20 ` Eli Zaretskii 2021-10-06 20:53 ` Richard Stallman 1 sibling, 2 replies; 252+ messages in thread From: dick @ 2021-10-04 13:46 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents herr Doctor, I'd wager the hundred or so guys who identify most with GNU would, if a referendum were taken, say that: 1. Non-free is not an injustice, 2. *Gratis* is far and away more important to our users than *libre*, and 3. Non-free software can be used without compunction to improve our own *free* software, and in countless ways, already does. In other words, I'll book an emission-intensive flight to the climate conference if it means I don't have to join Greta on her toilet-less trans-Atlantic catamaran. I presume NonGNU Elpa was your idea, and it was the right one. Now we just need to take that initiative to its logical conclusion. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Time to dial back the dialectic? [was: Re: Privileges and practicalities] 2021-10-04 13:46 ` Time to dial back the dialectic? [was: Re: Privileges and practicalities] dick @ 2021-10-04 14:20 ` Eli Zaretskii 2021-10-06 20:53 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-10-04 14:20 UTC (permalink / raw) To: dick; +Cc: emacs-tangents, rms > From: dick <dick.r.chiang@gmail.com> > Date: Mon, 04 Oct 2021 09:46:49 -0400 > Cc: emacs-tangents@gnu.org > > herr Doctor, > > I'd wager the hundred or so guys who identify most with GNU would, if a > referendum were taken, say that: > > 1. Non-free is not an injustice, > > 2. *Gratis* is far and away more important to our users than *libre*, and > > 3. Non-free software can be used without compunction to improve our own *free* > software, and in countless ways, already does. > > In other words, I'll book an emission-intensive flight to the climate > conference if it means I don't have to join Greta on her toilet-less > trans-Atlantic catamaran. > > I presume NonGNU Elpa was your idea, and it was the right one. Now we just > need to take that initiative to its logical conclusion. Please don't use GNU mailing list for arguing with our views on Free Software; that is inappropriate. We have a special mailing list for such discussions: gnu-misc-discuss@gnu.org. If you want to have such a discussion, please take it there. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Time to dial back the dialectic? [was: Re: Privileges and practicalities] 2021-10-04 13:46 ` Time to dial back the dialectic? [was: Re: Privileges and practicalities] dick 2021-10-04 14:20 ` Eli Zaretskii @ 2021-10-06 20:53 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-10-06 20:53 UTC (permalink / raw) To: dick; +Cc: emacs-tangents [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I'd wager the hundred or so guys who identify most with GNU I often get mail from people who do support the free software movement. Those are the people who really "get it." The people you're talking about do exist, but they evidently don't support the free software movement. We are not trying to cater to them. On the contrary, on the philosophical level we compete with them. > I presume NonGNU Elpa was your idea, and it was the right one. I have a feeling that you've probably misunderstood the purpose of NonGNU ELPA, but since you have not given specifics, I can't really tell. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 19:17 ` Göktuğ Kayaalp 2021-01-09 6:41 ` Richard Stallman @ 2021-01-09 7:25 ` Jean Louis 2021-01-10 17:18 ` Devin Prater 2 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-09 7:25 UTC (permalink / raw) To: Göktuğ Kayaalp Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov, eliz * Göktuğ Kayaalp <self@gkayaalp.com> [2021-01-08 22:17]: > On 2021-01-08 11:46 GMT, Jean Louis <bugs@gnu.support> wrote: > >>Free software is a privilege, as it is. It requires a lot of > >>knowledge about computing praxis and culture, internet culture, legal > >>stuff, and politics. > > How privilege? I don't see how is free software privilege. Not for > > me. It should be basic human right for users to have control of their > > data, and not to let other companies or individuals control my data. > > That’s what a privileged person would say. E.g., I’m an ethnically > Turkish guy in Turkey. I look Turkish, I speak Standard Turkish with > flawless mid-upper class Istanbulite accent, I’m a cisgender and > heterosexual male. And I’m highly educated individual with a family > backing his higher ed adventure. This means I don’t get stopped and > searched, I don’t get harassed on the street, I don’t need to be afraid > of the police, that I won’t be arrested or attacked for what language I > speak, I won’t be looked down upon, and won’t have to worry about a lot > of things women, LGBTQ+, and non-Turkish ethnicities will have to worry > about. There’s a whole host of experiences that I will never have to > get to know in person just because who I am. That’s how privilege > works. It has you live in a safe, protective bubble. And it blurs the > vision of the outer world. Yes, it sounds like a privilege in a suppressive society. But that should not be subject here. > Free software is a privilege if you don’t have the time to learn a whole > new culture. "Privilege" is special advantage or immunity or benefit not enjoyed by all. Because that free software is accessible and downloadable and can be enjoyed by all people who wish, that is why I do not put it in category of privileges. You need not learn any new culture. All what you do is you purchase computer with free software installed and you learn software. There is no new culture to learn that is bound to that software. As you discover on your way of learning what it is, maybe you feel to wish to contribute back so you maybe file issues about software or program pieces or whole software yourself. But majority people will just find it useful for their life and business. > Free software is a privilege if your hardware can’t run it and you > don’t have the money to buy stuff that does (for most people even a > dongle is a serious investment). If you be practical and tell me what does not run and which device does not work, then maybe I find a workaround for you. So far I have installed Hyperbola GNU/Linux-libre on many computers, each computer works just fine. By chance I used mostly Lenovo Thinkpad, but also Fujitsu, HP, and similar. Major problem is when WiFi does not work. But because those computers are used in a country where Internet anyway comes over mobile phone, so we just connect mobile phone to notebook and receive Internet by USB tethering. Same mobile phone can connect to local WiFi and share connection by USB tethering to notebook. Notebooks I have purchased mostly for average price of US $200, and mobile phone for 70 euro in Germany. Better solution would be using Lenovo Thinkpads as described on https://www.libreboot.org and flash BIOS to have fully free computer. If there is problem with WiFi, a dongle or replaced chip would be necessary. You are right that things do not go that easy. But they can go easy if at the time point of a purchase of computer user purchases computer that does work with free software. That is what I am doing now and these months, I choose particular hardware that is free. > Free software is a privilege if you don’t get to make decisions > about what software to use. As employee, a person already decided to submit oneself to specific requirements of employer, so you could maybe influence employer and present free software as such is used also in US government, see https://code.gov and you could also present European use cases where free software is promoted to be used in governments. Those programmers who do understand importance of free software, they find themselves in such environments to produce or work with free software. There are so many free software companies as well. So it is matter of decision, what one wants to do from ground up. Like a musician who says I wish to play guitar but not piano, if that is first decision, musician may keep a guitar all life long. Personally I am interacting with many people and we have set of instructions which free software to use, and how to liberate devices from spying proprietary software. Those people who use iPhone are not asked to cease using iPhone personally. They are asked to purchase or acquire separate device that will run free software. We purchase for them. Staff members are not even asked if they use proprietary or not, it is irrelevant what they personally do, but in team communication we use free software. In general we do not tackle much the subject of what is free software. They learn about 4 freedoms and that is all, most of times that is not where their attention will be, as we wish to accomplish tasks. So using free software is in my business case rather useful than ideological. Just like mine company, there are many other companies that will work with people with free software. I know that Germany has many of such companies. > Free software is a privilege if a clan of so-called software freedom > advocates are censoring vital information because they happened to > like so, saying nonsense like: > > > We have fully free software that need not ever interact or cooperate > > with non free. I did not say or mean that you personally cannot interact. I have said that it need not interact as it is integrated operating system. No vital information is censored by that statement of mine. Neither I am member of a "clan" and I do not know why you mention that. > This might be partially true for a software developer working only > on free software, but it’s a privileged position because very little > people have the chance to learn enough to do that and an even little > opportunities exist for those who do put in the time. If you would be more practical, I could help you. Tell me your specific purpose or specific need. That is what we do here, we help people find free software. One time I had a huge need for free software to measure stock piles. I was searching for days for a solution and then I found http://cloudcompare.org/ and that is one practical use case where I had troubles finding free software for specific purpose. So provide a specific use case, what exactly you wish to solve? Then I will look if there exists free software solution. > Meanwhile the rest of us plebeians have to make Zoom work on our > computers, use sub-optimal hardware, and figure things on our own. > All the while the likes of you see themselves entitled to judge the > morality of our choices and obligations. If anybody says to me to have Skype, they take it maybe for granted that I will put proprietary software on computer, so I tell them clearly that we do not use third party servers to submit our information over them and I tell them that we use our own servers and so we recommed Mumble speech server for conversation over distances. Zoom is proprietary, and so we tell them about security issues with Zoom. It is matter of choice for me personally. https://www.forbes.com/sites/kateoflahertyuk/2020/06/05/zooms-security-nightmare-just-got-worse-but-heres-the-reality/?sh=12861f7e2131 I do understand that people have troubles handling communication and that we are as people in different societies and in different boundaries. And then in the end it looks like a Matrix movie, you are in a programmed society where you cannot easily liberate yourself. So it may seem from viewpoint of many people difficult like you say. It depends probably of how person found about the free software from begin of learning about computing. > >>Most users of software _cannot_ avoid non-free software. > > Whoever is informed well and decides so themselves can switch to fully > > free software. People make decisions on their own. > > No. If you have to use Zoom for your classes or meetings, you have to. > If you need to use WhatsApp, you have to. Nobody but a very small > amount of people are free in making these decisions. You may. Me as a parent of children, I can come to school and help them switch. If a school does other activities that are not acceptable to me personally, like teaching children some things that I do not agree with, then I may tell them so. If school does not comply, I change the school. Would there be for me personally problem with Zoom, I would complain, for the security issues mentioned. I do not think that it is legal to demand private persons to install some foreign software on a computer. In general it is matter of education. What you could do now is to provide the name of the school and contacts of their decision makers, then we compile set of documents and references and send to the school for their englightenment. > > What GNU project promotes is free software. GNU never says to its > > users to use exclusively free software [...] > > If you make it hard to use non-free software one _has_ to use with free > software they _want_ to use, this is effectively a discriminatory, > exclusionary, and unegalitarian practice. And it’s also anti-GNU > because this makes it _really_ hard to suggest people that they give > free software a try. I cannot see how GNU project is making hard for you or any other user to use proprietary software. Nobody even asks you about that. Nobody is looking what you do and how you use which software. To discriminate means to treat differently, in this case, on the basis of proprietary software. Maybe some people individually would or could do that, but GNU project does not do that. GNU project does not look who uses proprietary software, that does not matter. It teaches about free software, it does not look over your shoulder. Every person is welcome to contribute to GNU project regardless if they have bunch of computers running on proprietary software. Look here: https://www.gnu.org/philosophy/kind-communication.html > Likewise, be kind when pointing out to other contributors that they > should stop using certain nonfree software. For their own sake, they > ought to free themselves, but we welcome their contributions to our > software packages even if they don't do that. So these reminders > should be gentle and not too frequent—don't nag. > By contrast, to suggest that others run a nonfree program opposes the > basic principles of GNU, so it is not allowed in GNU Project > discussions. GNU project is against any discrimination towards people. What GNU project discriminates is proprietary software. It excludes proprietary software from GNU operating systems like Guix, Trisquel. Maybe I should mention again that GNU project is about building free operating system. As it is bunch of people who contribute to creation of free operating systems such as Guix, Trisquel, Parabola, etc. then whoever wish to use the systems is free, but whoever does not wish to use them is also free. There is no discrimination towards people based on what people use, as that is not subject of GNU. GNU provides free operating system, but people have their choice to take it or leave it. There is nothing exclusionary or unegalitarian. > And it’s also anti-GNU because this makes it _really_ hard to > suggest people that they give free software a try. Again, GNU project is about providing free operating system. It does not force you do anything. Nobody minds which software you use. Nobody even tracks who uses which software, it would be impossible. If you wish to suggest free software to people you are free. If not, you are also free. > All in all, if GNU wants to be a fun little software guys group like > 9front or OpenBSD, fine, but be honest about it. If GNU and FSF wants > to fight for everyone’s software freedom and will continue to ask > donations for this cause, then this is not the way to do it. It comes > off as entitled and disconnected. The distinction between OpenBSD and GNU is that GNU will not provide non-free software components like OpenBSD. Nothing changes there. For other thoughts in your above paragraph, I cannot comprehend it and I do not see relation to GNU. I may say that you have got perception from somewhere, but I do not share that perception of a GNU project. > Today, there’s nothing that’s uniquely copyleft software, maybe except > Emacs. Well, I cannot share that perception as a long time user of Debian GNU/Linux, you could verify it on their website, there are thousands of packages that are uniquely copyleft. > LLVM and clang is as good as GCC, coreutils is better than BSD > userland or busybox but not by a huge margin, Zsh is by no means > inferior to Bash, etc. You have mentioned various free software. They are all part of total set of free software. GNU project supports ALL free software licenses and promotes GNU GPL as primary. Please see here: https://www.gnu.org/licenses/license-list.html That is the official statement by GNU project. So all free software licenses are welcome. > OSes like FreeBSD are almost fully viable on desktop, and most of > what works on GNU/Linux works there. If copyleft and > free-as-in-speech-not-beer is to remain relevant in the future, this > whole attitude needs to change. Well you are asking GNU project to change its stance on free software. That is very unlikely to happen as it goes against its core principle or founding principle. But what you can do is to open up your project with different set of principles and run your own organization of people. Everybody is free and entitled to it. FreeBSD is not a fully free OS and is thus not endorsed as such by the FSF. One new and interesting project will be non-GNU Hyperbola/BSD-libre system https://www.hyperbola.info where they will provide fully free BSD-based but mostly non-GNU free operating system, where the OpenBSD kernel will be re-published under GNU GPL license and where systemsoftware will conform to GNU GPL. That will become a fully free BSD-like operating system. Until then, we have not get such as NetBSD/FreeBSD/OpenBSD/DragonflyBSD still do not qualify fully as such due to inclusion of various proprietary blobs. I may be mistaken, but that is what I know until now. > > Your statements are too general and I do not see how they relate. > > You do not _want_ to see, FTFY. There’s a reason I changed the subject > line. But all in all, to satisfy your unprecedented love for specific > things and your dislike of attempting to make that last little > connection: your attack on repology.el comes from a privileged > position I have no privileged position. In fact I am not developer in GNU project, and speak only what I personally find that should be aligned with GNU. So sorry, you are mistaken there. Further, there is no attack on repology.el as a package, I have verified its features and some are useful. It just does not align with GNU project principles so I said it should not be in GNU ELPA. But put it somewhere else, everybody is free to put it on other servers. > and the condemnation of even linking to information regarding non-free > software in the form of repology.org, going so far as to suggesting > stealing these people’s work and creating a knock-off > ‘frepology.org’ We do not link in GNU project to non-free software. Review the GNU.org website. You just need to learn more about what is GNU. When software is free, like repology.org software is free, do you allow people to discuss possibility of forking software and providing only a subset of packages, for example those being fully free? If you know what is free software, then please be aware that such possibility exists, even though is unlikely in my opinion. It is not "stealing" these people's work. It is re-using software. But if we wish to use "stealing" term we would say that rather in funny manner. It should be clear that free software is re-used. So that is where you came and made objections against a fundamental free software principle. > comes from a privileged, exclusionary, and backwards position. This > whole thing represents a self-destructive anti-free-software stance > that is detrimental to the quest for software freedom as a right for > all humans, and only caters to the handful FOSS zealots (one of > which is I) who have put years into learning this whole travesty of > an online culture and surrounding issues. I wish to comprehend everything but I cannot. There are no privileges that I see. Nothing is exclusionary, nobody is discriminated to use any kind of software, and there is nothing "backwards". Fundamental principle of GNU is that it is about creation of free software system. Some policies say that we shall not legitimize proprietary software. That is why GNU project should not provide hyperlinks or software descriptions in GNU EMACS. GNU ELPA is part of GNU Emacs. It is matter what GNU project presents to users and how is GNU project teaching and directing users, not what users are doing themselves. So there is no self-destructive anti-free-software stance. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 19:17 ` Göktuğ Kayaalp 2021-01-09 6:41 ` Richard Stallman 2021-01-09 7:25 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Jean Louis @ 2021-01-10 17:18 ` Devin Prater 2021-01-11 15:57 ` Jean Louis 2 siblings, 1 reply; 252+ messages in thread From: Devin Prater @ 2021-01-10 17:18 UTC (permalink / raw) To: emacs-tangents [-- Attachment #1: Type: text/plain, Size: 13571 bytes --] As a blind person, I feel that my ideas could help diversify things a bit. Replies inline: On 1/8/21 1:17 PM, Göktuğ Kayaalp wrote: > On 2021-01-08 11:46 GMT, Jean Louis <bugs@gnu.support> wrote: >>> Free software is a privilege, as it is. It requires a lot of >>> knowledge about computing praxis and culture, internet culture, legal >>> stuff, and politics. >> How privilege? I don't see how is free software privilege. Not for >> me. It should be basic human right for users to have control of their >> data, and not to let other companies or individuals control my data. I am a completely blind person, with 0.2% of Python programming knowledge. I switched to Linux (again) to see how accessibility has progressed in the two years since I'd tried it last. I can tell you that while privileged sighted people go on and on about KDE and how awesome it is, and Gnome, I can barely use either distribution. KDE is making progress, but for now only the default launcher will be usable... in the next version to be released. Gnome used to be great, but now even its Control Center is just awful to use with Orca, <https://help.gnome.org/users/orca/stable/introduction.html.en> the screen reader for graphical desktops. Now, GTK4 *says* it has accessibility fixes <https://blog.gtk.org/2020/10/21/accessibility-in-gtk-4/>. And I hope so; it's not in stable Arch repos yet so I've not tried it. However, even the latest release of Gnome's Control Center is slightly more accessible, yes, but it appears to me as if everything is in one *long* list; every single item is in tab order, and that's just a mess. QT has gotten better; indeed, Mumble is one of the most usable QT programs I've come across. You may then say, well what about the CLI? Sure, it's okay, until you get into TUI programs that use ascii graphics, or programs that redraw the whole screen for just a simple update. The non-uniformity of TUI programs makes them quite hard to use in many cases. There are some programs that are pretty good, like Emacs (with Emacspeak) and Mutt, so not all is bad there. It just feels so frustrating when FOSS folks talk about how inclusive FOSS is, how open and inviting it is, and then I try a Discord GTK client and find that it's nearly useless because of no list items being labeled correctly. And yes, I do intend to report the bugs and problems I find, but I may be ignored, or given the "oh it's someone else's fault" like with the Manjaro installer. And then there's Gnu's own Accessibility Statement <https://www.gnu.org/accessibility/accessibility.en.html>, which has a statistic from 2005, and reads as if it were updated ten or more years ago, as Silverlight and Adobe Flash haven't been a big issue in many years now, as HTML5 has superseded flash at least. I know that Gnu may have a shortage of documentation writers, and I could at least help with editing, but the lack of up-to-date information, and the favoring of Gnome as a good accessibility standard, is just another slap in the face for blind people who run across this and see how out-of-date the information is. > {snip} > Free software is a privilege if you don’t have the time to learn a whole > new culture. Free software is a privilege if your hardware can’t run > it and you don’t have the money to buy stuff that does (for most people > even a dongle is a serious investment). Free software is a privilege if > you don’t get to make decisions about what software to use. Free > software is a privilege if a clan of so-called software freedom > advocates are censoring vital information because they happened to like > so, saying nonsense like: > >> We have fully free software that need not ever interact or cooperate >> with non free. > This might be partially true for a software developer working only on > free software, but it’s a privileged position because very little people > have the chance to learn enough to do that and an even little > opportunities exist for those who do put in the time. > > Meanwhile the rest of us plebeians have to make Zoom work on our > computers, use sub-optimal hardware, and figure things on our own. > All the while the likes of you see themselves entitled to judge the > morality of our choices and obligations. This is even more true for people with disabilities. Do you know what most blind people use? Windows (7-10), because there is JAWS, a $1099 screen reader that is basically a bunch of scripts to work with Windows' accessibility API and massage the data, all taped together and packaged with high quality voices. Now you may say: "Well just install Linux." Sure, but the bios are completely visual, and so is the boot manager. We can get around this by using sighted family members, if we have them, or proprietary "sighted help" services like AIRA <https://aira.io/> or Be My Eyes <https://www.bemyeyes.com/>. But we want to do this with open source tools right? ... There's no other choice that I can think of, and this is simply booting the Linux disk. This is worked around with single-board computers, where the SD Card is the OS disk, and only requires flashing the OS which can be done by... well... a non-free OS like Windows. This can also be worked around by buying a computer with Linux already installed, but that will likely come with Ubuntu, which uses Gnome, which as stated earlier, isn't the most accessible option. Windows also has NVDA (nonvisual Desktop Access), which is open source. It is a very well complete screen reader, with community-maintained plugins (addons) for it that extend it immensely, with more voice options and application support. I say all this to setup what blind people, in the "blind community", are expected to work with. All of our specialty software, from braille translation to audio games, are on Windows. This has been worked around a bit, with cups-filters having a braille translation system using Liblouis and using Wine for audio games, but we still must use Zoom, TeamTalk (like Mumble (Mumble isn't usable with Windows screen readers)), Microsoft Office files, PDF's, and in the case of people who like to read, EPUB files. This may sound like general computer use, but the hardship is compounded by the inaccessibility of some programs, like the Gnome and Mate document viewers. Sure I can load a file, but I can't actually read the file. All this isn't to say that Linux isn't usable. I've used it for almost a month now without too many major problems. Google Docs and other messy web apps have problems with Orca, but I can read books using Nov.el (Nov-mode) in Emacs, write in Org-mode or Libre-Office, that kind of thing. But for how much longer? GTK4 worries me because Gnome3 isn't very usable. I mean, when you press the Hyper key, all you hear is "window." That's like if you pressed Hyper and a blank screen popped up, and you had to move your mouse to even get to the content, indeed, even the purpose of the window. Many programs, like Gedit and Gnome-Terminal, work well enough, but even Evolution has accessibility issues with even *reading* and *writing* email. Thunderbird is our *only* accessible GUI email program. But I use Linux because of the workarounds I can find, not because it's a great, accessibility-wise, operating system to use. I love being able to get podcasts, and even Youtube channel feeds, using GPodder, writing and reading and exploring with Emacs, listening to audio with filters and enhancement plugins with Audacious, that kind of thing. But there will probably always be the threat of inaccessibility looming over my head in Linux, because volunteers don't have to adhere to a standard; they can just make their own without accessibility considerations. And there are enough other marginalized groups, even though the disabled are the most marginalized, that the disabled can easily be forgotten, especially the blind. >>> Most software, and most of popular software is closed source. >> I did not count to say so. But what is popular it does not matter in >> GNU project, what matters is that we do have fully free software and >> operating systems. > We don’t. Nobody has. Maybe, as the one who attempts to deny the > experience of billions of people, it’s kinda on you to do the counting > there. > >>> Most users of software _cannot_ avoid non-free software. >> Whoever is informed well and decides so themselves can switch to fully >> free software. People make decisions on their own. > No. If you have to use Zoom for your classes or meetings, you have to. > If you need to use WhatsApp, you have to. Nobody but a very small > amount of people are free in making these decisions. > >> GNU project is everything else but not ivory tower. Otherwise you >> would not be able to discuss here. > Neat little non sequitur there. GNU opens itself to the world and asks > everyone to back its cause so you don’t get to pick who says what > anyways. > >> What GNU project promotes is free software. GNU never says to its >> users to use exclusively free software [...] > If you make it hard to use non-free software one _has_ to use with free > software they _want_ to use, this is effectively a discriminatory, > exclusionary, and unegalitarian practice. And it’s also anti-GNU > because this makes it _really_ hard to suggest people that they give > free software a try. > >> [...] and never condemns people for using proprietary software. > Yeah, no. > > > All in all, if GNU wants to be a fun little software guys group like > 9front or OpenBSD, fine, but be honest about it. If GNU and FSF wants > to fight for everyone’s software freedom and will continue to ask > donations for this cause, then this is not the way to do it. It comes > off as entitled and disconnected. They should also fight for everyone's access to their software as well, and denounce anyone that makes software which is unable to be easily used by the blind and other disabled groups, even if it means denouncing Gnome, KDE, LXQT, XFCE, and other large desktop environment creators until they understand that accessibility *is* a human rights issue, not something that they can just sweep under the rug until some time when there's nothing much else to do, because there will always be something else to do. GNU and FOSS doesn't work for everyone until it works for the least of us. I'm very glad that FOSS is coming to understand privilege, but then there is shown arrogance about the topic, that because Linux is open that anyone can use it well, that open source means greatness, always, no questions asked. I tell you, that open source does not mean accessible for those with disabilities. In many cases, it means nonstandard-compliance, leading to inaccessibility. Because the program has to stand out somehow, right? I'd love to get more people into Linux. I'd love to train my students on using Linux. I'd love for distributions and desktop environments to be a choice of what a user finds the most useful for them and what brings them the most productivity, instead of "you have to go with Mate because that's the only one that's usable." I'd love to bring Linux into my workplace and give concrete, real-world examples of how Linux helps me get my job done quickly and productively. I'd love to bring up Linux to even a few of the 70% of blind people who are unemployed, giving them great resources for learning how to code and groups that would welcome them and bring them into a team that can help them code and get into a well-paying organization, or even code programs for themselves and others, or even just understand how their computer works enough to provide tech support. Right now, though, I can't. And until this attitude of FOSS being mightily open and welcoming, and that the right way of doing things is known, and no opposition is taken seriously, and open to all, changes to a more humble and dedicated attitude of listening to actual people with disabilities, we won't get there. > Today, there’s nothing that’s uniquely copyleft software, maybe except > Emacs. LLVM and clang is as good as GCC, coreutils is better than BSD > userland or busybox but not by a huge margin, Zsh is by no means > inferior to Bash, etc. OSes like FreeBSD are almost fully viable on > desktop, and most of what works on GNU/Linux works there. If copyleft > and free-as-in-speech-not-beer is to remain relevant in the future, this > whole attitude needs to change. > >> Your statements are too general and I do not see how they relate. > You do not _want_ to see, FTFY. There’s a reason I changed the subject > line. But all in all, to satisfy your unprecedented love for specific > things and your dislike of attempting to make that last little > connection: your attack on repology.el comes from a privileged position > and the condemnation of even linking to information regarding non-free > software in the form of repology.org, going so far as to suggesting > stealing these people’s work and creating a knock-off ‘frepology.org’ > comes from a privileged, exclusionary, and backwards position. This > whole thing represents a self-destructive anti-free-software stance that > is detrimental to the quest for software freedom as a right for all > humans, and only caters to the handful FOSS zealots (one of which is I) > who have put years into learning this whole travesty of an online > culture and surrounding issues. > > As someone who believes in software freedom as a general good for human > society I think you and the likes of you are hurting this endeavour. > > [-- Attachment #2: Type: text/html, Size: 17069 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-10 17:18 ` Devin Prater @ 2021-01-11 15:57 ` Jean Louis 0 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-11 15:57 UTC (permalink / raw) To: Devin Prater; +Cc: emacs-tangents * Devin Prater <r.d.t.prater@gmail.com> [2021-01-10 20:18]: > As a blind person, I feel that my ideas could help diversify things a > bit. Replies inline: Please try the system Hypertalking within the fully free and FSF endorsed operating system Hyperbola GNU/Linux-libre from https://wiki.hyperbola.info/doku.php?id=en:main:downloads&redirect=1#hypertalking_live_image I hope that it may help to some blind and visually impaired users. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 11:46 ` Jean Louis ` (2 preceding siblings ...) 2021-01-08 19:17 ` Göktuğ Kayaalp @ 2021-01-09 6:40 ` Richard Stallman 2021-01-09 6:40 ` Richard Stallman 2021-01-11 13:47 ` Arthur Miller 5 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:40 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, ulm, ams, arthur.miller, dgutov, self, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > >Free software is a privilege, as it is. It requires a lot of knowledge > >about computing praxis and culture, internet culture, legal stuff, and > >politics. > How privilege? I don't see how is free software privilege. Not for > me. It should be basic human right for users to have control of > their data, and not to let other companies or individuals control > my data. This looks like a miscommnuication to me. I think that what you are arguing against may not be what the other person meant. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 11:46 ` Jean Louis ` (3 preceding siblings ...) 2021-01-09 6:40 ` Richard Stallman @ 2021-01-09 6:40 ` Richard Stallman 2021-01-11 13:47 ` Arthur Miller 5 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:40 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, ulm, ams, arthur.miller, dgutov, self, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > >Free software is a privilege, as it is. It requires a lot of knowledge > >about computing praxis and culture, internet culture, legal stuff, and > >politics. > How privilege? I don't see how is free software privilege. Not for > me. It should be basic human right for users to have control of > their data, and not to let other companies or individuals control > my data. This looks like a miscommnuication to me. I think that what you are arguing against may not be what Göktuğ meant. > >Most software, > >and > >most of popular software is closed source. > I did not count to say so. But what is popular it does not matter > in GNU project, what matters is that we do have fully free > software and operating systems. What I see here is a disagreement about basic premises -- goals and values. I think you recognize that disagreement but Göktuğ doesn't yet. Göktuğ, I suggest reading ttps://gnu.org/philosophy/free-software-even-more-important.html to see what our goals and values are. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-08 11:46 ` Jean Louis ` (4 preceding siblings ...) 2021-01-09 6:40 ` Richard Stallman @ 2021-01-11 13:47 ` Arthur Miller 2021-01-12 6:10 ` Richard Stallman 5 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-11 13:47 UTC (permalink / raw) To: Jean Louis Cc: emacs-tangents, rms, ulm, ams, dgutov, Göktuğ Kayaalp, Eli Zaretskii Jean Louis <bugs@gnu.support> writes: >>Free software is a privilege, as it is. It requires a lot of knowledge >>about computing praxis and culture, internet culture, legal stuff, and >>politics. > > How privilege? I don't see how is free software privilege. Not for me. It should > be basic human right for users to have control of their data, and not to let > other companies or individuals control my data. You can easily exercise your right: do not use their services. It is still free. > Better said proprietary software is mischievous unfortunate degrading event of human history and we are working to the reverse it. > >>It’s fundamental and inevitable and unavoidable for free software to >>interact and cooperate with non-free software, if such a goal is not >>limited to the use cases of some privileged hackers. > > We have fully free software that need not ever interact or cooperate with non > free. So I don't know where you pull out that anti information. Just start with > www.gnu.org to find software that never ever need to cooperate with proprietary > software. > > >>Most software, >>and >>most of popular software is closed source. > > I did not count to say so. But what is popular it does not matter in GNU project, what matters is that we do have fully free software and operating systems. > >>Most users of software >>_cannot_ avoid non-free software. > > Whoever is informed well and decides so themselves can switch to fully free software. People make decisions on their own. Maybe, if all they have to do is covered by the free alternatives, which it is not for many people and organisations. It would be good if it is not so, but it is. Keep repeating that everyone can choose a free alternative if they just were is uninformed, ignorant and missleading. Best I can say: just a wishful thinking. Unfortunately. I wish it was true myself. > GNU project is everything else but not ivory tower. Otherwise you would not be able to discuss here. > > What GNU project promotes is free software. GNU never says to its users to use > exclusively free software and never condemns people for using proprietary > software. > > I thus do not see where is problem. > > Your statements are too general and I do not see how they relate. No, they are not at all. They are quite precise. If you fail to not understand what "promote free software", "never says its users to use exclusively free software" and "never condemns people for using proprietary software" then the fail is completely on your side. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-11 13:47 ` Arthur Miller @ 2021-01-12 6:10 ` Richard Stallman 2021-01-12 14:32 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-12 6:10 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, self, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > No, they are not at all. They are quite precise. If you fail to not > understand what "promote free software", "never says its users to use > exclusively free software" and "never condemns people for using > proprietary software" then the fail is completely on your side. That sentence is so nested that I am not sure what it means. However, I can tell you what the GNU Project says. The GNU Project never condemns people for using nonfree software and never tries to insist that people must use exclusively free software. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-12 6:10 ` Richard Stallman @ 2021-01-12 14:32 ` Arthur Miller 2021-01-13 5:42 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-12 14:32 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, self, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > No, they are not at all. They are quite precise. If you fail to not > > understand what "promote free software", "never says its users to use > > exclusively free software" and "never condemns people for using > > proprietary software" then the fail is completely on your side. > > That sentence is so nested that I am not sure what it means. However, This wasn't ment to you; this was ment to J-Louise who didn't understand meaning of Eli's sentence which in my opinion was very clear and concise. > I can tell you what the GNU Project says. The GNU Project never > condemns people for using nonfree software and never tries to insist > that people must use exclusively free software. I felt that some poeple does not intepret the GNU Project the same way as you, and that this was part of the heat in this discussion. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Privileges and practicalities [was: Re: [ELPA] New package: repology.el] 2021-01-12 14:32 ` Arthur Miller @ 2021-01-13 5:42 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-13 5:42 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, self, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I don't think that Jean was condemning people for using nonfree software. I think was emphatically saying they were making a foolish choice, a weak choice. That's true -- but there's no use condemning people for not being more courageous. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 7:04 ` Eli Zaretskii 2021-01-08 10:14 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Göktuğ Kayaalp @ 2021-01-08 13:53 ` Jean Louis 2021-01-08 17:22 ` Alfred M. Szmidt 2 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-08 13:53 UTC (permalink / raw) To: emacs-tangents, Eli Zaretskii, Alfred M. Szmidt Cc: ulm, rms, arthur.miller, dgutov You can study, is free. I don't see problem with anybody wishing to study anything. On January 8, 2021 7:04:13 AM UTC, Eli Zaretskii <eliz@gnu.org> wrote: >> From: "Alfred M. Szmidt" <ams@gnu.org> >> Cc: eliz@gnu.org, bugs@gnu.support, arthur.miller@live.com, >> rms@gnu.org, ulm@gentoo.org, emacs-tangents@gnu.org >> Date: Thu, 07 Jan 2021 16:07:13 -0500 >> >> > You are exagerating. Nobody is saying don't do research, I'm >quite >> > sure you are capable of finding that information on your own. >But it >> > is a different thing for GNU do provide that information for >you. >> >> But GNU software shouldn't help me in research? >> >> In the research of non-free software, obviously no. > >And that is a serious problem, because GNU maintainers need to do that >quite frequently, as part of their job they do for GNU. > >And other software users and professionals are likely to do that as >well, in order to study software algorithms and implementations. Let >me remind you that (AFAIK) one of the main reasons for starting GNU >was the inability to share ideas about software design and >implementation, due to commercial entities' enforcement of a system >where showing the code was prohibited. It would be ironic if the GNU >project prevented its followers from exercising the same freedom, by >denying us the information about where to find that source code to >begin with. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 7:04 ` Eli Zaretskii 2021-01-08 10:14 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Göktuğ Kayaalp 2021-01-08 13:53 ` [ELPA] New package: repology.el Jean Louis @ 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 18:38 ` Eli Zaretskii ` (2 more replies) 2 siblings, 3 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-08 17:22 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov > From: "Alfred M. Szmidt" <ams@gnu.org> > Cc: eliz@gnu.org, bugs@gnu.support, arthur.miller@live.com, > rms@gnu.org, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Thu, 07 Jan 2021 16:07:13 -0500 > > > You are exagerating. Nobody is saying don't do research, I'm quite > > sure you are capable of finding that information on your own. But it > > is a different thing for GNU do provide that information for you. > > But GNU software shouldn't help me in research? > > In the research of non-free software, obviously no. And that is a serious problem, because GNU maintainers need to do that quite frequently, as part of their job they do for GNU. As a GNU maintainer you can use other venues to find that information, again nobody is stopping _you_. But the GNU _project_ or GNU _software_ is not there to help you find non-free software. I do not understand what is so confusing here, how you as a person (in the capacity of a mainainter or not) wish to figure out stuff and what the GNU project links to are two entierly orthogonal issues. Its like asking why the GNU project doesn't provide information about finding good polka candy recipies, its outside the scope of the project (ignoring the issue that non-free software being immoral and unethical). And other software users and professionals are likely to do that as well, in order to study software algorithms and implementations. Let me remind you that (AFAIK) one of the main reasons for starting GNU was the inability to share ideas about software design and implementation, due to commercial entities' enforcement of a system where showing the code was prohibited. It would be ironic if the GNU project prevented its followers from exercising the same freedom, by denying us the information about where to find that source code to begin with. It doesn't prevent anyone from doing any kind of research, it is just not the place for GNU to help you in doing said research. There have been lists (e.g., the high priority list) of functionality which is lacking on free operating systems -- sometimes even mentioning very well known non-free software we (the project) wishes to replace. But when the program is unknown, one can simply list the features one wishes a program to have and not give it the extra promotion. Since if we say that a program has no free software counter part, it would be quite normal for someone to go decide that they will install the non-free program until such a day. And that would be working against the goal. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 17:22 ` Alfred M. Szmidt @ 2021-01-08 18:38 ` Eli Zaretskii 2021-01-08 19:40 ` Dmitry Gutov 2021-01-10 6:06 ` Sv: " arthur miller 2 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 18:38 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov > From: "Alfred M. Szmidt" <ams@gnu.org> > Cc: dgutov@yandex.ru, bugs@gnu.support, arthur.miller@live.com, > rms@gnu.org, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Fri, 08 Jan 2021 12:22:38 -0500 > > I do not understand what is so confusing here, how you as a person (in > the capacity of a mainainter or not) wish to figure out stuff and what > the GNU project links to are two entierly orthogonal issues. They aren't: I _want_ to use GNU software. I do use it as much as I can. Otherwise I wouldn't be here. I do not understand how this simple idea is so hard to understand. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 18:38 ` Eli Zaretskii @ 2021-01-08 19:40 ` Dmitry Gutov 2021-01-10 6:06 ` Sv: " arthur miller 2 siblings, 0 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-08 19:40 UTC (permalink / raw) To: Alfred M. Szmidt, Eli Zaretskii Cc: ulm, emacs-tangents, arthur.miller, bugs, rms On 08.01.2021 19:22, Alfred M. Szmidt wrote: > Its like asking why the GNU project doesn't provide information about > finding good polka candy recipies We're not talking about providing information, we're talking about censoring what a program is allowed to do. And I'm pretty sure that programs for finding good polka candy recipes fall under the purview of the GNU project as well. We don't want polka candy aficionados use proprietary programs for that, do we? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Sv: [ELPA] New package: repology.el 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 18:38 ` Eli Zaretskii 2021-01-08 19:40 ` Dmitry Gutov @ 2021-01-10 6:06 ` arthur miller 2021-01-11 4:42 ` Richard Stallman 2 siblings, 1 reply; 252+ messages in thread From: arthur miller @ 2021-01-10 6:06 UTC (permalink / raw) To: Alfred M. Szmidt, Eli Zaretskii Cc: ulm@gentoo.org, emacs-tangents@gnu.org, rms@gnu.org, bugs@gnu.support, dgutov@yandex.ru [-- Attachment #1: Type: text/plain, Size: 3724 bytes --] Again how did you think this will work in practice? What you are effectively saying is that GNU software can not mention non-GNJ software and can not be used to read/find or in any way interact with non GNU software. Thus Eli or anyone else can not use any piece of GNU software to read or interact with non free software since non free software can't even be mentioned by GNU software. If effect Eli would have to use non-free software to find information about non-free software. I am not sure you really mean it yourself that way of if you are aware of what you are saying. You are limit GNU software to be an isolated island. ________________________________ Från: Alfred M. Szmidt <ams@gnu.org> Skickat: den 8 januari 2021 18:22 Till: Eli Zaretskii <eliz@gnu.org> Kopia: dgutov@yandex.ru <dgutov@yandex.ru>; bugs@gnu.support <bugs@gnu.support>; arthur.miller@live.com <arthur.miller@live.com>; rms@gnu.org <rms@gnu.org>; ulm@gentoo.org <ulm@gentoo.org>; emacs-tangents@gnu.org <emacs-tangents@gnu.org> Ämne: Re: [ELPA] New package: repology.el > From: "Alfred M. Szmidt" <ams@gnu.org> > Cc: eliz@gnu.org, bugs@gnu.support, arthur.miller@live.com, > rms@gnu.org, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Thu, 07 Jan 2021 16:07:13 -0500 > > > You are exagerating. Nobody is saying don't do research, I'm quite > > sure you are capable of finding that information on your own. But it > > is a different thing for GNU do provide that information for you. > > But GNU software shouldn't help me in research? > > In the research of non-free software, obviously no. And that is a serious problem, because GNU maintainers need to do that quite frequently, as part of their job they do for GNU. As a GNU maintainer you can use other venues to find that information, again nobody is stopping _you_. But the GNU _project_ or GNU _software_ is not there to help you find non-free software. I do not understand what is so confusing here, how you as a person (in the capacity of a mainainter or not) wish to figure out stuff and what the GNU project links to are two entierly orthogonal issues. Its like asking why the GNU project doesn't provide information about finding good polka candy recipies, its outside the scope of the project (ignoring the issue that non-free software being immoral and unethical). And other software users and professionals are likely to do that as well, in order to study software algorithms and implementations. Let me remind you that (AFAIK) one of the main reasons for starting GNU was the inability to share ideas about software design and implementation, due to commercial entities' enforcement of a system where showing the code was prohibited. It would be ironic if the GNU project prevented its followers from exercising the same freedom, by denying us the information about where to find that source code to begin with. It doesn't prevent anyone from doing any kind of research, it is just not the place for GNU to help you in doing said research. There have been lists (e.g., the high priority list) of functionality which is lacking on free operating systems -- sometimes even mentioning very well known non-free software we (the project) wishes to replace. But when the program is unknown, one can simply list the features one wishes a program to have and not give it the extra promotion. Since if we say that a program has no free software counter part, it would be quite normal for someone to go decide that they will install the non-free program until such a day. And that would be working against the goal. [-- Attachment #2: Type: text/html, Size: 6184 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-10 6:06 ` Sv: " arthur miller @ 2021-01-11 4:42 ` Richard Stallman 2021-01-11 13:00 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-11 4:42 UTC (permalink / raw) To: arthur miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > What you are effectively saying is that GNU software can not > mention non-GNJ software and can not be used to read/find or in > any way interact with non GNU software. That is very different from what I said. So different that I don't see how to try to correct the misunderstanding. > Thus Eli or anyone else can not use any piece of GNU software to > read or interact with non free software since non free software > can't even be mentioned by GNU software. Have you ever visited a web site that is not mentioned in your browser's documentation or in Emacs? I would expect you have. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-11 4:42 ` Richard Stallman @ 2021-01-11 13:00 ` Arthur Miller 2021-01-12 6:11 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-11 13:00 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > What you are effectively saying is that GNU software can not > > mention non-GNJ software and can not be used to read/find or in > > any way interact with non GNU software. > > That is very different from what I said. So different that I don't > see how to try to correct the misunderstanding. I think it was an answer of Alfred I was quated there, not yours. I don't know what of your words you are referring to. > > Thus Eli or anyone else can not use any piece of GNU software to > > read or interact with non free software since non free software > > can't even be mentioned by GNU software. > > Have you ever visited a web site that is not mentioned in your > browser's documentation or in Emacs? I would expect you have. I don't understand how is that an argument for this discussion? With all the respect to you. If today's web browser do not conform to the GNU standard as (mis)interpreted by some hard-core people here, than those browser's do not follow GNU guidelines. I am not sure what they should do to actually conform to that point 8. of guidelines if they are not to mention or display sites that refer to non-free software. If they are to conform to the GNU guidelines (as of current) they should not render those sites (or fetch them). The point: consider repology.el to be just another browser; I don't see what would be difference if someone opens repology.org in Emacs or in Firefox. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-11 13:00 ` Arthur Miller @ 2021-01-12 6:11 ` Richard Stallman 2021-01-12 14:10 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-12 6:11 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > The point: consider repology.el to be just another browser; The crucial point is that it is a browser that only looks at one site, repology.org. I don't see > what would be difference if someone opens repology.org in Emacs or in > Firefox. If you're using a general purpose browser, whether its in Emacs or not, you can tell it to look at whichever site you like. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-12 6:11 ` Richard Stallman @ 2021-01-12 14:10 ` Arthur Miller 2021-01-13 5:42 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-12 14:10 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > The point: consider repology.el to be just another browser; > > The crucial point is that it is a browser that only looks at one site, > repology.org. Doesn't repology.el look at one site only too? > I don't see > > what would be difference if someone opens repology.org in Emacs or in > > Firefox. > > If you're using a general purpose browser, whether its in Emacs or > not, you can tell it to look at whichever site you like. What is difference if I tell Emacs to look at whichever site I like? Philosophically? Application X or application Y looking at site S. What makes logical distinction between X and Y in this case? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-12 14:10 ` Arthur Miller @ 2021-01-13 5:42 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-13 5:42 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > If you're using a general purpose browser, whether its in Emacs or > > not, you can tell it to look at whichever site you like. > What is difference if I tell Emacs to look at whichever site I like? > Philosophically? Application X or application Y looking at site S. What > makes logical distinction between X and Y in this case? You're arguing very hard about some issue, but I can't follow which issue, and I don't think it is the issue I was talking about. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 21:07 ` Alfred M. Szmidt 2021-01-08 7:04 ` Eli Zaretskii @ 2021-01-09 6:37 ` Richard Stallman 2021-01-09 8:41 ` Eli Zaretskii 2021-01-10 6:31 ` Sv: " arthur miller 1 sibling, 2 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:37 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, bugs, ulm, arthur.miller, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > You are exagerating. Nobody is saying don't do research, I'm quite > > sure you are capable of finding that information on your own. But it > > is a different thing for GNU do provide that information for you. > But GNU software shouldn't help me in research? > In the research of non-free software, obviously no. I think that oversimplifies the situation. You can use GNU software to do anything. You can use IceCat to read about nonfree programs on the web, look at their repos on GitHub, look at info about them in repology.org -- anything at all. You can use GCC to compile them, too. Researching nonfree software is usually a bad thing to do, because people generally do it so as to use or develop nonfree software. On the other hand, if it is to help replace those nonfree programs, that is a good thing. GNU programs don't try to judge the morality of whatever you are doing. They do what you command. The issue about repology.org is not about that. It is whether we should tell the public about its existence, for instance by including in Emacs a program specifically aimed at that site. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:37 ` Richard Stallman @ 2021-01-09 8:41 ` Eli Zaretskii 2021-01-10 6:31 ` Sv: " arthur miller 1 sibling, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-09 8:41 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: dgutov@yandex.ru, eliz@gnu.org, bugs@gnu.support, > arthur.miller@live.com, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Sat, 09 Jan 2021 01:37:10 -0500 > > The issue about repology.org is not about that. It is whether we > should tell the public about its existence, for instance by including > in Emacs a program specifically aimed at that site. I'm part of that public, so if you don't tell me about that site, I won't know about it. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Sv: [ELPA] New package: repology.el 2021-01-09 6:37 ` Richard Stallman 2021-01-09 8:41 ` Eli Zaretskii @ 2021-01-10 6:31 ` arthur miller 2021-01-13 5:29 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: arthur miller @ 2021-01-10 6:31 UTC (permalink / raw) To: Alfred M. Szmidt, rms@gnu.org Cc: eliz@gnu.org, emacs-tangents@gnu.org, ulm@gentoo.org, bugs@gnu.support, dgutov@yandex.ru [-- Attachment #1: Type: text/plain, Size: 3407 bytes --] "Researching nonfree software is usually a bad thing to do, because people generally do it so as to use or develop nonfree software. On the other hand, if it is to help replace those nonfree programs, that is a good thing." Knifes are bad thing because they are used to hurt people. But if they are used to slice bread and potatoes, that is a good thing. A tool has no moral value in itself. Not even an action The moral value is in the eye of beholder. (I think it was D. Hume first). Sounds it would be very difficult for any GNU developer to replace a feature in or entire non-free appliction if they are not allowed to even mention that application or use it etc. I think there is an instrinsical value in using Free software. I don't think people need prohibitions to achieve transition toward openess. I see general tendency toward openess in the society. However, I believe human psychology must be taken into consi- deration for success of any project of life-style matter, which I perceive GNU is. I believe that refusal to not even mention by name or a reference to non-free software will sound rather extreme to many people, and might even turn away some. It is also practially less useful than to be able to refer to something in order to at least condemn it or study it. I believe that it is a much better strategy to offer people a better choice. ________________________________ Från: Richard Stallman <rms@gnu.org> Skickat: den 9 januari 2021 07:37 Till: Alfred M. Szmidt <ams@gnu.org> Kopia: dgutov@yandex.ru <dgutov@yandex.ru>; eliz@gnu.org <eliz@gnu.org>; bugs@gnu.support <bugs@gnu.support>; arthur.miller@live.com <arthur.miller@live.com>; ulm@gentoo.org <ulm@gentoo.org>; emacs-tangents@gnu.org <emacs-tangents@gnu.org> Ämne: Re: [ELPA] New package: repology.el [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > You are exagerating. Nobody is saying don't do research, I'm quite > > sure you are capable of finding that information on your own. But it > > is a different thing for GNU do provide that information for you. > But GNU software shouldn't help me in research? > In the research of non-free software, obviously no. I think that oversimplifies the situation. You can use GNU software to do anything. You can use IceCat to read about nonfree programs on the web, look at their repos on GitHub, look at info about them in repology.org -- anything at all. You can use GCC to compile them, too. Researching nonfree software is usually a bad thing to do, because people generally do it so as to use or develop nonfree software. On the other hand, if it is to help replace those nonfree programs, that is a good thing. GNU programs don't try to judge the morality of whatever you are doing. They do what you command. The issue about repology.org is not about that. It is whether we should tell the public about its existence, for instance by including in Emacs a program specifically aimed at that site. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) [-- Attachment #2: Type: text/html, Size: 9785 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-10 6:31 ` Sv: " arthur miller @ 2021-01-13 5:29 ` Richard Stallman 2021-01-15 14:37 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-13 5:29 UTC (permalink / raw) To: arthur miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Analogies are not strong arguments about moral questions. That's because situations which present the same kinds of factors differ in how significant each factor is. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-13 5:29 ` Richard Stallman @ 2021-01-15 14:37 ` Arthur Miller 0 siblings, 0 replies; 252+ messages in thread From: Arthur Miller @ 2021-01-15 14:37 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Analogies are not strong arguments about moral questions. > That's because situations which present the same kinds of factors > differ in how significant each factor is. I of course agree, but I am not sure what you are aiming at here; you didn't quote which analogy I was making. Like every other tool, an analogy, metaphor etc, should be used in a correct way. ^ permalink raw reply [flat|nested] 252+ messages in thread
[parent not found: <2c5399e3-fa36-575d-d662-c7498dc334d6@yandex.ru>]
[parent not found: <X/dsHBhcgPAXbqwe@protected.rcdrun.com>]
* Re: [ELPA] New package: repology.el [not found] ` <X/dsHBhcgPAXbqwe@protected.rcdrun.com> @ 2021-01-07 20:34 ` Dmitry Gutov 2021-01-07 20:47 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-07 20:34 UTC (permalink / raw) To: Jean Louis Cc: emacs-tangents, rms, ulm, Alfred M. Szmidt, arthur.miller, eliz On 07.01.2021 22:16, Jean Louis wrote: >> Again, it's not a software directory. >> >> It's primary use case is when you*search* for some package and then see the >> available versions, where they are distributed, and who maintains them. >> >> As such, the necessary knowledge about the user is "the user searched for >> this package name". > When clicking on this page: > https://repology.org/projects/ > > It shows all packages from A-Z making it software directory by > definition here:https://en.wiktionary.org/wiki/directory They're just showing their data in all arrangements they could come up with. It's not a significant use case, compared to others. > repology.el package probbaly provides only access to searches within > the full database. And yet, you still argue that it is doing something wrong, somehow. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 20:34 ` Dmitry Gutov @ 2021-01-07 20:47 ` Jean Louis 0 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-07 20:47 UTC (permalink / raw) To: Dmitry Gutov Cc: emacs-tangents, rms, ulm, Alfred M. Szmidt, arthur.miller, eliz * Dmitry Gutov <dgutov@yandex.ru> [2021-01-07 23:35]: > On 07.01.2021 22:16, Jean Louis wrote: > > > Again, it's not a software directory. > > > > > > It's primary use case is when you*search* for some package and then see the > > > available versions, where they are distributed, and who maintains them. > > > > > > As such, the necessary knowledge about the user is "the user searched for > > > this package name". > > When clicking on this page: > > https://repology.org/projects/ > > > > It shows all packages from A-Z making it software directory by > > definition here:https://en.wiktionary.org/wiki/directory > > They're just showing their data in all arrangements they could come up with. > It's not a significant use case, compared to others. Sure. I have seen it. I do not know why it matters if it is directory or not, index, catalogue, search engine, database, call it as you wish. > > repology.el package probbaly provides only access to searches within > > the full database. > > And yet, you still argue that it is doing something wrong, somehow. I never said that, neither I have argued about what repology.org is doing neither judged the website. I have argued about repology.el package that does not belong to GNU ELPA as that way GNU project would be giving references to proprietary software. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
[parent not found: <834kjslexq.fsf@gnu.org>]
[parent not found: <E1kxcV3-0005Rt-7a@fencepost.gnu.org>]
* Re: [ELPA] New package: repology.el [not found] ` <E1kxcV3-0005Rt-7a@fencepost.gnu.org> @ 2021-01-08 7:06 ` Eli Zaretskii 2021-01-08 11:48 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 7:06 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov > From: "Alfred M. Szmidt" <ams@gnu.org> > Cc: dgutov@yandex.ru, bugs@gnu.support, arthur.miller@live.com, > rms@gnu.org, ulm@gentoo.org, emacs-tangets@gnu.org > Date: Thu, 07 Jan 2021 16:07:17 -0500 > > I presented a practical problem I have every day in my role as a GNU > maintainer. Why can't you respond to that specific problem, which is > both of practical interest and of relevance to Emacs? > > Because I don't see how it is a problem that the GNU project is going > to solve. Nor is it one _I_ wish to help you solve either, because I > think non-free software is bad so I'm won't be helping with that. It > is also not a task that you must solve as a GNU maintainer, you can > fully ignore it infact if you so want to -- but that is up to you. How can I ignore a package before I _know_ that it is non-free? And how can I know it's non-free except by looking at it? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 7:06 ` Eli Zaretskii @ 2021-01-08 11:48 ` Jean Louis 2021-01-08 12:34 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-08 11:48 UTC (permalink / raw) To: emacs-tangents, Eli Zaretskii, Alfred M. Szmidt Cc: ulm, rms, arthur.miller, dgutov That is maybe your way of finding free software. Since 1999 I find it from distributions and if I don't believe it enough I will look into license. I never go to proprietary software catalogue to find free software. Today we know by work of fully free and FSF endorsed Distributions which packages are free and which not. Easy On January 8, 2021 7:06:38 AM UTC, Eli Zaretskii <eliz@gnu.org> wrote: >> From: "Alfred M. Szmidt" <ams@gnu.org> >> Cc: dgutov@yandex.ru, bugs@gnu.support, arthur.miller@live.com, >> rms@gnu.org, ulm@gentoo.org, emacs-tangets@gnu.org >> Date: Thu, 07 Jan 2021 16:07:17 -0500 >> >> I presented a practical problem I have every day in my role as a >GNU >> maintainer. Why can't you respond to that specific problem, which >is >> both of practical interest and of relevance to Emacs? >> >> Because I don't see how it is a problem that the GNU project is going >> to solve. Nor is it one _I_ wish to help you solve either, because I >> think non-free software is bad so I'm won't be helping with that. It >> is also not a task that you must solve as a GNU maintainer, you can >> fully ignore it infact if you so want to -- but that is up to you. > >How can I ignore a package before I _know_ that it is non-free? And >how can I know it's non-free except by looking at it? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 11:48 ` Jean Louis @ 2021-01-08 12:34 ` Eli Zaretskii 2021-01-08 13:56 ` Jean Louis 2021-01-10 6:04 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 12:34 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov > Date: Fri, 08 Jan 2021 11:48:53 +0000 > CC: rms@gnu.org, ulm@gentoo.org, arthur.miller@live.com, > dgutov@yandex.ru > From: Jean Louis <bugs@gnu.support> > > That is maybe your way of finding free software. Since 1999 I find it from distributions and if I don't believe it enough I will look into license. I'm not talking about finding free software, I'm talking about determining whether a given package is free software, and under what license it is distributed. The FSD doesn't give me that information. It also doesn't give me enough information about related components, like fonts, for example. Finding the facts about these components is the bread and butter of every GNU maintainer for a more-or-less complex GNU package. Not being able to do this part of my job with GNU-endorsed free software is a major blow. And the most painful part of that blow is that I cannot understand the reasons for it. Once again, repology.org does NOT promote any software packages it lists, regardless of what you'd like to represent. Likewise, such limitations prevents users from being able to study source code of any package that shows its code, something I think is detrimental to free exchange of ideas about software, which I always thought was the important goal of GNU. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 12:34 ` Eli Zaretskii @ 2021-01-08 13:56 ` Jean Louis 2021-01-08 14:45 ` Eli Zaretskii 2021-01-10 6:04 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-08 13:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov Does that mean you wish to exclusively include repology.el into GNU ELPA? Like you can't use that package without including it in GNU ELPA? Can you use website directly? I can. What is real problem there? On January 8, 2021 12:34:22 PM UTC, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Fri, 08 Jan 2021 11:48:53 +0000 >> CC: rms@gnu.org, ulm@gentoo.org, arthur.miller@live.com, >> dgutov@yandex.ru >> From: Jean Louis <bugs@gnu.support> >> >> That is maybe your way of finding free software. Since 1999 I find it >from distributions and if I don't believe it enough I will look into >license. > >I'm not talking about finding free software, I'm talking about >determining whether a given package is free software, and under what >license it is distributed. The FSD doesn't give me that information. >It also doesn't give me enough information about related components, >like fonts, for example. > >Finding the facts about these components is the bread and butter of >every GNU maintainer for a more-or-less complex GNU package. Not >being able to do this part of my job with GNU-endorsed free software >is a major blow. And the most painful part of that blow is that I >cannot understand the reasons for it. Once again, repology.org does >NOT promote any software packages it lists, regardless of ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 13:56 ` Jean Louis @ 2021-01-08 14:45 ` Eli Zaretskii 2021-01-08 18:27 ` Jean Louis 2021-01-10 6:04 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 14:45 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov > Date: Fri, 08 Jan 2021 13:56:40 +0000 > CC: emacs-tangents@gnu.org, rms@gnu.org, ulm@gentoo.org, ams@gnu.org, > arthur.miller@live.com, dgutov@yandex.ru > From: Jean Louis <bugs@gnu.support> > > Does that mean you wish to exclusively include repology.el into GNU ELPA? > > Like you can't use that package without including it in GNU ELPA? Can you use website directly? > > I can. > > What is real problem there? I thought it was obvious. Since it's evidently isn't, let me cross the t's and dot the i's for you: We develop Emacs because we think it helps users. We don't develop it as some academic exercise to be shown in some ivory tower, nor as merely an example of what Free Software can become. I came to Emacs because it helped me do my everyday's work, and I've taken upon myself the burden of being its maintainer because I want it to help others, and become better at helping them. Thus, whether I personally can access that site is immaterial. I don't need your, or anybody's, permission to do whatever I want with my systems. It's the Emacs user community that I'm trying to help, and I believe I'm not the only one who needs to do those tasks that I described. Refusal to make this, or any other package that has the similar audacity of showing information about software in a completely neutral way, to be available from GNU ELPA diminishes from the community, and thus hurts me in my effort to help the community members to enjoy software freedom. That is why I'm speaking up. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 14:45 ` Eli Zaretskii @ 2021-01-08 18:27 ` Jean Louis 2021-01-08 19:38 ` Eli Zaretskii 2021-01-10 6:04 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-08 18:27 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-08 17:46]: > > What is real problem there? > > I thought it was obvious. Since it's evidently isn't, let me cross > the t's and dot the i's for you: > > We develop Emacs because we think it helps users. We don't develop it > as some academic exercise to be shown in some ivory tower, nor as > merely an example of what Free Software can become. > > I came to Emacs because it helped me do my everyday's work, and I've > taken upon myself the burden of being its maintainer because I want it > to help others, and become better at helping them. > > Thus, whether I personally can access that site is immaterial. I > don't need your, or anybody's, permission to do whatever I want with > my systems. It's the Emacs user community that I'm trying to help, > and I believe I'm not the only one who needs to do those tasks that I > described. Refusal to make this, or any other package that has the > similar audacity of showing information about software in a completely > neutral way, to be available from GNU ELPA diminishes from the > community, and thus hurts me in my effort to help the community > members to enjoy software freedom. That is why I'm speaking up. If I understand it better you wish to help general Emacs users without regard if GNU as project would be giving all those references to non-free software. I find it unfortunate as that is not quite aligned with GNU project and I hope you will not find that too odd, you have known that GNU project is about free software. Now I wish you good luck, Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 18:27 ` Jean Louis @ 2021-01-08 19:38 ` Eli Zaretskii 2021-01-09 6:41 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 19:38 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov > Date: Fri, 8 Jan 2021 21:27:42 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: emacs-tangents@gnu.org, rms@gnu.org, ulm@gentoo.org, ams@gnu.org, > arthur.miller@live.com, dgutov@yandex.ru > > > We develop Emacs because we think it helps users. We don't develop it > > as some academic exercise to be shown in some ivory tower, nor as > > merely an example of what Free Software can become. > > > > I came to Emacs because it helped me do my everyday's work, and I've > > taken upon myself the burden of being its maintainer because I want it > > to help others, and become better at helping them. > > > > Thus, whether I personally can access that site is immaterial. I > > don't need your, or anybody's, permission to do whatever I want with > > my systems. It's the Emacs user community that I'm trying to help, > > and I believe I'm not the only one who needs to do those tasks that I > > described. Refusal to make this, or any other package that has the > > similar audacity of showing information about software in a completely > > neutral way, to be available from GNU ELPA diminishes from the > > community, and thus hurts me in my effort to help the community > > members to enjoy software freedom. That is why I'm speaking up. > > If I understand it better you wish to help general Emacs users without > regard if GNU as project would be giving all those references to > non-free software. I want help them because I don't see how these references cause any damage to the Free Software cause. Promoting non-free software and inviting users to use it is indeed against our cause, but just telling where it's stored isn't. Our users aren't babies from whom we should hide potentially dangerous stuff, they can make their own informed decisions. > you have known that GNU project is about free software. I don't think the GNU project is about concealing information. I hope it isn't. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 19:38 ` Eli Zaretskii @ 2021-01-09 6:41 ` Richard Stallman 2021-01-09 8:54 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:41 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I want help them because I don't see how these references cause any > damage to the Free Software cause. Promoting non-free software and > inviting users to use it is indeed against our cause, but just telling > where it's stored isn't. Telling people that the package _exists_ is what we want to avoid. > I don't think the GNU project is about concealing information. I hope > it isn't. The information is available to the public without our help, so we are not concealing it. But we have no obligation to go out of our way to spread the word. > Not mentioning a program does nothing towards eliminating it, Actually it does, sometimes. If we avoid mentioning a program we avoid recruiting more users for it. That can eventually contribute to its elimination. The point is, it avoids leading people to use that program. A nonfree program denies freedom to its users. If we lead a person to use the nonfree program, we lead per to surrender freedom to it. Therefore we try to avoid that. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:41 ` Richard Stallman @ 2021-01-09 8:54 ` Eli Zaretskii 2021-01-10 6:07 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-09 8:54 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: bugs@gnu.support, emacs-tangents@gnu.org, ulm@gentoo.org, > ams@gnu.org, arthur.miller@live.com, dgutov@yandex.ru > Date: Sat, 09 Jan 2021 01:41:21 -0500 > > > I want help them because I don't see how these references cause any > > damage to the Free Software cause. Promoting non-free software and > > inviting users to use it is indeed against our cause, but just telling > > where it's stored isn't. > > Telling people that the package _exists_ is what we want to avoid. I'm quite sure this is a misguided effort. For example, there's no reason not to tell them it exists, if you at the same time tell them it's non-free and urge them to use a free replacement instead. Thus, the urge to avoid divulging this information is not absolute, and we should talk about when it's okay and when it isn't, instead of flatly refusing to divulge the information as an absolute principle. > > I don't think the GNU project is about concealing information. I hope > > it isn't. > > The information is available to the public without our help, so > we are not concealing it. But we have no obligation to go out > of our way to spread the word. Having a single package that works with a single site is a far cry from going out of our way. Let's not exaggerate, please. > > Not mentioning a program does nothing towards eliminating it, > > Actually it does, sometimes. If we avoid mentioning a program we > avoid recruiting more users for it. That's an assumption, and I don't think it's true in this era of abundance of information. > That can eventually contribute to its elimination. That's another assumption, which I think is even less true. I could argue the opposite: by not mentioning such a program we leave the field to those who will promote it and lure users to use it. Whereas if we do mention it and say that it's non-free or has other issues (like spying on its users) we allow the users to make better decisions regarding its use. > The point is, it avoids leading people to use that program. But it does that badly, if it ever does. > A nonfree program denies freedom to its users. If we lead a person > to use the nonfree program, we lead per to surrender freedom to it. > Therefore we try to avoid that. I'm not arguing for leading people towards using such programs. I'm saying that pretending they don't exist is a very inefficient strategy, to say the least, towards the goal of leading users away from them. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 8:54 ` Eli Zaretskii @ 2021-01-10 6:07 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-10 6:07 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I'm quite sure this is a misguided effort. For example, there's no > reason not to tell them it exists, if you at the same time tell them > it's non-free and urge them to use a free replacement instead. It depends who we're talling. If we are informing someone who is a committed free software activist, someone who will surely reject it given this information, then telling per is harmless. Otherwise, the question is no so simple. That leaves a lot to say about the other issues raised. I can't do it today. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 14:45 ` Eli Zaretskii 2021-01-08 18:27 ` Jean Louis @ 2021-01-10 6:04 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-10 6:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Thus, whether I personally can access that site is immaterial. I > don't need your, or anybody's, permission to do whatever I want with > my systems. I think we all agree on that. > Refusal to make this, or any other package that has the > similar audacity of showing information about software in a completely > neutral way, to be available from GNU ELPA diminishes from the > community, and thus hurts me in my effort to help the community > members to enjoy software freedom. That is a different issue -- related by different. It raises other ethical issues that do not arise in anyone's personal activities. There are many reasons we might not put a package into GNU ELPA even though it is sometimes useful for people. I will write to you about this privately on Monday. Tomorrow I have an all-day meeting. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 12:34 ` Eli Zaretskii 2021-01-08 13:56 ` Jean Louis @ 2021-01-10 6:04 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-10 6:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Finding the facts about these components is the bread and butter of > every GNU maintainer for a more-or-less complex GNU package. That's a valid point. It is useful to be able to find out whether package P is free or not. Is that the main reason you use repology? Not > being able to do this part of my job with GNU-endorsed free software > is a major blow. On Monday could you explain that to me? It isn't obvious. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 21:18 ` Alfred M. Szmidt 2021-01-06 21:25 ` Dmitry Gutov @ 2021-01-07 8:54 ` Jean Louis 2021-01-07 14:07 ` Eli Zaretskii 2 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-07 8:54 UTC (permalink / raw) To: Alfred M. Szmidt Cc: rms, ulm, emacs-devel, arthur.miller, dgutov, Eli Zaretskii * Alfred M. Szmidt <ams@gnu.org> [2021-01-07 00:19]: > Showing information about a package and a link to download it is a far > cry from "promoting" it. > > Suppose I want to download a potentially non-free package to study its > code, or even just to understand with what kind of license it is > distributed (since you say the site itself doesn't tell) -- is this > "verboten" as well in Jean Louis's interpretation of what a Free > Software follower should and shouldn't do? I do not know now who really said above paragraph, I just wish to make it clear that I do not speak about what "free software follower should do or not" and I never spoke about that, the statements on repology.el were related on what should be put in GNU ELPA, or not, as it does not align to GNU project purposes. That people do what they wish to do is none of my business. So I never said anything ever on what a free software follower should do or not do. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 21:18 ` Alfred M. Szmidt 2021-01-06 21:25 ` Dmitry Gutov 2021-01-07 8:54 ` Jean Louis @ 2021-01-07 14:07 ` Eli Zaretskii 2021-01-07 18:18 ` Alfred M. Szmidt 2 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-07 14:07 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: rms, bugs, ulm, emacs-devel, arthur.miller, dgutov > From: "Alfred M. Szmidt" <ams@gnu.org> > Cc: bugs@gnu.support, arthur.miller@live.com, rms@gnu.org, > dgutov@yandex.ru, ulm@gentoo.org, emacs-devel@gnu.org > Date: Wed, 06 Jan 2021 16:18:59 -0500 > > Suppose I want to download a potentially non-free package to study its > code, or even just to understand with what kind of license it is > distributed (since you say the site itself doesn't tell) -- is this > "verboten" as well in Jean Louis's interpretation of what a Free > Software follower should and shouldn't do? > > I think the issue here isn't what you, I, or Jean Louis does -- but > what the GNU project does. I was talking from the POV of a GNU maintainer. > The GNU project doesn't want to give non-free software the remote > changes of success, so mentioning or linking to it unless it is very > well known would be working against its own goals. So you are basically saying that no GNU package can ever help me find out information about potentially non-free software? Looking for such information is something I as a GNU maintainer need to do almost every day: someone proposes or mentions an Emacs package or a program that can be useful with Emacs, and the first things I want/need to find out are what kind of package is that? in what language is it written and what OSes it supports? what is its license? does it rely on other packages, and if so, what are their implementations and licenses? You are in effect saying that no GNU package can ever help me with these tasks, except if I'm looking for info about a Free Software package, because divulging any information about a non-free package means "promoting" it? That is a very strange and radical interpretation of "promotion", one that hurts our own cause by preventing me from quickly and reliably answering the above basic questions about any software package I ever come across. > This is all written down in the GNU coding standards, what GNU > project should or shouldn't do, in the now so overly quoted section > 'References to Non-Free Software and Documentation'. Some relevant quotes from that section: A GNU program should not recommend, promote, or grant legitimacy to the use of any non-free program. No problem here. However, you should give only the necessary information to help those who already use the non-free program to use your program with it—don’t give, or refer to, any further information about the proprietary program, and don’t imply that the proprietary program enhances your program, or that its existence is in any way a good thing. A somewhat different context not really relevant for our discussion, but still: no problem here, either. This text means that providing the basic information about a program is OK, as long as we don't give any impression that we endorse it or think that it is helping the users in any way. Referring to a web site that describes or recommends a non-free program is promoting that program, so please do not make links to (or mention by name) web sites that contain such material. I guess you mean this text, specifically the "describes" part (the "recommends" part is fine, IMO). I think interpreting the "describes" part of this text literally, specifically when discussing packages such as repology.el, is a mistake, which actually interferes with GNU maintainers' job of quickly and reliably identifying software that is non-free or otherwise problematic to our cause. The ability to find and study the code of any package is also an important method of figuring out what the package really is and does; a literal interpretation of the above text when applied to the current case is thus also a mistake, IMO. I wish the above text would make it more clear how to interpret it in cases like this one. You should not refer to AT&T’s web site if that recommends AT&T’s non-free software packages; you should not refer to a page p that links to AT&T’s site presenting it as a place to get some non-free program, because that part of the page p itself recommends and legitimizes the non-free program. I see no problem here, either: repology.org doesn't promote or legitimize any of the packages whose information it records. In sum, the text of that section in GSoC clearly wants to prevent any recommendation or endorsement or favorite description of non-free software, so I think its interpretation as precluding the display of _any_ information of such software, specifically the basics: where to find it and who maintains it -- such interpretation is a mistake, and the text in GSoC should be made clearer in that regard. Maybe we should continue this discussion on another, more suitable GNU list. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 14:07 ` Eli Zaretskii @ 2021-01-07 18:18 ` Alfred M. Szmidt 2021-01-07 19:31 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-07 18:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov > The GNU project doesn't want to give non-free software the remote > changes of success, so mentioning or linking to it unless it is > very well known would be working against its own goals. So you are basically saying that no GNU package can ever help me find out information about potentially non-free software? Why should a GNU project ever give any legitimacy to a (specifically, unknown) non-free software program? E.g., by listing information about it or linking to it. You are in effect saying that no GNU package can ever help me with these tasks, except if I'm looking for info about a Free Software package, because divulging any information about a non-free package means "promoting" it? That is a very strange and radical interpretation of "promotion", one that hurts our own cause by preventing me from quickly and reliably answering the above basic questions about any software package I ever come across. I never used the word promote or promotion -- I'm actually avoiding it since I think it is prone to misinterpretation. But if we (GNU) link to a non-free software program, we are giving that program legitimacy to exist and effectivly saying that it is fine. Finding various non-free programs one is already able to do, but it isn't the task of the GNU project or a specific GNU project to make it easier. So I think yes, it would be strange for the GNU project, or specific GNU projects to make it easy to find information about non-free software -- even with big Caveat Emptor warning.. I see no problem here, either: repology.org doesn't promote or legitimize any of the packages whose information it records. It does so by listing (describing) them; that legitimizes the non-free programs. Maybe we should continue this discussion on another, more suitable GNU list. When I remeber, I try to replace emacs-devel@ -- but sometimes one forgets. I've replaced emacs-devel@ with emacs-tangents@; maybe some other list might be more appropriate? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 18:18 ` Alfred M. Szmidt @ 2021-01-07 19:31 ` Eli Zaretskii 2021-01-07 21:07 ` Alfred M. Szmidt 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-07 19:31 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov > From: "Alfred M. Szmidt" <ams@gnu.org> > Cc: bugs@gnu.support, arthur.miller@live.com, rms@gnu.org, > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Thu, 07 Jan 2021 13:18:35 -0500 > > > The GNU project doesn't want to give non-free software the remote > > changes of success, so mentioning or linking to it unless it is > > very well known would be working against its own goals. > > So you are basically saying that no GNU package can ever help me > find out information about potentially non-free software? > > Why should a GNU project ever give any legitimacy to a (specifically, > unknown) non-free software program? E.g., by listing information > about it or linking to it. I explained why. You elided that. I guess you are unwilling to engage in a serious discussion of a practical problem. Oh well. > I see no problem here, either: repology.org doesn't promote or > legitimize any of the packages whose information it records. > > It does so by listing (describing) them; that legitimizes the non-free > programs. You are saying those programs are breaking the law? > Maybe we should continue this discussion on another, more suitable > GNU list. > > When I remeber, I try to replace emacs-devel@ -- but sometimes one > forgets. I've replaced emacs-devel@ with emacs-tangents@; maybe some > other list might be more appropriate? I see no reason to continue, since you basically ignore all the substance. I presented a practical problem, and you instead chose to respond on an abstract philosophical level. Sorry, not interested. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 19:31 ` Eli Zaretskii @ 2021-01-07 21:07 ` Alfred M. Szmidt 2021-01-07 21:17 ` Dmitry Gutov 2021-01-09 6:37 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-07 21:07 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov If the goal of the GNU project is to eliminate non-free software, why should it help you, or anyone else in finding such software? You can find it on your own, nobody is stopping you -- but why should the GNU project or projects under its umbrella who have their main goal of is getting rid of such software work against its own goals? > I see no problem here, either: repology.org doesn't promote or > legitimize any of the packages whose information it records. > > It does so by listing (describing) them; that legitimizes the non-free > programs. You are saying those programs are breaking the law? The GNU project policy is to not legitimizes non-free software, what the law says is irrelevant here. So I fail to see what law has to do with anything. And as to why I elided much of your response is because you are being discourteous, and double so here. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 21:07 ` Alfred M. Szmidt @ 2021-01-07 21:17 ` Dmitry Gutov 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-09 6:34 ` Richard Stallman 2021-01-09 6:37 ` Richard Stallman 1 sibling, 2 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-07 21:17 UTC (permalink / raw) To: Alfred M. Szmidt, Eli Zaretskii Cc: ulm, emacs-tangents, arthur.miller, bugs, rms On 07.01.2021 23:07, Alfred M. Szmidt wrote: > If the goal of the GNU project is to eliminate non-free software, why Eliminate it by ignoring it, I take it. > should it help you, or anyone else in finding such software? You can > find it on your own, nobody is stopping you -- but why should the GNU > project or projects under its umbrella who have their main goal of is > getting rid of such software work against its own goals? Because we live in a real world, and we solve real problems, and it's very often useful to how others solve it. You might also want to look into the origins of GNU. Don't tell me there wasn't any research done into existing proprietary software during that time. I don't see why it's suddenly a bad strategy these days. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 21:17 ` Dmitry Gutov @ 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 19:43 ` Dmitry Gutov ` (2 more replies) 2021-01-09 6:34 ` Richard Stallman 1 sibling, 3 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-08 17:22 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, eliz > If the goal of the GNU project is to eliminate non-free software, > why Eliminate it by ignoring it, I take it. Not mentioning a program isn't the same as ignoring its existance. You might also want to look into the origins of GNU. It has been like this since the GNU project began. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 17:22 ` Alfred M. Szmidt @ 2021-01-08 19:43 ` Dmitry Gutov 2021-01-09 6:41 ` Richard Stallman 2021-01-08 19:48 ` Eli Zaretskii 2021-01-10 5:59 ` Sv: " arthur miller 2 siblings, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-08 19:43 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, eliz On 08.01.2021 19:22, Alfred M. Szmidt wrote: > > If the goal of the GNU project is to eliminate non-free software, > > why > > Eliminate it by ignoring it, I take it. > > Not mentioning a program isn't the same as ignoring its existance. If you are making an emphasis on never mentioning "wrong" programs, you make a conscious choice toward ignoring them, as opposed to studying them and overtaking them. That much should be obvious. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 19:43 ` Dmitry Gutov @ 2021-01-09 6:41 ` Richard Stallman 2021-01-09 8:57 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:41 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > If you are making an emphasis on never mentioning "wrong" programs, you > make a conscious choice toward ignoring them, as opposed to studying > them and overtaking them. Of course. We intentionally, specifically, avoid mentioning obscure nonfree programs as options to be used. (We may mention them to condemn them.) See the node References in the GNU Coding Standards. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:41 ` Richard Stallman @ 2021-01-09 8:57 ` Eli Zaretskii 0 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-09 8:57 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: ams@gnu.org, eliz@gnu.org, bugs@gnu.support, > arthur.miller@live.com, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Sat, 09 Jan 2021 01:41:30 -0500 > > > If you are making an emphasis on never mentioning "wrong" programs, you > > make a conscious choice toward ignoring them, as opposed to studying > > them and overtaking them. > > Of course. We intentionally, specifically, avoid mentioning obscure > nonfree programs as options to be used. Providing information about a program is not "using" that program. > (We may mention them to condemn them.) So there _are_ situations where mentioning such packages is okay. repology.org is a site that would allow us do that, by providing the information we need to use for the decision of whether they should or shouldn't be condemned. Therefore, I conclude that repology.org does a job that is useful for us, and we shouldn't refrain from using that site, definitely not as a dogmatic postulate some people here presented. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 19:43 ` Dmitry Gutov @ 2021-01-08 19:48 ` Eli Zaretskii 2021-01-10 5:59 ` Sv: " arthur miller 2 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 19:48 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov > From: "Alfred M. Szmidt" <ams@gnu.org> > Date: Fri, 08 Jan 2021 12:22:36 -0500 > Cc: emacs-tangents@gnu.org, rms@gnu.org, bugs@gnu.support, ulm@gentoo.org, > arthur.miller@live.com, eliz@gnu.org > > > If the goal of the GNU project is to eliminate non-free software, > > why > > Eliminate it by ignoring it, I take it. > > Not mentioning a program isn't the same as ignoring its existance. Not mentioning a program does nothing towards eliminating it, so it is not a means to that end. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Sv: [ELPA] New package: repology.el 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 19:43 ` Dmitry Gutov 2021-01-08 19:48 ` Eli Zaretskii @ 2021-01-10 5:59 ` arthur miller 2021-01-11 4:43 ` Richard Stallman 2 siblings, 1 reply; 252+ messages in thread From: arthur miller @ 2021-01-10 5:59 UTC (permalink / raw) To: Alfred M. Szmidt, Dmitry Gutov Cc: eliz@gnu.org, emacs-tangents@gnu.org, rms@gnu.org, bugs@gnu.support, ulm@gentoo.org [-- Attachment #1: Type: text/plain, Size: 1474 bytes --] But why? How do you really imagin 'not-ignoring' something but never mentioning it? Are you going to secretely at home study it in some way bet never telling anyone? In that case you are buildin g a stigma around it. Are you going to give it a nickname or speak in terms of "the thing we are not supposed to talk about"? Or something similar? In that case you are working against your own case, since you will be talking about it any way but just giving it a different combination of sounds to name what you are speaking about. Otherwise how is it supposed to work in practice to not ignore something but never not speak about it? I don't see the point. I don't think you have thought about implications of what you are proposing. ________________________________ Från: Alfred M. Szmidt <ams@gnu.org> Skickat: den 8 januari 2021 18:22 Till: Dmitry Gutov <dgutov@yandex.ru> Kopia: eliz@gnu.org <eliz@gnu.org>; bugs@gnu.support <bugs@gnu.support>; arthur.miller@live.com <arthur.miller@live.com>; rms@gnu.org <rms@gnu.org>; ulm@gentoo.org <ulm@gentoo.org>; emacs-tangents@gnu.org <emacs-tangents@gnu.org> Ämne: Re: [ELPA] New package: repology.el > If the goal of the GNU project is to eliminate non-free software, > why Eliminate it by ignoring it, I take it. Not mentioning a program isn't the same as ignoring its existance. You might also want to look into the origins of GNU. It has been like this since the GNU project began. [-- Attachment #2: Type: text/html, Size: 3242 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-10 5:59 ` Sv: " arthur miller @ 2021-01-11 4:43 ` Richard Stallman 2021-01-11 13:35 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-11 4:43 UTC (permalink / raw) To: arthur miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > How do you really imagin 'not-ignoring' something but never > mentioning it? Are you going to secretely at home study it in some > way bet never telling anyone? In that case you are buildin g a > stigma around it. I think you're arguing against a purely theoretical paradox. If you look at the References node, and read what we actually do, you'll see that it is practical and clear. You might still disagree with it, but at least you'll be disagreeing with something real. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-11 4:43 ` Richard Stallman @ 2021-01-11 13:35 ` Arthur Miller 2021-01-12 6:10 ` Richard Stallman 2021-01-12 6:11 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Arthur Miller @ 2021-01-11 13:35 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > How do you really imagin 'not-ignoring' something but never > > mentioning it? Are you going to secretely at home study it in some > > way bet never telling anyone? In that case you are buildin g a > > stigma around it. > > I think you're arguing against a purely theoretical paradox. Maybe, I am not 100%, I am just trying to reason about the issue. I think it would indeed be a theoretical paradox only, unless some people didn't interpreted the guidelines so strictly that it not become a practical issue. I think the guidelines should be re-worked slightly. > If you look at the References node, and read what we actually do, > you'll see that it is practical and clear. To be sure we speak about same text I'll paste a link: https://www.gnu.org/prep/standards/html_node/References.html > You might still disagree with it, but at least you'll be disagreeing > with something real. I have red them before, a few days ago too. I don't disagree with them in principle; I just think there are some slight problems with the text; As I understand the goal of the text is to ensure GNU is not actively promoting non-free software, which I completely support and agree. I think the problem at hand here is how we, or some people, define actively promoting something. Is a mere reference to existence a promotion of something? Remember your email about renaming Emacs repo from master to main, it was a week or two ago. You wrote something about words and meaning, I don't have the link to it now, so I can cite you, but I think same reasoning applies here. For the theoretical paradox: I am not sure if it is just a paradox. We should always be very careful when we encounter a paradox. Paradoxes does not exist in nature. When we see something as a paradox the problem is always in our understanding of the nature (mathematical, physical, philosophical, etc) or imperfection of human interpretaion of the world. The problem here is that in philosophical issues (which I think this is: an ethical question); we have to be consistent. We can't have a rule that applies and not applies; a fact can not be truth and false at same time. Thus if we are going to have a rule that guide our actions we need to be consistent. I don't think that in real life we have such rigiourus consistency as we can have in logics or mathematics, but for those cases where we can't formulate such rule, we should clearly state when rule applies. I think the paradox here arises because the text itself leaves a little bit more for the interpretation than it should, and we have people arguing here what is promotion and what is not. Maybe more clear description of what is considered promoting is needed. Maybe even taking a step back and relaxing a rule on what is legitimate and what not. In some previous mail you answered you had no problems with medical hardware running non-free blobs. In order to be consistent in philosophical sense, you should have problem with it. And if your philosophy asks you to refuse all non-ethical (non-free software) then you should refuse to use such machine. I don't think that is what you suggest to anyone or would practice yourself but I think the philosophy should maybe be a bit more clear about it. Observe, I am just trying to reason about this. I might be wrong, so please, I would be glad to what I understand wrong and the arguments. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-11 13:35 ` Arthur Miller @ 2021-01-12 6:10 ` Richard Stallman 2021-01-12 15:20 ` Eli Zaretskii 2021-01-12 6:11 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-12 6:10 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I think the problem at hand here is how we, or some people, define > actively promoting something. Is a mere reference to existence a > promotion of something? In some cases it is. Spreading the word about an obscure program is promoting it, since that information would lead some people to use them. Especially if you talk about the program as if people are going to use it. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-12 6:10 ` Richard Stallman @ 2021-01-12 15:20 ` Eli Zaretskii 2021-01-12 15:28 ` Dmitry Gutov 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-12 15:20 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: ams@gnu.org, dgutov@yandex.ru, eliz@gnu.org, bugs@gnu.support, > ulm@gentoo.org, emacs-tangents@gnu.org > Date: Tue, 12 Jan 2021 01:10:34 -0500 > > > I think the problem at hand here is how we, or some people, define > > actively promoting something. Is a mere reference to existence a > > promotion of something? > > In some cases it is. Spreading the word about an obscure program > is promoting it, since that information would lead some people to > use them. I think nowadays the information is so pervasive and so easily found that refraining from mentioning some program or site has no real advantages. It does have disadvantages: for example, we let our enemies mock us. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-12 15:20 ` Eli Zaretskii @ 2021-01-12 15:28 ` Dmitry Gutov 0 siblings, 0 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-12 15:28 UTC (permalink / raw) To: Eli Zaretskii, rms; +Cc: ams, emacs-tangents, bugs, arthur.miller, ulm On 12.01.2021 17:20, Eli Zaretskii wrote: > I think nowadays the information is so pervasive and so easily found > that refraining from mentioning some program or site has no real > advantages. It does have disadvantages: for example, we let our > enemies mock us. Or we alienate people who can be our friends. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-11 13:35 ` Arthur Miller 2021-01-12 6:10 ` Richard Stallman @ 2021-01-12 6:11 ` Richard Stallman 2021-01-12 14:08 ` Arthur Miller 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-12 6:11 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > In some previous mail you answered you had no problems with medical > hardware running non-free blobs. In order to be consistent in > philosophical sense, you should have problem with it. But... I don't reject appliances in general for possibly having nonfree software in them. If the appliance doesn't talk to a network, what's inside it is not a crucial issue, as long as it is not meant for anyone to change it. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-12 6:11 ` Richard Stallman @ 2021-01-12 14:08 ` Arthur Miller 2021-01-13 5:43 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-12 14:08 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > In some previous mail you answered you had no problems with medical > > hardware running non-free blobs. In order to be consistent in > > philosophical sense, you should have problem with it. > > But... I don't reject appliances in general for possibly having > nonfree software in them. If the appliance doesn't talk to a network, Why not? Medical hardware mostly have access to some network to store patients data nowdays. For the philosophy part, is it clearly stated in the text it is ok to have some non-free software in hardware? I am reflecting on philosophical theory and moral issue at the hand. Given the text (part 8.) it comes out from the text that any non free software is unethical. I believe you are in same position as Kant about the cathegorical imperative and the famous example of lying to the murderer at the door. According to critics one can't lie to the murderer at the door. According to the Kant there is no problem to lying at the door. I personally believe that problem is how people interpret Kant's theory. I believe that Kant interprets this as contract between rational beings (which leads to another critique of his theory). I think he sees a murderer as non-rational being and thus we are not obliged to obey him, i.e. we don't need to act rationally ourselves and can lie to him. I don't know I > what's inside it is not a crucial issue, as long as it is not meant > for anyone to change it. I don't think this is strong enough argument. Intel's blob in cpus is not meant for anyone to change it. Should we accept it? I think you don't accept it. So "not ment to change it" is insufficient requirement. I am not here to play the devil's advocate, I am just trying to point out philosophical difficulties with the issue. I draw parallel again with Kant and cathergorical (what we always should do) versus hypothetical (what we should do sometimes) imperative. I am not sure how to solve that, I just personally think there are some fundamental difficulties in the GNU philosphy that has manifested themselves with this discussion about repology and that maybe need to be addressed. I am not sure I can offer any better solution myself either. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-12 14:08 ` Arthur Miller @ 2021-01-13 5:43 ` Richard Stallman 2021-01-15 14:46 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-13 5:43 UTC (permalink / raw) To: Arthur Miller; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > But... I don't reject appliances in general for possibly having > > nonfree software in them. If the appliance doesn't talk to a network, > Why not? Medical hardware mostly have access to some network to store > patients data nowdays. For the philosophy part, is it clearly stated in > the text it is ok to have some non-free software in hardware? I've told you my general views on appliances with nonfree software in them. If you want to take a different stance, that's up to you. I don't have time to argue about that issue this week. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-13 5:43 ` Richard Stallman @ 2021-01-15 14:46 ` Arthur Miller 0 siblings, 0 replies; 252+ messages in thread From: Arthur Miller @ 2021-01-15 14:46 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-tangents, bugs, ulm, ams, dgutov, eliz Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > But... I don't reject appliances in general for possibly having > > > nonfree software in them. If the appliance doesn't talk to a network, > > > Why not? Medical hardware mostly have access to some network to store > > patients data nowdays. For the philosophy part, is it clearly stated in > > the text it is ok to have some non-free software in hardware? > > I've told you my general views on appliances with nonfree software in > them. If you want to take a different stance, that's up to you. > I don't have time to argue about that issue this week. It is not me not wanting to understand you or taking a different stance. I am trying to analyze what you said from a logical/philosophical view. What I am telling is that what you currently say is leading to a contradiction, which means non consistent philosophy. Sure, I understand you don't feel for discussing it, nobody is obliged to discuss anything they don't want. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 21:17 ` Dmitry Gutov 2021-01-08 17:22 ` Alfred M. Szmidt @ 2021-01-09 6:34 ` Richard Stallman 2021-01-09 19:04 ` Dmitry Gutov 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:34 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > If the goal of the GNU project is to eliminate non-free software, why > Eliminate it by ignoring it, I take it. You have misrepresented one of the secondary things we do while denying all the rest. The only point that expresses is your hostility, and that harms our discussion here. Please pay attention to the Kind Communications Guidelines, so you can express your recommendations in ways that contribute to our work rather than hampering it. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:34 ` Richard Stallman @ 2021-01-09 19:04 ` Dmitry Gutov 2021-01-11 4:43 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-09 19:04 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, eliz On 09.01.2021 08:34, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > If the goal of the GNU project is to eliminate non-free software, why > > > Eliminate it by ignoring it, I take it. > > You have misrepresented one of the secondary things we do > while denying all the rest. The only point that expresses > is your hostility, and that harms our discussion here. This is humor. Sarcasm may be the lowest form, but there's little left that I can use to underline the imbalance in your collective position. And consider that this is exactly how it looks to a lot of people in our community. Which would be a valuable piece of info if you care about the said community and GNU's perception in it. I suppose Eli conveyed the same point better in a more recent email, though, in a language that could be closer to your line of thinking. > Please pay attention to the Kind Communications Guidelines, > so you can express your recommendations in ways that contribute > to our work rather than hampering it. Have you considered that condemning fellow FLOSS projects as "promoting proprietary software" is unkind? One could even call it libel. I get it that it might be hard for you to reverse what seems to be a decades-long policy, but you could at least ask Alfred and Jean to tone the rhetoric down a bit. To keep our discussions more constructive. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 19:04 ` Dmitry Gutov @ 2021-01-11 4:43 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-11 4:43 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > You have misrepresented one of the secondary things we do > > while denying all the rest. The only point that expresses > > is your hostility, and that harms our discussion here. > This is humor. Sarcasm may be the lowest form, but there's little left > that I can use to underline the imbalance in your collective position. To convince me, you have to show you understand what I'm saying, then point out a problem so I can agree it is a problem. Bludgeoning me with sarcasm only vents your hostility, and that doesn't mean I'm wrong. I am asking various people to be less strident, not only you. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 21:07 ` Alfred M. Szmidt 2021-01-07 21:17 ` Dmitry Gutov @ 2021-01-09 6:37 ` Richard Stallman 2021-01-09 8:43 ` Eli Zaretskii 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:37 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-tangents, bugs, ulm, arthur.miller, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > It does so by listing (describing) them; that legitimizes the non-free > > programs. > You are saying those programs are breaking the law? > The GNU project policy is to not legitimizes non-free software, what > the law says is irrelevant here. So I fail to see what law has to do > with anything. I think there is a linguistic misunderstanding here. "Legitimate" can mean "legitimate according to the law" or "legitimate according to standards of right and wrong". I generally use it in the latter sense, and I think you do too. Maybe Eli applied the first interpretation. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:37 ` Richard Stallman @ 2021-01-09 8:43 ` Eli Zaretskii 0 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-09 8:43 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: eliz@gnu.org, bugs@gnu.support, arthur.miller@live.com, > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Sat, 09 Jan 2021 01:37:13 -0500 > > > You are saying those programs are breaking the law? > > > The GNU project policy is to not legitimizes non-free software, what > > the law says is irrelevant here. So I fail to see what law has to do > > with anything. > > I think there is a linguistic misunderstanding here. "Legitimate" can > mean "legitimate according to the law" or "legitimate according to > standards of right and wrong". I generally use it in the latter > sense, and I think you do too. Maybe Eli applied the first > interpretation. We have a rule not to use "illegal" for anything that isn't a violation of the law, and we have that rule for a good reason. Why should we treat "legitimize" any differently? it has the same issue. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 19:26 ` Eli Zaretskii 2021-01-06 21:18 ` Alfred M. Szmidt @ 2021-01-07 7:49 ` Richard Stallman 2021-01-07 11:41 ` Dmitry Gutov 2021-01-07 14:24 ` Eli Zaretskii 2021-01-07 8:15 ` Jean Louis 2 siblings, 2 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-07 7:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Suppose I want to download a potentially non-free package to study its > code, or even just to understand with what kind of license it is > distributed (since you say the site itself doesn't tell) -- is this > "verboten" as well in Jean Louis's interpretation of what a Free > Software follower should and shouldn't do? The GNU Project would not criticize anyone for that. Indeed, we don't generally criticize users for running nonfree programs. And we don't claim the power to "forbid" anything (except for GPL violations). You're condemning things which don't have to do with us. The issue at hand is not about what users are allowed to do. And Jean's message was not about what users are allowed to do. We are talking about what WE should, and shouldn't, say to the public in Emacs and other GNU packages. If you look once again at the References node, you'll see what this is about. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 7:49 ` Richard Stallman @ 2021-01-07 11:41 ` Dmitry Gutov 2021-01-09 6:39 ` Richard Stallman 2021-01-07 14:24 ` Eli Zaretskii 1 sibling, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-07 11:41 UTC (permalink / raw) To: rms, Eli Zaretskii; +Cc: arthur.miller, ulm, ams, bugs, emacs-devel On 07.01.2021 09:49, Richard Stallman wrote: > We are > talking about what WE should, and shouldn't, say to the public in > Emacs and other GNU packages. The first question we asked is whether publishing a license-agnostic package working off an automatically-generated database based on the repositories of all the GNU/Linux and BSD distros out there constitutes "saying" something "to the public". ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 11:41 ` Dmitry Gutov @ 2021-01-09 6:39 ` Richard Stallman 2021-01-09 10:50 ` Dmitry Gutov 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:39 UTC (permalink / raw) To: Dmitry Gutov; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > The first question we asked is whether publishing a license-agnostic > package working off an automatically-generated database based on the > repositories of all the GNU/Linux and BSD distros out there constitutes > "saying" something "to the public". For this purpose, what matters is whether this is a way of telling people about packages. See the node References. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:39 ` Richard Stallman @ 2021-01-09 10:50 ` Dmitry Gutov 0 siblings, 0 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-09 10:50 UTC (permalink / raw) To: rms; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, eliz On 09.01.2021 08:39, Richard Stallman wrote: > > The first question we asked is whether publishing a license-agnostic > > package working off an automatically-generated database based on the > > repositories of all the GNU/Linux and BSD distros out there constitutes > > "saying" something "to the public". > > For this purpose, what matters is whether this is a way of telling people > about packages. See the node References. Well, I posit that this project is *not* a way that people discover new packages. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 7:49 ` Richard Stallman 2021-01-07 11:41 ` Dmitry Gutov @ 2021-01-07 14:24 ` Eli Zaretskii 1 sibling, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-07 14:24 UTC (permalink / raw) To: rms; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: bugs@gnu.support, ulm@gentoo.org, emacs-devel@gnu.org, > ams@gnu.org, arthur.miller@live.com, dgutov@yandex.ru > Date: Thu, 07 Jan 2021 02:49:19 -0500 > > > Suppose I want to download a potentially non-free package to study its > > code, or even just to understand with what kind of license it is > > distributed (since you say the site itself doesn't tell) -- is this > > "verboten" as well in Jean Louis's interpretation of what a Free > > Software follower should and shouldn't do? > > The GNU Project would not criticize anyone for that. > Indeed, we don't generally criticize users for running nonfree programs. > And we don't claim the power to "forbid" anything (except for GPL violations). > You're condemning things which don't have to do with us. > > The issue at hand is not about what users are allowed to do. We are mis-communicating: I was talking about myself wearing the Emacs maintainer hat. See my other messages in this thread. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 19:26 ` Eli Zaretskii 2021-01-06 21:18 ` Alfred M. Szmidt 2021-01-07 7:49 ` Richard Stallman @ 2021-01-07 8:15 ` Jean Louis 2021-01-07 14:37 ` Eli Zaretskii 2 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-07 8:15 UTC (permalink / raw) To: Eli Zaretskii Cc: rms, Jean Louis, ulm, emacs-devel, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-06 22:27]: > > Date: Wed, 6 Jan 2021 21:53:08 +0300 > > From: Jean Louis <bugs@gnu.support> > > Cc: ulm@gentoo.org, ams@gnu.org, emacs-devel@gnu.org, > > Richard Stallman <rms@gnu.org>, Dmitry Gutov <dgutov@yandex.ru> > > > > "Distributable" is vague and does not say really what license it is, > > but I do ensure you that Opera is proprietary software. > > > > And so on, and so on. > > > > By putting repology.el into GNU ELPA, GNU software like Emacs will > > become a good reference to unethical software repositories promoting > > among proprietary software. > > Showing information about a package and a link to download it is a far > cry from "promoting" it. To promote means to contribute to the progress or growth of, in one definition, and in other it means to make publicity for something. Reference comes from Wordnet dictionary. repology.el is promoting software packages including many non-free software packages. You may have different opinion on what promoting means. I don't agree it is not promoting. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 8:15 ` Jean Louis @ 2021-01-07 14:37 ` Eli Zaretskii 2021-01-07 19:38 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-07 14:37 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Thu, 7 Jan 2021 11:15:16 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: Jean Louis <bugs@gnu.support>, arthur.miller@live.com, > rms@gnu.org, ams@gnu.org, dgutov@yandex.ru, ulm@gentoo.org, > emacs-devel@gnu.org > > To promote means to contribute to the progress or growth of, in one > definition, and in other it means to make publicity for > something. repology.org does neither of these. It provides basic information about each package, and doesn't state any opinion on them, FAICT. It lets you judge that. That's neither promotion nor advancement nor publicity, in any reasonable sense of these words relevant to this discussion. > repology.el is promoting software packages including many non-free > software packages. I disagree. It allows me to quickly find basic information about a package, which is important in my job as an Emacs maintainer. I explained in my other messages why this is important and why I do it almost every day. > You may have different opinion on what promoting means. I don't agree > it is not promoting. You are entitled to your views, but here we discuss what Emacs as a project should do. That cannot be based on your or mine personal views. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 14:37 ` Eli Zaretskii @ 2021-01-07 19:38 ` Jean Louis 2021-01-07 20:00 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-07 19:38 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-07 17:38]: > > Date: Thu, 7 Jan 2021 11:15:16 +0300 > > From: Jean Louis <bugs@gnu.support> > > Cc: Jean Louis <bugs@gnu.support>, arthur.miller@live.com, > > rms@gnu.org, ams@gnu.org, dgutov@yandex.ru, ulm@gentoo.org, > > emacs-devel@gnu.org > > > > To promote means to contribute to the progress or growth of, in one > > definition, and in other it means to make publicity for > > something. > > repology.org does neither of these. It provides basic information > about each package, and doesn't state any opinion on them, FAICT. It > lets you judge that. That's neither promotion nor advancement nor > publicity, in any reasonable sense of these words relevant to this > discussion. I am somehow surprised how you do not see that. Maybe you understand something different under promotion, I just got a feeling that you understand it as something paid for to be promoted. Even if that is the case, somebody does pay for the website, server and all efforts to get repology.org promoted, and repology.org promotes majority of software packages. GNU ELPA offers listings of packages, it promotes those packages. MELPA offers listings of packages, thus promotes them. If I put a single page on a website, and say anything, whatever subject of that is a promotion. As I contribute to the progress or growth of specific subject. Software repository is promotion of software. Repository package descriptions are promotion of software. The Wiktionary describes it as "dissemination of information in order to increase its popularity" in the context of what we speak of: https://en.wiktionary.org/wiki/promotion#Etymology Let us say I am hobbiest who likes carneval masks, if I just put a picture on a website I am promoting it. I need not sell it. But I will put efforts to support growth of popularity of carneval masks as I also like it. > You are entitled to your views, but here we discuss what Emacs as a > project should do. That cannot be based on your or mine personal > views. Of course yes. I look at it only from GNU as free software project and if it is aligned to GNU purposes. I did not even know that reference to such already exists in GNU coding standards. In general I am surprised that some people like or wish to get access to descriptions of non-free software packages through GNU ELPA. Why don't they put it in MELPA and be satisfied right there? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 19:38 ` Jean Louis @ 2021-01-07 20:00 ` Eli Zaretskii 2021-01-07 20:31 ` Jean Louis 2021-01-09 6:35 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-07 20:00 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov > Date: Thu, 7 Jan 2021 22:38:15 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: arthur.miller@live.com, rms@gnu.org, ams@gnu.org, > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > > Software repository is promotion of software. repostory.org is not a repository of software. It is a list of software. > Repository package descriptions are promotion of software. > > The Wiktionary describes it as "dissemination of information in order > to increase its popularity" in the context of what we speak of: Where do you see the "in order to increase its popularity" part? That would mean to say something about the non-free packages that would represent them as beneficial or better than others or worthy of installing and using. I see none of that. Just saying that a package exists and showing where its repository is etc. is nowhere near promotion, it's simply information. > In general I am surprised that some people like or wish to get access > to descriptions of non-free software packages through GNU ELPA. GNU ELPA is not the issue here. The issue here is total rejection of software that dares to provide information about software packages which might not be Free Software. I explained why finding such information is important to me in my role as a GNU maintainer. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 20:00 ` Eli Zaretskii @ 2021-01-07 20:31 ` Jean Louis 2021-01-07 20:38 ` Eli Zaretskii 2021-01-09 6:35 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-07 20:31 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-07 23:01]: > > Date: Thu, 7 Jan 2021 22:38:15 +0300 > > From: Jean Louis <bugs@gnu.support> > > Cc: arthur.miller@live.com, rms@gnu.org, ams@gnu.org, > > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > > > > Software repository is promotion of software. > > repostory.org is not a repository of software. It is a list of > software. Maybe you meant repology.org is not a repository. Sure. But I meant that true repository such as Debian's or Trisquel's repository is promotion. On the other hand when one server provides directory of hyperlinks, it may not be repository but it is index or directory and search engine in same time that points to software. In particular I can find hyperlinks from repology.org Like here: https://packages.gentoo.org/packages/www-client/opera I can find hyperlinks to Opera website > > Repository package descriptions are promotion of software. > > > > The Wiktionary describes it as "dissemination of information in order > > to increase its popularity" in the context of what we speak of: > > Where do you see the "in order to increase its popularity" part? That > would mean to say something about the non-free packages that would > represent them as beneficial or better than others or worthy of > installing and using. I see none of that. I see that repology.org does not make any distinction and it cannot do that easily technically. So it does not make neither free software nor proprietary better or worse by any reasons. And that is the problem. > > In general I am surprised that some people like or wish to get access > > to descriptions of non-free software packages through GNU ELPA. > > GNU ELPA is not the issue here. The issue here is total rejection of > software that dares to provide information about software packages > which might not be Free Software. I explained why finding such > information is important to me in my role as a GNU maintainer. I am only talking about GNU ELPA and if repology.org should be in GNU ELPA as that way we would influence millions of people by giving them references to non-free software. It would speak badly of GNU project. But that you use the package yourself, that is freedom of choice. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 20:31 ` Jean Louis @ 2021-01-07 20:38 ` Eli Zaretskii 2021-01-07 21:00 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-07 20:38 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov > Date: Thu, 7 Jan 2021 23:31:47 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: arthur.miller@live.com, rms@gnu.org, ams@gnu.org, > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > > > Where do you see the "in order to increase its popularity" part? That > > would mean to say something about the non-free packages that would > > represent them as beneficial or better than others or worthy of > > installing and using. I see none of that. > > I see that repology.org does not make any distinction and it cannot do > that easily technically. So it does not make neither free software nor > proprietary better or worse by any reasons. And that is the problem. How is it a problem? where's the promotion, please? > > GNU ELPA is not the issue here. The issue here is total rejection of > > software that dares to provide information about software packages > > which might not be Free Software. I explained why finding such > > information is important to me in my role as a GNU maintainer. > > I am only talking about GNU ELPA and if repology.org should be in GNU > ELPA as that way we would influence millions of people by giving them > references to non-free software. It would speak badly of GNU project. > > But that you use the package yourself, that is freedom of choice. But that's immoral, isn't it? If some other maintainer asks me how to do this job, I cannot tell him or her about repology.org, can I? If I do, Jean Louis will pounce on me and say that it's against GNU policies, right? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 20:38 ` Eli Zaretskii @ 2021-01-07 21:00 ` Jean Louis 2021-01-08 6:58 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-07 21:00 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-07 23:38]: > > Date: Thu, 7 Jan 2021 23:31:47 +0300 > > From: Jean Louis <bugs@gnu.support> > > Cc: arthur.miller@live.com, rms@gnu.org, ams@gnu.org, > > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > > > > > Where do you see the "in order to increase its popularity" part? That > > > would mean to say something about the non-free packages that would > > > represent them as beneficial or better than others or worthy of > > > installing and using. I see none of that. > > > > I see that repology.org does not make any distinction and it cannot do > > that easily technically. So it does not make neither free software nor > > proprietary better or worse by any reasons. And that is the problem. > > How is it a problem? where's the promotion, please? A WWW index of hyperlinks is promotion of hyperlinks. Simple placement of a hyperlink on anybody's website is promotion of the other website. That is how Internet works. Software is promoted on repology.org in my opinion, and in yours maybe not. I was thinking it is obvious. Just as it is promoted on Trisquel, just as it is promoted in Hyperbola GNU/Linux-libre or Gentoo, so software is promoted on repology.org When Yahoo had an index of websites, just to enter into the index people had to pay money for review and when it would be successful, those websites would receive larger number of website visitors, buyers, users. In the same sense by showing information like hyperlinks to free software, or without hyperlinks just description of software, one is promoting that software. Making a reference from repology.el would be lack of our supervision on what the GNU project wish to reference to GNU Emacs users. Since 2021, GNU project did not provide references to proprietary software. It did not provide Emacs package to help free software users to find more proprietary software. I would be surprised if GNU project begins doing that from 2021, as if we continue disintegrating the basic principles of GNU project, by 2031 we may expect something worse, maybe total disappearance of GNU project in its sense of free software teaching center. > > > GNU ELPA is not the issue here. The issue here is total rejection of > > > software that dares to provide information about software packages > > > which might not be Free Software. I explained why finding such > > > information is important to me in my role as a GNU maintainer. > > > > I am only talking about GNU ELPA and if repology.org should be in GNU > > ELPA as that way we would influence millions of people by giving them > > references to non-free software. It would speak badly of GNU project. > > > > But that you use the package yourself, that is freedom of choice. > > But that's immoral, isn't it? Myself, I look at words like moral as agreements with society and do not judge your actions to be moral or immoral, it is personal choice. I find nothing wrong in you using it. I make some distinction so the word "ethics" is personal for me, and "moral" is social norm. And I do not find it neither moral nor immoral for you or anybody else, as I do not judge people. Personally, I am judging what GNU ELPA as free software project and part of GNU Emacs should show to free software users, should it provide a search engine within GNU Emacs, easily accessible, where users can easily find proprietary software? Then I say personally to that question NO. That is all. To me, it is not related to morality, it is related to what GNU project is about, teaching people about free software. Who uses what beyond GNU project or beyond GNU ELPA is not issue, I am not telling people not to use anything. But I may disadvise them and tell them why. > If some other maintainer asks me how to do this job, I cannot tell > him or her about repology.org, can I? If I do, Jean Louis will > pounce on me and say that it's against GNU policies, right? Ah come on, I am last to tell so. :-) And I never even talked about it. Obviously we repeated multiple times "repology.org" and we speak about it. I do not tell other people what to speak or how to express themselves. But if repology.org would be a hyperlink on GNU.org website then I may object to it, but then again, accept the final resolution by maintainers. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 21:00 ` Jean Louis @ 2021-01-08 6:58 ` Eli Zaretskii 2021-01-08 10:24 ` Arthur Miller 2021-01-08 11:28 ` Jean Louis 0 siblings, 2 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-08 6:58 UTC (permalink / raw) To: Jean Louis; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov > Date: Fri, 8 Jan 2021 00:00:36 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: arthur.miller@live.com, rms@gnu.org, ams@gnu.org, > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > > > > I see that repology.org does not make any distinction and it cannot do > > > that easily technically. So it does not make neither free software nor > > > proprietary better or worse by any reasons. And that is the problem. > > > > How is it a problem? where's the promotion, please? > > A WWW index of hyperlinks is promotion of hyperlinks. Simple placement > of a hyperlink on anybody's website is promotion of the other > website. That doesn't match the meaning of the word, please re-read its definition. Reference and promotion are not the same thing. > Since 2021, GNU project did not provide references to proprietary > software. What GNU project does is not sacred. The policy is set by humans, and the reasoning for that policy is human reasoning. Thus, arguments about what we have been doing are not valid as reasons against changes in that policy, because new convincing reasoning, as well as specific new practical use cases brought to light, can legitimately change or augment existing policies. Failure to do so, or even to consider changes, would mean that GNU is a dogmatic movement, which it isn't, and never has been. > I would be surprised if GNU project begins doing that from 2021, as > if we continue disintegrating the basic principles of GNU project, > by 2031 we may expect something worse, maybe total disappearance of > GNU project in its sense of free software teaching center. Forgive me my language, but this is FUD. You have no real basis for spreading such fears. It isn't like what's proposed here is cancellation of the GNU Manifesto or anything basic like that. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 6:58 ` Eli Zaretskii @ 2021-01-08 10:24 ` Arthur Miller 2021-01-08 11:28 ` Jean Louis 1 sibling, 0 replies; 252+ messages in thread From: Arthur Miller @ 2021-01-08 10:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, Jean Louis, ulm, ams, dgutov Eli Zaretskii <eliz@gnu.org> writes: >> Date: Fri, 8 Jan 2021 00:00:36 +0300 >> From: Jean Louis <bugs@gnu.support> >> Cc: arthur.miller@live.com, rms@gnu.org, ams@gnu.org, >> dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org >> >> > > I see that repology.org does not make any distinction and it cannot do >> > > that easily technically. So it does not make neither free software nor >> > > proprietary better or worse by any reasons. And that is the problem. >> > >> > How is it a problem? where's the promotion, please? >> >> A WWW index of hyperlinks is promotion of hyperlinks. Simple placement >> of a hyperlink on anybody's website is promotion of the other >> website. > > That doesn't match the meaning of the word, please re-read its > definition. Reference and promotion are not the same thing. > >> Since 2021, GNU project did not provide references to proprietary >> software. > > What GNU project does is not sacred. The policy is set by humans, and > the reasoning for that policy is human reasoning. Thus, arguments > about what we have been doing are not valid as reasons against changes > in that policy, because new convincing reasoning, as well as specific > new practical use cases brought to light, can legitimately change or > augment existing policies. Failure to do so, or even to consider > changes, would mean that GNU is a dogmatic movement, which it isn't, > and never has been. Thank you for this wording. I personally, mostly based on the from writings on this list, got impression that GNU was on more conservative and even dogmatic side of things. Might be me missjudging based on writings of individuals that may or may not be representatives of the GNU project itself. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 6:58 ` Eli Zaretskii 2021-01-08 10:24 ` Arthur Miller @ 2021-01-08 11:28 ` Jean Louis 1 sibling, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-08 11:28 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, rms, ulm, ams, arthur.miller, dgutov Eli, I am managing websites since 1995. Placing references for software on websites, or newspapers, or in emails, or in directories, catalogue, anywhere, including in GNU ELPA , be it a link or not, Just text, It Is promotion of those websites, software, or opinions. If we declare in such references that e.g. Skype is proprietary and abusive software then it is anti promotion, and we then rather promote free software like Jami as replacement. Repology.el package does not constitute anti promotion like the example from GNU.org, it just promotes all kind of software without distinction as many included repositories do not show licensing information, some do, some not. On January 8, 2021 6:58:22 AM UTC, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Fri, 8 Jan 2021 00:00:36 +0300 >> From: Jean Louis <bugs@gnu.support> >> Cc: arthur.miller@live.com, rms@gnu.org, ams@gnu.org, >> dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org >> >> > > I see that repology.org does not make any distinction and it >cannot do >> > > that easily technically. So it does not make neither free >software nor >> > > proprietary better or worse by any reasons. And that is the >problem. >> > >> > How is it a problem? where's the promotion, please? >> >> A WWW index of hyperlinks is promotion of hyperlinks. Simple >placement >> of a hyperlink on anybody's website is promotion of the other >> website. > >That doesn't match the meaning of the word, please re-read its >definition. Reference and promotion are not the same thing. > >> Since 2021, GNU project did not provide references to proprietary >> software. > >What GNU project does is not sacred. The policy is set by humans, and >the reasoning for that policy is human reasoning. Thus, arguments >about what we have been doing are not valid as reasons against changes >in that policy, because new convincing reasoning, as well as specific >new practical use cases brought to light, can legitimately change or >augment existing policies. Failure to do so, or even to consider >changes, would mean that GNU is a dogmatic movement, which it isn't, >and never has been. > >> I would be surprised if GNU project begins doing that from 2021, as >> if we continue disintegrating the basic principles of GNU project, >> by 2031 we may expect something worse, maybe total disappearance of >> GNU project in its sense of free software teaching center. > >Forgive me my language, but this is FUD. You have no real basis for >spreading such fears. It isn't like what's proposed here is >cancellation of the GNU Manifesto or anything basic like that. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 20:00 ` Eli Zaretskii 2021-01-07 20:31 ` Jean Louis @ 2021-01-09 6:35 ` Richard Stallman 2021-01-09 8:36 ` Eli Zaretskii 2021-01-09 8:39 ` Eli Zaretskii 1 sibling, 2 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:35 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Just saying that a package exists and showing where its repository is > etc. is nowhere near promotion, it's simply information. Please see the node References in the GNU Coding Standards for an explanation of why informing people that an obscure package exists is a form of promoting it. repology.org is a catalog of packages including some nonfree packages. Because of the latter, we don't want to refer the public there. This is not to say that using repology.org is ipso facto bad. It is certainly possible to use repology.org to do good things. In some cases it would be good to tell a free software developer about repology.org because that would aid per free software work. So if using repology.org helps you work on Emacs, by all means use it. (Did anyone here say you shouldn't?) But we shouldn't refer _the public_ to repology.org. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:35 ` Richard Stallman @ 2021-01-09 8:36 ` Eli Zaretskii 2021-01-09 8:39 ` Eli Zaretskii 1 sibling, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-09 8:36 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: bugs@gnu.support, arthur.miller@live.com, ams@gnu.org, > dgutov@yandex.ru, ulm@gentoo.org, emacs-tangents@gnu.org > Date: Sat, 09 Jan 2021 01:35:54 -0500 > > So if using repology.org helps you work on Emacs, by all means use it. > (Did anyone here say you shouldn't?) > > But we shouldn't refer _the public_ to repology.org. I'm part of that public, and so are the other GNU maintainers. I see no reason why I should know about repology.org, but other Emacs users cannot. Your words could also be interpreted to mean that every single user of Emacs can know about repology.org, but all of them together shouldn't. That interpretation sounds very strange and even absurd to me, but the way you (and others) worded this rule speaks for itself. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:35 ` Richard Stallman 2021-01-09 8:36 ` Eli Zaretskii @ 2021-01-09 8:39 ` Eli Zaretskii 2021-01-10 6:13 ` Sv: " arthur miller 1 sibling, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-09 8:39 UTC (permalink / raw) To: rms; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Date: Sat, 09 Jan 2021 01:35:54 -0500 > Cc: emacs-tangents@gnu.org, bugs@gnu.support, ulm@gentoo.org, ams@gnu.org, > arthur.miller@live.com, dgutov@yandex.ru > > > Just saying that a package exists and showing where its repository is > > etc. is nowhere near promotion, it's simply information. > > Please see the node References in the GNU Coding Standards for an > explanation of why informing people that an obscure package exists is > a form of promoting it. As I explained elsewhere, I think this part of GSoC is a mistake and should be fixed. It goes too far in its desire to avoid promoting non-free software, and that extremism in this case harms our own cause. The wording should be more balanced, or we should have some qualifications in the text to the effect that neutral information about software packages is not promotion. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Sv: [ELPA] New package: repology.el 2021-01-09 8:39 ` Eli Zaretskii @ 2021-01-10 6:13 ` arthur miller 0 siblings, 0 replies; 252+ messages in thread From: arthur miller @ 2021-01-10 6:13 UTC (permalink / raw) To: Eli Zaretskii, rms@gnu.org Cc: emacs-tangents@gnu.org, dgutov@yandex.ru, ulm@gentoo.org, bugs@gnu.support, ams@gnu.org [-- Attachment #1: Type: text/plain, Size: 1476 bytes --] Yes please. That is one part of the text I said in one mail I have problems with. I think it leads into dogmatism of kind we are experiencing here. ________________________________ Från: Eli Zaretskii <eliz@gnu.org> Skickat: den 9 januari 2021 09:39 Till: rms@gnu.org <rms@gnu.org> Kopia: emacs-tangents@gnu.org <emacs-tangents@gnu.org>; bugs@gnu.support <bugs@gnu.support>; ulm@gentoo.org <ulm@gentoo.org>; ams@gnu.org <ams@gnu.org>; arthur.miller@live.com <arthur.miller@live.com>; dgutov@yandex.ru <dgutov@yandex.ru> Ämne: Re: [ELPA] New package: repology.el > From: Richard Stallman <rms@gnu.org> > Date: Sat, 09 Jan 2021 01:35:54 -0500 > Cc: emacs-tangents@gnu.org, bugs@gnu.support, ulm@gentoo.org, ams@gnu.org, > arthur.miller@live.com, dgutov@yandex.ru > > > Just saying that a package exists and showing where its repository is > > etc. is nowhere near promotion, it's simply information. > > Please see the node References in the GNU Coding Standards for an > explanation of why informing people that an obscure package exists is > a form of promoting it. As I explained elsewhere, I think this part of GSoC is a mistake and should be fixed. It goes too far in its desire to avoid promoting non-free software, and that extremism in this case harms our own cause. The wording should be more balanced, or we should have some qualifications in the text to the effect that neutral information about software packages is not promotion. [-- Attachment #2: Type: text/html, Size: 2422 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 18:53 ` Jean Louis 2021-01-06 19:26 ` Eli Zaretskii @ 2021-01-06 20:36 ` Arthur Miller 2021-01-07 7:48 ` Richard Stallman 2021-01-07 8:49 ` Jean Louis 2021-01-07 7:49 ` Richard Stallman 2 siblings, 2 replies; 252+ messages in thread From: Arthur Miller @ 2021-01-06 20:36 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, emacs-devel, ulm, Dmitry Gutov Jean Louis <bugs@gnu.support> writes: > * Arthur Miller <arthur.miller@live.com> [2021-01-06 19:24]: >> > As from example above, it does not says nothing about the license at >> > all and thus does not serve to you as user to "recognize if software >> > is free or not-free". That is why you should make better your personal >> > research. >> If it says non-free than it is quite clear for anyone with a bit of >> intelligence in their head that it is, well: NON-FREE! > > Try using it yourself. Since I gave you my last example, I did not get > impression that you improved your perception. This is because you did > not try it. My conclusion is that it does not say for every piece of > software that it is non-free. It is probably only for those software > from Debian, that it gives the name of repository in the fourth column > and Debian keeps name of repository "non-free". Repology.org server > provides references to software packages from plethora of > repositories. Other repositories may not name the repository > "non-free", so you may not easily distinguish about that. And, I also > gave example that package information may not show at all which > license is used by specific package. Sometimes it may show, sometimes > not. > > Take for example the proprietary black list by the fully free Parabola > GNU/Linux distribution: > https://git.parabola.nu/blacklist.git/plain/blacklist.txt > > and then use repology.el package to search for those packages. > > Then try searching for a popular non-free browser such as "Opera" > > You may find an entry like this: > > SlackBuilds network/opera-developer 74.0.3890.0 network > edps.mundognu@gmail.com > > where it gives following information: > > repo slackbuilds > srcname network/opera-developer > visiblename network/opera-developer > version 74.0.3890.0 > maintainers edps.mundognu@gmail.com > downloads https://download1.operacdn.com/pub/opera-developer/74.0.3890.0/linux/opera-developer_74.0.3890.0_amd64.deb > www https://www.opera.com/ > categories network > status ignored > origversion - > > And in such information there is hyperlink on how to download non-free > software. > > Nothing says if software is free or not. > > This is becuse SlackBuilds unethical repository probably does not > provide license information on software they package, including > proprietary software. > > If however, user clocks on the entry like this: > > nixpkgs unstable opera 68.0.3618.63 - > fallback-mnt-nix@repology > > then one can get some information as the nixpkgs unethical repository, > does provide information that they are distributing proprietary > software, they mention it as "Unfree": > > repo nix_unstable > name opera > visiblename opera > version 68.0.3618.63 > maintainers fallback-mnt-nix@repology > licenses Unfree > www https://www.opera.com/ > summary Web browser > status outdated > origversion - > > Other unethical repository like Solus would spit out result by > repology.el like this: > > repo solus > srcname opera-stable > binname opera-stable > visiblename opera-stable > version 73.0.3856.329 > maintainers harveydevel@gmail.com > licenses Distributable > www https://www.opera.com/ > summary The Opera browser brings you more speed, more discoveries and more safety on the web - all for free > categories network.web.browser > status newest > origversion - > > "Distributable" is vague and does not say really what license it is, > but I do ensure you that Opera is proprietary software. > > And so on, and so on. > > By putting repology.el into GNU ELPA, GNU software like Emacs will > become a good reference to unethical software repositories promoting > among proprietary software. > >> > It is matter of freedom and liberty and >> > teaching people free software and not religion. >> I didn't said that GNU teaches people about religion. I said you are >> religious dogmatic about software. > > Who I am, or how I am is not subject of this. I do need to conform to > yours or anybody's standards or classes of society. Ok. Fair enough; as long as you don't demand other people to live up to your standards. I am affraid by stigmatizing people for running some software you are actually indirectly demanding them to live up to your standards. (btw - I think you ment "I do not need ..." :-)) > Subject is the Emacs package repology.el and if inclusion into GN ELPA > is aligned with GNU purposes. I am free software user and cannot > recommend any proprietary software to any party, so I do not recommend > that GNU Emacs in official GNU repository becomes a platform to > promote proprietary software packages. And I can hardly understand why > you promote such view point. People reading this mailing list shall > know that GNU Emacs is about free software. Since you like dictionaries a lot, maybe you should look up word "information" and word "promotion" in some. They are two different things. I am not promoting non-free software, but I am very pragmatic person. As a curiosa, about me, I even went in a political party to promote actually free software; because I thought we could save A LOTS of taxpayers money in the long run, and could make the world a better place if we invested in free software isntead of sending money out of the contrey to Microsoft or Apple or other big tech Co:s. However dogmaticism and stigmaticism has never proven to be useful in the long run. On contrary it is unproductive and potentially harmful. It holds for every aspect of human life. So is neither ultra-radicalism, it has tendency to alienate people. > Attempt to promote proprietary software by including repology.el in > GNU ELPA is confusing free software users reading this mailing list. See above about dictionary. As a curiosa, I wonder what do you think, how much of medical software that powers life-holding machines in hospitals is *Free*? Should we erase all those chips and hardrives? What do you think about *that* unethical software? Do we have alternative? I really wish nobody ever gets into a respiratory machine, but those that end up there are probably thankful for whatever software runs it. Are those implicit users of "unethical softare" suddenly "unethical people" because they have no choice? Is it unethical to not jump in a lake and save a drowbing persons life if you can't swim? Pesonally, I wish we had only free software in this world; but until we have, I am affraid a people in that circumstance are thankful to have whatever there is. And yes, I agree repology could list the license along their tags and include license category to search/filter for, at least in their "Advanced ..." dialogue. Now when I see it I wonder even for whom is it useful, on first sight it does not even seem very useful, I don't really know. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 20:36 ` Arthur Miller @ 2021-01-07 7:48 ` Richard Stallman 2021-01-07 16:53 ` Arthur Miller 2021-01-07 8:49 ` Jean Louis 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-07 7:48 UTC (permalink / raw) To: Arthur Miller; +Cc: ams, dgutov, ulm, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Since you like dictionaries a lot, maybe you should look up word > "information" and word "promotion" in some. They are two different > things. The two are not the same thing, but providing information about something often has the effect of promoting it. The node References in the GNU Coding standards explains the relationship, including its subtleties. > However dogmaticism and stigmaticism has never proven to be useful in > the long run. On contrary it is unproductive and potentially harmful. It > holds for every aspect of human life. Maybe so, but what the node References actually says is not dogmatic. It also does not criticize anyone. It merely states our policy about how to handle such issues. > So is neither ultra-radicalism, it has tendency to alienate people. I agree, but we are not as radical as you're saying. > As a curiosa, I wonder what do you think, how much of medical software > that powers life-holding machines in hospitals is *Free*? Should we > erase all those chips and hardrives? What do you think about *that* > unethical software? Does anyone here advocate that? I don't. I understand that you feel offended. But responding to that by fighting "back" will only increase hostility. Someone else will fight "back" by attacking you. Please, everyone, stop attacking other people. If you can't stay calm, stay quiet. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 7:48 ` Richard Stallman @ 2021-01-07 16:53 ` Arthur Miller 2021-01-14 5:21 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-07 16:53 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, dgutov, ulm, emacs-devel Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > Since you like dictionaries a lot, maybe you should look up word > > "information" and word "promotion" in some. They are two different > > things. > > The two are not the same thing, but providing information about > something often has the effect of promoting it. I think personal judgement here is very important. Providing information about attrocities of the WWII has informational value to prevent same thing from hapening again. Yet I have also seen (and even met) people how are actually symptazing with the nazis rather then the offers (I am speaking of ultra-right neo-nazis). Nobody in their clear mind would see information about concentraion camps as a promotion. Yet some idiots treat it that way. The point of that ugly illustration is that value of the information is in the eyes of beholders; it is their judgement. I think that people in majority have tendency to choose "the good thing" when given enough information, knowledge and possibility of choice. When we teach kids not to lie or steal we are usually giving them information why it is not good to do so. The possibility of choice is very important too. It is easy to be "good" when one is not hungry and not living under a tree in -10 degree Celsius. I personally don't smoke or drink alkohol. I don't need any religion or law to prohibit me. I just don't think it goes well with the gym and my health. Last year I had maybe three or four glases of wine and I think three beers for the entire year (two of them while visiting Austria - one can't go to Austria and ot drink a glass of good wine or a beer or two). I also see lots of people in the gym that live similar lifes (with very little alkohol, smoke- and drug free). Thus I think that most of people will choose a better option (Free software) when given enough information (education?) and an option. I don't think we need to hide our heads in sand and pretend there is no non-free option. We just need to provide a compelling reason(s) why Free alternative is a better option. Just as illustration, if we educate people that they can do most of things they need with LibreOffice instead of Microsoft Office (which 90% of people probably can), they will not wish to buy it or use it. > The node References in the GNU Coding standards explains the relationship, > including its subtleties. > > > However dogmaticism and stigmaticism has never proven to be useful in > > the long run. On contrary it is unproductive and potentially harmful. It > > holds for every aspect of human life. > > Maybe so, but what the node References actually says is not dogmatic. > It also does not criticize anyone. It merely states our policy > about how to handle such issues. I think it depends on how people interprets it, like everything else in the life. Some people will interpret it dogmatically, some will not. > > > So is neither ultra-radicalism, it has tendency to alienate people. > > I agree, but we are not as radical as you're saying. > > > As a curiosa, I wonder what do you think, how much of medical software > > that powers life-holding machines in hospitals is *Free*? Should we > > erase all those chips and hardrives? What do you think about *that* > > unethical software? > > Does anyone here advocate that? I don't. Why not? It is a tricky question to answer, but I think it is important to have answer on that one. The question arises, if we wish to be consistent, are binary blobs unethical or not? In philosophy we have to be logically consistent. We can't have a rule that applies only sometimes. A rule either apply or don't. > I understand that you feel offended. I am not offended. Maybe it is my way of arguing that sounds to harsh, but personally I am not offended. Like everyone else here, I wish the best for both Emacs, Free software and Free world. I am very pragmatic person, and I believe that goals can be achieved in different ways. There is not one single answer to every problem, i.e. it is important to be flexible just as it is to stay with one's principles. > But responding to that by > fighting "back" will only increase hostility. Someone else will fight > "back" by attacking you. It seems to be a problem of social media and today's internet. Any critique is considered as an attack and people are just digging deeper into trenches. Sorry if I am too harsh on J-Louise. It was a response to J-Louise who adviced and teached earlier how one should read a dictionary when experiencing a trauma, so I thought he would appreciate the reference :-). ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 16:53 ` Arthur Miller @ 2021-01-14 5:21 ` Richard Stallman 2021-01-15 14:52 ` Arthur Miller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-14 5:21 UTC (permalink / raw) To: Arthur Miller; +Cc: ams, dgutov, ulm, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I think personal judgement here is very important. Providing information > about attrocities of the WWII has informational value This is pertinent to the general topic of "providing information" but it is not pertinent to the specific topic, which is providing the information that there is a nonfree program called Foo which does X, Y and Z (which might be something you'd like to do, you being someone who doesn't hesitate to run a nonfree program. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-14 5:21 ` Richard Stallman @ 2021-01-15 14:52 ` Arthur Miller 2021-01-16 5:14 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Arthur Miller @ 2021-01-15 14:52 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, dgutov, ulm, emacs-devel Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > I think personal judgement here is very important. Providing information > > about attrocities of the WWII has informational value > > This is pertinent to the general topic of "providing information" > but it is not pertinent to the specific topic, which is > providing the information that there is a nonfree program > called Foo which does X, Y and Z (which might be something > you'd like to do, you being someone who doesn't hesitate > to run a nonfree program. Why do you think I don't hesitate to run a nonfree program? :-) I am not arguing for use of non-free programs; I am arguing about importance of having a consistent and sustainable philosophy useful as a set of guiding rules, insted of something that is left to subjective interpretation. So that people one day does not have to go to some emial conversation and check: what RMS did or said about this particular issue. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-15 14:52 ` Arthur Miller @ 2021-01-16 5:14 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-16 5:14 UTC (permalink / raw) To: Arthur Miller; +Cc: ams, emacs-devel, ulm, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > This is pertinent to the general topic of "providing information" > > but it is not pertinent to the specific topic, which is > > providing the information that there is a nonfree program > > called Foo which does X, Y and Z (which might be something > > you'd like to do, you being someone who doesn't hesitate > > to run a nonfree program. > Why do you think I don't hesitate to run a nonfree program? :-) I don't. I was using "you" to refer to a hypothetical person who doesn't hesitate to run a nonfree program. Maybe the smiley means you understand that. I am not sure. > I am not arguing for use of non-free programs; I am arguing about > importance of having a consistent and sustainable philosophy useful as a > set of guiding rules, insted of something that is left to subjective > interpretation. Requiring a judgment call, requiring interpretation, is not inconsistent. Many criteria that make sense for human judgment cannot be stated in a rigorously objective way. There are points where we _must_ appeal to human judgment because we don't know a batter way. What is the specific point? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 20:36 ` Arthur Miller 2021-01-07 7:48 ` Richard Stallman @ 2021-01-07 8:49 ` Jean Louis 1 sibling, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-07 8:49 UTC (permalink / raw) To: Arthur Miller; +Cc: ams, emacs-tangents, Dmitry Gutov, Richard Stallman, ulm * Arthur Miller <arthur.miller@live.com> [2021-01-06 23:36]: > > Who I am, or how I am is not subject of this. I do need to conform to > > yours or anybody's standards or classes of society. > Ok. Fair enough; as long as you don't demand other people to live up to > your standards. I am affraid by stigmatizing people for running some > software you are actually indirectly demanding them to live up to your > standards. (btw - I think you ment "I do not need ..." :-)) I am sending this to Emacs tangents, as I do not think it is related to package repology.el Every free software out there tells people something about liberty. It does not demand people to accept it. It teaches people and let them make their own choices. For many free software users there is no alternative, so that is the only standard in the sense you mention it. If it cannot be reached easily it may be reached step by step. > I am not promoting non-free software, but I am very pragmatic person. As > a curiosa, about me, I even went in a political party to promote > actually free software; because I thought we could save A LOTS of > taxpayers money in the long run, and could make the world a better place > if we invested in free software isntead of sending money out of the > contrey to Microsoft or Apple or other big tech Co:s. Great. And yet, free software is not money related. Example is NASA and US government that pays much money to produce free software. It is liberty related, not money. Producing free software may cost just equally as producing proprietary, I do not see difference there. Somebody does have to put their efforts, money, time, to program free software. The difference with expenses comes with liberty to distribute it without paying new license fees. > However dogmaticism and stigmaticism has never proven to be useful in > the long run. On contrary it is unproductive and potentially harmful. It > holds for every aspect of human life. I see nothing dogmatic neigher stigmatic about free software philosophy and so I cannot relate to those statements. And I cannot comprehend what you mean with "unproductive" and "potentially harmful". Maybe your statement is not related to free software, but if it is, I do not hold opinion that it is unproductive and potentially harmful, neither that promotion of free software is such. There is no general rule "for every aspect of human life" and if there would be one to discuss, maybe on some other mailing list or privately. > As a curiosa, I wonder what do you think, how much of medical software > that powers life-holding machines in hospitals is *Free*? Majority is probably proprietary. Terrible condition. > Should we erase all those chips and hardrives? We as a group of people on Emacs Devel mailing list, or who as "we"? I have no idea what you think with "we". This is maybe because I speak practically, always with practical ideas in mind. So I cannot relate to it. I can say that in Tanzania I have been promoting GNU Health, but it did not reach right people yet. We will reach. I can also say that practically and personally I have offered GNU Health and other hospital/privacy management software to those pharmacies I have personally met, they are very interested in adoption and we are still in conversation. So, in general terms, I think practically on how to change what I can change. That is not a demand, that is enlightenment about free software and helping people to switch. > What do you think about *that* unethical software? If proprietary software is used in health industry it is highly unethical. > Do we have alternative? There is no alternative to freedom. Alternative https://www.gnu.org/philosophy/words-to-avoid.html#Alternative > I really wish nobody ever gets into a respiratory machine, but those > that end up there are probably thankful for whatever software runs > it. That is general statement. Generally answered, the opposite can be as well said, I would not like to be put on a machine where nobody was able to inspect the source code, verify it for safety and eventually improve it, or include collaborators to include it. Terrible idea. > Is it unethical to not jump in a lake and save a drowbing persons > life if you can't swim? That is so much tangent, hypothetical question that is not related to free software. In my opinion ethics is personal issue, moral is social issue. For me personally, if I could save somebody, I would jump or call other people to jointly help. If I cannot swim, I would say it would be unethical to try to save such person. All that is not related to the subject. > Pesonally, I wish we had only free software in this world; but until we > have, I am affraid a people in that circumstance are thankful to have > whatever there is. I can say I am not thankful as I find proprietary software abusive, coercive, controlling, so I cannot be thankful for that. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-06 18:53 ` Jean Louis 2021-01-06 19:26 ` Eli Zaretskii 2021-01-06 20:36 ` Arthur Miller @ 2021-01-07 7:49 ` Richard Stallman 2021-01-07 9:00 ` Jean Louis ` (2 more replies) 2 siblings, 3 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-07 7:49 UTC (permalink / raw) To: Jean Louis; +Cc: ams, emacs-devel, ulm, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] You've brought us bad news about repology.org. Not only does it include nonfree packages with no effort to avoid them, it fails to provide enough information for us to easily filter them out. I see two ways we could possibly manage to use repology.org in the Free World. * Find a way to distinguish free from nonfree packages. I see two ideas One is to snarf the lists of free packages from Debian and Parabola. Another is to see if free packages list a license that shows they are free. You might have other ideas. * Ask the developer of repology.org to work with us to indicate which packages are free, maybe even provide a way to specify "show me only free packages". Does anyone have another idea? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 7:49 ` Richard Stallman @ 2021-01-07 9:00 ` Jean Louis 2021-01-08 6:21 ` Richard Stallman 2021-01-08 6:25 ` Richard Stallman 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller 2021-01-07 15:05 ` [ELPA] New package: repology.el Stefan Monnier 2 siblings, 2 replies; 252+ messages in thread From: Jean Louis @ 2021-01-07 9:00 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, emacs-devel, ulm, arthur.miller, dgutov * Richard Stallman <rms@gnu.org> [2021-01-07 10:50]: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > You've brought us bad news about repology.org. Not only does it include > nonfree packages with no effort to avoid them, it fails to provide > enough information for us to easily filter them out. > > I see two ways we could possibly manage to use repology.org in the > Free World. > > * Find a way to distinguish free from nonfree packages. I see two > ideas One is to snarf the lists of free packages from Debian and > Parabola. Another is to see if free packages list a license that > shows they are free. You might have other ideas. Good way to go is to duplicate repology.org server on other domain and provide package listings from fully free FSF endorsed GNU/Linux distributions or non-GNU fully free OS-es such as Replicant. One other way to go is to ask repology.org to provide access to fully free software so that package repology.el has access to only those packages as provided by fully free FSF endorsed GNU/Linux distribution repositories and those fully free non-GNU OS-es such as Replicant. Then repology.el could be modified to access the API to fully free packages ONLY, as then results would not show any proprietary software. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 9:00 ` Jean Louis @ 2021-01-08 6:21 ` Richard Stallman 2021-01-08 6:25 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-08 6:21 UTC (permalink / raw) To: Jean Louis; +Cc: ams, emacs-devel, ulm, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Good way to go is to duplicate repology.org server on other domain and > provide package listings from fully free FSF endorsed GNU/Linux > distributions or non-GNU fully free OS-es such as Replicant. repology.org is indeed a tangent for emacs-devel, so let's move this also to emacs-tangents. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 9:00 ` Jean Louis 2021-01-08 6:21 ` Richard Stallman @ 2021-01-08 6:25 ` Richard Stallman 2021-01-08 6:30 ` Jean Louis 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-08 6:25 UTC (permalink / raw) To: Jean Louis; +Cc: ams, emacs-tangents, ulm, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Good way to go is to duplicate repology.org server on other domain and > provide package listings from fully free FSF endorsed GNU/Linux > distributions or non-GNU fully free OS-es such as Replicant. That is an interesting idea. Do the people that run repology.org publish the software that runs the site? Perhaps the most useful way to do this would be to include only free packages but show them in all distros. Our site could be frepology.org. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 6:25 ` Richard Stallman @ 2021-01-08 6:30 ` Jean Louis 2021-01-09 6:45 ` frepology.org Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-08 6:30 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, emacs-tangents, ulm, arthur.miller, dgutov * Richard Stallman <rms@gnu.org> [2021-01-08 09:26]: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > Good way to go is to duplicate repology.org server on other domain and > > provide package listings from fully free FSF endorsed GNU/Linux > > distributions or non-GNU fully free OS-es such as Replicant. > > That is an interesting idea. Do the people that run repology.org > publish the software that runs the site? > > Perhaps the most useful way to do this would be to include only free > packages but show them in all distros. > > Our site could be frepology.org. Yes, they publish the software. https://github.com/repology/repology-updater https://github.com/repology/repology-webapp https://github.com/repology/repology-rules ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: frepology.org 2021-01-08 6:30 ` Jean Louis @ 2021-01-09 6:45 ` Richard Stallman 2021-01-09 8:11 ` frepology.org Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:45 UTC (permalink / raw) To: Jean Louis; +Cc: ams, emacs-tangents, ulm, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Would someone like to volunteer to set up frepology.org? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: frepology.org 2021-01-09 6:45 ` frepology.org Richard Stallman @ 2021-01-09 8:11 ` Jean Louis 2021-01-11 4:47 ` frepology.org Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-09 8:11 UTC (permalink / raw) To: Richard Stallman; +Cc: ams, emacs-tangents, ulm, arthur.miller, dgutov * Richard Stallman <rms@gnu.org> [2021-01-09 09:46]: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Would someone like to volunteer to set up frepology.org? I would have no problem with setting it up as long as repology.org provides all pieces of free software available. It seem to be the case. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: frepology.org 2021-01-09 8:11 ` frepology.org Jean Louis @ 2021-01-11 4:47 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-11 4:47 UTC (permalink / raw) To: Jean Louis; +Cc: ams, emacs-tangents, ulm, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Would someone like to volunteer to set up frepology.org? > I would have no problem with setting it up as long as repology.org > provides all pieces of free software available. It seem to be the case. Would you, please? I think that would resolve some tensions now. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 7:49 ` Richard Stallman 2021-01-07 9:00 ` Jean Louis @ 2021-01-07 10:55 ` Ulrich Mueller 2021-01-07 11:46 ` Jean Louis ` (4 more replies) 2021-01-07 15:05 ` [ELPA] New package: repology.el Stefan Monnier 2 siblings, 5 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-07 10:55 UTC (permalink / raw) To: Richard Stallman; +Cc: Jean Louis, ulm, emacs-devel, ams, arthur.miller, dgutov >>>>> On Thu, 07 Jan 2021, Richard Stallman wrote: > I see two ways we could possibly manage to use repology.org in the > Free World. > * Find a way to distinguish free from nonfree packages. I see two > ideas One is to snarf the lists of free packages from Debian and > Parabola. Another is to see if free packages list a license that > shows they are free. You might have other ideas. > * Ask the developer of repology.org to work with us to indicate which > packages are free, maybe even provide a way to specify "show me only > free packages". One would first have to define what qualifies as a free package, and the world isn't all black-or-white there. For example, the tarball of org-mode as released by upstream [1] contains Relax-NG schemas [2] distributed under a license that doesn't allow modification. Does that make org-mode a non-free package? The way we handle this in Gentoo is not to install these non-free components by default. Users however have the option to enable their installation if they do two things: a) set a so-called USE flag, and b) explicitly accept these components' license. Another example is the intlfonts package [3], which contains some Tibetan fonts with a non-commercial restriction. Again, Gentoo handles this with a USE flag, so users have to explicitly ask for installation of these non-free fonts. There are many more packages like that, and I don't believe that one could simply divide them into free and non-free by just taking the package name. It will depend on what the distro does when installing them or creating a binary package from them. [1] https://orgmode.org/org-9.4.tar.gz [2] in directory etc/schema/ [3] https://directory.fsf.org/wiki/Intlfonts ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller @ 2021-01-07 11:46 ` Jean Louis 2021-01-07 19:38 ` Ulrich Mueller 2021-01-07 18:18 ` Alfred M. Szmidt ` (3 subsequent siblings) 4 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-07 11:46 UTC (permalink / raw) To: Ulrich Mueller Cc: ams, emacs-tangents, Richard Stallman, arthur.miller, dgutov * Ulrich Mueller <ulm@gentoo.org> [2021-01-07 13:56]: > >>>>> On Thu, 07 Jan 2021, Richard Stallman wrote: > > > I see two ways we could possibly manage to use repology.org in the > > Free World. > > > * Find a way to distinguish free from nonfree packages. I see two > > ideas One is to snarf the lists of free packages from Debian and > > Parabola. Another is to see if free packages list a license that > > shows they are free. You might have other ideas. > > > * Ask the developer of repology.org to work with us to indicate which > > packages are free, maybe even provide a way to specify "show me only > > free packages". > > One would first have to define what qualifies as a free package, and the > world isn't all black-or-white there. I am sending it to emacs-tangents. > For example, the tarball of org-mode as released by upstream [1] > contains Relax-NG schemas [2] distributed under a license that doesn't > allow modification. Does that make org-mode a non-free package? Schema may not be software. I do not know what it is. I cannot find it in my etc/ in Org distribution under ~/.emacs.d/elpa/org-2..... I have downloaded the package, so I found it in tar.gz and I have not researched it enough. It may not be software, it looks to me as not being software. Maybe it is standard. If you think that the file does not make Org package free, then raise the bug issue for Org mode. > The way we handle this in Gentoo is not to install these non-free > components by default. Users however have the option to enable their > installation if they do two things: a) set a so-called USE flag, and > b) explicitly accept these components' license. I understand. I find it unfortunate that so many GNU/Linux distributions decided to include proprietary software. While I do not mind who uses which OS distribution, here I am referencing why GNU project is not endorsing such distributions: https://www.gnu.org/distros/common-distros.html You may see there that Gentoo includes installation recipes for a number of nonfree programs in its primary package system. So if the OS distribution asks you to accept USE flag and explicitly accept these component's licenses, it is promoting proprietary software. It may be coercive. If it asks user to accept or otherwise, that is coercion and not an option. > Another example is the intlfonts package [3], which contains some > Tibetan fonts with a non-commercial restriction. Again, Gentoo handles > this with a USE flag, so users have to explicitly ask for installation > of these non-free fonts. Then please raise the bug issue. I myself do not have enough information on who is doing what there. If you know, raise the issue. > There are many more packages like that, and I don't believe that one > could simply divide them into free and non-free by just taking the > package name. It will depend on what the distro does when installing > them or creating a binary package from them. In relation to repology.org, it is index of many various repositories from many various OS-es. Many repositories will not or may not have license entry in their package description. So it is a huge mess of software without distinction if it is free software or not. That proprietary software packages do exist, it is known, and you can also see that hyperlink why GNU project is not endorsing many distributions. There are many proprietary software packages, starting with the Debian's non-free repository and many others. But those packages are not subject of research by GNU project, unless some software shall be produced to give solution to most popular proprietary software. GNU project creates and supports free software. So those other software pieces that are not free are beyond the subject of discussion in GNU project. I hope you understand that. I do not mind who personally uses what software, as that is beyond myself nor GNU to tell anybody. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 11:46 ` Jean Louis @ 2021-01-07 19:38 ` Ulrich Mueller 2021-01-07 20:23 ` Jean Louis 2021-01-09 6:35 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-07 19:38 UTC (permalink / raw) To: Jean Louis Cc: emacs-tangents, Richard Stallman, Ulrich Mueller, ams, arthur.miller, dgutov >>>>> On Thu, 07 Jan 2021, Jean Louis wrote: > * Ulrich Mueller <ulm@gentoo.org> [2021-01-07 13:56]: >> The way we handle this in Gentoo is not to install these non-free >> components by default. Users however have the option to enable their >> installation if they do two things: a) set a so-called USE flag, and >> b) explicitly accept these components' license. > I understand. I find it unfortunate that so many GNU/Linux > distributions decided to include proprietary software. > While I do not mind who uses which OS distribution, here I am > referencing why GNU project is not endorsing such distributions: > https://www.gnu.org/distros/common-distros.html > You may see there that Gentoo includes installation recipes for a > number of nonfree programs in its primary package system. We include ebuilds for those packages that we believe to be useful for our users. By default, installation of any non-free packages (or components of packages) is disabled. Gentoo is about choice, and has always leaned a little on the pragmatic side. If we would (for example) exclude all non-free Linux firmware, then I am certain that in order to have a usable system, most users would choose to install such firmware nevertheless, bypassing the package manager. Again, our default there is to install only free firmware, but we leave users the choice to install additional blobs when they explicitly ask for it. > So if the OS distribution asks you to accept USE flag and explicitly > accept these component's licenses, it is promoting proprietary > software. It may be coercive. If it asks user to accept or otherwise, > that is coercion and not an option. The Gentoo package manager doesn't ask for anything. In its default configuration as shipped with our install media, it will simply refuse to install any non-free package. In order to override this, the user will have to update the configuration files for that package and its license. >> Another example is the intlfonts package [3], which contains some >> Tibetan fonts with a non-commercial restriction. Again, Gentoo handles >> this with a USE flag, so users have to explicitly ask for installation >> of these non-free fonts. > Then please raise the bug issue. I myself do not have enough > information on who is doing what there. If you know, raise the issue. As a matter of fact, I had reported this in 2019 to the maintainer listed at https://directory.fsf.org/wiki/Intlfonts#tab=Details but nothing has happened since then. Even worse, the directory lists the package as GPLv2orlater (and it says verified in 2001) while AFAICS it doesn't contain a single GPL licensed file. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 19:38 ` Ulrich Mueller @ 2021-01-07 20:23 ` Jean Louis 2021-01-08 11:54 ` Ulrich Mueller 2021-01-09 6:35 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-07 20:23 UTC (permalink / raw) To: Ulrich Mueller Cc: ams, emacs-tangents, Richard Stallman, arthur.miller, dgutov * Ulrich Mueller <ulm@gentoo.org> [2021-01-07 22:38]: > Gentoo is about choice, and has always leaned a little on the pragmatic > side. If we would (for example) exclude all non-free Linux firmware, > then I am certain that in order to have a usable system, most users > would choose to install such firmware nevertheless, bypassing the > package manager. Again, our default there is to install only free > firmware, but we leave users the choice to install additional blobs when > they explicitly ask for it. Then maybe that is how users are trained or indoctrinated into Gentoo as managers or maintainers of Gentoo did not teach users about free software. I am sorry for that. That is why Gentoo will not be endorsed by GNU project. I am using mostly Hyperbola GNU/Linux-libre now and I have no problems installing it on plethora of computers. I may use Trisquel or other FSF endorsed fully free GNU/Linux distribution. Not that I use any firmware and it is true that maybe some wireless chip does not work, but hey, it does not matter as we all have Internet here. I have connected Internet by mobile phone and USB tethering method to one computer that serves as router to switch that connects other computers. It works well in a team. > > Then please raise the bug issue. I myself do not have enough > > information on who is doing what there. If you know, raise the issue. > > As a matter of fact, I had reported this in 2019 to the maintainer > listed at https://directory.fsf.org/wiki/Intlfonts#tab=Details but > nothing has happened since then. Even worse, the directory lists the > package as GPLv2orlater (and it says verified in 2001) while AFAICS it > doesn't contain a single GPL licensed file. How about nudging again? Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 20:23 ` Jean Louis @ 2021-01-08 11:54 ` Ulrich Mueller 2021-01-08 18:23 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-08 11:54 UTC (permalink / raw) To: Jean Louis Cc: emacs-tangents, Richard Stallman, Ulrich Mueller, ams, arthur.miller, dgutov >>>>> On Thu, 07 Jan 2021, Jean Louis wrote: > * Ulrich Mueller <ulm@gentoo.org> [2021-01-07 22:38]: >> Gentoo is about choice, and has always leaned a little on the pragmatic >> side. If we would (for example) exclude all non-free Linux firmware, >> then I am certain that in order to have a usable system, most users >> would choose to install such firmware nevertheless, bypassing the >> package manager. Again, our default there is to install only free >> firmware, but we leave users the choice to install additional blobs when >> they explicitly ask for it. > Then maybe that is how users are trained or indoctrinated into Gentoo > as managers or maintainers of Gentoo did not teach users about free > software. I am sorry for that. That is why Gentoo will not be endorsed > by GNU project. I know, and presumably it will never be. Gentoo as a source-based distro can also be seen as a "metadistribution" or "distribution toolkit", so it is relatively easy to use it as basis for building a binary distribution. Distros derived from Gentoo may have completely different goals, and examples include Ututo XS (which used to be on the FSF's whitelist IIRC) and Chromium OS. We couldn't be a metadistribution if we were to follow a purist approach and exclude all ebuilds ("recipes" for building packages) for non-free packages from our main repository. Plus, as I've explained before, the dividing line is sometimes within an upstream package when it includes both free and non-free components. However, our defaults are such that the package manager won't install any non-free software. Also note that our ebuilds themselves are GPL licensed. > I am using mostly Hyperbola GNU/Linux-libre now and I have no problems > installing it on plethora of computers. I may use Trisquel or other > FSF endorsed fully free GNU/Linux distribution. Not that I use any > firmware and it is true that maybe some wireless chip does not work, > but hey, it does not matter as we all have Internet here. I have > connected Internet by mobile phone and USB tethering method to one > computer that serves as router to switch that connects other > computers. It works well in a team. Nice. I suppose the mobile phone runs free software then? What are you using there? OTOH, I guess I'd have a hard time convincing a typical MS-Windows user to switch to GNU/Linux if I told them "look, your wireless will no longer work" or "sorry, no mitigation for Spectre/Meltdown because the CPU microcode is non-free". And that may also be one of the reasons why the top ten list on (e.g.) distrowatch doesn't include any of the FSF recommended distros. (Which by no means says anything about their quality, but it does say something about their popularity.) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-08 11:54 ` Ulrich Mueller @ 2021-01-08 18:23 ` Jean Louis 0 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-08 18:23 UTC (permalink / raw) To: Ulrich Mueller Cc: emacs-tangents, dgutov, Richard Stallman, arthur.miller, ams * Ulrich Mueller <ulm@gentoo.org> [2021-01-08 17:34]: > > * Ulrich Mueller <ulm@gentoo.org> [2021-01-07 22:38]: > >> Gentoo is about choice, and has always leaned a little on the pragmatic > >> side. If we would (for example) exclude all non-free Linux firmware, > >> then I am certain that in order to have a usable system, most users > >> would choose to install such firmware nevertheless, bypassing the > >> package manager. Again, our default there is to install only free > >> firmware, but we leave users the choice to install additional blobs when > >> they explicitly ask for it. > > > Then maybe that is how users are trained or indoctrinated into Gentoo > > as managers or maintainers of Gentoo did not teach users about free > > software. I am sorry for that. That is why Gentoo will not be endorsed > > by GNU project. > > I know, and presumably it will never be. Gentoo as a source-based distro > can also be seen as a "metadistribution" or "distribution toolkit", > so it is relatively easy to use it as basis for building a binary > distribution. Distros derived from Gentoo may have completely different > goals, and examples include Ututo XS (which used to be on the FSF's > whitelist IIRC) and Chromium OS. Dear Ulrich, I understand and I like the technology running Gentoo, as how I know it, it is valuing source and then users can build it straight from source, I hope I am right as I did not use it myself. On the other hand, I cannot recommend it to my friends or business partners as it does have different purpose then being a fully free GNU/Linux distribution, so I recommend those like Guix, Trisquel, Hyperbola, Parabola, PureOS, and others FSF endorsed distributions like here: https://www.gnu.org/distros/free-distros.html Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 19:38 ` Ulrich Mueller 2021-01-07 20:23 ` Jean Louis @ 2021-01-09 6:35 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:35 UTC (permalink / raw) To: Ulrich Mueller; +Cc: emacs-tangents, bugs, ulm, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Let's not have a discussion here about free vs nonfree GNU/Linux distributions. The situation is clear. People have different positions because they start from different goals and values. There is no need to rehash it. Just because it's a tangent does not mean we need to discuss it. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller 2021-01-07 11:46 ` Jean Louis @ 2021-01-07 18:18 ` Alfred M. Szmidt 2021-01-09 6:34 ` Richard Stallman ` (2 subsequent siblings) 4 siblings, 0 replies; 252+ messages in thread From: Alfred M. Szmidt @ 2021-01-07 18:18 UTC (permalink / raw) To: Ulrich Mueller; +Cc: emacs-tangents, rms, bugs, ulm, arthur.miller, dgutov [-> to emacs-tangents -- hopefully spelling that right this time] One would first have to define what qualifies as a free package, and the world isn't all black-or-white there. There is no need to do that, we already have such a definition for what is free software; see www.gnu.org/philosophy/free-sw.html . What the case is for non-software, say documentation, or fonts, is different matter and depends on what one is talking about. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller 2021-01-07 11:46 ` Jean Louis 2021-01-07 18:18 ` Alfred M. Szmidt @ 2021-01-09 6:34 ` Richard Stallman 2021-01-09 21:07 ` Ulrich Mueller 2021-01-20 6:14 ` Richard Stallman 2021-02-16 5:21 ` freedom issues in free software Richard Stallman 4 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-09 6:34 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > One would first have to define what qualifies as a free package, and the > world isn't all black-or-white there. The definition needs interpretation, and we publish interpretations in https://gnu.org/philosophy/free-sw.html. > For example, the tarball of org-mode as released by upstream [1] > contains Relax-NG schemas [2] distributed under a license that doesn't > allow modification. Does that make org-mode a non-free package? It looks like we will have to study the situation and reach a conclusion. > Another example is the intlfonts package [3], which contains some > Tibetan fonts with a non-commercial restriction. That sounds like a bug. Bugs happen, but they do not constitute a fundamental confusion. I will investigate. We're talking about how well it is possible for repology.el to distinguish free packages from nonfree packages on repology.org. The site does not distribute these packages, it only finds out about them by examining them. So I don't think we need to demand that this be 100% accurate. If a few nonfree packages slip by, it is nothing to tear our hair out about. We ought to do make our code effective overall. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 6:34 ` Richard Stallman @ 2021-01-09 21:07 ` Ulrich Mueller 2021-01-11 4:46 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-09 21:07 UTC (permalink / raw) To: Richard Stallman Cc: bugs, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov >>>>> On Sat, 09 Jan 2021, Richard Stallman wrote: >> For example, the tarball of org-mode as released by upstream [1] >> contains Relax-NG schemas [2] distributed under a license that doesn't >> allow modification. Does that make org-mode a non-free package? > It looks like we will have to study the situation and reach a > conclusion. >> Another example is the intlfonts package [3], which contains some >> Tibetan fonts with a non-commercial restriction. > That sounds like a bug. Bugs happen, but they do not constitute > a fundamental confusion. I will investigate. These were just meant as examples, and my comment wasn't about these two packages in particular. There are many more such cases of free packages that include some strictly optional non-free files. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-09 21:07 ` Ulrich Mueller @ 2021-01-11 4:46 ` Richard Stallman 2021-01-12 8:24 ` Ulrich Mueller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-11 4:46 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > These were just meant as examples, and my comment wasn't about these two > packages in particular. There are many more such cases of free packages > that include some strictly optional non-free files. These are cases of a problem. Would you please give details so we can investigate and see what kind of problem each one is? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-11 4:46 ` Richard Stallman @ 2021-01-12 8:24 ` Ulrich Mueller 0 siblings, 0 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-12 8:24 UTC (permalink / raw) To: Richard Stallman Cc: bugs, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov >>>>> On Mon, 11 Jan 2021, Richard Stallman wrote: > These are cases of a problem. Would you please give details > so we can investigate and see what kind of problem each one is? 1. org-mode installs the following two files: etc/schema/od-schema-v1.2-os.rnc etc/schema/od-manifest-schema-v1.2-os.rnc They can also be found in the Emacs repository: https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/schema Both files are licensed under the following terms: Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved. All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The key phrase is "this document itself may not be modified in any way". The files appear to be part of the Open Document standard, but as Relax-NG schemas they are functional data. It was also briefly mentioned in the debian-legal mailing list in 2018: https://lists.debian.org/debian-legal/2018/08/msg00007.html but AFAICS, Debian still distributes the files in their package. 2. As for the GNU Intlfonts package, that one may need a complete audit of all its files. I see some files in the public domain and some with an HPND license notice. Some Tibetan fonts come with the following notice including a non-commercial restriction: 97.1.21 Created by Toru TOMABECHI <Toru.Tomabechi@orient.unil.ch>. The glyphs are taken, using PS2PK and PK2BM, from TibMdxA type 1 font, originally designed by Christopher FYNN <cfynn@sahaja.demon.co.uk>. Slight modification has been made using XMBDFED and glyphs have been re-ordered. Original glyph design: Copyright (C) Christopher FYNN 1993-1994. Many thanks to Chris for kindly permitting its non-commercial use for our implementation. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller ` (2 preceding siblings ...) 2021-01-09 6:34 ` Richard Stallman @ 2021-01-20 6:14 ` Richard Stallman 2021-01-21 11:09 ` Ulrich Mueller 2021-02-16 5:21 ` freedom issues in free software Richard Stallman 4 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-20 6:14 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > For example, the tarball of org-mode as released by upstream [1] > contains Relax-NG schemas [2] distributed under a license that doesn't > allow modification. Does that make org-mode a non-free package? That is an important question, but I don't know the answer. Can you tell me what a Relax-NG schema is, and what it does? With that information I should be able to understand the issue. > Another example is the intlfonts package [3], which contains some > Tibetan fonts with a non-commercial restriction. It took time for me to reach Handa; he will investigate this. Problems like this are important, and we need to look at them one by one. A distro can fix the problem in various ways, but what we really should aim for is get them fixed upstream. It sounds like you are in a position to report many such problems. Would you like to help with a long-term effort to get such problems fixed upstream? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-20 6:14 ` Richard Stallman @ 2021-01-21 11:09 ` Ulrich Mueller 2021-01-22 6:06 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-21 11:09 UTC (permalink / raw) To: Richard Stallman Cc: bugs, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov >>>>> On Wed, 20 Jan 2021, Richard Stallman wrote: >> For example, the tarball of org-mode as released by upstream [1] >> contains Relax-NG schemas [2] distributed under a license that doesn't >> allow modification. Does that make org-mode a non-free package? > That is an important question, but I don't know the answer. > Can you tell me what a Relax-NG schema is, and what it does? > With that information I should be able to understand the issue. In a nutshell, a Relax-NG schema defines the grammar of an XML document, somewhat similar to a DTD (which is older as a concept). For example, nxml-mode can use such schemas for validation. (Strictly speaking, it uses their compact form RNC, but that's an unimportant detail.) In the concrete case, I believe the RNG schemas were taken from the Open Document standard. It is somewhat understandable that they don't want to allow modified versions of the standard, but that makes these schemas non-free. >> Another example is the intlfonts package [3], which contains some >> Tibetan fonts with a non-commercial restriction. > It took time for me to reach Handa; he will investigate this. Thanks. > Problems like this are important, and we need to look at them one by one. > A distro can fix the problem in various ways, but what we really should > aim for is get them fixed upstream. > It sounds like you are in a position to report many such problems. > Would you like to help with a long-term effort to get such problems > fixed upstream? Sure, I would be happy to help. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-21 11:09 ` Ulrich Mueller @ 2021-01-22 6:06 ` Richard Stallman 2021-01-22 9:43 ` Ulrich Mueller 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-22 6:06 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > In the concrete case, I believe the RNG schemas were taken from the Open > Document standard. It is somewhat understandable that they don't want to > allow modified versions of the standard, but that makes these schemas > non-free. In the short term, I think we need to delete them, but we can try asking the committee to liberate the code of those schemas under other names. What role do these particular schemas play in the standard? Are they examples? Are they used by the standards documents? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-22 6:06 ` Richard Stallman @ 2021-01-22 9:43 ` Ulrich Mueller 2021-01-24 6:35 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-22 9:43 UTC (permalink / raw) To: Richard Stallman Cc: bugs, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov >>>>> On Fri, 22 Jan 2021, Richard Stallman wrote: >> In the concrete case, I believe the RNG schemas were taken from the Open >> Document standard. It is somewhat understandable that they don't want to >> allow modified versions of the standard, but that makes these schemas >> non-free. > In the short term, I think we need to delete them, but we can try > asking the committee to liberate the code of those schemas under > other names. > What role do these particular schemas play in the standard? > Are they examples? Are they used by the standards documents? It's not entirely clear to me if they're considered part of the standard. They are referenced in [1] under "Related work", but it also says that "This specification consists of this document as well as the following documents, schemas and ontologies". [1] http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os.html ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-22 9:43 ` Ulrich Mueller @ 2021-01-24 6:35 ` Richard Stallman 2021-01-24 8:34 ` Ulrich Mueller 2021-01-24 10:53 ` Org schemas we talked to be non-free, was: " Jean Louis 0 siblings, 2 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-24 6:35 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > What role do these particular schemas play in the standard? > > Are they examples? Are they used by the standards documents? > It's not entirely clear to me if they're considered part of the > standard. It sounds like they are either examples or part of the standard and we cannot tell which. Is that right? Do users actually use them? > says that "This specification consists of this document as well as the > following documents, schemas and ontologies". I presume that is followed by a list of documents, schemas and ontologies. Could you please send me that list? Without that, I don't see what this implies. > [1] http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os.html I will fetch a copy. Would you please send me (off the list) one of these schemas so I can see what a typical schema looks like? Also, what is the relationship between Org mode and these schemes? How does it use them or operate on them? What does it do with them? What does it do if a document refers to a scheme and the schema is not defined? Do users ever modify the schemas for their own documents? Do they distribute the modified schemas along with their documents? Do users make their own schemas? Do users release their own schemas? Are any user-released schemas free? Do they expect users to actually use these specific schemas, or are they only meant to show what a schema looks like so you can write your own? Do users often use these schemas, or do they usually make their own? All these details of the context are crucial for finding a way to address this problem which won't be too much work for us or too painful for users. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-24 6:35 ` Richard Stallman @ 2021-01-24 8:34 ` Ulrich Mueller 2021-01-25 5:53 ` Richard Stallman 2021-01-24 10:53 ` Org schemas we talked to be non-free, was: " Jean Louis 1 sibling, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-24 8:34 UTC (permalink / raw) To: Richard Stallman Cc: bugs, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov >>>>> On Sun, 24 Jan 2021, Richard Stallman wrote: >> > What role do these particular schemas play in the standard? >> > Are they examples? Are they used by the standards documents? >> It's not entirely clear to me if they're considered part of the >> standard. > It sounds like they are either examples or part of the standard > and we cannot tell which. Is that right? At least I couldn't tell. > Do users actually use them? AFAICS, ox-odt.el uses them together with nxml-mode for auto-validation of OpenDocument files. So they are useful. Interestingly, the docstring of the org-odt-schema-dir variable contains the following note, indicating that the files weren't meant to be packaged: The OASIS schema files are available only in the org's private git repository. It is *not* bundled with GNU ELPA tar or standard Emacs distribution. Still, I think it would be preferable if upstream released them under a free license. >> says that "This specification consists of this document as well as the >> following documents, schemas and ontologies". > I presume that is followed by a list of documents, schemas and ontologies. > Could you please send me that list? Without that, I don't see > what this implies. >> [1] http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os.html > I will fetch a copy. > Would you please send me (off the list) one of these schemas so I can > see what a typical schema looks like? I'll send it off-list. > Also, what is the relationship between Org mode and these schemes? > How does it use them or operate on them? What does it do with them? > What does it do if a document refers to a scheme and the schema is > not defined? See above, they're used by ox-odt.el. AFAICT, nothing catastrophic will happen if a schema is missing, but validation of documents would be no longer possible. > Do users ever modify the schemas for their own documents? > Do they distribute the modified schemas along with their documents? I don't think so. OpenDocument is a standardised format, so modifying its schemas would make little sense for interoperability. > Do users make their own schemas? Do users release their own > schemas? Are any user-released schemas free? Users can create their own schemas for their own types of XML documents (which aren't necessarily related to OpenDocument), and they can release them under any license they want. > Do they expect users to actually use these specific schemas, > or are they only meant to show what a schema looks like > so you can write your own? > Do users often use these schemas, or do they usually make their own? My explanations above should answer these questions. > All these details of the context are crucial for finding a way to > address this problem which won't be too much work for us or too > painful for users. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-24 8:34 ` Ulrich Mueller @ 2021-01-25 5:53 ` Richard Stallman 2021-01-25 6:52 ` Jean Louis 2021-01-25 15:51 ` Dmitry Gutov 0 siblings, 2 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-25 5:53 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I think I understand the facts of the situation. The OpenDocument schemas are nonfree. One uncertainty remains in my understanding. Are those Schemas a kind of software, or are they some other kind of thing? I think they are software, because they could be modified within an infinite space of possibilities. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 5:53 ` Richard Stallman @ 2021-01-25 6:52 ` Jean Louis 2021-01-25 12:11 ` Fabrice BAUZAC-STEHLY ` (2 more replies) 2021-01-25 15:51 ` Dmitry Gutov 1 sibling, 3 replies; 252+ messages in thread From: Jean Louis @ 2021-01-25 6:52 UTC (permalink / raw) To: rms, Richard Stallman, Ulrich Mueller Cc: ulm, dgutov, ams, arthur.miller, emacs-devel I think, but not sure, that schema is pattern on how documents should be interpreted by software. Without it, certain functions would not work. In my opinion it is one way of programming by pattern and this part of software. In itself it does nothing. It is not just a configuration file or data like list of colors or fonts. I think it is pattern that changes algorithm of software and thus part of software. On January 25, 2021 5:53:04 AM UTC, Richard Stallman <rms@gnu.org> wrote: >[[[ To any NSA and FBI agents reading my email: please consider ]]] >[[[ whether defending the US Constitution against all enemies, ]]] >[[[ foreign or domestic, requires you to follow Snowden's example. ]]] > >I think I understand the facts of the situation. >The OpenDocument schemas are nonfree. > >One uncertainty remains in my understanding. Are those >Schemas a kind of software, or are they some other kind of thing? > >I think they are software, because they could be modified within an >infinite space of possibilities. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 6:52 ` Jean Louis @ 2021-01-25 12:11 ` Fabrice BAUZAC-STEHLY 2021-01-25 15:29 ` Eli Zaretskii 2021-01-27 7:37 ` Richard Stallman 2 siblings, 0 replies; 252+ messages in thread From: Fabrice BAUZAC-STEHLY @ 2021-01-25 12:11 UTC (permalink / raw) To: Jean Louis; +Cc: rms, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov Jean Louis <bugs@gnu.support> writes: > I think, but not sure, that schema is pattern on how documents should > be interpreted by software. Without it, certain functions would not > work. In my opinion it is one way of programming by pattern and this > part of software. I happen to have worked on software that works with XML and which provides an XML schema with it. I think the XML schemas (be them Relax-NG or XML Schema Definition (XSD)) only indicate constraints in a tree of XML elements. For example, we can say the following set of constraints in either Relax-NG syntax or XSD syntax: Each <a> element must contain exactly one <b> element, followed by at least 2 <c> elements. Each <b> element can have an optional attribute "name" which value must be boolean, and must contain exactly one <c> element. Each <c> element must contain a string. It is somewhat similar to constraints I impose on the argument of my defun, e.g. "it must be a list with any number of elements, but each element must be a number or a list of strings" So for me an XML schema is something similar to a BNF grammar definition. Why would a schema need to be modified? I think there can be a lot of reasons. There may be several ways to represent the constraints, so another way might be more readable and it would then be a good idea to change it. Or, maybe there is a new version of the schema syntax and we would like to upgrade a schema with the new features of the new version which makes the schema more straightforward to read. Or something in the schema is not sufficiently constrained, so that users using a schema-verification tool would provide values that are not understood by a program, and we would need to change the schema so that users are warned that the thing they are putting in is not right. Or, a program now has extended capabilities which were not envisioned when the schema was written, so we would like to accept more things in XML and for that we would need to change the schema. Concerning the XML-processing software I have worked on, the schema had to be changed from version to version (it was delivered with each version) to cope with new needs and extend the features. It was a schema dedicated to this tool, not a standard supposed to be unique for many tools. But I think even a standard schema should not prevent an implementation to be able to support extensions of the standard schema to add more features. The implementation should be able to not only process XML files that comply to the standard schema, but also XML files that have additions that improve the functionality of the implementation. I don't know for sure whether schemas can be written in a way that never prevent extensions, such as: "each <a> should have one <b> child, but it is allowed to also put any other child under <a>". But even if there can be such very permissive schemas, we might want the program to come with its alternative schema (with additional features and XML elements and XML attributes) to ease data editing by users, because schemas are also used by XML editors to help the user fill in the blanks. However, a schema indicates types in a (possibly recursive) data structure, but does not otherwise influence how the data are processed. -- Fabrice Bauzac-Stehly PGP 01EEACF8244E9C14B551C5256ADA5F189BD322B6 old PGP 015AE9B25DCB0511D200A75DE5674DEA514C891D ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 6:52 ` Jean Louis 2021-01-25 12:11 ` Fabrice BAUZAC-STEHLY @ 2021-01-25 15:29 ` Eli Zaretskii 2021-01-27 7:37 ` Richard Stallman 2 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 15:29 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Mon, 25 Jan 2021 06:52:46 +0000 > From: Jean Louis <bugs@gnu.support> > Cc: ulm@gentoo.org, dgutov@yandex.ru, ams@gnu.org, arthur.miller@live.com, > emacs-devel@gnu.org > > I think, but not sure, that schema is pattern on how documents should be interpreted by software. Without it, certain functions would not work. In my opinion it is one way of programming by pattern and this part of software. > > In itself it does nothing. > > It is not just a configuration file or data like list of colors or fonts. I think it is pattern that changes algorithm of software and thus part of software. Therefore, it is not software. (And no, it doesn't change the algorithms.) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 6:52 ` Jean Louis 2021-01-25 12:11 ` Fabrice BAUZAC-STEHLY 2021-01-25 15:29 ` Eli Zaretskii @ 2021-01-27 7:37 ` Richard Stallman 2 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-27 7:37 UTC (permalink / raw) To: Jean Louis; +Cc: ulm, dgutov, ams, arthur.miller, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > In itself it does nothing. > It is not just a configuration file or data like list of colors or > fonts. I think it is pattern that changes algorithm of software > and thus part of software. It is now clear that you're right. However, if we were to include a list of colors or fonts _in a GNU package_ we would insist that the list be free. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 5:53 ` Richard Stallman 2021-01-25 6:52 ` Jean Louis @ 2021-01-25 15:51 ` Dmitry Gutov 2021-01-25 17:59 ` Jean Louis 2021-01-26 5:59 ` Richard Stallman 1 sibling, 2 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-25 15:51 UTC (permalink / raw) To: rms, Ulrich Mueller; +Cc: ams, arthur.miller, bugs, emacs-devel On 25.01.2021 07:53, Richard Stallman wrote: > One uncertainty remains in my understanding. Are those > Schemas a kind of software, or are they some other kind of thing? > > I think they are software, because they could be modified within an > infinite space of possibilities. A picture can be modified within an infinite space of possibilities. A book can be modified. A mathematical equation can be modified. None of the above are software. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 15:51 ` Dmitry Gutov @ 2021-01-25 17:59 ` Jean Louis 2021-01-25 18:21 ` Dmitry Gutov ` (3 more replies) 2021-01-26 5:59 ` Richard Stallman 1 sibling, 4 replies; 252+ messages in thread From: Jean Louis @ 2021-01-25 17:59 UTC (permalink / raw) To: Dmitry Gutov; +Cc: Ulrich Mueller, ams, rms, arthur.miller, emacs-devel * Dmitry Gutov <dgutov@yandex.ru> [2021-01-25 18:52]: > On 25.01.2021 07:53, Richard Stallman wrote: > > One uncertainty remains in my understanding. Are those > > Schemas a kind of software, or are they some other kind of thing? > > > > I think they are software, because they could be modified within an > > infinite space of possibilities. > > A picture can be modified within an infinite space of possibilities. A book > can be modified. A mathematical equation can be modified. > > None of the above are software. Software From Wordnet dictionary: * Overview of noun software The noun software has 1 sense (no senses from tagged texts) 1. software, software program, computer software, software system, software package, package -- ((computer science) written programs or procedures or rules and associated documentation pertaining to the operation of a computer system and that are stored in read/write memory; "the market for software is expected to expand") From Wikipedia: Software is a collection of instructions and data that tell the computer how to work. If schema is data it is part of software together with instructions. If schema represents rules how to produce digital document it is part of software. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 17:59 ` Jean Louis @ 2021-01-25 18:21 ` Dmitry Gutov 2021-01-26 3:40 ` Jean Louis 2021-01-26 6:10 ` Richard Stallman 2021-01-25 19:33 ` Eli Zaretskii ` (2 subsequent siblings) 3 siblings, 2 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-25 18:21 UTC (permalink / raw) To: rms, Ulrich Mueller, emacs-devel, ams, arthur.miller On 25.01.2021 19:59, Jean Louis wrote: > If schema is data it is part of software together with instructions. > > If schema represents rules how to produce digital document it is part > of software. We don't consider the bitmap files in the Emacs distribution to be software. And yet, they contain the "rules" to produce each individual picture on the screen. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 18:21 ` Dmitry Gutov @ 2021-01-26 3:40 ` Jean Louis 2021-01-26 6:10 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-26 3:40 UTC (permalink / raw) To: Dmitry Gutov; +Cc: Ulrich Mueller, ams, rms, arthur.miller, emacs-devel * Dmitry Gutov <dgutov@yandex.ru> [2021-01-25 21:30]: > On 25.01.2021 19:59, Jean Louis wrote: > > If schema is data it is part of software together with instructions. > > > > If schema represents rules how to produce digital document it is part > > of software. > > We don't consider the bitmap files in the Emacs distribution to be software. > > And yet, they contain the "rules" to produce each individual picture on the > screen. So what is "software" for you? Maybe you use different definition. If we speak of software it is anything that one cannot physically by using hands touch, assemble, disassemble, and repair. It is related and opposite to hardware. It is data in any form that is stored digitally on hardware. Bitmap files and program are software. They are not hardware. In general, if one wants to know if something is software there is simple test: Is it hardware? If it is not hardware, but is stored on hardware memory devices then it is software. It can be a picture of course. It could be picture alone without any program to use that picture. Software is what is not hardware. If some schema is used to verify document in any manner that is definitely data and it is there for a program to process that data. Program’s function depends on that data, thus data becomes part of program. Such data can be optional. Program’s function can be optional. That does not make the data less part of specific software. It can be part of various other software packages. Software as general term is that data inside memory that is not hardware. Be it executable program or not. Software package is what is bundled together to make the whole program function. Program alone is software, but in example of Emacs there are many programs bundled together and they do not constitute plural of software such as Emacs softwareS, rather all Emacs package together is called software. All digital information coming in the Emacs package is "software". That is how all software packages in the world are marketed, sold, purchased, referred to. "Software" and "program" are different words with different definitions. Data may be separate from programs, but any digital data on computer is always processed by some programs. Any digital data is software because it is not hardware but is stored on hardware devices. So any picture, any type of file, or text is software. Any type of file is processed by program such as operating system to at least display that such file exists on hardware. One need not run the file. The file need not have specific procedure or set of instructions, thus it need not be program to be software. It is processed by software sooner or later. Software is what can be processed by CPU and is stored digitally. In my opinion, a computer program or other digital data written or printed on paper does not represent software. It is printout of software. But such printout does represent a computer program. One could call it "software" but I think that is mistaken as such cannot be directly run by CPU and it is not digitally stored. So such are not software for me. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 18:21 ` Dmitry Gutov 2021-01-26 3:40 ` Jean Louis @ 2021-01-26 6:10 ` Richard Stallman 2021-01-26 13:42 ` Stefan Monnier 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-26 6:10 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, ams, arthur.miller, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > We don't consider the bitmap files in the Emacs distribution to be software. Indeed, pictures are not software. But we treat pictures just like software as regards our ethical criteria for licensing the material in a GNU package. > And yet, they contain the "rules" to produce each individual picture on > the screen. That stretches the meaning of "rules", but we don't need to argue about it; for the topic at hand, it makes no difference. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-26 6:10 ` Richard Stallman @ 2021-01-26 13:42 ` Stefan Monnier 2021-01-27 18:32 ` Jean Louis 0 siblings, 1 reply; 252+ messages in thread From: Stefan Monnier @ 2021-01-26 13:42 UTC (permalink / raw) To: Richard Stallman; +Cc: ulm, emacs-devel, ams, arthur.miller, Dmitry Gutov > > We don't consider the bitmap files in the Emacs distribution to be software. > Indeed, pictures are not software. I don't think that holds either: the formats for images are domain-specific languages (DSL) in which to express how to build the final image. Most of those DSLs are too limited to be thought of as programming languages (i.e. they're not Turing complete, tho there are exceptions like PostScript), but if you think of the definition of Kolmogorov complexity, it's clear that a PNG file is a "program" written in a DSL. So, what this points to is that it's futile to try and decide whether something like that is software or not. Stefan ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-26 13:42 ` Stefan Monnier @ 2021-01-27 18:32 ` Jean Louis 0 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-27 18:32 UTC (permalink / raw) To: Stefan Monnier Cc: Richard Stallman, ulm, emacs-devel, ams, arthur.miller, Dmitry Gutov * Stefan Monnier <monnier@iro.umontreal.ca> [2021-01-26 16:43]: > > > We don't consider the bitmap files in the Emacs distribution to be software. > > Indeed, pictures are not software. > > I don't think that holds either: the formats for images are > domain-specific languages (DSL) in which to express how to build the > final image. Most of those DSLs are too limited to be thought of as > programming languages (i.e. they're not Turing complete, tho there are > exceptions like PostScript), but if you think of the definition of > Kolmogorov complexity, it's clear that a PNG file is a "program" written > in a DSL. > > So, what this points to is that it's futile to try and decide whether > something like that is software or not. That is interesting insight, thank you. In my opinion we use here too often interchangeably "software" for "software program" or "computer program", while "software" as general term has broader definition. For example NEWS file is part of Emacs software, or part of software package, but not Emacs as software program. Wikipedia definition points out that all relevant documentation is also part of software that runs computer. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 17:59 ` Jean Louis 2021-01-25 18:21 ` Dmitry Gutov @ 2021-01-25 19:33 ` Eli Zaretskii 2021-01-25 19:38 ` Eli Zaretskii 2021-01-26 13:21 ` Richard Stallman 3 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 19:33 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Mon, 25 Jan 2021 20:59:14 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: Ulrich Mueller <ulm@gentoo.org>, ams@gnu.org, rms@gnu.org, > arthur.miller@live.com, emacs-devel@gnu.org > > > A picture can be modified within an infinite space of possibilities. A book > > can be modified. A mathematical equation can be modified. > > > > None of the above are software. > > Software > > >From Wordnet dictionary: > > * Overview of noun software Sigh... The Free Software movement was born out of this great concept: that programs are expressions of ideas -- algorithms and methods for solving complex problems -- and that free exchange of those ideas benefits mankind, and therefore preventing this free exchange is harmful. Now tell me what kind of a useful idea that should be shared do you find in a data type definition contained in an XML schema, which is basically a label: when I say "string" I mean this and that? Is this what Free Software is about? Maybe that's a better food for thought than an abstract definition from Wordnet (which you also mis-interpret to mean that "data" there means the kind of data we have in a schema). ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 17:59 ` Jean Louis 2021-01-25 18:21 ` Dmitry Gutov 2021-01-25 19:33 ` Eli Zaretskii @ 2021-01-25 19:38 ` Eli Zaretskii 2021-01-26 13:21 ` Richard Stallman 3 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 19:38 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Mon, 25 Jan 2021 20:59:14 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: Ulrich Mueller <ulm@gentoo.org>, ams@gnu.org, rms@gnu.org, > arthur.miller@live.com, emacs-devel@gnu.org > > If schema is data it is part of software together with instructions. You have misunderstood what "data" means in that definition. To realize why you misunderstood, consider this: a program can include "data" like the number 5.0e-10, but that doesn't make such a number any kind of software. Conclusion: not every kind of "data" can be considered to be so central to a program as to be an integral part of 'software". A judgment call is needed. > If schema represents rules how to produce digital document It doesn't. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 17:59 ` Jean Louis ` (2 preceding siblings ...) 2021-01-25 19:38 ` Eli Zaretskii @ 2021-01-26 13:21 ` Richard Stallman 3 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-26 13:21 UTC (permalink / raw) To: Jean Louis; +Cc: ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Software is a collection of instructions and data that tell the > computer how to work. > If schema is data it is part of software together with instructions. I made a mistake in raising the question of whether the schemas are software, because in regard to whether the program is free, that doesn't matter. Data for the program to use in order to operate is not software code, but it is part of the program so it needs to be free. For instance, images are not rules, not code, but we won't include an image in a free program if it is not free. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-25 15:51 ` Dmitry Gutov 2021-01-25 17:59 ` Jean Louis @ 2021-01-26 5:59 ` Richard Stallman 2021-01-26 13:15 ` Dmitry Gutov 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-26 5:59 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, bugs, ams, arthur.miller, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > I think they are software, because they could be modified within an > > infinite space of possibilities. > A picture can be modified within an infinite space of possibilities. A > book can be modified. A mathematical equation can be modified. That is true, but you've taken the question I raised for myself out of its context. The real question is, "In the context, is there any doubt that this is a piece of software? If not, what else could it be? I think it is clear that a specification of a data structure, meant to guide a program's operation on that data, is software. It is comparable to a bunch of struct and enum declarations which is how we use C header files to show the structure of other data. It may be true that any changes you make in these schemas would be tightly constrained _if you want them to interoperate with ODF_. The same is true for system header files, as long as you're going to use with GNU libc. The latter must be under a free license, and for the same reasons the former also. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-26 5:59 ` Richard Stallman @ 2021-01-26 13:15 ` Dmitry Gutov 2021-01-27 7:41 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-26 13:15 UTC (permalink / raw) To: rms; +Cc: ulm, bugs, ams, arthur.miller, emacs-devel On 26.01.2021 07:59, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > I think they are software, because they could be modified within an > > > infinite space of possibilities. > > > A picture can be modified within an infinite space of possibilities. A > > book can be modified. A mathematical equation can be modified. > > That is true, but you've taken the question I raised for myself out of > its context. The real question is, "In the context, is there any > doubt that this is a piece of software? If not, what else could it > be? > > I think it is clear that a specification of a data structure, meant to > guide a program's operation on that data, is software. It is > comparable to a bunch of struct and enum declarations which is how we > use C header files to show the structure of other data. I'm going to say that it's not a program, in the same way as images are not part of a program code. Unlike enums that have a role in writing the code and its compilation, and thus describe aspects of a program, schemas are structured documents which contain information pertaining to other documents. There are different things a program can do with a schema: it can determine whether a certain document is valid, or it can output some sort of structure describing the elements that are missing in the document, or it could even try to generate a sample document based on that schema (though it would require a fair amount of supporting code). This list is almost certainly incomplete. So a schema is not a program, nor a part of a particular program. That said, if we always require that accompanying data (such as images) to be distributed under free licenses, the "software or not" question is probably moot. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-26 13:15 ` Dmitry Gutov @ 2021-01-27 7:41 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-27 7:41 UTC (permalink / raw) To: Dmitry Gutov; +Cc: arthur.miller, ulm, ams, bugs, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > So a schema is not a program, nor a part of a particular program. A schema can be part of many programs -- all the programs that use it. > That said, if we always require that accompanying data (such as images) > to be distributed under free licenses, the "software or not" question is > probably moot. Our policies are not formulated using the concept of "accompanying". Data to be used with the program also should be free. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 6:35 ` Richard Stallman 2021-01-24 8:34 ` Ulrich Mueller @ 2021-01-24 10:53 ` Jean Louis 2021-01-24 17:50 ` Ulrich Mueller 1 sibling, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-24 10:53 UTC (permalink / raw) To: Richard Stallman; +Cc: Ulrich Mueller, dgutov, ams, arthur.miller, emacs-devel [-- Attachment #1: Type: text/plain, Size: 777 bytes --] * Richard Stallman <rms@gnu.org> [2021-01-24 09:36]: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > What role do these particular schemas play in the standard? > > > Are they examples? Are they used by the standards documents? > > > It's not entirely clear to me if they're considered part of the > > standard. > > It sounds like they are either examples or part of the standard > and we cannot tell which. Is that right? Schemas are attached. I see copyright notices inside and it appears to be fully free document modifiable and distributable as long as copyrights remains. Jean [-- Attachment #2: od-manifest-schema-v1.2-os.rnc --] [-- Type: text/plain, Size: 3815 bytes --] # Open Document Format for Office Applications (OpenDocument) Version 1.2 # OASIS Standard, 29 September 2011 # Manifest Relax-NG Schema # Source: http://docs.oasis-open.org/office/v1.2/os/ # Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved. # # All capitalized terms in the following text have the meanings assigned to them # in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The # full Policy may be found at the OASIS website. # # This document and translations of it may be copied and furnished to others, and # derivative works that comment on or otherwise explain it or assist in its # implementation may be prepared, copied, published, and distributed, in whole or # in part, without restriction of any kind, provided that the above copyright # notice and this section are included on all such copies and derivative works. # However, this document itself may not be modified in any way, including by # removing the copyright notice or references to OASIS, except as needed for the # purpose of developing any document or deliverable produced by an OASIS # Technical Committee (in which case the rules applicable to copyrights, as set # forth in the OASIS IPR Policy, must be followed) or as required to translate it # into languages other than English. # # The limited permissions granted above are perpetual and will not be revoked by # OASIS or its successors or assigns. # # This document and the information contained herein is provided on an "AS IS" # basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT # LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT # INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR # FITNESS FOR A PARTICULAR PURPOSE. namespace manifest = "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" start = manifest manifest = element manifest:manifest { manifest-attlist, file-entry+ } manifest-attlist = attribute manifest:version { "1.2" } file-entry = element manifest:file-entry { file-entry-attlist, encryption-data? } file-entry-attlist = attribute manifest:full-path { \string } & attribute manifest:size { nonNegativeInteger }? & attribute manifest:media-type { \string } & attribute manifest:preferred-view-mode { "edit" | "presentation-slide-show" | "read-only" | namespacedToken }? & attribute manifest:version { \string }? encryption-data = element manifest:encryption-data { encryption-data-attlist, algorithm, start-key-generation?, key-derivation } encryption-data-attlist = attribute manifest:checksum-type { "SHA1/1K" | anyURI } & attribute manifest:checksum { base64Binary } algorithm = element manifest:algorithm { algorithm-attlist, anyElements } algorithm-attlist = attribute manifest:algorithm-name { "Blowfish CFB" | anyURI } & attribute manifest:initialisation-vector { base64Binary } anyAttListOrElements = attribute * { text }*, anyElements anyElements = element * { mixed { anyAttListOrElements } }* key-derivation = element manifest:key-derivation { key-derivation-attlist, empty } key-derivation-attlist = attribute manifest:key-derivation-name { "PBKDF2" | anyURI } & attribute manifest:salt { base64Binary } & attribute manifest:iteration-count { nonNegativeInteger } & attribute manifest:key-size { nonNegativeInteger }? start-key-generation = element manifest:start-key-generation { start-key-generation-attlist, empty } start-key-generation-attlist = attribute manifest:start-key-generation-name { "SHA1" | anyURI } & attribute manifest:key-size { nonNegativeInteger }? base64Binary = xsd:base64Binary namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" } nonNegativeInteger = xsd:nonNegativeInteger \string = xsd:string anyURI = xsd:anyURI [-- Attachment #3: od-schema-v1.2-os.rnc --] [-- Type: text/plain, Size: 213760 bytes --] # Open Document Format for Office Applications (OpenDocument) Version 1.2 # OASIS Standard, 29 September 2011 # Relax-NG Schema # Source: http://docs.oasis-open.org/office/v1.2/os/ # Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved. # # All capitalized terms in the following text have the meanings assigned to them # in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The # full Policy may be found at the OASIS website. # # This document and translations of it may be copied and furnished to others, and # derivative works that comment on or otherwise explain it or assist in its # implementation may be prepared, copied, published, and distributed, in whole or # in part, without restriction of any kind, provided that the above copyright # notice and this section are included on all such copies and derivative works. # However, this document itself may not be modified in any way, including by # removing the copyright notice or references to OASIS, except as needed for the # purpose of developing any document or deliverable produced by an OASIS # Technical Committee (in which case the rules applicable to copyrights, as set # forth in the OASIS IPR Policy, must be followed) or as required to translate it # into languages other than English. # # The limited permissions granted above are perpetual and will not be revoked by # OASIS or its successors or assigns. # # This document and the information contained herein is provided on an "AS IS" # basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT # LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT # INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR # FITNESS FOR A PARTICULAR PURPOSE. namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0" namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0" namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0" namespace db = "urn:oasis:names:tc:opendocument:xmlns:database:1.0" namespace dc = "http://purl.org/dc/elements/1.1/" namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" namespace fo = "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0" namespace grddl = "http://www.w3.org/2003/g/data-view#" namespace math = "http://www.w3.org/1998/Math/MathML" namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0" namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0" namespace presentation = "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0" namespace smil = "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0" namespace svg = "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0" namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0" namespace xforms = "http://www.w3.org/2002/xforms" namespace xhtml = "http://www.w3.org/1999/xhtml" namespace xlink = "http://www.w3.org/1999/xlink" office-process-content = attribute office:process-content { boolean }? start = office-document | office-document-content | office-document-styles | office-document-meta | office-document-settings office-document = element office:document { office-document-attrs, office-document-common-attrs, office-meta, office-settings, office-scripts, office-font-face-decls, office-styles, office-automatic-styles, office-master-styles, office-body } office-document-content = element office:document-content { office-document-common-attrs, office-scripts, office-font-face-decls, office-automatic-styles, office-body } office-document-styles = element office:document-styles { office-document-common-attrs, office-font-face-decls, office-styles, office-automatic-styles, office-master-styles } office-document-meta = element office:document-meta { office-document-common-attrs, office-meta } office-document-settings = element office:document-settings { office-document-common-attrs, office-settings } office-document-common-attrs = attribute office:version { "1.2" } & attribute grddl:transformation { list { anyIRI* } }? office-document-attrs = attribute office:mimetype { \string } office-meta = element office:meta { office-meta-content-strict }? office-meta-content-strict = office-meta-data* office-body = element office:body { office-body-content } office-body-content = element office:text { office-text-attlist, office-text-content-prelude, office-text-content-main, office-text-content-epilogue } | element office:drawing { office-drawing-attlist, office-drawing-content-prelude, office-drawing-content-main, office-drawing-content-epilogue } | element office:presentation { office-presentation-attlist, office-presentation-content-prelude, office-presentation-content-main, office-presentation-content-epilogue } | element office:spreadsheet { office-spreadsheet-attlist, office-spreadsheet-content-prelude, office-spreadsheet-content-main, office-spreadsheet-content-epilogue } | element office:chart { office-chart-attlist, office-chart-content-prelude, office-chart-content-main, office-chart-content-epilogue } | element office:image { office-image-attlist, office-image-content-prelude, office-image-content-main, office-image-content-epilogue } | office-database office-text-content-prelude = office-forms, text-tracked-changes, text-decls, table-decls office-text-content-main = text-content* | (text-page-sequence, (shape)*) text-content = text-h | text-p | text-list | text-numbered-paragraph | table-table | text-section | text-soft-page-break | text-table-of-content | text-illustration-index | text-table-index | text-object-index | text-user-index | text-alphabetical-index | text-bibliography | shape | change-marks office-text-content-epilogue = table-functions office-text-attlist = attribute text:global { boolean }? & attribute text:use-soft-page-breaks { boolean }? office-drawing-attlist = empty office-drawing-content-prelude = text-decls, table-decls office-drawing-content-main = draw-page* office-drawing-content-epilogue = table-functions office-presentation-attlist = empty office-presentation-content-prelude = text-decls, table-decls, presentation-decls office-presentation-content-main = draw-page* office-presentation-content-epilogue = presentation-settings, table-functions office-spreadsheet-content-prelude = table-tracked-changes?, text-decls, table-decls table-decls = table-calculation-settings?, table-content-validations?, table-label-ranges? office-spreadsheet-content-main = table-table* office-spreadsheet-content-epilogue = table-functions table-functions = table-named-expressions?, table-database-ranges?, table-data-pilot-tables?, table-consolidation?, table-dde-links? office-chart-attlist = empty office-chart-content-prelude = text-decls, table-decls office-chart-content-main = chart-chart office-chart-content-epilogue = table-functions office-image-attlist = empty office-image-content-prelude = empty office-image-content-main = draw-frame office-image-content-epilogue = empty office-settings = element office:settings { config-config-item-set+ }? config-config-item-set = element config:config-item-set { config-config-item-set-attlist, config-items } config-items = (config-config-item | config-config-item-set | config-config-item-map-named | config-config-item-map-indexed)+ config-config-item-set-attlist = attribute config:name { \string } config-config-item = element config:config-item { config-config-item-attlist, text } config-config-item-attlist = attribute config:name { \string } & attribute config:type { "boolean" | "short" | "int" | "long" | "double" | "string" | "datetime" | "base64Binary" } config-config-item-map-indexed = element config:config-item-map-indexed { config-config-item-map-indexed-attlist, config-config-item-map-entry+ } config-config-item-map-indexed-attlist = attribute config:name { \string } config-config-item-map-entry = element config:config-item-map-entry { config-config-item-map-entry-attlist, config-items } config-config-item-map-entry-attlist = attribute config:name { \string }? config-config-item-map-named = element config:config-item-map-named { config-config-item-map-named-attlist, config-config-item-map-entry+ } config-config-item-map-named-attlist = attribute config:name { \string } office-scripts = element office:scripts { office-script*, office-event-listeners? }? office-script = element office:script { office-script-attlist, mixed { anyElements } } office-script-attlist = attribute script:language { \string } office-font-face-decls = element office:font-face-decls { style-font-face* }? office-styles = element office:styles { styles & style-default-style* & style-default-page-layout? & text-outline-style? & text-notes-configuration* & text-bibliography-configuration? & text-linenumbering-configuration? & draw-gradient* & svg-linearGradient* & svg-radialGradient* & draw-hatch* & draw-fill-image* & draw-marker* & draw-stroke-dash* & draw-opacity* & style-presentation-page-layout* & table-table-template* }? office-automatic-styles = element office:automatic-styles { styles & style-page-layout* }? office-master-styles = element office:master-styles { style-master-page* & style-handout-master? & draw-layer-set? }? styles = style-style* & text-list-style* & number-number-style* & number-currency-style* & number-percentage-style* & number-date-style* & number-time-style* & number-boolean-style* & number-text-style* office-meta-data = element meta:generator { \string } | element dc:title { \string } | element dc:description { \string } | element dc:subject { \string } | element meta:keyword { \string } | element meta:initial-creator { \string } | dc-creator | element meta:printed-by { \string } | element meta:creation-date { dateTime } | dc-date | element meta:print-date { dateTime } | element meta:template { attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:actuate { "onRequest" }?, attribute xlink:title { \string }?, attribute meta:date { dateTime }? } | element meta:auto-reload { (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:show { "replace" }?, attribute xlink:actuate { "onLoad" }?)?, attribute meta:delay { duration }? } | element meta:hyperlink-behaviour { attribute office:target-frame-name { targetFrameName }?, attribute xlink:show { "new" | "replace" }? } | element dc:language { language } | element meta:editing-cycles { nonNegativeInteger } | element meta:editing-duration { duration } | element meta:document-statistic { attribute meta:page-count { nonNegativeInteger }?, attribute meta:table-count { nonNegativeInteger }?, attribute meta:draw-count { nonNegativeInteger }?, attribute meta:image-count { nonNegativeInteger }?, attribute meta:ole-object-count { nonNegativeInteger }?, attribute meta:object-count { nonNegativeInteger }?, attribute meta:paragraph-count { nonNegativeInteger }?, attribute meta:word-count { nonNegativeInteger }?, attribute meta:character-count { nonNegativeInteger }?, attribute meta:frame-count { nonNegativeInteger }?, attribute meta:sentence-count { nonNegativeInteger }?, attribute meta:syllable-count { nonNegativeInteger }?, attribute meta:non-whitespace-character-count { nonNegativeInteger }?, attribute meta:row-count { nonNegativeInteger }?, attribute meta:cell-count { nonNegativeInteger }? } | element meta:user-defined { attribute meta:name { \string }, ((attribute meta:value-type { "float" }, double) | (attribute meta:value-type { "date" }, dateOrDateTime) | (attribute meta:value-type { "time" }, duration) | (attribute meta:value-type { "boolean" }, boolean) | (attribute meta:value-type { "string" }, \string) | text) } dc-creator = element dc:creator { \string } dc-date = element dc:date { dateTime } text-h = element text:h { heading-attrs, paragraph-attrs, text-number?, paragraph-content-or-hyperlink* } heading-attrs = attribute text:outline-level { positiveInteger } & attribute text:restart-numbering { boolean }? & attribute text:start-value { nonNegativeInteger }? & attribute text:is-list-header { boolean }? text-number = element text:number { \string } text-p = element text:p { paragraph-attrs, paragraph-content-or-hyperlink* } paragraph-attrs = attribute text:style-name { styleNameRef }? & attribute text:class-names { styleNameRefs }? & attribute text:cond-style-name { styleNameRef }? & (xml-id, attribute text:id { NCName }?)? & common-in-content-meta-attlist? text-page-sequence = element text:page-sequence { text-page+ } text-page = element text:page { text-page-attlist, empty } text-page-attlist = attribute text:master-page-name { styleNameRef } text-list = element text:list { text-list-attr, text-list-header?, text-list-item* } text-list-attr = attribute text:style-name { styleNameRef }? & attribute text:continue-numbering { boolean }? & attribute text:continue-list { IDREF }? & xml-id? text-list-item = element text:list-item { text-list-item-attr, text-list-item-content } text-list-item-content = text-number?, (text-p | text-h | text-list | text-soft-page-break)* text-list-item-attr = attribute text:start-value { nonNegativeInteger }? & attribute text:style-override { styleNameRef }? & xml-id? text-list-header = element text:list-header { text-list-header-attr, text-list-item-content } text-list-header-attr = xml-id? text-numbered-paragraph = element text:numbered-paragraph { text-numbered-paragraph-attr, text-number?, (text-p | text-h) } text-numbered-paragraph-attr = attribute text:list-id { NCName } & attribute text:level { positiveInteger }? & (attribute text:style-name { styleNameRef }, attribute text:continue-numbering { boolean }, attribute text:start-value { nonNegativeInteger })? & xml-id? text-section = element text:section { text-section-attlist, (text-section-source | text-section-source-dde | empty), text-content* } text-section-attlist = common-section-attlist & (attribute text:display { "true" | "none" } | (attribute text:display { "condition" }, attribute text:condition { \string }) | empty) common-section-attlist = attribute text:style-name { styleNameRef }? & attribute text:name { \string } & attribute text:protected { boolean }? & attribute text:protection-key { \string }? & attribute text:protection-key-digest-algorithm { anyIRI }? & xml-id? text-section-source = element text:section-source { text-section-source-attr } text-section-source-attr = (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:show { "embed" }?)? & attribute text:section-name { \string }? & attribute text:filter-name { \string }? text-section-source-dde = office-dde-source text-tracked-changes = element text:tracked-changes { text-tracked-changes-attr, text-changed-region* }? text-tracked-changes-attr = attribute text:track-changes { boolean }? text-changed-region = element text:changed-region { text-changed-region-attr, text-changed-region-content } text-changed-region-attr = xml-id, attribute text:id { NCName }? text-changed-region-content = element text:insertion { office-change-info } | element text:deletion { office-change-info, text-content* } | element text:format-change { office-change-info } change-marks = element text:change { change-mark-attr } | element text:change-start { change-mark-attr } | element text:change-end { change-mark-attr } change-mark-attr = attribute text:change-id { IDREF } text-soft-page-break = element text:soft-page-break { empty } text-decls = element text:variable-decls { text-variable-decl* }?, element text:sequence-decls { text-sequence-decl* }?, element text:user-field-decls { text-user-field-decl* }?, element text:dde-connection-decls { text-dde-connection-decl* }?, text-alphabetical-index-auto-mark-file? paragraph-content-or-hyperlink = paragraph-content | text-a paragraph-content = text | element text:s { attribute text:c { nonNegativeInteger }? } | element text:tab { text-tab-attr } | element text:line-break { empty } | text-soft-page-break | element text:span { attribute text:style-name { styleNameRef }?, attribute text:class-names { styleNameRefs }?, paragraph-content-or-hyperlink* } | element text:meta { text-meta-attlist, paragraph-content-or-hyperlink* } | (text-bookmark | text-bookmark-start | text-bookmark-end) | element text:reference-mark { attribute text:name { \string } } | (element text:reference-mark-start { attribute text:name { \string } } | element text:reference-mark-end { attribute text:name { \string } }) | element text:note { text-note-class, attribute text:id { \string }?, element text:note-citation { attribute text:label { \string }?, text }, element text:note-body { text-content* } } | element text:ruby { attribute text:style-name { styleNameRef }?, element text:ruby-base { paragraph-content-or-hyperlink* }, element text:ruby-text { attribute text:style-name { styleNameRef }?, text } } | (office-annotation | office-annotation-end) | change-marks | shape | element text:date { text-date-attlist, text } | element text:time { text-time-attlist, text } | element text:page-number { text-page-number-attlist, text } | element text:page-continuation { text-page-continuation-attlist, text } | element text:sender-firstname { common-field-fixed-attlist, text } | element text:sender-lastname { common-field-fixed-attlist, text } | element text:sender-initials { common-field-fixed-attlist, text } | element text:sender-title { common-field-fixed-attlist, text } | element text:sender-position { common-field-fixed-attlist, text } | element text:sender-email { common-field-fixed-attlist, text } | element text:sender-phone-private { common-field-fixed-attlist, text } | element text:sender-fax { common-field-fixed-attlist, text } | element text:sender-company { common-field-fixed-attlist, text } | element text:sender-phone-work { common-field-fixed-attlist, text } | element text:sender-street { common-field-fixed-attlist, text } | element text:sender-city { common-field-fixed-attlist, text } | element text:sender-postal-code { common-field-fixed-attlist, text } | element text:sender-country { common-field-fixed-attlist, text } | element text:sender-state-or-province { common-field-fixed-attlist, text } | element text:author-name { common-field-fixed-attlist, text } | element text:author-initials { common-field-fixed-attlist, text } | element text:chapter { text-chapter-attlist, text } | element text:file-name { text-file-name-attlist, text } | element text:template-name { text-template-name-attlist, text } | element text:sheet-name { text } | element text:variable-set { (common-field-name-attlist & common-field-formula-attlist & common-value-and-type-attlist & common-field-display-value-none-attlist & common-field-data-style-name-attlist), text } | element text:variable-get { (common-field-name-attlist & common-field-display-value-formula-attlist & common-field-data-style-name-attlist), text } | element text:variable-input { (common-field-name-attlist & common-field-description-attlist & common-value-type-attlist & common-field-display-value-none-attlist & common-field-data-style-name-attlist), text } | element text:user-field-get { (common-field-name-attlist & common-field-display-value-formula-none-attlist & common-field-data-style-name-attlist), text } | element text:user-field-input { (common-field-name-attlist & common-field-description-attlist & common-field-data-style-name-attlist), text } | element text:sequence { (common-field-name-attlist & common-field-formula-attlist & common-field-num-format-attlist & text-sequence-ref-name), text } | element text:expression { (common-field-formula-attlist & common-value-and-type-attlist? & common-field-display-value-formula-attlist & common-field-data-style-name-attlist), text } | element text:text-input { common-field-description-attlist, text } | element text:initial-creator { common-field-fixed-attlist, text } | element text:creation-date { (common-field-fixed-attlist & common-field-data-style-name-attlist & attribute text:date-value { dateOrDateTime }?), text } | element text:creation-time { (common-field-fixed-attlist & common-field-data-style-name-attlist & attribute text:time-value { timeOrDateTime }?), text } | element text:description { common-field-fixed-attlist, text } | element text:user-defined { (common-field-fixed-attlist & attribute text:name { \string } & common-field-data-style-name-attlist & attribute office:value { double }? & attribute office:date-value { dateOrDateTime }? & attribute office:time-value { duration }? & attribute office:boolean-value { boolean }? & attribute office:string-value { \string }?), text } | element text:print-time { (common-field-fixed-attlist & common-field-data-style-name-attlist & attribute text:time-value { time }?), text } | element text:print-date { (common-field-fixed-attlist & common-field-data-style-name-attlist & attribute text:date-value { date }?), text } | element text:printed-by { common-field-fixed-attlist, text } | element text:title { common-field-fixed-attlist, text } | element text:subject { common-field-fixed-attlist, text } | element text:keywords { common-field-fixed-attlist, text } | element text:editing-cycles { common-field-fixed-attlist, text } | element text:editing-duration { (common-field-fixed-attlist & common-field-data-style-name-attlist & attribute text:duration { duration }?), text } | element text:modification-time { (common-field-fixed-attlist & common-field-data-style-name-attlist & attribute text:time-value { time }?), text } | element text:modification-date { (common-field-fixed-attlist & common-field-data-style-name-attlist & attribute text:date-value { date }?), text } | element text:creator { common-field-fixed-attlist, text } | element text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-count { common-field-num-format-attlist, text } | element text:database-display { text-database-display-attlist, text } | element text:database-next { text-database-next-attlist } | element text:database-row-select { text-database-row-select-attlist } | element text:database-row-number { (common-field-database-table & common-field-num-format-attlist & attribute text:value { nonNegativeInteger }?), text } | element text:database-name { common-field-database-table, text } | element text:page-variable-set { text-set-page-variable-attlist, text } | element text:page-variable-get { text-get-page-variable-attlist, text } | element text:placeholder { text-placeholder-attlist, text } | element text:conditional-text { text-conditional-text-attlist, text } | element text:hidden-text { text-hidden-text-attlist, text } | element text:reference-ref | text:bookmark-ref { text-common-ref-content & text-bookmark-ref-content } | element text:note-ref { text-common-ref-content & text-note-ref-content } | element text:sequence-ref { text-common-ref-content & text-sequence-ref-content } | element text:script { ((attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }) | text) & attribute script:language { \string }? } | element text:execute-macro { attribute text:name { \string }?, office-event-listeners?, text } | element text:hidden-paragraph { text-hidden-paragraph-attlist, text } | element text:dde-connection { attribute text:connection-name { \string }, text } | element text:measure { attribute text:kind { "value" | "unit" | "gap" }, text } | element text:table-formula { (common-field-formula-attlist & common-field-display-value-formula-attlist & common-field-data-style-name-attlist), text } | element text:meta-field { text-meta-field-attlist, paragraph-content-or-hyperlink* } | element text:toc-mark-start { text-toc-mark-start-attrs } | element text:toc-mark-end { text-id } | element text:toc-mark { attribute text:string-value { \string }, text-outline-level } | element text:user-index-mark-start { text-id, text-outline-level, text-index-name } | element text:user-index-mark-end { text-id } | element text:user-index-mark { attribute text:string-value { \string }, text-outline-level, text-index-name } | element text:alphabetical-index-mark-start { text-id, text-alphabetical-index-mark-attrs } | element text:alphabetical-index-mark-end { text-id } | element text:alphabetical-index-mark { attribute text:string-value { \string }, text-alphabetical-index-mark-attrs } | element text:bibliography-mark { attribute text:bibliography-type { text-bibliography-types }, attribute text:identifier | text:address | text:annote | text:author | text:booktitle | text:chapter | text:edition | text:editor | text:howpublished | text:institution | text:journal | text:month | text:note | text:number | text:organizations | text:pages | text:publisher | text:school | text:series | text:title | text:report-type | text:volume | text:year | text:url | text:custom1 | text:custom2 | text:custom3 | text:custom4 | text:custom5 | text:isbn | text:issn { \string }*, text } | element presentation:header { empty } | element presentation:footer { empty } | element presentation:date-time { empty } text-tab-attr = attribute text:tab-ref { nonNegativeInteger }? text-a = element text:a { text-a-attlist, office-event-listeners?, paragraph-content* } text-a-attlist = attribute office:name { \string }? & attribute office:title { \string }? & attribute xlink:type { "simple" } & attribute xlink:href { anyIRI } & attribute xlink:actuate { "onRequest" }? & attribute office:target-frame-name { targetFrameName }? & attribute xlink:show { "new" | "replace" }? & attribute text:style-name { styleNameRef }? & attribute text:visited-style-name { styleNameRef }? text-meta-attlist = common-in-content-meta-attlist? & xml-id? text-bookmark = element text:bookmark { text-bookmark-attlist, empty } text-bookmark-start = element text:bookmark-start { text-bookmark-start-attlist, empty } text-bookmark-end = element text:bookmark-end { text-bookmark-end-attlist, empty } text-bookmark-attlist = attribute text:name { \string } & xml-id? text-bookmark-start-attlist = attribute text:name { \string } & xml-id? & common-in-content-meta-attlist? text-bookmark-end-attlist = attribute text:name { \string } text-note-class = attribute text:note-class { "footnote" | "endnote" } text-date-attlist = (common-field-fixed-attlist & common-field-data-style-name-attlist) & attribute text:date-value { dateOrDateTime }? & attribute text:date-adjust { duration }? text-time-attlist = (common-field-fixed-attlist & common-field-data-style-name-attlist) & attribute text:time-value { timeOrDateTime }? & attribute text:time-adjust { duration }? text-page-number-attlist = (common-field-num-format-attlist & common-field-fixed-attlist) & attribute text:page-adjust { integer }? & attribute text:select-page { "previous" | "current" | "next" }? text-page-continuation-attlist = attribute text:select-page { "previous" | "next" } & attribute text:string-value { \string }? text-chapter-attlist = attribute text:display { "name" | "number" | "number-and-name" | "plain-number-and-name" | "plain-number" } & attribute text:outline-level { nonNegativeInteger } text-file-name-attlist = attribute text:display { "full" | "path" | "name" | "name-and-extension" }? & common-field-fixed-attlist text-template-name-attlist = attribute text:display { "full" | "path" | "name" | "name-and-extension" | "area" | "title" }? text-variable-decl = element text:variable-decl { common-field-name-attlist, common-value-type-attlist } text-user-field-decl = element text:user-field-decl { common-field-name-attlist, common-field-formula-attlist?, common-value-and-type-attlist } text-sequence-decl = element text:sequence-decl { text-sequence-decl-attlist } text-sequence-decl-attlist = common-field-name-attlist & attribute text:display-outline-level { nonNegativeInteger } & attribute text:separation-character { character }? text-sequence-ref-name = attribute text:ref-name { \string }? common-field-database-table = common-field-database-table-attlist, common-field-database-name common-field-database-name = attribute text:database-name { \string }? | form-connection-resource common-field-database-table-attlist = attribute text:table-name { \string } & attribute text:table-type { "table" | "query" | "command" }? text-database-display-attlist = common-field-database-table & common-field-data-style-name-attlist & attribute text:column-name { \string } text-database-next-attlist = common-field-database-table & attribute text:condition { \string }? text-database-row-select-attlist = common-field-database-table & attribute text:condition { \string }? & attribute text:row-number { nonNegativeInteger }? text-set-page-variable-attlist = attribute text:active { boolean }? & attribute text:page-adjust { integer }? text-get-page-variable-attlist = common-field-num-format-attlist text-placeholder-attlist = attribute text:placeholder-type { "text" | "table" | "text-box" | "image" | "object" } & common-field-description-attlist text-conditional-text-attlist = attribute text:condition { \string } & attribute text:string-value-if-true { \string } & attribute text:string-value-if-false { \string } & attribute text:current-value { boolean }? text-hidden-text-attlist = attribute text:condition { \string } & attribute text:string-value { \string } & attribute text:is-hidden { boolean }? text-common-ref-content = text & attribute text:ref-name { \string }? text-bookmark-ref-content = attribute text:reference-format { common-ref-format-values | "number-no-superior" | "number-all-superior" | "number" }? text-note-ref-content = attribute text:reference-format { common-ref-format-values }? & text-note-class text-sequence-ref-content = attribute text:reference-format { common-ref-format-values | "category-and-value" | "caption" | "value" }? common-ref-format-values = "page" | "chapter" | "direction" | "text" text-hidden-paragraph-attlist = attribute text:condition { \string } & attribute text:is-hidden { boolean }? text-meta-field-attlist = xml-id & common-field-data-style-name-attlist common-value-type-attlist = attribute office:value-type { valueType } common-value-and-type-attlist = (attribute office:value-type { "float" }, attribute office:value { double }) | (attribute office:value-type { "percentage" }, attribute office:value { double }) | (attribute office:value-type { "currency" }, attribute office:value { double }, attribute office:currency { \string }?) | (attribute office:value-type { "date" }, attribute office:date-value { dateOrDateTime }) | (attribute office:value-type { "time" }, attribute office:time-value { duration }) | (attribute office:value-type { "boolean" }, attribute office:boolean-value { boolean }) | (attribute office:value-type { "string" }, attribute office:string-value { \string }?) common-field-fixed-attlist = attribute text:fixed { boolean }? common-field-name-attlist = attribute text:name { variableName } common-field-description-attlist = attribute text:description { \string }? common-field-display-value-none-attlist = attribute text:display { "value" | "none" }? common-field-display-value-formula-none-attlist = attribute text:display { "value" | "formula" | "none" }? common-field-display-value-formula-attlist = attribute text:display { "value" | "formula" }? common-field-formula-attlist = attribute text:formula { \string }? common-field-data-style-name-attlist = attribute style:data-style-name { styleNameRef }? common-field-num-format-attlist = common-num-format-attlist? text-toc-mark-start-attrs = text-id, text-outline-level text-outline-level = attribute text:outline-level { positiveInteger }? text-id = attribute text:id { \string } text-index-name = attribute text:index-name { \string } text-alphabetical-index-mark-attrs = attribute text:key1 { \string }? & attribute text:key2 { \string }? & attribute text:string-value-phonetic { \string }? & attribute text:key1-phonetic { \string }? & attribute text:key2-phonetic { \string }? & attribute text:main-entry { boolean }? text-bibliography-types = "article" | "book" | "booklet" | "conference" | "custom1" | "custom2" | "custom3" | "custom4" | "custom5" | "email" | "inbook" | "incollection" | "inproceedings" | "journal" | "manual" | "mastersthesis" | "misc" | "phdthesis" | "proceedings" | "techreport" | "unpublished" | "www" text-index-body = element text:index-body { index-content-main* } index-content-main = text-content | text-index-title text-index-title = element text:index-title { common-section-attlist, index-content-main* } text-table-of-content = element text:table-of-content { common-section-attlist, text-table-of-content-source, text-index-body } text-table-of-content-source = element text:table-of-content-source { text-table-of-content-source-attlist, text-index-title-template?, text-table-of-content-entry-template*, text-index-source-styles* } text-table-of-content-source-attlist = attribute text:outline-level { positiveInteger }? & attribute text:use-outline-level { boolean }? & attribute text:use-index-marks { boolean }? & attribute text:use-index-source-styles { boolean }? & attribute text:index-scope { "document" | "chapter" }? & attribute text:relative-tab-stop-position { boolean }? text-table-of-content-entry-template = element text:table-of-content-entry-template { text-table-of-content-entry-template-attlist, text-table-of-content-children* } text-table-of-content-children = text-index-entry-chapter | text-index-entry-page-number | text-index-entry-text | text-index-entry-span | text-index-entry-tab-stop | text-index-entry-link-start | text-index-entry-link-end text-table-of-content-entry-template-attlist = attribute text:outline-level { positiveInteger } & attribute text:style-name { styleNameRef } text-illustration-index = element text:illustration-index { common-section-attlist, text-illustration-index-source, text-index-body } text-illustration-index-source = element text:illustration-index-source { text-illustration-index-source-attrs, text-index-title-template?, text-illustration-index-entry-template? } text-illustration-index-source-attrs = text-index-scope-attr & text-relative-tab-stop-position-attr & attribute text:use-caption { boolean }? & attribute text:caption-sequence-name { \string }? & attribute text:caption-sequence-format { "text" | "category-and-value" | "caption" }? text-index-scope-attr = attribute text:index-scope { "document" | "chapter" }? text-relative-tab-stop-position-attr = attribute text:relative-tab-stop-position { boolean }? text-illustration-index-entry-template = element text:illustration-index-entry-template { text-illustration-index-entry-content } text-illustration-index-entry-content = text-illustration-index-entry-template-attrs, (text-index-entry-chapter | text-index-entry-page-number | text-index-entry-text | text-index-entry-span | text-index-entry-tab-stop)* text-illustration-index-entry-template-attrs = attribute text:style-name { styleNameRef } text-table-index = element text:table-index { common-section-attlist, text-table-index-source, text-index-body } text-table-index-source = element text:table-index-source { text-illustration-index-source-attrs, text-index-title-template?, text-table-index-entry-template? } text-table-index-entry-template = element text:table-index-entry-template { text-illustration-index-entry-content } text-object-index = element text:object-index { common-section-attlist, text-object-index-source, text-index-body } text-object-index-source = element text:object-index-source { text-object-index-source-attrs, text-index-title-template?, text-object-index-entry-template? } text-object-index-source-attrs = text-index-scope-attr & text-relative-tab-stop-position-attr & attribute text:use-spreadsheet-objects { boolean }? & attribute text:use-math-objects { boolean }? & attribute text:use-draw-objects { boolean }? & attribute text:use-chart-objects { boolean }? & attribute text:use-other-objects { boolean }? text-object-index-entry-template = element text:object-index-entry-template { text-illustration-index-entry-content } text-user-index = element text:user-index { common-section-attlist, text-user-index-source, text-index-body } text-user-index-source = element text:user-index-source { text-user-index-source-attr, text-index-title-template?, text-user-index-entry-template*, text-index-source-styles* } text-user-index-source-attr = text-index-scope-attr & text-relative-tab-stop-position-attr & attribute text:use-index-marks { boolean }? & attribute text:use-index-source-styles { boolean }? & attribute text:use-graphics { boolean }? & attribute text:use-tables { boolean }? & attribute text:use-floating-frames { boolean }? & attribute text:use-objects { boolean }? & attribute text:copy-outline-levels { boolean }? & attribute text:index-name { \string } text-user-index-entry-template = element text:user-index-entry-template { text-user-index-entry-template-attrs, (text-index-entry-chapter | text-index-entry-page-number | text-index-entry-text | text-index-entry-span | text-index-entry-tab-stop)* } text-user-index-entry-template-attrs = attribute text:outline-level { positiveInteger } & attribute text:style-name { styleNameRef } text-alphabetical-index = element text:alphabetical-index { common-section-attlist, text-alphabetical-index-source, text-index-body } text-alphabetical-index-source = element text:alphabetical-index-source { text-alphabetical-index-source-attrs, text-index-title-template?, text-alphabetical-index-entry-template* } text-alphabetical-index-source-attrs = text-index-scope-attr & text-relative-tab-stop-position-attr & attribute text:ignore-case { boolean }? & attribute text:main-entry-style-name { styleNameRef }? & attribute text:alphabetical-separators { boolean }? & attribute text:combine-entries { boolean }? & attribute text:combine-entries-with-dash { boolean }? & attribute text:combine-entries-with-pp { boolean }? & attribute text:use-keys-as-entries { boolean }? & attribute text:capitalize-entries { boolean }? & attribute text:comma-separated { boolean }? & attribute fo:language { languageCode }? & attribute fo:country { countryCode }? & attribute fo:script { scriptCode }? & attribute style:rfc-language-tag { language }? & attribute text:sort-algorithm { \string }? text-alphabetical-index-auto-mark-file = element text:alphabetical-index-auto-mark-file { attribute xlink:type { "simple" }, attribute xlink:href { anyIRI } } text-alphabetical-index-entry-template = element text:alphabetical-index-entry-template { text-alphabetical-index-entry-template-attrs, (text-index-entry-chapter | text-index-entry-page-number | text-index-entry-text | text-index-entry-span | text-index-entry-tab-stop)* } text-alphabetical-index-entry-template-attrs = attribute text:outline-level { "1" | "2" | "3" | "separator" } & attribute text:style-name { styleNameRef } text-bibliography = element text:bibliography { common-section-attlist, text-bibliography-source, text-index-body } text-bibliography-source = element text:bibliography-source { text-index-title-template?, text-bibliography-entry-template* } text-bibliography-entry-template = element text:bibliography-entry-template { text-bibliography-entry-template-attrs, (text-index-entry-span | text-index-entry-tab-stop | text-index-entry-bibliography)* } text-bibliography-entry-template-attrs = attribute text:bibliography-type { text-bibliography-types } & attribute text:style-name { styleNameRef } text-index-source-styles = element text:index-source-styles { attribute text:outline-level { positiveInteger }, text-index-source-style* } text-index-source-style = element text:index-source-style { attribute text:style-name { styleName }, empty } text-index-title-template = element text:index-title-template { attribute text:style-name { styleNameRef }?, text } text-index-entry-chapter = element text:index-entry-chapter { attribute text:style-name { styleNameRef }?, text-index-entry-chapter-attrs } text-index-entry-chapter-attrs = attribute text:display { "name" | "number" | "number-and-name" | "plain-number" | "plain-number-and-name" }? & attribute text:outline-level { positiveInteger }? text-index-entry-text = element text:index-entry-text { attribute text:style-name { styleNameRef }? } text-index-entry-page-number = element text:index-entry-page-number { attribute text:style-name { styleNameRef }? } text-index-entry-span = element text:index-entry-span { attribute text:style-name { styleNameRef }?, text } text-index-entry-bibliography = element text:index-entry-bibliography { text-index-entry-bibliography-attrs } text-index-entry-bibliography-attrs = attribute text:style-name { styleNameRef }? & attribute text:bibliography-data-field { "address" | "annote" | "author" | "bibliography-type" | "booktitle" | "chapter" | "custom1" | "custom2" | "custom3" | "custom4" | "custom5" | "edition" | "editor" | "howpublished" | "identifier" | "institution" | "isbn" | "issn" | "journal" | "month" | "note" | "number" | "organizations" | "pages" | "publisher" | "report-type" | "school" | "series" | "title" | "url" | "volume" | "year" } text-index-entry-tab-stop = element text:index-entry-tab-stop { attribute text:style-name { styleNameRef }?, text-index-entry-tab-stop-attrs } text-index-entry-tab-stop-attrs = attribute style:leader-char { character }? & (attribute style:type { "right" } | (attribute style:type { "left" }, attribute style:position { length })) text-index-entry-link-start = element text:index-entry-link-start { attribute text:style-name { styleNameRef }? } text-index-entry-link-end = element text:index-entry-link-end { attribute text:style-name { styleNameRef }? } table-table = element table:table { table-table-attlist, table-title?, table-desc?, table-table-source?, office-dde-source?, table-scenario?, office-forms?, table-shapes?, table-columns-and-groups, table-rows-and-groups, table-named-expressions? } table-columns-and-groups = (table-table-column-group | table-columns-no-group)+ table-columns-no-group = (table-columns, (table-table-header-columns, table-columns?)?) | (table-table-header-columns, table-columns?) table-columns = table-table-columns | table-table-column+ table-rows-and-groups = (table-table-row-group | table-rows-no-group)+ table-rows-no-group = (table-rows, (table-table-header-rows, table-rows?)?) | (table-table-header-rows, table-rows?) table-rows = table-table-rows | (text-soft-page-break?, table-table-row)+ table-table-attlist = attribute table:name { \string }? & attribute table:style-name { styleNameRef }? & attribute table:template-name { \string }? & attribute table:use-first-row-styles { boolean }? & attribute table:use-last-row-styles { boolean }? & attribute table:use-first-column-styles { boolean }? & attribute table:use-last-column-styles { boolean }? & attribute table:use-banding-rows-styles { boolean }? & attribute table:use-banding-columns-styles { boolean }? & attribute table:protected { boolean }? & attribute table:protection-key { \string }? & attribute table:protection-key-digest-algorithm { anyIRI }? & attribute table:print { boolean }? & attribute table:print-ranges { cellRangeAddressList }? & xml-id? & attribute table:is-sub-table { boolean }? table-title = element table:title { text } table-desc = element table:desc { text } table-table-row = element table:table-row { table-table-row-attlist, (table-table-cell | table-covered-table-cell)+ } table-table-row-attlist = attribute table:number-rows-repeated { positiveInteger }? & attribute table:style-name { styleNameRef }? & attribute table:default-cell-style-name { styleNameRef }? & attribute table:visibility { table-visibility-value }? & xml-id? table-visibility-value = "visible" | "collapse" | "filter" table-table-cell = element table:table-cell { table-table-cell-attlist, table-table-cell-attlist-extra, table-table-cell-content } table-covered-table-cell = element table:covered-table-cell { table-table-cell-attlist, table-table-cell-content } table-table-cell-content = table-cell-range-source?, office-annotation?, table-detective?, text-content* table-table-cell-attlist = attribute table:number-columns-repeated { positiveInteger }? & attribute table:style-name { styleNameRef }? & attribute table:content-validation-name { \string }? & attribute table:formula { \string }? & common-value-and-type-attlist? & attribute table:protect { boolean }? & attribute table:protected { boolean }? & xml-id? & common-in-content-meta-attlist? table-table-cell-attlist-extra = attribute table:number-columns-spanned { positiveInteger }? & attribute table:number-rows-spanned { positiveInteger }? & attribute table:number-matrix-columns-spanned { positiveInteger }? & attribute table:number-matrix-rows-spanned { positiveInteger }? table-table-column = element table:table-column { table-table-column-attlist, empty } table-table-column-attlist = attribute table:number-columns-repeated { positiveInteger }? & attribute table:style-name { styleNameRef }? & attribute table:visibility { table-visibility-value }? & attribute table:default-cell-style-name { styleNameRef }? & xml-id? table-table-header-columns = element table:table-header-columns { table-table-column+ } table-table-columns = element table:table-columns { table-table-column+ } table-table-column-group = element table:table-column-group { table-table-column-group-attlist, table-columns-and-groups } table-table-column-group-attlist = attribute table:display { boolean }? table-table-header-rows = element table:table-header-rows { (text-soft-page-break?, table-table-row)+ } table-table-rows = element table:table-rows { (text-soft-page-break?, table-table-row)+ } table-table-row-group = element table:table-row-group { table-table-row-group-attlist, table-rows-and-groups } table-table-row-group-attlist = attribute table:display { boolean }? cellAddress = xsd:string { pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+" } cellRangeAddress = xsd:string { pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?" } | xsd:string { pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+" } | xsd:string { pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+" } cellRangeAddressList = xsd:string >> dc:description [ 'Value is a space separated list of "cellRangeAddress" patterns' ] table-table-source = element table:table-source { table-table-source-attlist, table-linked-source-attlist, empty } table-table-source-attlist = attribute table:mode { "copy-all" | "copy-results-only" }? & attribute table:table-name { \string }? table-linked-source-attlist = attribute xlink:type { "simple" } & attribute xlink:href { anyIRI } & attribute xlink:actuate { "onRequest" }? & attribute table:filter-name { \string }? & attribute table:filter-options { \string }? & attribute table:refresh-delay { duration }? table-scenario = element table:scenario { table-scenario-attlist, empty } table-scenario-attlist = attribute table:scenario-ranges { cellRangeAddressList } & attribute table:is-active { boolean } & attribute table:display-border { boolean }? & attribute table:border-color { color }? & attribute table:copy-back { boolean }? & attribute table:copy-styles { boolean }? & attribute table:copy-formulas { boolean }? & attribute table:comment { \string }? & attribute table:protected { boolean }? table-shapes = element table:shapes { shape+ } table-cell-range-source = element table:cell-range-source { table-table-cell-range-source-attlist, table-linked-source-attlist, empty } table-table-cell-range-source-attlist = attribute table:name { \string } & attribute table:last-column-spanned { positiveInteger } & attribute table:last-row-spanned { positiveInteger } table-detective = element table:detective { table-highlighted-range*, table-operation* } table-operation = element table:operation { table-operation-attlist, empty } table-operation-attlist = attribute table:name { "trace-dependents" | "remove-dependents" | "trace-precedents" | "remove-precedents" | "trace-errors" } & attribute table:index { nonNegativeInteger } table-highlighted-range = element table:highlighted-range { (table-highlighted-range-attlist | table-highlighted-range-attlist-invalid), empty } table-highlighted-range-attlist = attribute table:cell-range-address { cellRangeAddress }? & attribute table:direction { "from-another-table" | "to-another-table" | "from-same-table" } & attribute table:contains-error { boolean }? table-highlighted-range-attlist-invalid = attribute table:marked-invalid { boolean } office-spreadsheet-attlist = attribute table:structure-protected { boolean }?, attribute table:protection-key { \string }?, attribute table:protection-key-digest-algorithm { anyIRI }? table-calculation-settings = element table:calculation-settings { table-calculation-setting-attlist, table-null-date?, table-iteration? } table-calculation-setting-attlist = attribute table:case-sensitive { boolean }? & attribute table:precision-as-shown { boolean }? & attribute table:search-criteria-must-apply-to-whole-cell { boolean }? & attribute table:automatic-find-labels { boolean }? & attribute table:use-regular-expressions { boolean }? & attribute table:use-wildcards { boolean }? & attribute table:null-year { positiveInteger }? table-null-date = element table:null-date { attribute table:value-type { "date" }?, attribute table:date-value { date }?, empty } table-iteration = element table:iteration { attribute table:status { "enable" | "disable" }?, attribute table:steps { positiveInteger }?, attribute table:maximum-difference { double }?, empty } table-content-validations = element table:content-validations { table-content-validation+ } table-content-validation = element table:content-validation { table-validation-attlist, table-help-message?, (table-error-message | (table-error-macro, office-event-listeners))? } table-validation-attlist = attribute table:name { \string } & attribute table:condition { \string }? & attribute table:base-cell-address { cellAddress }? & attribute table:allow-empty-cell { boolean }? & attribute table:display-list { "none" | "unsorted" | "sort-ascending" }? table-help-message = element table:help-message { attribute table:title { \string }?, attribute table:display { boolean }?, text-p* } table-error-message = element table:error-message { attribute table:title { \string }?, attribute table:display { boolean }?, attribute table:message-type { "stop" | "warning" | "information" }?, text-p* } table-error-macro = element table:error-macro { attribute table:execute { boolean }? } table-label-ranges = element table:label-ranges { table-label-range* } table-label-range = element table:label-range { table-label-range-attlist, empty } table-label-range-attlist = attribute table:label-cell-range-address { cellRangeAddress } & attribute table:data-cell-range-address { cellRangeAddress } & attribute table:orientation { "column" | "row" } table-named-expressions = element table:named-expressions { (table-named-range | table-named-expression)* } table-named-range = element table:named-range { table-named-range-attlist, empty } table-named-range-attlist = attribute table:name { \string }, attribute table:cell-range-address { cellRangeAddress }, attribute table:base-cell-address { cellAddress }?, attribute table:range-usable-as { "none" | list { ("print-range" | "filter" | "repeat-row" | "repeat-column")+ } }? table-named-expression = element table:named-expression { table-named-expression-attlist, empty } table-named-expression-attlist = attribute table:name { \string }, attribute table:expression { \string }, attribute table:base-cell-address { cellAddress }? table-database-ranges = element table:database-ranges { table-database-range* } table-database-range = element table:database-range { table-database-range-attlist, (table-database-source-sql | table-database-source-table | table-database-source-query)?, table-filter?, table-sort?, table-subtotal-rules? } table-database-range-attlist = attribute table:name { \string }? & attribute table:is-selection { boolean }? & attribute table:on-update-keep-styles { boolean }? & attribute table:on-update-keep-size { boolean }? & attribute table:has-persistent-data { boolean }? & attribute table:orientation { "column" | "row" }? & attribute table:contains-header { boolean }? & attribute table:display-filter-buttons { boolean }? & attribute table:target-range-address { cellRangeAddress } & attribute table:refresh-delay { boolean }? table-database-source-sql = element table:database-source-sql { table-database-source-sql-attlist, empty } table-database-source-sql-attlist = attribute table:database-name { \string } & attribute table:sql-statement { \string } & attribute table:parse-sql-statement { boolean }? table-database-source-query = element table:database-source-table { table-database-source-table-attlist, empty } table-database-source-table-attlist = attribute table:database-name { \string } & attribute table:database-table-name { \string } table-database-source-table = element table:database-source-query { table-database-source-query-attlist, empty } table-database-source-query-attlist = attribute table:database-name { \string } & attribute table:query-name { \string } table-sort = element table:sort { table-sort-attlist, table-sort-by+ } table-sort-attlist = attribute table:bind-styles-to-content { boolean }? & attribute table:target-range-address { cellRangeAddress }? & attribute table:case-sensitive { boolean }? & attribute table:language { languageCode }? & attribute table:country { countryCode }? & attribute table:script { scriptCode }? & attribute table:rfc-language-tag { language }? & attribute table:algorithm { \string }? & attribute table:embedded-number-behavior { "alpha-numeric" | "integer" | "double" }? table-sort-by = element table:sort-by { table-sort-by-attlist, empty } table-sort-by-attlist = attribute table:field-number { nonNegativeInteger } & attribute table:data-type { "text" | "number" | "automatic" | \string }? & attribute table:order { "ascending" | "descending" }? table-subtotal-rules = element table:subtotal-rules { table-subtotal-rules-attlist, table-sort-groups?, table-subtotal-rule* } table-subtotal-rules-attlist = attribute table:bind-styles-to-content { boolean }? & attribute table:case-sensitive { boolean }? & attribute table:page-breaks-on-group-change { boolean }? table-sort-groups = element table:sort-groups { table-sort-groups-attlist, empty } table-sort-groups-attlist = attribute table:data-type { "text" | "number" | "automatic" | \string }? & attribute table:order { "ascending" | "descending" }? table-subtotal-rule = element table:subtotal-rule { table-subtotal-rule-attlist, table-subtotal-field* } table-subtotal-rule-attlist = attribute table:group-by-field-number { nonNegativeInteger } table-subtotal-field = element table:subtotal-field { table-subtotal-field-attlist, empty } table-subtotal-field-attlist = attribute table:field-number { nonNegativeInteger } & attribute table:function { "average" | "count" | "countnums" | "max" | "min" | "product" | "stdev" | "stdevp" | "sum" | "var" | "varp" | \string } table-filter = element table:filter { table-filter-attlist, (table-filter-condition | table-filter-and | table-filter-or) } table-filter-attlist = attribute table:target-range-address { cellRangeAddress }? & attribute table:condition-source { "self" | "cell-range" }? & attribute table:condition-source-range-address { cellRangeAddress }? & attribute table:display-duplicates { boolean }? table-filter-and = element table:filter-and { (table-filter-or | table-filter-condition)+ } table-filter-or = element table:filter-or { (table-filter-and | table-filter-condition)+ } table-filter-condition = element table:filter-condition { table-filter-condition-attlist, table-filter-set-item* } table-filter-condition-attlist = attribute table:field-number { nonNegativeInteger } & attribute table:value { \string | double } & attribute table:operator { \string } & attribute table:case-sensitive { \string }? & attribute table:data-type { "text" | "number" }? table-filter-set-item = element table:filter-set-item { attribute table:value { \string }, empty } table-data-pilot-tables = element table:data-pilot-tables { table-data-pilot-table* } table-data-pilot-table = element table:data-pilot-table { table-data-pilot-table-attlist, (table-database-source-sql | table-database-source-table | table-database-source-query | table-source-service | table-source-cell-range)?, table-data-pilot-field+ } table-data-pilot-table-attlist = attribute table:name { \string } & attribute table:application-data { \string }? & attribute table:grand-total { "none" | "row" | "column" | "both" }? & attribute table:ignore-empty-rows { boolean }? & attribute table:identify-categories { boolean }? & attribute table:target-range-address { cellRangeAddress } & attribute table:buttons { cellRangeAddressList }? & attribute table:show-filter-button { boolean }? & attribute table:drill-down-on-double-click { boolean }? table-source-cell-range = element table:source-cell-range { table-source-cell-range-attlist, table-filter? } table-source-cell-range-attlist = attribute table:cell-range-address { cellRangeAddress } table-source-service = element table:source-service { table-source-service-attlist, empty } table-source-service-attlist = attribute table:name { \string } & attribute table:source-name { \string } & attribute table:object-name { \string } & attribute table:user-name { \string }? & attribute table:password { \string }? table-data-pilot-field = element table:data-pilot-field { table-data-pilot-field-attlist, table-data-pilot-level?, table-data-pilot-field-reference?, table-data-pilot-groups? } table-data-pilot-field-attlist = attribute table:source-field-name { \string } & (attribute table:orientation { "row" | "column" | "data" | "hidden" } | (attribute table:orientation { "page" }, attribute table:selected-page { \string })) & attribute table:is-data-layout-field { \string }? & attribute table:function { "auto" | "average" | "count" | "countnums" | "max" | "min" | "product" | "stdev" | "stdevp" | "sum" | "var" | "varp" | \string }? & attribute table:used-hierarchy { integer }? table-data-pilot-level = element table:data-pilot-level { table-data-pilot-level-attlist, table-data-pilot-subtotals?, table-data-pilot-members?, table-data-pilot-display-info?, table-data-pilot-sort-info?, table-data-pilot-layout-info? } table-data-pilot-level-attlist = attribute table:show-empty { boolean }? table-data-pilot-subtotals = element table:data-pilot-subtotals { table-data-pilot-subtotal* } table-data-pilot-subtotal = element table:data-pilot-subtotal { table-data-pilot-subtotal-attlist, empty } table-data-pilot-subtotal-attlist = attribute table:function { "auto" | "average" | "count" | "countnums" | "max" | "min" | "product" | "stdev" | "stdevp" | "sum" | "var" | "varp" | \string } table-data-pilot-members = element table:data-pilot-members { table-data-pilot-member* } table-data-pilot-member = element table:data-pilot-member { table-data-pilot-member-attlist, empty } table-data-pilot-member-attlist = attribute table:name { \string } & attribute table:display { boolean }? & attribute table:show-details { boolean }? table-data-pilot-display-info = element table:data-pilot-display-info { table-data-pilot-display-info-attlist, empty } table-data-pilot-display-info-attlist = attribute table:enabled { boolean } & attribute table:data-field { \string } & attribute table:member-count { nonNegativeInteger } & attribute table:display-member-mode { "from-top" | "from-bottom" } table-data-pilot-sort-info = element table:data-pilot-sort-info { table-data-pilot-sort-info-attlist, empty } table-data-pilot-sort-info-attlist = ((attribute table:sort-mode { "data" }, attribute table:data-field { \string }) | attribute table:sort-mode { "none" | "manual" | "name" }) & attribute table:order { "ascending" | "descending" } table-data-pilot-layout-info = element table:data-pilot-layout-info { table-data-pilot-layout-info-attlist, empty } table-data-pilot-layout-info-attlist = attribute table:layout-mode { "tabular-layout" | "outline-subtotals-top" | "outline-subtotals-bottom" } & attribute table:add-empty-lines { boolean } table-data-pilot-field-reference = element table:data-pilot-field-reference { table-data-pilot-field-reference-attlist } table-data-pilot-field-reference-attlist = attribute table:field-name { \string } & ((attribute table:member-type { "named" }, attribute table:member-name { \string }) | attribute table:member-type { "previous" | "next" }) & attribute table:type { "none" | "member-difference" | "member-percentage" | "member-percentage-difference" | "running-total" | "row-percentage" | "column-percentage" | "total-percentage" | "index" } table-data-pilot-groups = element table:data-pilot-groups { table-data-pilot-groups-attlist, table-data-pilot-group+ } table-data-pilot-groups-attlist = attribute table:source-field-name { \string } & (attribute table:date-start { dateOrDateTime | "auto" } | attribute table:start { double | "auto" }) & (attribute table:date-end { dateOrDateTime | "auto" } | attribute table:end { double | "auto" }) & attribute table:step { double } & attribute table:grouped-by { "seconds" | "minutes" | "hours" | "days" | "months" | "quarters" | "years" } table-data-pilot-group = element table:data-pilot-group { table-data-pilot-group-attlist, table-data-pilot-group-member+ } table-data-pilot-group-attlist = attribute table:name { \string } table-data-pilot-group-member = element table:data-pilot-group-member { table-data-pilot-group-member-attlist } table-data-pilot-group-member-attlist = attribute table:name { \string } table-consolidation = element table:consolidation { table-consolidation-attlist, empty } table-consolidation-attlist = attribute table:function { "average" | "count" | "countnums" | "max" | "min" | "product" | "stdev" | "stdevp" | "sum" | "var" | "varp" | \string } & attribute table:source-cell-range-addresses { cellRangeAddressList } & attribute table:target-cell-address { cellAddress } & attribute table:use-labels { "none" | "row" | "column" | "both" }? & attribute table:link-to-source-data { boolean }? table-dde-links = element table:dde-links { table-dde-link+ } table-tracked-changes = element table:tracked-changes { table-tracked-changes-attlist, (table-cell-content-change | table-insertion | table-deletion | table-movement)* } table-tracked-changes-attlist = attribute table:track-changes { boolean }? table-insertion = element table:insertion { table-insertion-attlist, common-table-change-attlist, office-change-info, table-dependencies?, table-deletions? } table-insertion-attlist = attribute table:type { "row" | "column" | "table" } & attribute table:position { integer } & attribute table:count { positiveInteger }? & attribute table:table { integer }? table-dependencies = element table:dependencies { table-dependency+ } table-dependency = element table:dependency { attribute table:id { \string }, empty } table-deletions = element table:deletions { (table-cell-content-deletion | table-change-deletion)+ } table-cell-content-deletion = element table:cell-content-deletion { attribute table:id { \string }?, table-cell-address?, table-change-track-table-cell? } table-change-deletion = element table:change-deletion { attribute table:id { \string }?, empty } table-deletion = element table:deletion { table-deletion-attlist, common-table-change-attlist, office-change-info, table-dependencies?, table-deletions?, table-cut-offs? } table-deletion-attlist = attribute table:type { "row" | "column" | "table" } & attribute table:position { integer } & attribute table:table { integer }? & attribute table:multi-deletion-spanned { integer }? table-cut-offs = element table:cut-offs { table-movement-cut-off+ | (table-insertion-cut-off, table-movement-cut-off*) } table-insertion-cut-off = element table:insertion-cut-off { table-insertion-cut-off-attlist, empty } table-insertion-cut-off-attlist = attribute table:id { \string } & attribute table:position { integer } table-movement-cut-off = element table:movement-cut-off { table-movement-cut-off-attlist, empty } table-movement-cut-off-attlist = attribute table:position { integer } | (attribute table:start-position { integer }, attribute table:end-position { integer }) table-movement = element table:movement { common-table-change-attlist, table-source-range-address, table-target-range-address, office-change-info, table-dependencies?, table-deletions? } table-source-range-address = element table:source-range-address { common-table-range-attlist, empty } table-target-range-address = element table:target-range-address { common-table-range-attlist, empty } common-table-range-attlist = common-table-cell-address-attlist | common-table-cell-range-address-attlist common-table-cell-address-attlist = attribute table:column { integer }, attribute table:row { integer }, attribute table:table { integer } common-table-cell-range-address-attlist = attribute table:start-column { integer }, attribute table:start-row { integer }, attribute table:start-table { integer }, attribute table:end-column { integer }, attribute table:end-row { integer }, attribute table:end-table { integer } table-change-track-table-cell = element table:change-track-table-cell { table-change-track-table-cell-attlist, text-p* } table-change-track-table-cell-attlist = attribute table:cell-address { cellAddress }? & attribute table:matrix-covered { boolean }? & attribute table:formula { \string }? & attribute table:number-matrix-columns-spanned { positiveInteger }? & attribute table:number-matrix-rows-spanned { positiveInteger }? & common-value-and-type-attlist? table-cell-content-change = element table:cell-content-change { common-table-change-attlist, table-cell-address, office-change-info, table-dependencies?, table-deletions?, table-previous } table-cell-address = element table:cell-address { common-table-cell-address-attlist, empty } table-previous = element table:previous { attribute table:id { \string }?, table-change-track-table-cell } common-table-change-attlist = attribute table:id { \string } & attribute table:acceptance-state { "accepted" | "rejected" | "pending" }? & attribute table:rejecting-change-id { \string }? style-handout-master = element style:handout-master { common-presentation-header-footer-attlist, style-handout-master-attlist, shape* } style-handout-master-attlist = attribute presentation:presentation-page-layout-name { styleNameRef }? & attribute style:page-layout-name { styleNameRef } & attribute draw:style-name { styleNameRef }? draw-layer-set = element draw:layer-set { draw-layer* } draw-layer = element draw:layer { draw-layer-attlist, svg-title?, svg-desc? } draw-layer-attlist = attribute draw:name { \string } & attribute draw:protected { boolean }? & attribute draw:display { "always" | "screen" | "printer" | "none" }? draw-page = element draw:page { common-presentation-header-footer-attlist, draw-page-attlist, svg-title?, svg-desc?, draw-layer-set?, office-forms?, shape*, (presentation-animations | animation-element)?, presentation-notes? } draw-page-attlist = attribute draw:name { \string }? & attribute draw:style-name { styleNameRef }? & attribute draw:master-page-name { styleNameRef } & attribute presentation:presentation-page-layout-name { styleNameRef }? & (xml-id, attribute draw:id { NCName }?)? & attribute draw:nav-order { IDREFS }? common-presentation-header-footer-attlist = attribute presentation:use-header-name { \string }? & attribute presentation:use-footer-name { \string }? & attribute presentation:use-date-time-name { \string }? shape = shape-instance | draw-a shape-instance = draw-rect | draw-line | draw-polyline | draw-polygon | draw-regular-polygon | draw-path | draw-circle | draw-ellipse | draw-g | draw-page-thumbnail | draw-frame | draw-measure | draw-caption | draw-connector | draw-control | dr3d-scene | draw-custom-shape draw-rect = element draw:rect { draw-rect-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-rect-attlist = attribute draw:corner-radius { nonNegativeLength }? | (attribute svg:rx { nonNegativeLength }?, attribute svg:ry { nonNegativeLength }?) draw-line = element draw:line { draw-line-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-line-attlist = attribute svg:x1 { coordinate } & attribute svg:y1 { coordinate } & attribute svg:x2 { coordinate } & attribute svg:y2 { coordinate } draw-polyline = element draw:polyline { common-draw-points-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-viewbox-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } common-draw-points-attlist = attribute draw:points { points } draw-polygon = element draw:polygon { common-draw-points-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-viewbox-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-regular-polygon = element draw:regular-polygon { draw-regular-polygon-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-regular-polygon-attlist = (attribute draw:concave { "false" } | (attribute draw:concave { "true" }, draw-regular-polygon-sharpness-attlist)) & attribute draw:corners { positiveInteger } draw-regular-polygon-sharpness-attlist = attribute draw:sharpness { percent } draw-path = element draw:path { common-draw-path-data-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-viewbox-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } common-draw-path-data-attlist = attribute svg:d { pathData } draw-circle = element draw:circle { ((draw-circle-attlist, common-draw-circle-ellipse-pos-attlist) | (common-draw-position-attlist, common-draw-size-attlist)), common-draw-circle-ellipse-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } common-draw-circle-ellipse-pos-attlist = attribute svg:cx { coordinate }, attribute svg:cy { coordinate } draw-circle-attlist = attribute svg:r { length } common-draw-circle-ellipse-attlist = attribute draw:kind { "full" | "section" | "cut" | "arc" }? & attribute draw:start-angle { angle }? & attribute draw:end-angle { angle }? draw-ellipse = element draw:ellipse { ((draw-ellipse-attlist, common-draw-circle-ellipse-pos-attlist) | (common-draw-position-attlist, common-draw-size-attlist)), common-draw-circle-ellipse-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-ellipse-attlist = attribute svg:rx { length }, attribute svg:ry { length } draw-connector = element draw:connector { draw-connector-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, common-draw-viewbox-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-connector-attlist = attribute draw:type { "standard" | "lines" | "line" | "curve" }? & (attribute svg:x1 { coordinate }, attribute svg:y1 { coordinate })? & attribute draw:start-shape { IDREF }? & attribute draw:start-glue-point { nonNegativeInteger }? & (attribute svg:x2 { coordinate }, attribute svg:y2 { coordinate })? & attribute draw:end-shape { IDREF }? & attribute draw:end-glue-point { nonNegativeInteger }? & attribute draw:line-skew { list { length, (length, length?)? } }? & attribute svg:d { pathData }? draw-caption = element draw:caption { draw-caption-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-caption-attlist = (attribute draw:caption-point-x { coordinate }, attribute draw:caption-point-y { coordinate })? & attribute draw:corner-radius { nonNegativeLength }? draw-measure = element draw:measure { draw-measure-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text } draw-measure-attlist = attribute svg:x1 { coordinate } & attribute svg:y1 { coordinate } & attribute svg:x2 { coordinate } & attribute svg:y2 { coordinate } draw-control = element draw:control { draw-control-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, draw-glue-point* } draw-control-attlist = attribute draw:control { IDREF } draw-page-thumbnail = element draw:page-thumbnail { draw-page-thumbnail-attlist, common-draw-position-attlist, common-draw-size-attlist, presentation-shape-attlist, common-draw-shape-with-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc? } draw-page-thumbnail-attlist = attribute draw:page-number { positiveInteger }? draw-g = element draw:g { draw-g-attlist, common-draw-z-index-attlist, common-draw-name-attlist, common-draw-id-attlist, common-draw-style-name-attlist, common-text-spreadsheet-shape-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, shape* } draw-g-attlist = attribute svg:y { coordinate }? common-draw-name-attlist = attribute draw:name { \string }? common-draw-caption-id-attlist = attribute draw:caption-id { IDREF }? common-draw-position-attlist = attribute svg:x { coordinate }?, attribute svg:y { coordinate }? common-draw-size-attlist = attribute svg:width { length }?, attribute svg:height { length }? common-draw-transform-attlist = attribute draw:transform { \string }? common-draw-viewbox-attlist = attribute svg:viewBox { list { integer, integer, integer, integer } } common-draw-style-name-attlist = (attribute draw:style-name { styleNameRef }?, attribute draw:class-names { styleNameRefs }?) | (attribute presentation:style-name { styleNameRef }?, attribute presentation:class-names { styleNameRefs }?) common-draw-text-style-name-attlist = attribute draw:text-style-name { styleNameRef }? common-draw-layer-name-attlist = attribute draw:layer { \string }? common-draw-id-attlist = (xml-id, attribute draw:id { NCName }?)? common-draw-z-index-attlist = attribute draw:z-index { nonNegativeInteger }? common-text-spreadsheet-shape-attlist = attribute table:end-cell-address { cellAddress }? & attribute table:end-x { coordinate }? & attribute table:end-y { coordinate }? & attribute table:table-background { boolean }? & common-text-anchor-attlist common-text-anchor-attlist = attribute text:anchor-type { "page" | "frame" | "paragraph" | "char" | "as-char" }? & attribute text:anchor-page-number { positiveInteger }? draw-text = (text-p | text-list)* common-draw-shape-with-styles-attlist = common-draw-z-index-attlist, common-draw-id-attlist, common-draw-layer-name-attlist, common-draw-style-name-attlist, common-draw-transform-attlist, common-draw-name-attlist, common-text-spreadsheet-shape-attlist common-draw-shape-with-text-and-styles-attlist = common-draw-shape-with-styles-attlist, common-draw-text-style-name-attlist draw-glue-point = element draw:glue-point { draw-glue-point-attlist, empty } draw-glue-point-attlist = attribute draw:id { nonNegativeInteger } & attribute svg:x { distance | percent } & attribute svg:y { distance | percent } & attribute draw:align { "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom-right" }? & attribute draw:escape-direction { "auto" | "left" | "right" | "up" | "down" | "horizontal" | "vertical" } svg-title = element svg:title { text } svg-desc = element svg:desc { text } draw-frame = element draw:frame { common-draw-shape-with-text-and-styles-attlist, common-draw-position-attlist, common-draw-rel-size-attlist, common-draw-caption-id-attlist, presentation-shape-attlist, draw-frame-attlist, (draw-text-box | draw-image | draw-object | draw-object-ole | draw-applet | draw-floating-frame | draw-plugin | table-table)*, office-event-listeners?, draw-glue-point*, draw-image-map?, svg-title?, svg-desc?, (draw-contour-polygon | draw-contour-path)? } common-draw-rel-size-attlist = common-draw-size-attlist, attribute style:rel-width { percent | "scale" | "scale-min" }?, attribute style:rel-height { percent | "scale" | "scale-min" }? draw-frame-attlist = attribute draw:copy-of { \string }? draw-text-box = element draw:text-box { draw-text-box-attlist, text-content* } draw-text-box-attlist = attribute draw:chain-next-name { \string }? & attribute draw:corner-radius { nonNegativeLength }? & attribute fo:min-height { length | percent }? & attribute fo:min-width { length | percent }? & attribute fo:max-height { length | percent }? & attribute fo:max-width { length | percent }? & (xml-id, attribute text:id { NCName }?)? draw-image = element draw:image { draw-image-attlist, (common-draw-data-attlist | office-binary-data), draw-text } common-draw-data-attlist = attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:show { "embed" }?, attribute xlink:actuate { "onLoad" }? office-binary-data = element office:binary-data { base64Binary } draw-image-attlist = attribute draw:filter-name { \string }? & xml-id? draw-object = element draw:object { draw-object-attlist, (common-draw-data-attlist | office-document | math-math) } draw-object-ole = element draw:object-ole { draw-object-ole-attlist, (common-draw-data-attlist | office-binary-data) } draw-object-attlist = attribute draw:notify-on-update-of-ranges { cellRangeAddressList | \string }? & xml-id? draw-object-ole-attlist = attribute draw:class-id { \string }? & xml-id? draw-applet = element draw:applet { draw-applet-attlist, common-draw-data-attlist?, draw-param* } draw-applet-attlist = attribute draw:code { \string }? & attribute draw:object { \string }? & attribute draw:archive { \string }? & attribute draw:may-script { boolean }? & xml-id? draw-plugin = element draw:plugin { draw-plugin-attlist, common-draw-data-attlist, draw-param* } draw-plugin-attlist = attribute draw:mime-type { \string }? & xml-id? draw-param = element draw:param { draw-param-attlist, empty } draw-param-attlist = attribute draw:name { \string }? & attribute draw:value { \string }? draw-floating-frame = element draw:floating-frame { draw-floating-frame-attlist, common-draw-data-attlist } draw-floating-frame-attlist = attribute draw:frame-name { \string }? & xml-id? draw-contour-polygon = element draw:contour-polygon { common-contour-attlist, common-draw-size-attlist, common-draw-viewbox-attlist, common-draw-points-attlist, empty } draw-contour-path = element draw:contour-path { common-contour-attlist, common-draw-size-attlist, common-draw-viewbox-attlist, common-draw-path-data-attlist, empty } common-contour-attlist = attribute draw:recreate-on-edit { boolean } draw-a = element draw:a { draw-a-attlist, shape-instance } draw-a-attlist = attribute xlink:type { "simple" } & attribute xlink:href { anyIRI } & attribute xlink:actuate { "onRequest" }? & attribute office:target-frame-name { targetFrameName }? & attribute xlink:show { "new" | "replace" }? & attribute office:name { \string }? & attribute office:title { \string }? & attribute office:server-map { boolean }? & xml-id? draw-image-map = element draw:image-map { (draw-area-rectangle | draw-area-circle | draw-area-polygon)* } draw-area-rectangle = element draw:area-rectangle { common-draw-area-attlist, attribute svg:x { coordinate }, attribute svg:y { coordinate }, attribute svg:width { length }, attribute svg:height { length }, svg-title?, svg-desc?, office-event-listeners? } draw-area-circle = element draw:area-circle { common-draw-area-attlist, attribute svg:cx { coordinate }, attribute svg:cy { coordinate }, attribute svg:r { length }, svg-title?, svg-desc?, office-event-listeners? } draw-area-polygon = element draw:area-polygon { common-draw-area-attlist, attribute svg:x { coordinate }, attribute svg:y { coordinate }, attribute svg:width { length }, attribute svg:height { length }, common-draw-viewbox-attlist, common-draw-points-attlist, svg-title?, svg-desc?, office-event-listeners? } common-draw-area-attlist = (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute office:target-frame-name { targetFrameName }?, attribute xlink:show { "new" | "replace" }?)? & attribute office:name { \string }? & attribute draw:nohref { "nohref" }? dr3d-scene = element dr3d:scene { dr3d-scene-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-style-name-attlist, common-draw-z-index-attlist, common-draw-id-attlist, common-draw-layer-name-attlist, common-text-spreadsheet-shape-attlist, common-dr3d-transform-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, dr3d-light*, shapes3d*, draw-glue-point* } shapes3d = dr3d-scene | dr3d-extrude | dr3d-sphere | dr3d-rotate | dr3d-cube dr3d-scene-attlist = attribute dr3d:vrp { vector3D }? & attribute dr3d:vpn { vector3D }? & attribute dr3d:vup { vector3D }? & attribute dr3d:projection { "parallel" | "perspective" }? & attribute dr3d:distance { length }? & attribute dr3d:focal-length { length }? & attribute dr3d:shadow-slant { angle }? & attribute dr3d:shade-mode { "flat" | "phong" | "gouraud" | "draft" }? & attribute dr3d:ambient-color { color }? & attribute dr3d:lighting-mode { boolean }? common-dr3d-transform-attlist = attribute dr3d:transform { \string }? dr3d-light = element dr3d:light { dr3d-light-attlist, empty } dr3d-light-attlist = attribute dr3d:diffuse-color { color }? & attribute dr3d:direction { vector3D } & attribute dr3d:enabled { boolean }? & attribute dr3d:specular { boolean }? dr3d-cube = element dr3d:cube { dr3d-cube-attlist, common-draw-z-index-attlist, common-draw-id-attlist, common-draw-layer-name-attlist, common-draw-style-name-attlist, common-dr3d-transform-attlist, empty } dr3d-cube-attlist = attribute dr3d:min-edge { vector3D }?, attribute dr3d:max-edge { vector3D }? dr3d-sphere = element dr3d:sphere { dr3d-sphere-attlist, common-draw-z-index-attlist, common-draw-id-attlist, common-draw-layer-name-attlist, common-draw-style-name-attlist, common-dr3d-transform-attlist, empty } dr3d-sphere-attlist = attribute dr3d:center { vector3D }? & attribute dr3d:size { vector3D }? dr3d-extrude = element dr3d:extrude { common-draw-path-data-attlist, common-draw-viewbox-attlist, common-draw-id-attlist, common-draw-z-index-attlist, common-draw-layer-name-attlist, common-draw-style-name-attlist, common-dr3d-transform-attlist, empty } dr3d-rotate = element dr3d:rotate { common-draw-viewbox-attlist, common-draw-path-data-attlist, common-draw-z-index-attlist, common-draw-id-attlist, common-draw-layer-name-attlist, common-draw-style-name-attlist, common-dr3d-transform-attlist, empty } draw-custom-shape = element draw:custom-shape { draw-custom-shape-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-shape-with-text-and-styles-attlist, common-draw-caption-id-attlist, svg-title?, svg-desc?, office-event-listeners?, draw-glue-point*, draw-text, draw-enhanced-geometry? } draw-custom-shape-attlist = attribute draw:engine { namespacedToken }? & attribute draw:data { \string }? draw-enhanced-geometry = element draw:enhanced-geometry { draw-enhanced-geometry-attlist, draw-equation*, draw-handle* } draw-enhanced-geometry-attlist = attribute draw:type { custom-shape-type }? & attribute svg:viewBox { list { integer, integer, integer, integer } }? & attribute draw:mirror-vertical { boolean }? & attribute draw:mirror-horizontal { boolean }? & attribute draw:text-rotate-angle { angle }? & attribute draw:extrusion-allowed { boolean }? & attribute draw:text-path-allowed { boolean }? & attribute draw:concentric-gradient-fill-allowed { boolean }? & attribute draw:extrusion { boolean }? & attribute draw:extrusion-brightness { zeroToHundredPercent }? & attribute draw:extrusion-depth { list { length, double } }? & attribute draw:extrusion-diffusion { percent }? & attribute draw:extrusion-number-of-line-segments { integer }? & attribute draw:extrusion-light-face { boolean }? & attribute draw:extrusion-first-light-harsh { boolean }? & attribute draw:extrusion-second-light-harsh { boolean }? & attribute draw:extrusion-first-light-level { zeroToHundredPercent }? & attribute draw:extrusion-second-light-level { zeroToHundredPercent }? & attribute draw:extrusion-first-light-direction { vector3D }? & attribute draw:extrusion-second-light-direction { vector3D }? & attribute draw:extrusion-metal { boolean }? & attribute dr3d:shade-mode { "flat" | "phong" | "gouraud" | "draft" }? & attribute draw:extrusion-rotation-angle { list { angle, angle } }? & attribute draw:extrusion-rotation-center { vector3D }? & attribute draw:extrusion-shininess { zeroToHundredPercent }? & attribute draw:extrusion-skew { list { double, angle } }? & attribute draw:extrusion-specularity { zeroToHundredPercent }? & attribute dr3d:projection { "parallel" | "perspective" }? & attribute draw:extrusion-viewpoint { point3D }? & attribute draw:extrusion-origin { list { extrusionOrigin, extrusionOrigin } }? & attribute draw:extrusion-color { boolean }? & attribute draw:enhanced-path { \string }? & attribute draw:path-stretchpoint-x { double }? & attribute draw:path-stretchpoint-y { double }? & attribute draw:text-areas { \string }? & attribute draw:glue-points { \string }? & attribute draw:glue-point-type { "none" | "segments" | "rectangle" }? & attribute draw:glue-point-leaving-directions { \string }? & attribute draw:text-path { boolean }? & attribute draw:text-path-mode { "normal" | "path" | "shape" }? & attribute draw:text-path-scale { "path" | "shape" }? & attribute draw:text-path-same-letter-heights { boolean }? & attribute draw:modifiers { \string }? custom-shape-type = "non-primitive" | \string point3D = xsd:string { pattern = "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\)" } extrusionOrigin = xsd:double { minInclusive = "-0.5" maxInclusive = "0.5" } draw-equation = element draw:equation { draw-equation-attlist, empty } draw-equation-attlist = attribute draw:name { \string }? & attribute draw:formula { \string }? draw-handle = element draw:handle { draw-handle-attlist, empty } draw-handle-attlist = attribute draw:handle-mirror-vertical { boolean }? & attribute draw:handle-mirror-horizontal { boolean }? & attribute draw:handle-switched { boolean }? & attribute draw:handle-position { \string } & attribute draw:handle-range-x-minimum { \string }? & attribute draw:handle-range-x-maximum { \string }? & attribute draw:handle-range-y-minimum { \string }? & attribute draw:handle-range-y-maximum { \string }? & attribute draw:handle-polar { \string }? & attribute draw:handle-radius-range-minimum { \string }? & attribute draw:handle-radius-range-maximum { \string }? presentation-shape-attlist = attribute presentation:class { presentation-classes }? & attribute presentation:placeholder { boolean }? & attribute presentation:user-transformed { boolean }? presentation-classes = "title" | "outline" | "subtitle" | "text" | "graphic" | "object" | "chart" | "table" | "orgchart" | "page" | "notes" | "handout" | "header" | "footer" | "date-time" | "page-number" presentation-animations = element presentation:animations { (presentation-animation-elements | presentation-animation-group)* } presentation-animation-elements = presentation-show-shape | presentation-show-text | presentation-hide-shape | presentation-hide-text | presentation-dim | presentation-play presentation-sound = element presentation:sound { presentation-sound-attlist, attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:actuate { "onRequest" }?, attribute xlink:show { "new" | "replace" }?, empty } presentation-sound-attlist = attribute presentation:play-full { boolean }? & xml-id? presentation-show-shape = element presentation:show-shape { common-presentation-effect-attlist, presentation-sound? } common-presentation-effect-attlist = attribute draw:shape-id { IDREF } & attribute presentation:effect { presentationEffects }? & attribute presentation:direction { presentationEffectDirections }? & attribute presentation:speed { presentationSpeeds }? & attribute presentation:delay { duration }? & attribute presentation:start-scale { percent }? & attribute presentation:path-id { \string }? presentationEffects = "none" | "fade" | "move" | "stripes" | "open" | "close" | "dissolve" | "wavyline" | "random" | "lines" | "laser" | "appear" | "hide" | "move-short" | "checkerboard" | "rotate" | "stretch" presentationEffectDirections = "none" | "from-left" | "from-top" | "from-right" | "from-bottom" | "from-center" | "from-upper-left" | "from-upper-right" | "from-lower-left" | "from-lower-right" | "to-left" | "to-top" | "to-right" | "to-bottom" | "to-upper-left" | "to-upper-right" | "to-lower-right" | "to-lower-left" | "path" | "spiral-inward-left" | "spiral-inward-right" | "spiral-outward-left" | "spiral-outward-right" | "vertical" | "horizontal" | "to-center" | "clockwise" | "counter-clockwise" presentationSpeeds = "slow" | "medium" | "fast" presentation-show-text = element presentation:show-text { common-presentation-effect-attlist, presentation-sound? } presentation-hide-shape = element presentation:hide-shape { common-presentation-effect-attlist, presentation-sound? } presentation-hide-text = element presentation:hide-text { common-presentation-effect-attlist, presentation-sound? } presentation-dim = element presentation:dim { presentation-dim-attlist, presentation-sound? } presentation-dim-attlist = attribute draw:shape-id { IDREF } & attribute draw:color { color } presentation-play = element presentation:play { presentation-play-attlist, empty } presentation-play-attlist = attribute draw:shape-id { IDREF }, attribute presentation:speed { presentationSpeeds }? presentation-animation-group = element presentation:animation-group { presentation-animation-elements* } common-anim-attlist = attribute presentation:node-type { "default" | "on-click" | "with-previous" | "after-previous" | "timing-root" | "main-sequence" | "interactive-sequence" }? & attribute presentation:preset-id { \string }? & attribute presentation:preset-sub-type { \string }? & attribute presentation:preset-class { "custom" | "entrance" | "exit" | "emphasis" | "motion-path" | "ole-action" | "media-call" }? & attribute presentation:master-element { IDREF }? & attribute presentation:group-id { \string }? & (xml-id, attribute anim:id { NCName }?)? presentation-event-listener = element presentation:event-listener { presentation-event-listener-attlist, presentation-sound? } presentation-event-listener-attlist = attribute script:event-name { \string } & attribute presentation:action { "none" | "previous-page" | "next-page" | "first-page" | "last-page" | "hide" | "stop" | "execute" | "show" | "verb" | "fade-out" | "sound" | "last-visited-page" } & attribute presentation:effect { presentationEffects }? & attribute presentation:direction { presentationEffectDirections }? & attribute presentation:speed { presentationSpeeds }? & attribute presentation:start-scale { percent }? & (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:show { "embed" }?, attribute xlink:actuate { "onRequest" }?)? & attribute presentation:verb { nonNegativeInteger }? presentation-decls = presentation-decl* presentation-decl = element presentation:header-decl { presentation-header-decl-attlist, text } | element presentation:footer-decl { presentation-footer-decl-attlist, text } | element presentation:date-time-decl { presentation-date-time-decl-attlist, text } presentation-header-decl-attlist = attribute presentation:name { \string } presentation-footer-decl-attlist = attribute presentation:name { \string } presentation-date-time-decl-attlist = attribute presentation:name { \string } & attribute presentation:source { "fixed" | "current-date" } & attribute style:data-style-name { styleNameRef }? presentation-settings = element presentation:settings { presentation-settings-attlist, presentation-show* }? presentation-settings-attlist = attribute presentation:start-page { \string }? & attribute presentation:show { \string }? & attribute presentation:full-screen { boolean }? & attribute presentation:endless { boolean }? & attribute presentation:pause { duration }? & attribute presentation:show-logo { boolean }? & attribute presentation:force-manual { boolean }? & attribute presentation:mouse-visible { boolean }? & attribute presentation:mouse-as-pen { boolean }? & attribute presentation:start-with-navigator { boolean }? & attribute presentation:animations { "enabled" | "disabled" }? & attribute presentation:transition-on-click { "enabled" | "disabled" }? & attribute presentation:stay-on-top { boolean }? & attribute presentation:show-end-of-presentation-slide { boolean }? presentation-show = element presentation:show { presentation-show-attlist, empty } presentation-show-attlist = attribute presentation:name { \string } & attribute presentation:pages { \string } chart-chart = element chart:chart { chart-chart-attlist, chart-title?, chart-subtitle?, chart-footer?, chart-legend?, chart-plot-area, table-table? } chart-chart-attlist = attribute chart:class { namespacedToken } & common-draw-size-attlist & attribute chart:column-mapping { \string }? & attribute chart:row-mapping { \string }? & attribute chart:style-name { styleNameRef }? & (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI })? & xml-id? chart-title = element chart:title { chart-title-attlist, text-p? } chart-title-attlist = attribute table:cell-range { cellRangeAddressList }? & common-draw-position-attlist & attribute chart:style-name { styleNameRef }? chart-subtitle = element chart:subtitle { chart-title-attlist, text-p? } chart-footer = element chart:footer { chart-title-attlist, text-p? } chart-legend = element chart:legend { chart-legend-attlist, text-p? } chart-legend-attlist = ((attribute chart:legend-position { "start" | "end" | "top" | "bottom" }, attribute chart:legend-align { "start" | "center" | "end" }?) | attribute chart:legend-position { "top-start" | "bottom-start" | "top-end" | "bottom-end" } | empty) & common-draw-position-attlist & (attribute style:legend-expansion { "wide" | "high" | "balanced" } | (attribute style:legend-expansion { "custom" }, attribute style:legend-expansion-aspect-ratio { double }) | empty) & attribute chart:style-name { styleNameRef }? chart-plot-area = element chart:plot-area { chart-plot-area-attlist, dr3d-light*, chart-axis*, chart-series*, chart-stock-gain-marker?, chart-stock-loss-marker?, chart-stock-range-line?, chart-wall?, chart-floor? } chart-plot-area-attlist = common-draw-position-attlist & common-draw-size-attlist & attribute chart:style-name { styleNameRef }? & attribute table:cell-range-address { cellRangeAddressList }? & attribute chart:data-source-has-labels { "none" | "row" | "column" | "both" }? & dr3d-scene-attlist & common-dr3d-transform-attlist & xml-id? chart-wall = element chart:wall { chart-wall-attlist, empty } chart-wall-attlist = attribute svg:width { length }? & attribute chart:style-name { styleNameRef }? chart-floor = element chart:floor { chart-floor-attlist, empty } chart-floor-attlist = attribute svg:width { length }? & attribute chart:style-name { styleNameRef }? chart-axis = element chart:axis { chart-axis-attlist, chart-title?, chart-categories?, chart-grid* } chart-axis-attlist = attribute chart:dimension { chart-dimension } & attribute chart:name { \string }? & attribute chart:style-name { styleNameRef }? chart-dimension = "x" | "y" | "z" chart-categories = element chart:categories { attribute table:cell-range-address { cellRangeAddressList }? } chart-grid = element chart:grid { chart-grid-attlist } chart-grid-attlist = attribute chart:class { "major" | "minor" }? & attribute chart:style-name { styleNameRef }? chart-series = element chart:series { chart-series-attlist, chart-domain*, chart-mean-value?, chart-regression-curve*, chart-error-indicator*, chart-data-point*, chart-data-label? } chart-series-attlist = attribute chart:values-cell-range-address { cellRangeAddressList }? & attribute chart:label-cell-address { cellRangeAddressList }? & attribute chart:class { namespacedToken }? & attribute chart:attached-axis { \string }? & attribute chart:style-name { styleNameRef }? & xml-id? chart-domain = element chart:domain { attribute table:cell-range-address { cellRangeAddressList }? } chart-data-point = element chart:data-point { chart-data-point-attlist, chart-data-label? } chart-data-point-attlist = attribute chart:repeated { positiveInteger }? & attribute chart:style-name { styleNameRef }? & xml-id? chart-data-label = element chart:data-label { chart-data-label-attlist, text-p? } chart-data-label-attlist = common-draw-position-attlist & attribute chart:style-name { styleNameRef }? chart-mean-value = element chart:mean-value { chart-mean-value-attlist, empty } chart-mean-value-attlist = attribute chart:style-name { styleNameRef }? chart-error-indicator = element chart:error-indicator { chart-error-indicator-attlist, empty } chart-error-indicator-attlist = attribute chart:style-name { styleNameRef }? & attribute chart:dimension { chart-dimension } chart-regression-curve = element chart:regression-curve { chart-regression-curve-attlist, chart-equation? } chart-regression-curve-attlist = attribute chart:style-name { styleNameRef }? chart-equation = element chart:equation { chart-equation-attlist, text-p? } chart-equation-attlist = attribute chart:automatic-content { boolean }? & attribute chart:display-r-square { boolean }? & attribute chart:display-equation { boolean }? & common-draw-position-attlist & attribute chart:style-name { styleNameRef }? chart-stock-gain-marker = element chart:stock-gain-marker { common-stock-marker-attlist } chart-stock-loss-marker = element chart:stock-loss-marker { common-stock-marker-attlist } chart-stock-range-line = element chart:stock-range-line { common-stock-marker-attlist } common-stock-marker-attlist = attribute chart:style-name { styleNameRef }? office-database = element office:database { db-data-source, db-forms?, db-reports?, db-queries?, db-table-presentations?, db-schema-definition? } db-data-source = element db:data-source { db-data-source-attlist, db-connection-data, db-driver-settings?, db-application-connection-settings? } db-data-source-attlist = empty db-connection-data = element db:connection-data { db-connection-data-attlist, (db-database-description | db-connection-resource), db-login? } db-connection-data-attlist = empty db-database-description = element db:database-description { db-database-description-attlist, (db-file-based-database | db-server-database) } db-database-description-attlist = empty db-file-based-database = element db:file-based-database { db-file-based-database-attlist } db-file-based-database-attlist = attribute xlink:type { "simple" } & attribute xlink:href { anyIRI } & attribute db:media-type { \string } & attribute db:extension { \string }? db-server-database = element db:server-database { db-server-database-attlist, empty } db-server-database-attlist = attribute db:type { namespacedToken } & (db-host-and-port | db-local-socket-name) & attribute db:database-name { \string }? db-host-and-port = attribute db:hostname { \string }, attribute db:port { positiveInteger }? db-local-socket-name = attribute db:local-socket { \string }? db-connection-resource = element db:connection-resource { db-connection-resource-attlist, empty } db-connection-resource-attlist = attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:show { "none" }?, attribute xlink:actuate { "onRequest" }? db-login = element db:login { db-login-attlist, empty } db-login-attlist = (attribute db:user-name { \string } | attribute db:use-system-user { boolean })? & attribute db:is-password-required { boolean }? & attribute db:login-timeout { positiveInteger }? db-driver-settings = element db:driver-settings { db-driver-settings-attlist, db-auto-increment?, db-delimiter?, db-character-set?, db-table-settings? } db-driver-settings-attlist = db-show-deleted & attribute db:system-driver-settings { \string }? & attribute db:base-dn { \string }? & db-is-first-row-header-line & attribute db:parameter-name-substitution { boolean }? db-show-deleted = attribute db:show-deleted { boolean }? db-is-first-row-header-line = attribute db:is-first-row-header-line { boolean }? db-auto-increment = element db:auto-increment { db-auto-increment-attlist, empty } db-auto-increment-attlist = attribute db:additional-column-statement { \string }? & attribute db:row-retrieving-statement { \string }? db-delimiter = element db:delimiter { db-delimiter-attlist, empty } db-delimiter-attlist = attribute db:field { \string }? & attribute db:string { \string }? & attribute db:decimal { \string }? & attribute db:thousand { \string }? db-character-set = element db:character-set { db-character-set-attlist, empty } db-character-set-attlist = attribute db:encoding { textEncoding }? db-table-settings = element db:table-settings { db-table-setting* } db-table-setting = element db:table-setting { db-table-setting-attlist, db-delimiter?, db-character-set?, empty } db-table-setting-attlist = db-is-first-row-header-line, db-show-deleted db-application-connection-settings = element db:application-connection-settings { db-application-connection-settings-attlist, db-table-filter?, db-table-type-filter?, db-data-source-settings? } db-application-connection-settings-attlist = attribute db:is-table-name-length-limited { boolean }? & attribute db:enable-sql92-check { boolean }? & attribute db:append-table-alias-name { boolean }? & attribute db:ignore-driver-privileges { boolean }? & attribute db:boolean-comparison-mode { "equal-integer" | "is-boolean" | "equal-boolean" | "equal-use-only-zero" }? & attribute db:use-catalog { boolean }? & attribute db:max-row-count { integer }? & attribute db:suppress-version-columns { boolean }? db-table-filter = element db:table-filter { db-table-filter-attlist, db-table-include-filter?, db-table-exclude-filter? } db-table-filter-attlist = empty db-table-include-filter = element db:table-include-filter { db-table-include-filter-attlist, db-table-filter-pattern+ } db-table-include-filter-attlist = empty db-table-exclude-filter = element db:table-exclude-filter { db-table-exclude-filter-attlist, db-table-filter-pattern+ } db-table-exclude-filter-attlist = empty db-table-filter-pattern = element db:table-filter-pattern { db-table-filter-pattern-attlist, \string } db-table-filter-pattern-attlist = empty db-table-type-filter = element db:table-type-filter { db-table-type-filter-attlist, db-table-type* } db-table-type-filter-attlist = empty db-table-type = element db:table-type { db-table-type-attlist, \string } db-table-type-attlist = empty db-data-source-settings = element db:data-source-settings { db-data-source-settings-attlist, db-data-source-setting+ } db-data-source-settings-attlist = empty db-data-source-setting = element db:data-source-setting { db-data-source-setting-attlist, db-data-source-setting-value+ } db-data-source-setting-attlist = attribute db:data-source-setting-is-list { boolean }? & attribute db:data-source-setting-name { \string } & attribute db:data-source-setting-type { db-data-source-setting-types } db-data-source-setting-types = "boolean" | "short" | "int" | "long" | "double" | "string" db-data-source-setting-value = element db:data-source-setting-value { db-data-source-setting-value-attlist, \string } db-data-source-setting-value-attlist = empty db-forms = element db:forms { db-forms-attlist, (db-component | db-component-collection)* } db-forms-attlist = empty db-reports = element db:reports { db-reports-attlist, (db-component | db-component-collection)* } db-reports-attlist = empty db-component-collection = element db:component-collection { db-component-collection-attlist, common-db-object-name, common-db-object-title, common-db-object-description, (db-component | db-component-collection)* } db-component-collection-attlist = empty db-component = element db:component { db-component-attlist, common-db-object-name, common-db-object-title, common-db-object-description, (office-document | math-math)? } db-component-attlist = (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:show { "none" }?, attribute xlink:actuate { "onRequest" }?)? & attribute db:as-template { boolean }? db-queries = element db:queries { db-queries-attlist, (db-query | db-query-collection)* } db-queries-attlist = empty db-query-collection = element db:query-collection { db-query-collection-attlist, common-db-object-name, common-db-object-title, common-db-object-description, (db-query | db-query-collection)* } db-query-collection-attlist = empty db-query = element db:query { db-query-attlist, common-db-object-name, common-db-object-title, common-db-object-description, common-db-table-style-name, db-order-statement?, db-filter-statement?, db-columns?, db-update-table? } db-query-attlist = attribute db:command { \string } & attribute db:escape-processing { boolean }? db-order-statement = element db:order-statement { db-command, db-apply-command, empty } db-filter-statement = element db:filter-statement { db-command, db-apply-command, empty } db-update-table = element db:update-table { common-db-table-name-attlist } db-table-presentations = element db:table-representations { db-table-presentations-attlist, db-table-presentation* } db-table-presentations-attlist = empty db-table-presentation = element db:table-representation { db-table-presentation-attlist, common-db-table-name-attlist, common-db-object-title, common-db-object-description, common-db-table-style-name, db-order-statement?, db-filter-statement?, db-columns? } db-table-presentation-attlist = empty db-columns = element db:columns { db-columns-attlist, db-column+ } db-columns-attlist = empty db-column = element db:column { db-column-attlist, common-db-object-name, common-db-object-title, common-db-object-description, common-db-default-value } db-column-attlist = attribute db:visible { boolean }? & attribute db:style-name { styleNameRef }? & attribute db:default-cell-style-name { styleNameRef }? db-command = attribute db:command { \string } db-apply-command = attribute db:apply-command { boolean }? common-db-table-name-attlist = attribute db:name { \string } & attribute db:catalog-name { \string }? & attribute db:schema-name { \string }? common-db-object-name = attribute db:name { \string } common-db-object-title = attribute db:title { \string }? common-db-object-description = attribute db:description { \string }? common-db-table-style-name = attribute db:style-name { styleNameRef }? & attribute db:default-row-style-name { styleNameRef }? common-db-default-value = common-value-and-type-attlist? db-schema-definition = element db:schema-definition { db-schema-definition-attlist, db-table-definitions } db-schema-definition-attlist = empty db-table-definitions = element db:table-definitions { db-table-definitions-attlist, db-table-definition* } db-table-definitions-attlist = empty db-table-definition = element db:table-definition { common-db-table-name-attlist, db-table-definition-attlist, db-column-definitions, db-keys?, db-indices? } db-table-definition-attlist = attribute db:type { \string }? db-column-definitions = element db:column-definitions { db-column-definitions-attlist, db-column-definition+ } db-column-definitions-attlist = empty db-column-definition = element db:column-definition { db-column-definition-attlist, common-db-default-value } db-column-definition-attlist = attribute db:name { \string } & attribute db:data-type { db-data-types }? & attribute db:type-name { \string }? & attribute db:precision { positiveInteger }? & attribute db:scale { positiveInteger }? & attribute db:is-nullable { "no-nulls" | "nullable" }? & attribute db:is-empty-allowed { boolean }? & attribute db:is-autoincrement { boolean }? db-data-types = "bit" | "boolean" | "tinyint" | "smallint" | "integer" | "bigint" | "float" | "real" | "double" | "numeric" | "decimal" | "char" | "varchar" | "longvarchar" | "date" | "time" | "timestmp" | "binary" | "varbinary" | "longvarbinary" | "sqlnull" | "other" | "object" | "distinct" | "struct" | "array" | "blob" | "clob" | "ref" db-keys = element db:keys { db-keys-attlist, db-key+ } db-keys-attlist = empty db-key = element db:key { db-key-attlist, db-key-columns+ } db-key-attlist = attribute db:name { \string }? & attribute db:type { "primary" | "unique" | "foreign" } & attribute db:referenced-table-name { \string }? & attribute db:update-rule { "cascade" | "restrict" | "set-null" | "no-action" | "set-default" }? & attribute db:delete-rule { "cascade" | "restrict" | "set-null" | "no-action" | "set-default" }? db-key-columns = element db:key-columns { db-key-columns-attlist, db-key-column+ } db-key-columns-attlist = empty db-key-column = element db:key-column { db-key-column-attlist, empty } db-key-column-attlist = attribute db:name { \string }? & attribute db:related-column-name { \string }? db-indices = element db:indices { db-indices-attlist, db-index+ } db-indices-attlist = empty db-index = element db:index { db-index-attlist, db-index-columns+ } db-index-attlist = attribute db:name { \string } & attribute db:catalog-name { \string }? & attribute db:is-unique { boolean }? & attribute db:is-clustered { boolean }? db-index-columns = element db:index-columns { db-index-column+ } db-index-column = element db:index-column { db-index-column-attlist, empty } db-index-column-attlist = attribute db:name { \string } & attribute db:is-ascending { boolean }? office-forms = element office:forms { office-forms-attlist, (form-form | xforms-model)* }? office-forms-attlist = attribute form:automatic-focus { boolean }? & attribute form:apply-design-mode { boolean }? form-form = element form:form { common-form-control-attlist, form-form-attlist, form-properties?, office-event-listeners?, (controls | form-form)*, form-connection-resource? } form-form-attlist = (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:actuate { "onRequest" }?)? & attribute office:target-frame { targetFrameName }? & attribute form:method { "get" | "post" | \string }? & attribute form:enctype { \string }? & attribute form:allow-deletes { boolean }? & attribute form:allow-inserts { boolean }? & attribute form:allow-updates { boolean }? & attribute form:apply-filter { boolean }? & attribute form:command-type { "table" | "query" | "command" }? & attribute form:command { \string }? & attribute form:datasource { anyIRI | \string }? & attribute form:master-fields { \string }? & attribute form:detail-fields { \string }? & attribute form:escape-processing { boolean }? & attribute form:filter { \string }? & attribute form:ignore-result { boolean }? & attribute form:navigation-mode { navigation }? & attribute form:order { \string }? & attribute form:tab-cycle { tab-cycles }? navigation = "none" | "current" | "parent" tab-cycles = "records" | "current" | "page" form-connection-resource = element form:connection-resource { attribute xlink:href { anyIRI }, empty } xforms-model = element xforms:model { anyAttListOrElements } column-controls = element form:text { form-text-attlist, common-form-control-content } | element form:textarea { form-textarea-attlist, common-form-control-content, text-p* } | element form:formatted-text { form-formatted-text-attlist, common-form-control-content } | element form:number { form-number-attlist, common-numeric-control-attlist, common-form-control-content, common-linked-cell, common-spin-button, common-repeat, common-delay-for-repeat } | element form:date { form-date-attlist, common-numeric-control-attlist, common-form-control-content, common-linked-cell, common-spin-button, common-repeat, common-delay-for-repeat } | element form:time { form-time-attlist, common-numeric-control-attlist, common-form-control-content, common-linked-cell, common-spin-button, common-repeat, common-delay-for-repeat } | element form:combobox { form-combobox-attlist, common-form-control-content, form-item* } | element form:listbox { form-listbox-attlist, common-form-control-content, form-option* } | element form:checkbox { form-checkbox-attlist, common-form-control-content } controls = column-controls | element form:password { form-password-attlist, common-form-control-content } | element form:file { form-file-attlist, common-form-control-content } | element form:fixed-text { form-fixed-text-attlist, common-form-control-content } | element form:button { form-button-attlist, common-form-control-content } | element form:image { form-image-attlist, common-form-control-content } | element form:radio { form-radio-attlist, common-form-control-content } | element form:frame { form-frame-attlist, common-form-control-content } | element form:image-frame { form-image-frame-attlist, common-form-control-content } | element form:hidden { form-hidden-attlist, common-form-control-content } | element form:grid { form-grid-attlist, common-form-control-content, form-column* } | element form:value-range { form-value-range-attlist, common-form-control-content } | element form:generic-control { form-generic-control-attlist, common-form-control-content } form-text-attlist = form-control-attlist, common-current-value-attlist, common-disabled-attlist, common-maxlength-attlist, common-printable-attlist, common-readonly-attlist, common-tab-attlist, common-title-attlist, common-value-attlist, common-convert-empty-attlist, common-data-field-attlist, common-linked-cell form-control-attlist = common-form-control-attlist, common-control-id-attlist, xforms-bind-attlist common-form-control-content = form-properties?, office-event-listeners? form-textarea-attlist = form-control-attlist, common-current-value-attlist, common-disabled-attlist, common-maxlength-attlist, common-printable-attlist, common-readonly-attlist, common-tab-attlist, common-title-attlist, common-value-attlist, common-convert-empty-attlist, common-data-field-attlist, common-linked-cell form-password-attlist = form-control-attlist & common-disabled-attlist & common-maxlength-attlist & common-printable-attlist & common-tab-attlist & common-title-attlist & common-value-attlist & common-convert-empty-attlist & common-linked-cell & attribute form:echo-char { character }? form-file-attlist = form-control-attlist, common-current-value-attlist, common-disabled-attlist, common-maxlength-attlist, common-printable-attlist, common-readonly-attlist, common-tab-attlist, common-title-attlist, common-value-attlist, common-linked-cell form-formatted-text-attlist = form-control-attlist & common-current-value-attlist & common-disabled-attlist & common-maxlength-attlist & common-printable-attlist & common-readonly-attlist & common-tab-attlist & common-title-attlist & common-value-attlist & common-convert-empty-attlist & common-data-field-attlist & common-linked-cell & common-spin-button & common-repeat & common-delay-for-repeat & attribute form:max-value { \string }? & attribute form:min-value { \string }? & attribute form:validation { boolean }? common-numeric-control-attlist = form-control-attlist, common-disabled-attlist, common-maxlength-attlist, common-printable-attlist, common-readonly-attlist, common-tab-attlist, common-title-attlist, common-convert-empty-attlist, common-data-field-attlist form-number-attlist = attribute form:value { double }? & attribute form:current-value { double }? & attribute form:min-value { double }? & attribute form:max-value { double }? form-date-attlist = attribute form:value { date }? & attribute form:current-value { date }? & attribute form:min-value { date }? & attribute form:max-value { date }? form-time-attlist = attribute form:value { time }? & attribute form:current-value { time }? & attribute form:min-value { time }? & attribute form:max-value { time }? form-fixed-text-attlist = form-control-attlist & for & common-disabled-attlist & label & common-printable-attlist & common-title-attlist & attribute form:multi-line { boolean }? form-combobox-attlist = form-control-attlist & common-current-value-attlist & common-disabled-attlist & dropdown & common-maxlength-attlist & common-printable-attlist & common-readonly-attlist & size & common-tab-attlist & common-title-attlist & common-value-attlist & common-convert-empty-attlist & common-data-field-attlist & list-source & list-source-type & common-linked-cell & common-source-cell-range & attribute form:auto-complete { boolean }? form-item = element form:item { form-item-attlist, text } form-item-attlist = label form-listbox-attlist = form-control-attlist & common-disabled-attlist & dropdown & common-printable-attlist & size & common-tab-attlist & common-title-attlist & bound-column & common-data-field-attlist & list-source & list-source-type & common-linked-cell & list-linkage-type & common-source-cell-range & attribute form:multiple { boolean }? & attribute form:xforms-list-source { \string }? list-linkage-type = attribute form:list-linkage-type { "selection" | "selection-indices" }? form-option = element form:option { form-option-attlist, text } form-option-attlist = current-selected, selected, label, common-value-attlist form-button-attlist = form-control-attlist & button-type & common-disabled-attlist & label & image-data & common-printable-attlist & common-tab-attlist & target-frame & target-location & common-title-attlist & common-value-attlist & common-form-relative-image-position-attlist & common-repeat & common-delay-for-repeat & attribute form:default-button { boolean }? & attribute form:toggle { boolean }? & attribute form:focus-on-click { boolean }? & attribute form:xforms-submission { \string }? form-image-attlist = form-control-attlist, button-type, common-disabled-attlist, image-data, common-printable-attlist, common-tab-attlist, target-frame, target-location, common-title-attlist, common-value-attlist form-checkbox-attlist = form-control-attlist & common-disabled-attlist & label & common-printable-attlist & common-tab-attlist & common-title-attlist & common-value-attlist & common-data-field-attlist & common-form-visual-effect-attlist & common-form-relative-image-position-attlist & common-linked-cell & attribute form:current-state { states }? & attribute form:is-tristate { boolean }? & attribute form:state { states }? states = "unchecked" | "checked" | "unknown" form-radio-attlist = form-control-attlist, current-selected, common-disabled-attlist, label, common-printable-attlist, selected, common-tab-attlist, common-title-attlist, common-value-attlist, common-data-field-attlist, common-form-visual-effect-attlist, common-form-relative-image-position-attlist, common-linked-cell form-frame-attlist = form-control-attlist, common-disabled-attlist, for, label, common-printable-attlist, common-title-attlist form-image-frame-attlist = form-control-attlist, common-disabled-attlist, image-data, common-printable-attlist, common-readonly-attlist, common-title-attlist, common-data-field-attlist form-hidden-attlist = form-control-attlist, common-value-attlist form-grid-attlist = form-control-attlist, common-disabled-attlist, common-printable-attlist, common-tab-attlist, common-title-attlist form-column = element form:column { form-column-attlist, column-controls+ } form-column-attlist = common-form-control-attlist, label, text-style-name text-style-name = attribute form:text-style-name { styleNameRef }? form-value-range-attlist = form-control-attlist & common-disabled-attlist & common-printable-attlist & common-tab-attlist & common-title-attlist & common-value-attlist & common-linked-cell & common-repeat & common-delay-for-repeat & attribute form:max-value { integer }? & attribute form:min-value { integer }? & attribute form:step-size { positiveInteger }? & attribute form:page-step-size { positiveInteger }? & attribute form:orientation { "horizontal" | "vertical" }? form-generic-control-attlist = form-control-attlist common-form-control-attlist = attribute form:name { \string }? & attribute form:control-implementation { namespacedToken }? xforms-bind-attlist = attribute xforms:bind { \string }? types = "submit" | "reset" | "push" | "url" button-type = attribute form:button-type { types }? common-control-id-attlist = xml-id, attribute form:id { NCName }? current-selected = attribute form:current-selected { boolean }? common-value-attlist = attribute form:value { \string }? common-current-value-attlist = attribute form:current-value { \string }? common-disabled-attlist = attribute form:disabled { boolean }? dropdown = attribute form:dropdown { boolean }? for = attribute form:for { \string }? image-data = attribute form:image-data { anyIRI }? label = attribute form:label { \string }? common-maxlength-attlist = attribute form:max-length { nonNegativeInteger }? common-printable-attlist = attribute form:printable { boolean }? common-readonly-attlist = attribute form:readonly { boolean }? selected = attribute form:selected { boolean }? size = attribute form:size { nonNegativeInteger }? common-tab-attlist = attribute form:tab-index { nonNegativeInteger }? & attribute form:tab-stop { boolean }? target-frame = attribute office:target-frame { targetFrameName }? target-location = attribute xlink:href { anyIRI }? common-title-attlist = attribute form:title { \string }? common-form-visual-effect-attlist = attribute form:visual-effect { "flat" | "3d" }? common-form-relative-image-position-attlist = attribute form:image-position { "center" }? | (attribute form:image-position { "start" | "end" | "top" | "bottom" }, attribute form:image-align { "start" | "center" | "end" }?) bound-column = attribute form:bound-column { \string }? common-convert-empty-attlist = attribute form:convert-empty-to-null { boolean }? common-data-field-attlist = attribute form:data-field { \string }? list-source = attribute form:list-source { \string }? list-source-type = attribute form:list-source-type { "table" | "query" | "sql" | "sql-pass-through" | "value-list" | "table-fields" }? common-linked-cell = attribute form:linked-cell { cellAddress | \string }? common-source-cell-range = attribute form:source-cell-range { cellRangeAddress | \string }? common-spin-button = attribute form:spin-button { boolean }? common-repeat = attribute form:repeat { boolean }? common-delay-for-repeat = attribute form:delay-for-repeat { duration }? form-properties = element form:properties { form-property+ } form-property = element form:property { form-property-name, form-property-value-and-type-attlist } | element form:list-property { form-property-name, form-property-type-and-value-list } form-property-name = attribute form:property-name { \string } form-property-value-and-type-attlist = common-value-and-type-attlist | attribute office:value-type { "void" } form-property-type-and-value-list = (attribute office:value-type { "float" }, element form:list-value { attribute office:value { double } }*) | (attribute office:value-type { "percentage" }, element form:list-value { attribute office:value { double } }*) | (attribute office:value-type { "currency" }, element form:list-value { attribute office:value { double }, attribute office:currency { \string }? }*) | (attribute office:value-type { "date" }, element form:list-value { attribute office:date-value { dateOrDateTime } }*) | (attribute office:value-type { "time" }, element form:list-value { attribute office:time-value { duration } }*) | (attribute office:value-type { "boolean" }, element form:list-value { attribute office:boolean-value { boolean } }*) | (attribute office:value-type { "string" }, element form:list-value { attribute office:string-value { \string } }*) | attribute office:value-type { "void" } office-annotation = element office:annotation { office-annotation-attlist, draw-caption-attlist, common-draw-position-attlist, common-draw-size-attlist, common-draw-shape-with-text-and-styles-attlist, dc-creator?, dc-date?, meta-date-string?, (text-p | text-list)* } office-annotation-end = element office:annotation-end { office-annotation-end-attlist } office-annotation-attlist = attribute office:display { boolean }? & common-office-annotation-name-attlist? office-annotation-end-attlist = common-office-annotation-name-attlist common-office-annotation-name-attlist = attribute office:name { \string } meta-date-string = element meta:date-string { \string } common-num-format-prefix-suffix-attlist = attribute style:num-prefix { \string }?, attribute style:num-suffix { \string }? common-num-format-attlist = attribute style:num-format { "1" | "i" | "I" | \string | empty } | (attribute style:num-format { "a" | "A" }, style-num-letter-sync-attlist) | empty style-num-letter-sync-attlist = attribute style:num-letter-sync { boolean }? office-change-info = element office:change-info { dc-creator, dc-date, text-p* } office-event-listeners = element office:event-listeners { (script-event-listener | presentation-event-listener)* } script-event-listener = element script:event-listener { script-event-listener-attlist, empty } script-event-listener-attlist = attribute script:event-name { \string } & attribute script:language { \string } & (attribute script:macro-name { \string } | (attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:actuate { "onRequest" }?)) math-math = element math:math { mathMarkup } [ dc:description [ "To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element" ] ] mathMarkup = (attribute * { text } | text | element * { mathMarkup })* text-dde-connection-decl = element text:dde-connection-decl { text-dde-connection-decl-attlist, common-dde-connection-decl-attlist } text-dde-connection-decl-attlist = attribute office:name { \string } common-dde-connection-decl-attlist = attribute office:dde-application { \string } & attribute office:dde-topic { \string } & attribute office:dde-item { \string } & attribute office:automatic-update { boolean }? table-dde-link = element table:dde-link { office-dde-source, table-table } office-dde-source = element office:dde-source { office-dde-source-attlist, common-dde-connection-decl-attlist } office-dde-source-attlist = attribute office:name { \string }? & attribute office:conversion-mode { "into-default-style-data-style" | "into-english-number" | "keep-text" }? animation-element = element anim:animate { common-anim-target-attlist, common-anim-named-target-attlist, common-anim-values-attlist, common-anim-spline-mode-attlist, common-spline-anim-value-attlist, common-timing-attlist, common-anim-add-accum-attlist } | element anim:set { common-anim-target-attlist, common-anim-named-target-attlist, common-anim-set-values-attlist, common-timing-attlist, common-anim-add-accum-attlist } | element anim:animateMotion { anim-animate-motion-attlist, common-anim-target-attlist, common-anim-named-target-attlist, common-anim-add-accum-attlist, common-anim-values-attlist, common-timing-attlist, common-spline-anim-value-attlist } | element anim:animateColor { common-anim-target-attlist, common-anim-named-target-attlist, common-anim-add-accum-attlist, common-anim-values-attlist, common-anim-spline-mode-attlist, common-spline-anim-value-attlist, anim-animate-color-attlist, common-timing-attlist } | element anim:animateTransform { common-anim-target-attlist, common-anim-named-target-attlist, common-anim-add-accum-attlist, common-anim-values-attlist, anim-animate-transform-attlist, common-timing-attlist } | element anim:transitionFilter { common-anim-target-attlist, common-anim-add-accum-attlist, common-anim-values-attlist, common-anim-spline-mode-attlist, anim-transition-filter-attlist, common-timing-attlist } | element anim:par { common-anim-attlist, common-timing-attlist, common-endsync-timing-attlist, animation-element* } | element anim:seq { common-anim-attlist, common-endsync-timing-attlist, common-timing-attlist, animation-element* } | element anim:iterate { common-anim-attlist, anim-iterate-attlist, common-timing-attlist, common-endsync-timing-attlist, animation-element* } | element anim:audio { common-anim-attlist, anim-audio-attlist, common-basic-timing-attlist } | element anim:command { common-anim-attlist, anim-command-attlist, common-begin-end-timing-attlist, common-anim-target-attlist, element anim:param { attribute anim:name { \string }, attribute anim:value { \string } }* } anim-animate-motion-attlist = attribute svg:path { pathData }? & attribute svg:origin { \string }? & attribute smil:calcMode { "discrete" | "linear" | "paced" | "spline" }? anim-animate-color-attlist = attribute anim:color-interpolation { "rgb" | "hsl" }? & attribute anim:color-interpolation-direction { "clockwise" | "counter-clockwise" }? anim-animate-transform-attlist = attribute svg:type { "translate" | "scale" | "rotate" | "skewX" | "skewY" } anim-transition-filter-attlist = attribute smil:type { \string } & attribute smil:subtype { \string }? & attribute smil:direction { "forward" | "reverse" }? & attribute smil:fadeColor { color }? & attribute smil:mode { "in" | "out" }? common-anim-target-attlist = attribute smil:targetElement { IDREF }? & attribute anim:sub-item { \string }? common-anim-named-target-attlist = attribute smil:attributeName { \string } common-anim-values-attlist = attribute smil:values { \string }? & attribute anim:formula { \string }? & common-anim-set-values-attlist & attribute smil:from { \string }? & attribute smil:by { \string }? common-anim-spline-mode-attlist = attribute smil:calcMode { "discrete" | "linear" | "paced" | "spline" }? common-spline-anim-value-attlist = attribute smil:keyTimes { \string }? & attribute smil:keySplines { \string }? common-anim-add-accum-attlist = attribute smil:accumulate { "none" | "sum" }? & attribute smil:additive { "replace" | "sum" }? common-anim-set-values-attlist = attribute smil:to { \string }? common-begin-end-timing-attlist = attribute smil:begin { \string }? & attribute smil:end { \string }? common-dur-timing-attlist = attribute smil:dur { \string }? common-endsync-timing-attlist = attribute smil:endsync { "first" | "last" | "all" | "media" | IDREF }? common-repeat-timing-attlist = attribute smil:repeatDur { \string }?, attribute smil:repeatCount { nonNegativeDecimal | "indefinite" }? nonNegativeDecimal = xsd:decimal { minInclusive = "0.0" } common-fill-timing-attlist = attribute smil:fill { "remove" | "freeze" | "hold" | "auto" | "default" | "transition" }? common-fill-default-attlist = attribute smil:fillDefault { "remove" | "freeze" | "hold" | "transition" | "auto" | "inherit" }? common-restart-timing-attlist = attribute smil:restart { "never" | "always" | "whenNotActive" | "default" }? common-restart-default-attlist = attribute smil:restartDefault { "never" | "always" | "whenNotActive" | "inherit" }? common-time-manip-attlist = attribute smil:accelerate { zeroToOneDecimal }? & attribute smil:decelerate { zeroToOneDecimal }? & attribute smil:autoReverse { boolean }? zeroToOneDecimal = xsd:decimal { minInclusive = "0" maxInclusive = "1" } common-basic-timing-attlist = common-begin-end-timing-attlist, common-dur-timing-attlist, common-repeat-timing-attlist, common-restart-timing-attlist, common-restart-default-attlist, common-fill-timing-attlist, common-fill-default-attlist common-timing-attlist = common-basic-timing-attlist, common-time-manip-attlist anim-iterate-attlist = common-anim-target-attlist & attribute anim:iterate-type { \string }? & attribute anim:iterate-interval { duration }? anim-audio-attlist = attribute xlink:href { anyIRI }? & attribute anim:audio-level { double }? anim-command-attlist = attribute anim:command { \string } style-style = element style:style { style-style-attlist, style-style-content, style-map* } common-in-content-meta-attlist = attribute xhtml:about { URIorSafeCURIE }, attribute xhtml:property { CURIEs }, common-meta-literal-attlist common-meta-literal-attlist = attribute xhtml:datatype { CURIE }?, attribute xhtml:content { \string }? xml-id = attribute xml:id { ID } style-style-attlist = attribute style:name { styleName } & attribute style:display-name { \string }? & attribute style:parent-style-name { styleNameRef }? & attribute style:next-style-name { styleNameRef }? & attribute style:list-level { positiveInteger | empty }? & attribute style:list-style-name { styleName | empty }? & attribute style:master-page-name { styleNameRef }? & attribute style:auto-update { boolean }? & attribute style:data-style-name { styleNameRef }? & attribute style:percentage-data-style-name { styleNameRef }? & attribute style:class { \string }? & attribute style:default-outline-level { positiveInteger | empty }? style-map = element style:map { style-map-attlist, empty } style-map-attlist = attribute style:condition { \string } & attribute style:apply-style-name { styleNameRef } & attribute style:base-cell-address { cellAddress }? style-default-style = element style:default-style { style-style-content } style-page-layout = element style:page-layout { style-page-layout-attlist, style-page-layout-content } style-page-layout-content = style-page-layout-properties?, style-header-style?, style-footer-style? style-page-layout-attlist = attribute style:name { styleName } & attribute style:page-usage { "all" | "left" | "right" | "mirrored" }? style-header-style = element style:header-style { style-header-footer-properties? } style-footer-style = element style:footer-style { style-header-footer-properties? } style-default-page-layout = element style:default-page-layout { style-page-layout-content } style-master-page = element style:master-page { style-master-page-attlist, (style-header, style-header-left?)?, (style-footer, style-footer-left?)?, draw-layer-set?, office-forms?, shape*, animation-element?, presentation-notes? } style-master-page-attlist = attribute style:name { styleName } & attribute style:display-name { \string }? & attribute style:page-layout-name { styleNameRef } & attribute draw:style-name { styleNameRef }? & attribute style:next-style-name { styleNameRef }? style-header = element style:header { common-style-header-footer-attlist, header-footer-content } style-footer = element style:footer { common-style-header-footer-attlist, header-footer-content } style-header-left = element style:header-left { common-style-header-footer-attlist, header-footer-content } style-footer-left = element style:footer-left { common-style-header-footer-attlist, header-footer-content } header-footer-content = (text-tracked-changes, text-decls, (text-h | text-p | text-list | table-table | text-section | text-table-of-content | text-illustration-index | text-table-index | text-object-index | text-user-index | text-alphabetical-index | text-bibliography | text-index-title | change-marks)*) | (style-region-left?, style-region-center?, style-region-right?) common-style-header-footer-attlist = attribute style:display { boolean }? style-region-left = element style:region-left { region-content } style-region-center = element style:region-center { region-content } style-region-right = element style:region-right { region-content } region-content = text-p* presentation-notes = element presentation:notes { common-presentation-header-footer-attlist, presentation-notes-attlist, office-forms, shape* } presentation-notes-attlist = attribute style:page-layout-name { styleNameRef }? & attribute draw:style-name { styleNameRef }? table-table-template = element table:table-template { table-table-template-attlist, table-first-row?, table-last-row?, table-first-column?, table-last-column?, table-body, table-even-rows?, table-odd-rows?, table-even-columns?, table-odd-columns?, table-background? } table-table-template-attlist = attribute table:name { \string } & attribute table:first-row-start-column { rowOrCol } & attribute table:first-row-end-column { rowOrCol } & attribute table:last-row-start-column { rowOrCol } & attribute table:last-row-end-column { rowOrCol } rowOrCol = "row" | "column" table-first-row = element table:first-row { common-table-template-attlist, empty } table-last-row = element table:last-row { common-table-template-attlist, empty } table-first-column = element table:first-column { common-table-template-attlist, empty } table-last-column = element table:last-column { common-table-template-attlist, empty } table-body = element table:body { common-table-template-attlist, empty } table-even-rows = element table:even-rows { common-table-template-attlist, empty } table-odd-rows = element table:odd-rows { common-table-template-attlist, empty } table-even-columns = element table:even-columns { common-table-template-attlist, empty } table-odd-columns = element table:odd-columns { common-table-template-attlist, empty } common-table-template-attlist = attribute table:style-name { styleNameRef }, attribute table:paragraph-style-name { styleNameRef }? table-background = element table:background { table-background-attlist, empty } table-background-attlist = attribute table:style-name { styleNameRef } style-font-face = element style:font-face { style-font-face-attlist, svg-font-face-src?, svg-definition-src? } style-font-face-attlist = attribute svg:font-family { \string }? & attribute svg:font-style { fontStyle }? & attribute svg:font-variant { fontVariant }? & attribute svg:font-weight { fontWeight }? & attribute svg:font-stretch { "normal" | "ultra-condensed" | "extra-condensed" | "condensed" | "semi-condensed" | "semi-expanded" | "expanded" | "extra-expanded" | "ultra-expanded" }? & attribute svg:font-size { positiveLength }? & attribute svg:unicode-range { \string }? & attribute svg:units-per-em { integer }? & attribute svg:panose-1 { \string }? & attribute svg:stemv { integer }? & attribute svg:stemh { integer }? & attribute svg:slope { integer }? & attribute svg:cap-height { integer }? & attribute svg:x-height { integer }? & attribute svg:accent-height { integer }? & attribute svg:ascent { integer }? & attribute svg:descent { integer }? & attribute svg:widths { \string }? & attribute svg:bbox { \string }? & attribute svg:ideographic { integer }? & attribute svg:alphabetic { integer }? & attribute svg:mathematical { integer }? & attribute svg:hanging { integer }? & attribute svg:v-ideographic { integer }? & attribute svg:v-alphabetic { integer }? & attribute svg:v-mathematical { integer }? & attribute svg:v-hanging { integer }? & attribute svg:underline-position { integer }? & attribute svg:underline-thickness { integer }? & attribute svg:strikethrough-position { integer }? & attribute svg:strikethrough-thickness { integer }? & attribute svg:overline-position { integer }? & attribute svg:overline-thickness { integer }? & attribute style:name { \string } & attribute style:font-adornments { \string }? & attribute style:font-family-generic { fontFamilyGeneric }? & attribute style:font-pitch { fontPitch }? & attribute style:font-charset { textEncoding }? svg-font-face-src = element svg:font-face-src { (svg-font-face-uri | svg-font-face-name)+ } svg-font-face-uri = element svg:font-face-uri { common-svg-font-face-xlink-attlist, svg-font-face-format* } svg-font-face-format = element svg:font-face-format { attribute svg:string { \string }?, empty } svg-font-face-name = element svg:font-face-name { attribute svg:name { \string }?, empty } svg-definition-src = element svg:definition-src { common-svg-font-face-xlink-attlist, empty } common-svg-font-face-xlink-attlist = attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:actuate { "onRequest" }? number-number-style = element number:number-style { common-data-style-attlist, style-text-properties?, number-text?, (any-number, number-text?)?, style-map* } any-number = number-number | number-scientific-number | number-fraction number-number = element number:number { number-number-attlist, common-decimal-places-attlist, common-number-attlist, number-embedded-text* } number-number-attlist = attribute number:decimal-replacement { \string }? & attribute number:display-factor { double }? number-embedded-text = element number:embedded-text { number-embedded-text-attlist, text } number-embedded-text-attlist = attribute number:position { integer } number-scientific-number = element number:scientific-number { number-scientific-number-attlist, common-decimal-places-attlist, common-number-attlist, empty } number-scientific-number-attlist = attribute number:min-exponent-digits { integer }? number-fraction = element number:fraction { number-fraction-attlist, common-number-attlist, empty } number-fraction-attlist = attribute number:min-numerator-digits { integer }? & attribute number:min-denominator-digits { integer }? & attribute number:denominator-value { integer }? number-currency-style = element number:currency-style { common-data-style-attlist, common-auto-reorder-attlist, style-text-properties?, number-text?, ((number-and-text, currency-symbol-and-text?) | (currency-symbol-and-text, number-and-text?))?, style-map* } currency-symbol-and-text = number-currency-symbol, number-text? number-and-text = number-number, number-text? number-currency-symbol = element number:currency-symbol { number-currency-symbol-attlist, text } number-currency-symbol-attlist = attribute number:language { languageCode }?, attribute number:country { countryCode }?, attribute number:script { scriptCode }?, attribute number:rfc-language-tag { language }? number-percentage-style = element number:percentage-style { common-data-style-attlist, style-text-properties?, number-text?, number-and-text?, style-map* } number-date-style = element number:date-style { common-data-style-attlist, common-auto-reorder-attlist, common-format-source-attlist, style-text-properties?, number-text?, (any-date, number-text?)+, style-map* } any-date = number-day | number-month | number-year | number-era | number-day-of-week | number-week-of-year | number-quarter | number-hours | number-am-pm | number-minutes | number-seconds number-day = element number:day { number-day-attlist, common-calendar-attlist, empty } number-day-attlist = attribute number:style { "short" | "long" }? number-month = element number:month { number-month-attlist, common-calendar-attlist, empty } number-month-attlist = attribute number:textual { boolean }? & attribute number:possessive-form { boolean }? & attribute number:style { "short" | "long" }? number-year = element number:year { number-year-attlist, common-calendar-attlist, empty } number-year-attlist = attribute number:style { "short" | "long" }? number-era = element number:era { number-era-attlist, common-calendar-attlist, empty } number-era-attlist = attribute number:style { "short" | "long" }? number-day-of-week = element number:day-of-week { number-day-of-week-attlist, common-calendar-attlist, empty } number-day-of-week-attlist = attribute number:style { "short" | "long" }? number-week-of-year = element number:week-of-year { common-calendar-attlist, empty } number-quarter = element number:quarter { number-quarter-attlist, common-calendar-attlist, empty } number-quarter-attlist = attribute number:style { "short" | "long" }? number-time-style = element number:time-style { number-time-style-attlist, common-data-style-attlist, common-format-source-attlist, style-text-properties?, number-text?, (any-time, number-text?)+, style-map* } any-time = number-hours | number-am-pm | number-minutes | number-seconds number-time-style-attlist = attribute number:truncate-on-overflow { boolean }? number-hours = element number:hours { number-hours-attlist, empty } number-hours-attlist = attribute number:style { "short" | "long" }? number-minutes = element number:minutes { number-minutes-attlist, empty } number-minutes-attlist = attribute number:style { "short" | "long" }? number-seconds = element number:seconds { number-seconds-attlist, empty } number-seconds-attlist = attribute number:style { "short" | "long" }? & attribute number:decimal-places { integer }? number-am-pm = element number:am-pm { empty } number-boolean-style = element number:boolean-style { common-data-style-attlist, style-text-properties?, number-text?, (number-boolean, number-text?)?, style-map* } number-boolean = element number:boolean { empty } number-text-style = element number:text-style { common-data-style-attlist, style-text-properties?, number-text?, (number-text-content, number-text?)*, style-map* } number-text = element number:text { text } number-text-content = element number:text-content { empty } common-data-style-attlist = attribute style:name { styleName } & attribute style:display-name { \string }? & attribute number:language { languageCode }? & attribute number:country { countryCode }? & attribute number:script { scriptCode }? & attribute number:rfc-language-tag { language }? & attribute number:title { \string }? & attribute style:volatile { boolean }? & attribute number:transliteration-format { \string }? & attribute number:transliteration-language { countryCode }? & attribute number:transliteration-country { countryCode }? & attribute number:transliteration-style { "short" | "medium" | "long" }? common-auto-reorder-attlist = attribute number:automatic-order { boolean }? common-format-source-attlist = attribute number:format-source { "fixed" | "language" }? common-decimal-places-attlist = attribute number:decimal-places { integer }? common-number-attlist = attribute number:min-integer-digits { integer }? & attribute number:grouping { boolean }? common-calendar-attlist = attribute number:calendar { "gregorian" | "gengou" | "ROC" | "hanja_yoil" | "hanja" | "hijri" | "jewish" | "buddhist" | \string }? style-style-content = (attribute style:family { "text" }, style-text-properties?) | (attribute style:family { "paragraph" }, style-paragraph-properties?, style-text-properties?) | (attribute style:family { "section" }, style-section-properties?) | (attribute style:family { "ruby" }, style-ruby-properties?) | (attribute style:family { "table" }, style-table-properties?) | (attribute style:family { "table-column" }, style-table-column-properties?) | (attribute style:family { "table-row" }, style-table-row-properties?) | (attribute style:family { "table-cell" }, style-table-cell-properties?, style-paragraph-properties?, style-text-properties?) | (attribute style:family { "graphic" | "presentation" }, style-graphic-properties?, style-paragraph-properties?, style-text-properties?) | (attribute style:family { "drawing-page" }, style-drawing-page-properties?) | (attribute style:family { "chart" }, style-chart-properties?, style-graphic-properties?, style-paragraph-properties?, style-text-properties?) text-linenumbering-configuration = element text:linenumbering-configuration { text-linenumbering-configuration-attlist, text-linenumbering-separator? } text-linenumbering-configuration-attlist = attribute text:number-lines { boolean }? & common-num-format-attlist? & attribute text:style-name { styleNameRef }? & attribute text:increment { nonNegativeInteger }? & attribute text:number-position { "left" | "right" | "inner" | "outer" }? & attribute text:offset { nonNegativeLength }? & attribute text:count-empty-lines { boolean }? & attribute text:count-in-text-boxes { boolean }? & attribute text:restart-on-page { boolean }? text-linenumbering-separator = element text:linenumbering-separator { attribute text:increment { nonNegativeInteger }?, text } text-notes-configuration = element text:notes-configuration { text-notes-configuration-content } text-notes-configuration-content = text-note-class & attribute text:citation-style-name { styleNameRef }? & attribute text:citation-body-style-name { styleNameRef }? & attribute text:default-style-name { styleNameRef }? & attribute text:master-page-name { styleNameRef }? & attribute text:start-value { nonNegativeInteger }? & common-num-format-prefix-suffix-attlist & common-num-format-attlist? & attribute text:start-numbering-at { "document" | "chapter" | "page" }? & attribute text:footnotes-position { "text" | "page" | "section" | "document" }? & element text:note-continuation-notice-forward { text }? & element text:note-continuation-notice-backward { text }? text-bibliography-configuration = element text:bibliography-configuration { text-bibliography-configuration-attlist, text-sort-key* } text-bibliography-configuration-attlist = attribute text:prefix { \string }? & attribute text:suffix { \string }? & attribute text:numbered-entries { boolean }? & attribute text:sort-by-position { boolean }? & attribute fo:language { languageCode }? & attribute fo:country { countryCode }? & attribute fo:script { scriptCode }? & attribute style:rfc-language-tag { language }? & attribute text:sort-algorithm { \string }? text-sort-key = element text:sort-key { text-sort-key-attlist, empty } text-sort-key-attlist = attribute text:key { "address" | "annote" | "author" | "bibliography-type" | "booktitle" | "chapter" | "custom1" | "custom2" | "custom3" | "custom4" | "custom5" | "edition" | "editor" | "howpublished" | "identifier" | "institution" | "isbn" | "issn" | "journal" | "month" | "note" | "number" | "organizations" | "pages" | "publisher" | "report-type" | "school" | "series" | "title" | "url" | "volume" | "year" }, attribute text:sort-ascending { boolean }? text-list-style = element text:list-style { text-list-style-attr, text-list-style-content* } text-list-style-attr = attribute style:name { styleName } & attribute style:display-name { \string }? & attribute text:consecutive-numbering { boolean }? text-list-style-content = element text:list-level-style-number { text-list-level-style-attr, text-list-level-style-number-attr, style-list-level-properties?, style-text-properties? } | element text:list-level-style-bullet { text-list-level-style-attr, text-list-level-style-bullet-attr, style-list-level-properties?, style-text-properties? } | element text:list-level-style-image { text-list-level-style-attr, text-list-level-style-image-attr, style-list-level-properties? } text-list-level-style-number-attr = attribute text:style-name { styleNameRef }? & common-num-format-attlist & common-num-format-prefix-suffix-attlist & attribute text:display-levels { positiveInteger }? & attribute text:start-value { positiveInteger }? text-list-level-style-bullet-attr = attribute text:style-name { styleNameRef }? & attribute text:bullet-char { character } & common-num-format-prefix-suffix-attlist & attribute text:bullet-relative-size { percent }? text-list-level-style-image-attr = common-draw-data-attlist | office-binary-data text-list-level-style-attr = attribute text:level { positiveInteger } text-outline-style = element text:outline-style { text-outline-style-attr, text-outline-level-style+ } text-outline-style-attr = attribute style:name { styleName } text-outline-level-style = element text:outline-level-style { text-outline-level-style-attlist, style-list-level-properties?, style-text-properties? } text-outline-level-style-attlist = attribute text:level { positiveInteger } & attribute text:style-name { styleNameRef }? & common-num-format-attlist & common-num-format-prefix-suffix-attlist & attribute text:display-levels { positiveInteger }? & attribute text:start-value { positiveInteger }? style-graphic-properties = element style:graphic-properties { style-graphic-properties-content-strict } style-graphic-properties-content-strict = style-graphic-properties-attlist, style-graphic-fill-properties-attlist, style-graphic-properties-elements style-drawing-page-properties = element style:drawing-page-properties { style-drawing-page-properties-content-strict } style-drawing-page-properties-content-strict = style-graphic-fill-properties-attlist, style-drawing-page-properties-attlist, style-drawing-page-properties-elements draw-gradient = element draw:gradient { common-draw-gradient-attlist, draw-gradient-attlist, empty } common-draw-gradient-attlist = attribute draw:name { styleName }? & attribute draw:display-name { \string }? & attribute draw:style { gradient-style } & attribute draw:cx { percent }? & attribute draw:cy { percent }? & attribute draw:angle { angle }? & attribute draw:border { percent }? gradient-style = "linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular" draw-gradient-attlist = attribute draw:start-color { color }? & attribute draw:end-color { color }? & attribute draw:start-intensity { zeroToHundredPercent }? & attribute draw:end-intensity { zeroToHundredPercent }? svg-linearGradient = element svg:linearGradient { common-svg-gradient-attlist, attribute svg:x1 { coordinate | percent }?, attribute svg:y1 { coordinate | percent }?, attribute svg:x2 { coordinate | percent }?, attribute svg:y2 { coordinate | percent }?, svg-stop* } svg-radialGradient = element svg:radialGradient { common-svg-gradient-attlist, attribute svg:cx { coordinate | percent }?, attribute svg:cy { coordinate | percent }?, attribute svg:r { coordinate | percent }?, attribute svg:fx { coordinate | percent }?, attribute svg:fy { coordinate | percent }?, svg-stop* } svg-stop = element svg:stop { attribute svg:offset { double | percent }, attribute svg:stop-color { color }?, attribute svg:stop-opacity { double }? } common-svg-gradient-attlist = attribute svg:gradientUnits { "objectBoundingBox" }? & attribute svg:gradientTransform { \string }? & attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }? & attribute draw:name { styleName } & attribute draw:display-name { \string }? draw-hatch = element draw:hatch { draw-hatch-attlist, empty } draw-hatch-attlist = attribute draw:name { styleName } & attribute draw:display-name { \string }? & attribute draw:style { "single" | "double" | "triple" } & attribute draw:color { color }? & attribute draw:distance { length }? & attribute draw:rotation { angle }? draw-fill-image = element draw:fill-image { draw-fill-image-attlist, attribute xlink:type { "simple" }, attribute xlink:href { anyIRI }, attribute xlink:show { "embed" }?, attribute xlink:actuate { "onLoad" }?, empty } draw-fill-image-attlist = attribute draw:name { styleName } & attribute draw:display-name { \string }? & attribute svg:width { length }? & attribute svg:height { length }? draw-opacity = element draw:opacity { common-draw-gradient-attlist, draw-opacity-attlist, empty } draw-opacity-attlist = attribute draw:start { zeroToHundredPercent }?, attribute draw:end { zeroToHundredPercent }? draw-marker = element draw:marker { draw-marker-attlist, common-draw-viewbox-attlist, common-draw-path-data-attlist, empty } draw-marker-attlist = attribute draw:name { styleName } & attribute draw:display-name { \string }? draw-stroke-dash = element draw:stroke-dash { draw-stroke-dash-attlist, empty } draw-stroke-dash-attlist = attribute draw:name { styleName } & attribute draw:display-name { \string }? & attribute draw:style { "rect" | "round" }? & attribute draw:dots1 { integer }? & attribute draw:dots1-length { length | percent }? & attribute draw:dots2 { integer }? & attribute draw:dots2-length { length | percent }? & attribute draw:distance { length | percent }? style-presentation-page-layout = element style:presentation-page-layout { attribute style:name { styleName }, attribute style:display-name { \string }?, presentation-placeholder* } presentation-placeholder = element presentation:placeholder { attribute presentation:object { presentation-classes }, attribute svg:x { coordinate | percent }, attribute svg:y { coordinate | percent }, attribute svg:width { length | percent }, attribute svg:height { length | percent }, empty } style-page-layout-properties = element style:page-layout-properties { style-page-layout-properties-content-strict } style-page-layout-properties-content-strict = style-page-layout-properties-attlist, style-page-layout-properties-elements style-page-layout-properties-attlist = attribute fo:page-width { length }? & attribute fo:page-height { length }? & common-num-format-attlist? & common-num-format-prefix-suffix-attlist & attribute style:paper-tray-name { "default" | \string }? & attribute style:print-orientation { "portrait" | "landscape" }? & common-horizontal-margin-attlist & common-vertical-margin-attlist & common-margin-attlist & common-border-attlist & common-border-line-width-attlist & common-padding-attlist & common-shadow-attlist & common-background-color-attlist & attribute style:register-truth-ref-style-name { styleNameRef }? & attribute style:print { list { ("headers" | "grid" | "annotations" | "objects" | "charts" | "drawings" | "formulas" | "zero-values")* } }? & attribute style:print-page-order { "ttb" | "ltr" }? & attribute style:first-page-number { positiveInteger | "continue" }? & attribute style:scale-to { percent }? & attribute style:scale-to-pages { positiveInteger }? & attribute style:table-centering { "horizontal" | "vertical" | "both" | "none" }? & attribute style:footnote-max-height { length }? & common-writing-mode-attlist & attribute style:layout-grid-mode { "none" | "line" | "both" }? & attribute style:layout-grid-standard-mode { boolean }? & attribute style:layout-grid-base-height { length }? & attribute style:layout-grid-ruby-height { length }? & attribute style:layout-grid-lines { positiveInteger }? & attribute style:layout-grid-base-width { length }? & attribute style:layout-grid-color { color }? & attribute style:layout-grid-ruby-below { boolean }? & attribute style:layout-grid-print { boolean }? & attribute style:layout-grid-display { boolean }? & attribute style:layout-grid-snap-to { boolean }? style-page-layout-properties-elements = style-background-image & style-columns & style-footnote-sep style-footnote-sep = element style:footnote-sep { style-footnote-sep-attlist, empty }? style-footnote-sep-attlist = attribute style:width { length }?, attribute style:rel-width { percent }?, attribute style:color { color }?, attribute style:line-style { lineStyle }?, attribute style:adjustment { "left" | "center" | "right" }?, attribute style:distance-before-sep { length }?, attribute style:distance-after-sep { length }? style-header-footer-properties = element style:header-footer-properties { style-header-footer-properties-content-strict } style-header-footer-properties-content-strict = style-header-footer-properties-attlist, style-header-footer-properties-elements style-header-footer-properties-attlist = attribute svg:height { length }? & attribute fo:min-height { length }? & common-horizontal-margin-attlist & common-vertical-margin-attlist & common-margin-attlist & common-border-attlist & common-border-line-width-attlist & common-padding-attlist & common-background-color-attlist & common-shadow-attlist & attribute style:dynamic-spacing { boolean }? style-header-footer-properties-elements = style-background-image style-text-properties = element style:text-properties { style-text-properties-content-strict } style-text-properties-content-strict = style-text-properties-attlist, style-text-properties-elements style-text-properties-elements = empty style-text-properties-attlist = attribute fo:font-variant { fontVariant }? & attribute fo:text-transform { "none" | "lowercase" | "uppercase" | "capitalize" }? & attribute fo:color { color }? & attribute style:use-window-font-color { boolean }? & attribute style:text-outline { boolean }? & attribute style:text-line-through-type { lineType }? & attribute style:text-line-through-style { lineStyle }? & attribute style:text-line-through-width { lineWidth }? & attribute style:text-line-through-color { "font-color" | color }? & attribute style:text-line-through-text { \string }? & attribute style:text-line-through-text-style { styleNameRef }? & attribute style:text-position { list { (percent | "super" | "sub"), percent? } }? & attribute style:font-name { \string }? & attribute style:font-name-asian { \string }? & attribute style:font-name-complex { \string }? & attribute fo:font-family { \string }? & attribute style:font-family-asian { \string }? & attribute style:font-family-complex { \string }? & attribute style:font-family-generic { fontFamilyGeneric }? & attribute style:font-family-generic-asian { fontFamilyGeneric }? & attribute style:font-family-generic-complex { fontFamilyGeneric }? & attribute style:font-style-name { \string }? & attribute style:font-style-name-asian { \string }? & attribute style:font-style-name-complex { \string }? & attribute style:font-pitch { fontPitch }? & attribute style:font-pitch-asian { fontPitch }? & attribute style:font-pitch-complex { fontPitch }? & attribute style:font-charset { textEncoding }? & attribute style:font-charset-asian { textEncoding }? & attribute style:font-charset-complex { textEncoding }? & attribute fo:font-size { positiveLength | percent }? & attribute style:font-size-asian { positiveLength | percent }? & attribute style:font-size-complex { positiveLength | percent }? & attribute style:font-size-rel { length }? & attribute style:font-size-rel-asian { length }? & attribute style:font-size-rel-complex { length }? & attribute style:script-type { "latin" | "asian" | "complex" | "ignore" }? & attribute fo:letter-spacing { length | "normal" }? & attribute fo:language { languageCode }? & attribute style:language-asian { languageCode }? & attribute style:language-complex { languageCode }? & attribute fo:country { countryCode }? & attribute style:country-asian { countryCode }? & attribute style:country-complex { countryCode }? & attribute fo:script { scriptCode }? & attribute style:script-asian { scriptCode }? & attribute style:script-complex { scriptCode }? & attribute style:rfc-language-tag { language }? & attribute style:rfc-language-tag-asian { language }? & attribute style:rfc-language-tag-complex { language }? & attribute fo:font-style { fontStyle }? & attribute style:font-style-asian { fontStyle }? & attribute style:font-style-complex { fontStyle }? & attribute style:font-relief { "none" | "embossed" | "engraved" }? & attribute fo:text-shadow { shadowType }? & attribute style:text-underline-type { lineType }? & attribute style:text-underline-style { lineStyle }? & attribute style:text-underline-width { lineWidth }? & attribute style:text-underline-color { "font-color" | color }? & attribute style:text-overline-type { lineType }? & attribute style:text-overline-style { lineStyle }? & attribute style:text-overline-width { lineWidth }? & attribute style:text-overline-color { "font-color" | color }? & attribute style:text-overline-mode { lineMode }? & attribute fo:font-weight { fontWeight }? & attribute style:font-weight-asian { fontWeight }? & attribute style:font-weight-complex { fontWeight }? & attribute style:text-underline-mode { lineMode }? & attribute style:text-line-through-mode { lineMode }? & attribute style:letter-kerning { boolean }? & attribute style:text-blinking { boolean }? & common-background-color-attlist & attribute style:text-combine { "none" | "letters" | "lines" }? & attribute style:text-combine-start-char { character }? & attribute style:text-combine-end-char { character }? & attribute style:text-emphasize { "none" | list { ("none" | "accent" | "dot" | "circle" | "disc"), ("above" | "below") } }? & attribute style:text-scale { percent }? & attribute style:text-rotation-angle { angle }? & attribute style:text-rotation-scale { "fixed" | "line-height" }? & attribute fo:hyphenate { boolean }? & attribute fo:hyphenation-remain-char-count { positiveInteger }? & attribute fo:hyphenation-push-char-count { positiveInteger }? & (attribute text:display { "true" } | attribute text:display { "none" } | (attribute text:display { "condition" }, attribute text:condition { "none" }) | empty) fontVariant = "normal" | "small-caps" fontFamilyGeneric = "roman" | "swiss" | "modern" | "decorative" | "script" | "system" fontPitch = "fixed" | "variable" textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" } fontStyle = "normal" | "italic" | "oblique" shadowType = "none" | \string lineType = "none" | "single" | "double" lineStyle = "none" | "solid" | "dotted" | "dash" | "long-dash" | "dot-dash" | "dot-dot-dash" | "wave" lineWidth = "auto" | "normal" | "bold" | "thin" | "medium" | "thick" | positiveInteger | percent | positiveLength fontWeight = "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" lineMode = "continuous" | "skip-white-space" style-paragraph-properties = element style:paragraph-properties { style-paragraph-properties-content-strict } style-paragraph-properties-content-strict = style-paragraph-properties-attlist, style-paragraph-properties-elements style-paragraph-properties-attlist = attribute fo:line-height { "normal" | nonNegativeLength | percent }? & attribute style:line-height-at-least { nonNegativeLength }? & attribute style:line-spacing { length }? & attribute style:font-independent-line-spacing { boolean }? & common-text-align & attribute fo:text-align-last { "start" | "center" | "justify" }? & attribute style:justify-single-word { boolean }? & attribute fo:keep-together { "auto" | "always" }? & attribute fo:widows { nonNegativeInteger }? & attribute fo:orphans { nonNegativeInteger }? & attribute style:tab-stop-distance { nonNegativeLength }? & attribute fo:hyphenation-keep { "auto" | "page" }? & attribute fo:hyphenation-ladder-count { "no-limit" | positiveInteger }? & attribute style:register-true { boolean }? & common-horizontal-margin-attlist & attribute fo:text-indent { length | percent }? & attribute style:auto-text-indent { boolean }? & common-vertical-margin-attlist & common-margin-attlist & common-break-attlist & common-background-color-attlist & common-border-attlist & common-border-line-width-attlist & attribute style:join-border { boolean }? & common-padding-attlist & common-shadow-attlist & common-keep-with-next-attlist & attribute text:number-lines { boolean }? & attribute text:line-number { nonNegativeInteger }? & attribute style:text-autospace { "none" | "ideograph-alpha" }? & attribute style:punctuation-wrap { "simple" | "hanging" }? & attribute style:line-break { "normal" | "strict" }? & attribute style:vertical-align { "top" | "middle" | "bottom" | "auto" | "baseline" }? & common-writing-mode-attlist & attribute style:writing-mode-automatic { boolean }? & attribute style:snap-to-layout-grid { boolean }? & common-page-number-attlist & common-background-transparency-attlist common-text-align = attribute fo:text-align { "start" | "end" | "left" | "right" | "center" | "justify" }? style-paragraph-properties-elements = style-tab-stops & style-drop-cap & style-background-image style-tab-stops = element style:tab-stops { style-tab-stop* }? style-tab-stop = element style:tab-stop { style-tab-stop-attlist, empty } style-tab-stop-attlist = attribute style:position { length } & (attribute style:type { "left" | "center" | "right" }? | (attribute style:type { "char" }, style-tab-stop-char-attlist)) & attribute style:leader-type { lineType }? & attribute style:leader-style { lineStyle }? & attribute style:leader-width { lineWidth }? & attribute style:leader-color { "font-color" | color }? & attribute style:leader-text { character }? & attribute style:leader-text-style { styleNameRef }? style-tab-stop-char-attlist = attribute style:char { character } style-drop-cap = element style:drop-cap { style-drop-cap-attlist, empty }? style-drop-cap-attlist = attribute style:length { "word" | positiveInteger }? & attribute style:lines { positiveInteger }? & attribute style:distance { length }? & attribute style:style-name { styleNameRef }? common-horizontal-margin-attlist = attribute fo:margin-left { length | percent }?, attribute fo:margin-right { length | percent }? common-vertical-margin-attlist = attribute fo:margin-top { nonNegativeLength | percent }?, attribute fo:margin-bottom { nonNegativeLength | percent }? common-margin-attlist = attribute fo:margin { nonNegativeLength | percent }? common-break-attlist = attribute fo:break-before { "auto" | "column" | "page" }?, attribute fo:break-after { "auto" | "column" | "page" }? common-background-color-attlist = attribute fo:background-color { "transparent" | color }? style-background-image = element style:background-image { style-background-image-attlist, (common-draw-data-attlist | office-binary-data | empty) }? style-background-image-attlist = attribute style:repeat { "no-repeat" | "repeat" | "stretch" }? & attribute style:position { "left" | "center" | "right" | "top" | "bottom" | list { horiBackPos, vertBackPos } | list { vertBackPos, horiBackPos } }? & attribute style:filter-name { \string }? & attribute draw:opacity { zeroToHundredPercent }? horiBackPos = "left" | "center" | "right" vertBackPos = "top" | "center" | "bottom" common-border-attlist = attribute fo:border { \string }?, attribute fo:border-top { \string }?, attribute fo:border-bottom { \string }?, attribute fo:border-left { \string }?, attribute fo:border-right { \string }? common-border-line-width-attlist = attribute style:border-line-width { borderWidths }?, attribute style:border-line-width-top { borderWidths }?, attribute style:border-line-width-bottom { borderWidths }?, attribute style:border-line-width-left { borderWidths }?, attribute style:border-line-width-right { borderWidths }? borderWidths = list { positiveLength, positiveLength, positiveLength } common-padding-attlist = attribute fo:padding { nonNegativeLength }?, attribute fo:padding-top { nonNegativeLength }?, attribute fo:padding-bottom { nonNegativeLength }?, attribute fo:padding-left { nonNegativeLength }?, attribute fo:padding-right { nonNegativeLength }? common-shadow-attlist = attribute style:shadow { shadowType }? common-keep-with-next-attlist = attribute fo:keep-with-next { "auto" | "always" }? common-writing-mode-attlist = attribute style:writing-mode { "lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page" }? common-page-number-attlist = attribute style:page-number { positiveInteger | "auto" }? common-background-transparency-attlist = attribute style:background-transparency { zeroToHundredPercent }? style-ruby-properties = element style:ruby-properties { style-ruby-properties-content-strict } style-ruby-properties-content-strict = style-ruby-properties-attlist, style-ruby-properties-elements style-ruby-properties-elements = empty style-ruby-properties-attlist = attribute style:ruby-position { "above" | "below" }? & attribute style:ruby-align { "left" | "center" | "right" | "distribute-letter" | "distribute-space" }? style-section-properties = element style:section-properties { style-section-properties-content-strict } style-section-properties-content-strict = style-section-properties-attlist, style-section-properties-elements style-section-properties-attlist = common-background-color-attlist & common-horizontal-margin-attlist & attribute style:protect { boolean }? & common-editable-attlist & attribute text:dont-balance-text-columns { boolean }? & common-writing-mode-attlist style-section-properties-elements = style-background-image & style-columns & text-notes-configuration* style-columns = element style:columns { style-columns-attlist, style-column-sep?, style-column* }? style-columns-attlist = attribute fo:column-count { positiveInteger } & attribute fo:column-gap { length }? style-column = element style:column { style-column-attlist } style-column-attlist = attribute style:rel-width { relativeLength } & attribute fo:start-indent { length }? & attribute fo:end-indent { length }? & attribute fo:space-before { length }? & attribute fo:space-after { length }? style-column-sep = element style:column-sep { style-column-sep-attlist } style-column-sep-attlist = attribute style:style { "none" | "solid" | "dotted" | "dashed" | "dot-dashed" }? & attribute style:width { length } & attribute style:height { zeroToHundredPercent }? & attribute style:vertical-align { "top" | "middle" | "bottom" }? & attribute style:color { color }? style-table-properties = element style:table-properties { style-table-properties-content-strict } style-table-properties-content-strict = style-table-properties-attlist, style-table-properties-elements style-table-properties-attlist = attribute style:width { positiveLength }? & attribute style:rel-width { percent }? & attribute table:align { "left" | "center" | "right" | "margins" }? & common-horizontal-margin-attlist & common-vertical-margin-attlist & common-margin-attlist & common-page-number-attlist & common-break-attlist & common-background-color-attlist & common-shadow-attlist & common-keep-with-next-attlist & attribute style:may-break-between-rows { boolean }? & attribute table:border-model { "collapsing" | "separating" }? & common-writing-mode-attlist & attribute table:display { boolean }? style-table-properties-elements = style-background-image style-table-column-properties = element style:table-column-properties { style-table-column-properties-content-strict } style-table-column-properties-content-strict = style-table-column-properties-attlist, style-table-column-properties-elements style-table-column-properties-elements = empty style-table-column-properties-attlist = attribute style:column-width { positiveLength }? & attribute style:rel-column-width { relativeLength }? & attribute style:use-optimal-column-width { boolean }? & common-break-attlist style-table-row-properties = element style:table-row-properties { style-table-row-properties-content-strict } style-table-row-properties-content-strict = style-table-row-properties-attlist, style-table-row-properties-elements style-table-row-properties-attlist = attribute style:row-height { positiveLength }? & attribute style:min-row-height { nonNegativeLength }? & attribute style:use-optimal-row-height { boolean }? & common-background-color-attlist & common-break-attlist & attribute fo:keep-together { "auto" | "always" }? style-table-row-properties-elements = style-background-image style-table-cell-properties = element style:table-cell-properties { style-table-cell-properties-content-strict } style-table-cell-properties-content-strict = style-table-cell-properties-attlist, style-table-cell-properties-elements style-table-cell-properties-attlist = attribute style:vertical-align { "top" | "middle" | "bottom" | "automatic" }? & attribute style:text-align-source { "fix" | "value-type" }? & common-style-direction-attlist & attribute style:glyph-orientation-vertical { "auto" | "0" | "0deg" | "0rad" | "0grad" }? & common-writing-mode-attlist & common-shadow-attlist & common-background-color-attlist & common-border-attlist & attribute style:diagonal-tl-br { \string }? & attribute style:diagonal-tl-br-widths { borderWidths }? & attribute style:diagonal-bl-tr { \string }? & attribute style:diagonal-bl-tr-widths { borderWidths }? & common-border-line-width-attlist & common-padding-attlist & attribute fo:wrap-option { "no-wrap" | "wrap" }? & common-rotation-angle-attlist & attribute style:rotation-align { "none" | "bottom" | "top" | "center" }? & attribute style:cell-protect { "none" | "hidden-and-protected" | list { ("protected" | "formula-hidden")+ } }? & attribute style:print-content { boolean }? & attribute style:decimal-places { nonNegativeInteger }? & attribute style:repeat-content { boolean }? & attribute style:shrink-to-fit { boolean }? common-style-direction-attlist = attribute style:direction { "ltr" | "ttb" }? style-table-cell-properties-elements = style-background-image common-rotation-angle-attlist = attribute style:rotation-angle { angle }? style-list-level-properties = element style:list-level-properties { style-list-level-properties-content-strict } style-list-level-properties-content-strict = style-list-level-properties-attlist, style-list-level-properties-elements style-list-level-properties-attlist = common-text-align & attribute text:space-before { length }? & attribute text:min-label-width { nonNegativeLength }? & attribute text:min-label-distance { nonNegativeLength }? & attribute style:font-name { \string }? & attribute fo:width { positiveLength }? & attribute fo:height { positiveLength }? & common-vertical-rel-attlist & common-vertical-pos-attlist & attribute text:list-level-position-and-space-mode { "label-width-and-position" | "label-alignment" }? style-list-level-properties-elements = style-list-level-label-alignment style-list-level-label-alignment = element style:list-level-label-alignment { style-list-level-label-alignment-attlist, empty }? style-list-level-label-alignment-attlist = attribute text:label-followed-by { "listtab" | "space" | "nothing" } & attribute text:list-tab-stop-position { length }? & attribute fo:text-indent { length }? & attribute fo:margin-left { length }? style-graphic-properties-attlist = attribute draw:stroke { "none" | "dash" | "solid" }? & attribute draw:stroke-dash { styleNameRef }? & attribute draw:stroke-dash-names { styleNameRefs }? & attribute svg:stroke-width { length }? & attribute svg:stroke-color { color }? & attribute draw:marker-start { styleNameRef }? & attribute draw:marker-end { styleNameRef }? & attribute draw:marker-start-width { length }? & attribute draw:marker-end-width { length }? & attribute draw:marker-start-center { boolean }? & attribute draw:marker-end-center { boolean }? & attribute svg:stroke-opacity { xsd:double { minInclusive = "0" maxInclusive = "1" } | zeroToHundredPercent }? & attribute draw:stroke-linejoin { "miter" | "round" | "bevel" | "middle" | "none" }? & attribute svg:stroke-linecap { "butt" | "square" | "round" }? & attribute draw:symbol-color { color }? & attribute text:animation { "none" | "scroll" | "alternate" | "slide" }? & attribute text:animation-direction { "left" | "right" | "up" | "down" }? & attribute text:animation-start-inside { boolean }? & attribute text:animation-stop-inside { boolean }? & attribute text:animation-repeat { nonNegativeInteger }? & attribute text:animation-delay { duration }? & attribute text:animation-steps { length }? & attribute draw:auto-grow-width { boolean }? & attribute draw:auto-grow-height { boolean }? & attribute draw:fit-to-size { boolean }? & attribute draw:fit-to-contour { boolean }? & attribute draw:textarea-vertical-align { "top" | "middle" | "bottom" | "justify" }? & attribute draw:textarea-horizontal-align { "left" | "center" | "right" | "justify" }? & attribute fo:wrap-option { "no-wrap" | "wrap" }? & attribute style:shrink-to-fit { boolean }? & attribute draw:color-mode { "greyscale" | "mono" | "watermark" | "standard" }? & attribute draw:color-inversion { boolean }? & attribute draw:luminance { zeroToHundredPercent }? & attribute draw:contrast { percent }? & attribute draw:gamma { percent }? & attribute draw:red { signedZeroToHundredPercent }? & attribute draw:green { signedZeroToHundredPercent }? & attribute draw:blue { signedZeroToHundredPercent }? & attribute draw:image-opacity { zeroToHundredPercent }? & attribute draw:shadow { "visible" | "hidden" }? & attribute draw:shadow-offset-x { length }? & attribute draw:shadow-offset-y { length }? & attribute draw:shadow-color { color }? & attribute draw:shadow-opacity { zeroToHundredPercent }? & attribute draw:start-line-spacing-horizontal { distance }? & attribute draw:start-line-spacing-vertical { distance }? & attribute draw:end-line-spacing-horizontal { distance }? & attribute draw:end-line-spacing-vertical { distance }? & attribute draw:line-distance { distance }? & attribute draw:guide-overhang { length }? & attribute draw:guide-distance { distance }? & attribute draw:start-guide { length }? & attribute draw:end-guide { length }? & attribute draw:placing { "below" | "above" }? & attribute draw:parallel { boolean }? & attribute draw:measure-align { "automatic" | "left-outside" | "inside" | "right-outside" }? & attribute draw:measure-vertical-align { "automatic" | "above" | "below" | "center" }? & attribute draw:unit { "automatic" | "mm" | "cm" | "m" | "km" | "pt" | "pc" | "inch" | "ft" | "mi" }? & attribute draw:show-unit { boolean }? & attribute draw:decimal-places { nonNegativeInteger }? & attribute draw:caption-type { "straight-line" | "angled-line" | "angled-connector-line" }? & attribute draw:caption-angle-type { "fixed" | "free" }? & attribute draw:caption-angle { angle }? & attribute draw:caption-gap { distance }? & attribute draw:caption-escape-direction { "horizontal" | "vertical" | "auto" }? & attribute draw:caption-escape { length | percent }? & attribute draw:caption-line-length { length }? & attribute draw:caption-fit-line-length { boolean }? & attribute dr3d:horizontal-segments { nonNegativeInteger }? & attribute dr3d:vertical-segments { nonNegativeInteger }? & attribute dr3d:edge-rounding { percent }? & attribute dr3d:edge-rounding-mode { "correct" | "attractive" }? & attribute dr3d:back-scale { percent }? & attribute dr3d:depth { length }? & attribute dr3d:backface-culling { "enabled" | "disabled" }? & attribute dr3d:end-angle { angle }? & attribute dr3d:close-front { boolean }? & attribute dr3d:close-back { boolean }? & attribute dr3d:lighting-mode { "standard" | "double-sided" }? & attribute dr3d:normals-kind { "object" | "flat" | "sphere" }? & attribute dr3d:normals-direction { "normal" | "inverse" }? & attribute dr3d:texture-generation-mode-x { "object" | "parallel" | "sphere" }? & attribute dr3d:texture-generation-mode-y { "object" | "parallel" | "sphere" }? & attribute dr3d:texture-kind { "luminance" | "intensity" | "color" }? & attribute dr3d:texture-filter { "enabled" | "disabled" }? & attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }? & attribute dr3d:ambient-color { color }? & attribute dr3d:emissive-color { color }? & attribute dr3d:specular-color { color }? & attribute dr3d:diffuse-color { color }? & attribute dr3d:shininess { percent }? & attribute dr3d:shadow { "visible" | "hidden" }? & common-draw-rel-size-attlist & attribute fo:min-width { length | percent }? & attribute fo:min-height { length | percent }? & attribute fo:max-height { length | percent }? & attribute fo:max-width { length | percent }? & common-horizontal-margin-attlist & common-vertical-margin-attlist & common-margin-attlist & attribute style:print-content { boolean }? & attribute style:protect { "none" | list { ("content" | "position" | "size")+ } }? & attribute style:horizontal-pos { "left" | "center" | "right" | "from-left" | "inside" | "outside" | "from-inside" }? & attribute svg:x { coordinate }? & attribute style:horizontal-rel { "page" | "page-content" | "page-start-margin" | "page-end-margin" | "frame" | "frame-content" | "frame-start-margin" | "frame-end-margin" | "paragraph" | "paragraph-content" | "paragraph-start-margin" | "paragraph-end-margin" | "char" }? & common-vertical-pos-attlist & common-vertical-rel-attlist & common-text-anchor-attlist & common-border-attlist & common-border-line-width-attlist & common-padding-attlist & common-shadow-attlist & common-background-color-attlist & common-background-transparency-attlist & common-editable-attlist & attribute style:wrap { "none" | "left" | "right" | "parallel" | "dynamic" | "run-through" | "biggest" }? & attribute style:wrap-dynamic-threshold { nonNegativeLength }? & attribute style:number-wrapped-paragraphs { "no-limit" | positiveInteger }? & attribute style:wrap-contour { boolean }? & attribute style:wrap-contour-mode { "full" | "outside" }? & attribute style:run-through { "foreground" | "background" }? & attribute style:flow-with-text { boolean }? & attribute style:overflow-behavior { "clip" | "auto-create-new-frame" }? & attribute style:mirror { "none" | "vertical" | horizontal-mirror | list { "vertical", horizontal-mirror } | list { horizontal-mirror, "vertical" } }? & attribute fo:clip { "auto" | clipShape }? & attribute draw:wrap-influence-on-position { "iterative" | "once-concurrent" | "once-successive" }? & common-writing-mode-attlist & attribute draw:frame-display-scrollbar { boolean }? & attribute draw:frame-display-border { boolean }? & attribute draw:frame-margin-horizontal { nonNegativePixelLength }? & attribute draw:frame-margin-vertical { nonNegativePixelLength }? & attribute draw:visible-area-left { nonNegativeLength }? & attribute draw:visible-area-top { nonNegativeLength }? & attribute draw:visible-area-width { positiveLength }? & attribute draw:visible-area-height { positiveLength }? & attribute draw:draw-aspect { "content" | "thumbnail" | "icon" | "print-view" }? & attribute draw:ole-draw-aspect { nonNegativeInteger }? style-graphic-fill-properties-attlist = attribute draw:fill { "none" | "solid" | "bitmap" | "gradient" | "hatch" }? & attribute draw:fill-color { color }? & attribute draw:secondary-fill-color { color }? & attribute draw:fill-gradient-name { styleNameRef }? & attribute draw:gradient-step-count { nonNegativeInteger }? & attribute draw:fill-hatch-name { styleNameRef }? & attribute draw:fill-hatch-solid { boolean }? & attribute draw:fill-image-name { styleNameRef }? & attribute style:repeat { "no-repeat" | "repeat" | "stretch" }? & attribute draw:fill-image-width { length | percent }? & attribute draw:fill-image-height { length | percent }? & attribute draw:fill-image-ref-point-x { percent }? & attribute draw:fill-image-ref-point-y { percent }? & attribute draw:fill-image-ref-point { "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right" }? & attribute draw:tile-repeat-offset { list { zeroToHundredPercent, ("horizontal" | "vertical") } }? & attribute draw:opacity { zeroToHundredPercent }? & attribute draw:opacity-name { styleNameRef }? & attribute svg:fill-rule { "nonzero" | "evenodd" }? style-graphic-properties-elements = text-list-style? & style-background-image & style-columns common-vertical-pos-attlist = attribute style:vertical-pos { "top" | "middle" | "bottom" | "from-top" | "below" }?, attribute svg:y { coordinate }? common-vertical-rel-attlist = attribute style:vertical-rel { "page" | "page-content" | "frame" | "frame-content" | "paragraph" | "paragraph-content" | "char" | "line" | "baseline" | "text" }? common-editable-attlist = attribute style:editable { boolean }? horizontal-mirror = "horizontal" | "horizontal-on-odd" | "horizontal-on-even" clipShape = xsd:string { pattern = "rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\)" } nonNegativePixelLength = xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" } style-chart-properties = element style:chart-properties { style-chart-properties-content-strict } style-chart-properties-content-strict = style-chart-properties-attlist, style-chart-properties-elements style-chart-properties-elements = empty style-chart-properties-attlist = attribute chart:scale-text { boolean }? & attribute chart:three-dimensional { boolean }? & attribute chart:deep { boolean }? & attribute chart:right-angled-axes { boolean }? & (attribute chart:symbol-type { "none" } | attribute chart:symbol-type { "automatic" } | (attribute chart:symbol-type { "named-symbol" }, attribute chart:symbol-name { "square" | "diamond" | "arrow-down" | "arrow-up" | "arrow-right" | "arrow-left" | "bow-tie" | "hourglass" | "circle" | "star" | "x" | "plus" | "asterisk" | "horizontal-bar" | "vertical-bar" }) | (attribute chart:symbol-type { "image" }, element chart:symbol-image { attribute xlink:href { anyIRI } }) | empty) & attribute chart:symbol-width { nonNegativeLength }? & attribute chart:symbol-height { nonNegativeLength }? & attribute chart:sort-by-x-values { boolean }? & attribute chart:vertical { boolean }? & attribute chart:connect-bars { boolean }? & attribute chart:gap-width { integer }? & attribute chart:overlap { integer }? & attribute chart:group-bars-per-axis { boolean }? & attribute chart:japanese-candle-stick { boolean }? & attribute chart:interpolation { "none" | "cubic-spline" | "b-spline" }? & attribute chart:spline-order { positiveInteger }? & attribute chart:spline-resolution { positiveInteger }? & attribute chart:pie-offset { nonNegativeInteger }? & attribute chart:angle-offset { angle }? & attribute chart:hole-size { percent }? & attribute chart:lines { boolean }? & attribute chart:solid-type { "cuboid" | "cylinder" | "cone" | "pyramid" }? & attribute chart:stacked { boolean }? & attribute chart:percentage { boolean }? & attribute chart:treat-empty-cells { "use-zero" | "leave-gap" | "ignore" }? & attribute chart:link-data-style-to-source { boolean }? & attribute chart:logarithmic { boolean }? & attribute chart:maximum { double }? & attribute chart:minimum { double }? & attribute chart:origin { double }? & attribute chart:interval-major { double }? & attribute chart:interval-minor-divisor { positiveInteger }? & attribute chart:tick-marks-major-inner { boolean }? & attribute chart:tick-marks-major-outer { boolean }? & attribute chart:tick-marks-minor-inner { boolean }? & attribute chart:tick-marks-minor-outer { boolean }? & attribute chart:reverse-direction { boolean }? & attribute chart:display-label { boolean }? & attribute chart:text-overlap { boolean }? & attribute text:line-break { boolean }? & attribute chart:label-arrangement { "side-by-side" | "stagger-even" | "stagger-odd" }? & common-style-direction-attlist & common-rotation-angle-attlist & attribute chart:data-label-number { "none" | "value" | "percentage" | "value-and-percentage" }? & attribute chart:data-label-text { boolean }? & attribute chart:data-label-symbol { boolean }? & element chart:label-separator { text-p }? & attribute chart:label-position { labelPositions }? & attribute chart:label-position-negative { labelPositions }? & attribute chart:visible { boolean }? & attribute chart:auto-position { boolean }? & attribute chart:auto-size { boolean }? & attribute chart:mean-value { boolean }? & attribute chart:error-category { "none" | "variance" | "standard-deviation" | "percentage" | "error-margin" | "constant" | "standard-error" | "cell-range" }? & attribute chart:error-percentage { double }? & attribute chart:error-margin { double }? & attribute chart:error-lower-limit { double }? & attribute chart:error-upper-limit { double }? & attribute chart:error-upper-indicator { boolean }? & attribute chart:error-lower-indicator { boolean }? & attribute chart:error-lower-range { cellRangeAddressList }? & attribute chart:error-upper-range { cellRangeAddressList }? & attribute chart:series-source { "columns" | "rows" }? & attribute chart:regression-type { "none" | "linear" | "logarithmic" | "exponential" | "power" }? & attribute chart:axis-position { "start" | "end" | double }? & attribute chart:axis-label-position { "near-axis" | "near-axis-other-side" | "outside-start" | "outside-end" }? & attribute chart:tick-mark-position { "at-labels" | "at-axis" | "at-labels-and-axis" }? & attribute chart:include-hidden-cells { boolean }? labelPositions = "avoid-overlap" | "center" | "top" | "top-right" | "right" | "bottom-right" | "bottom" | "bottom-left" | "left" | "top-left" | "inside" | "outside" | "near-origin" style-drawing-page-properties-attlist = attribute presentation:transition-type { "manual" | "automatic" | "semi-automatic" }? & attribute presentation:transition-style { "none" | "fade-from-left" | "fade-from-top" | "fade-from-right" | "fade-from-bottom" | "fade-from-upperleft" | "fade-from-upperright" | "fade-from-lowerleft" | "fade-from-lowerright" | "move-from-left" | "move-from-top" | "move-from-right" | "move-from-bottom" | "move-from-upperleft" | "move-from-upperright" | "move-from-lowerleft" | "move-from-lowerright" | "uncover-to-left" | "uncover-to-top" | "uncover-to-right" | "uncover-to-bottom" | "uncover-to-upperleft" | "uncover-to-upperright" | "uncover-to-lowerleft" | "uncover-to-lowerright" | "fade-to-center" | "fade-from-center" | "vertical-stripes" | "horizontal-stripes" | "clockwise" | "counterclockwise" | "open-vertical" | "open-horizontal" | "close-vertical" | "close-horizontal" | "wavyline-from-left" | "wavyline-from-top" | "wavyline-from-right" | "wavyline-from-bottom" | "spiralin-left" | "spiralin-right" | "spiralout-left" | "spiralout-right" | "roll-from-top" | "roll-from-left" | "roll-from-right" | "roll-from-bottom" | "stretch-from-left" | "stretch-from-top" | "stretch-from-right" | "stretch-from-bottom" | "vertical-lines" | "horizontal-lines" | "dissolve" | "random" | "vertical-checkerboard" | "horizontal-checkerboard" | "interlocking-horizontal-left" | "interlocking-horizontal-right" | "interlocking-vertical-top" | "interlocking-vertical-bottom" | "fly-away" | "open" | "close" | "melt" }? & attribute presentation:transition-speed { presentationSpeeds }? & attribute smil:type { \string }? & attribute smil:subtype { \string }? & attribute smil:direction { "forward" | "reverse" }? & attribute smil:fadeColor { color }? & attribute presentation:duration { duration }? & attribute presentation:visibility { "visible" | "hidden" }? & attribute draw:background-size { "full" | "border" }? & attribute presentation:background-objects-visible { boolean }? & attribute presentation:background-visible { boolean }? & attribute presentation:display-header { boolean }? & attribute presentation:display-footer { boolean }? & attribute presentation:display-page-number { boolean }? & attribute presentation:display-date-time { boolean }? style-drawing-page-properties-elements = presentation-sound? \string = xsd:string date = xsd:date time = xsd:time dateTime = xsd:dateTime duration = xsd:duration integer = xsd:integer nonNegativeInteger = xsd:nonNegativeInteger positiveInteger = xsd:positiveInteger double = xsd:double anyURI = xsd:anyURI base64Binary = xsd:base64Binary ID = xsd:ID IDREF = xsd:IDREF IDREFS = xsd:IDREFS NCName = xsd:NCName boolean = "true" | "false" dateOrDateTime = xsd:date | xsd:dateTime timeOrDateTime = xsd:time | xsd:dateTime language = xsd:language countryCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" } languageCode = xsd:token { pattern = "[A-Za-z]{1,8}" } scriptCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" } character = xsd:string { length = "1" } length = xsd:string { pattern = "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))" } nonNegativeLength = xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))" } positiveLength = xsd:string { pattern = "([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px))" } percent = xsd:string { pattern = "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%" } zeroToHundredPercent = xsd:string { pattern = "([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%" } signedZeroToHundredPercent = xsd:string { pattern = "-?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%" } relativeLength = xsd:string { pattern = "[0-9]+\*" } coordinate = length distance = length color = xsd:string { pattern = "#[0-9a-fA-F]{6}" } angle = xsd:string CURIE = xsd:string { pattern = "(([\i-[:]][\c-[:]]*)?:)?.+" minLength = "1" } CURIEs = list { CURIE+ } SafeCURIE = xsd:string { pattern = "\[(([\i-[:]][\c-[:]]*)?:)?.+\]" minLength = "3" } URIorSafeCURIE = anyURI | SafeCURIE styleName = xsd:NCName styleNameRef = xsd:NCName | empty styleNameRefs = list { xsd:NCName* } variableName = xsd:string targetFrameName = "_self" | "_blank" | "_parent" | "_top" | \string valueType = "float" | "time" | "date" | "percentage" | "currency" | "boolean" | "string" points = xsd:string { pattern = "-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*" } pathData = xsd:string vector3D = xsd:string { pattern = "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)" } namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" } anyIRI = xsd:anyURI >> dc:description [ "An IRI-reference as defined in [RFC3987]. See ODF 1.2 Part 1 section 18.3." ] anyAttListOrElements = attribute * { text }*, anyElements anyElements = element * { mixed { anyAttListOrElements } }* [-- Attachment #4: schemas.xml --] [-- Type: application/xml, Size: 402 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 10:53 ` Org schemas we talked to be non-free, was: " Jean Louis @ 2021-01-24 17:50 ` Ulrich Mueller 2021-01-24 19:12 ` Jean Louis 2021-01-25 5:51 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-24 17:50 UTC (permalink / raw) To: Richard Stallman; +Cc: Ulrich Mueller, dgutov, ams, arthur.miller, emacs-devel >>>>> On Sun, 24 Jan 2021, Jean Louis wrote: > Schemas are attached. > I see copyright notices inside and it appears to be fully free > document modifiable and distributable as long as copyrights remains. Read these notices carefully. The key paragraph is this: This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ or assist in its implementation may be prepared, copied, published, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. Only a special class of derivative works can be distributed freely, and it sounds like some of these would fall under "fair use" anyway. Certainly this isn't enough to qualify as a free software license? However, this document itself may not be modified in any way, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 17:50 ` Ulrich Mueller @ 2021-01-24 19:12 ` Jean Louis 2021-01-24 19:53 ` Eli Zaretskii ` (2 more replies) 2021-01-25 5:51 ` Richard Stallman 1 sibling, 3 replies; 252+ messages in thread From: Jean Louis @ 2021-01-24 19:12 UTC (permalink / raw) To: Ulrich Mueller; +Cc: ams, emacs-devel, Richard Stallman, arthur.miller, dgutov * Ulrich Mueller <ulm@gentoo.org> [2021-01-24 20:51]: > >>>>> On Sun, 24 Jan 2021, Jean Louis wrote: > > > Schemas are attached. > > > I see copyright notices inside and it appears to be fully free > > document modifiable and distributable as long as copyrights remains. > > Read these notices carefully. The key paragraph is this: > > This document and translations of it may be copied and furnished to > others, and derivative works that comment on or otherwise explain it > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > or assist in its implementation may be prepared, copied, published, > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > and distributed, in whole or in part, without restriction of any > kind, provided that the above copyright notice and this section are > included on all such copies and derivative works. > > Only a special class of derivative works can be distributed freely, > and it sounds like some of these would fall under "fair use" anyway. > Certainly this isn't enough to qualify as a free software license? > > However, this document itself may not be modified in any way, > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > including by removing the copyright notice or references to OASIS, > except as needed for the purpose of developing any document or > deliverable produced by an OASIS Technical Committee (in which case > the rules applicable to copyrights, as set forth in the OASIS IPR > Policy, must be followed) or as required to translate it into > languages other than English. Then it is not free. Maybe Org mode shall switch from using OASIS infested non-free specification to Libreoffice. I could not find those files in Libreoffice folders. But they could be somewhere hidden. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 19:12 ` Jean Louis @ 2021-01-24 19:53 ` Eli Zaretskii 2021-01-24 20:36 ` Ulrich Mueller ` (2 more replies) 2021-01-24 20:46 ` tomas 2021-01-25 5:53 ` Richard Stallman 2 siblings, 3 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-24 19:53 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Sun, 24 Jan 2021 22:12:17 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: ams@gnu.org, emacs-devel@gnu.org, Richard Stallman <rms@gnu.org>, > arthur.miller@live.com, dgutov@yandex.ru > > > Only a special class of derivative works can be distributed freely, > > and it sounds like some of these would fall under "fair use" anyway. > > Certainly this isn't enough to qualify as a free software license? > > > > However, this document itself may not be modified in any way, > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > including by removing the copyright notice or references to OASIS, > > except as needed for the purpose of developing any document or > > deliverable produced by an OASIS Technical Committee (in which case > > the rules applicable to copyrights, as set forth in the OASIS IPR > > Policy, must be followed) or as required to translate it into > > languages other than English. > > Then it is not free. Forgive me for a possibly naïve question, but why on earth would you want to modify a schema? It's the same as modifying a physical law. Would you say that E = mc² is "non-free" because it cannot be meaningfully modified at will? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 19:53 ` Eli Zaretskii @ 2021-01-24 20:36 ` Ulrich Mueller 2021-01-25 15:06 ` Eli Zaretskii 2021-01-24 20:47 ` Jean Louis 2021-01-25 5:53 ` Richard Stallman 2 siblings, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-24 20:36 UTC (permalink / raw) To: Eli Zaretskii Cc: rms, Jean Louis, ulm, emacs-devel, ams, arthur.miller, dgutov >>>>> On Sun, 24 Jan 2021, Eli Zaretskii wrote: >> > Only a special class of derivative works can be distributed freely, >> > and it sounds like some of these would fall under "fair use" anyway. >> > Certainly this isn't enough to qualify as a free software license? >> > >> > However, this document itself may not be modified in any way, >> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> > including by removing the copyright notice or references to OASIS, >> > except as needed for the purpose of developing any document or >> > deliverable produced by an OASIS Technical Committee (in which case >> > the rules applicable to copyrights, as set forth in the OASIS IPR >> > Policy, must be followed) or as required to translate it into >> > languages other than English. >> >> Then it is not free. > Forgive me for a possibly naïve question, but why on earth would you > want to modify a schema? I think the core question isn't if the files can be modified, but if their license allows including them with a free software package. At least if you apply the usual criteria mechanically, I believe the answer would be "no". > It's the same as modifying a physical law. Would you say that E = mc² > is "non-free" because it cannot be meaningfully modified at will? That's an awful analogy. For example, you can modify (i.e. generalise) the formula to E² = p²c² + m²c⁴ for an object with nonzero momentum. :-) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 20:36 ` Ulrich Mueller @ 2021-01-25 15:06 ` Eli Zaretskii 2021-01-26 6:01 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 15:06 UTC (permalink / raw) To: Ulrich Mueller; +Cc: rms, bugs, ulm, emacs-devel, ams, arthur.miller, dgutov > From: Ulrich Mueller <ulm@gentoo.org> > Cc: Jean Louis <bugs@gnu.support>, ulm@gentoo.org, rms@gnu.org, > dgutov@yandex.ru, ams@gnu.org, arthur.miller@live.com, > emacs-devel@gnu.org > Date: Sun, 24 Jan 2021 21:36:54 +0100 > > >>>>> On Sun, 24 Jan 2021, Eli Zaretskii wrote: > > >> > Only a special class of derivative works can be distributed freely, > >> > and it sounds like some of these would fall under "fair use" anyway. > >> > Certainly this isn't enough to qualify as a free software license? > >> > > >> > However, this document itself may not be modified in any way, > >> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > >> > including by removing the copyright notice or references to OASIS, > >> > except as needed for the purpose of developing any document or > >> > deliverable produced by an OASIS Technical Committee (in which case > >> > the rules applicable to copyrights, as set forth in the OASIS IPR > >> > Policy, must be followed) or as required to translate it into > >> > languages other than English. > >> > >> Then it is not free. > > > Forgive me for a possibly naïve question, but why on earth would you > > want to modify a schema? > > I think the core question isn't if the files can be modified, but if > their license allows including them with a free software package. Where does the stuff that you quoted disallow that? > At least if you apply the usual criteria mechanically, I believe the > answer would be "no". I very much hope that we don't apply anything of this kind mechanically. > > It's the same as modifying a physical law. Would you say that E = mc² > > is "non-free" because it cannot be meaningfully modified at will? > > That's an awful analogy. Why "awful"? A physical law describes some part of the reality, and an XML schema describes a certain kind of documents and data types. > For example, you can modify (i.e. generalise) the formula to E² = > p²c² + m²c⁴ for an object with nonzero momentum. :-) A schema can be similarly "generalized" (a.k.a. "extended") without changing it: you include the schema in your own and then add your own data types and conditions. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 15:06 ` Eli Zaretskii @ 2021-01-26 6:01 ` Richard Stallman 2021-01-26 15:57 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-26 6:01 UTC (permalink / raw) To: Eli Zaretskii; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > A schema can be similarly "generalized" (a.k.a. "extended") without > changing it: you include the schema in your own and then add your own > data types and conditions. Can you please show me how sort of generalization is done? It isn't allowed by editing the schema; the license of the schema does not give permission for such modifications. Is there some other mechanism that can be used to do that job? If so, could you please show me something about that mechanism, and what it can and can't do? The license of TeX says that modifying the TeX source file is forbidden -- but you can make changes for running it, with a change file. A change file can be used to make any change whatsoever, so in effect this is just a requirement abuot how to package a modified version of TeX, nothing more. That's why TeX qualifies as free software. If there is a similar authorized patching system for XML schemas, maybe that suffices to make the Open Documentation schemas free in effect even with their current license. But that depends on the details, on what range of things the patching system can do. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 6:01 ` Richard Stallman @ 2021-01-26 15:57 ` Eli Zaretskii 2021-01-26 16:03 ` Dmitry Gutov 2021-01-28 6:29 ` Richard Stallman 0 siblings, 2 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-26 15:57 UTC (permalink / raw) To: rms; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: ulm@gentoo.org, bugs@gnu.support, ulm@gentoo.org, > emacs-devel@gnu.org, ams@gnu.org, arthur.miller@live.com, > dgutov@yandex.ru > Date: Tue, 26 Jan 2021 01:01:07 -0500 > > > A schema can be similarly "generalized" (a.k.a. "extended") without > > changing it: you include the schema in your own and then add your own > > data types and conditions. > > Can you please show me how sort of generalization is done? It isn't > allowed by editing the schema; the license of the schema does not give > permission for such modifications. > > Is there some other mechanism that can be used to do that job? If so, > could you please show me something about that mechanism, and what it > can and can't do? Basically you reference the original schema in yours, and then add your extensions or overrides. There are several methods available for that, but the simplest one is to define new elements using the ones defined in the original schema. Here's a simple example: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="USaddress"> <xs:complexType> <xs:sequence> <xs:element name="street1" type="xs:string" minOccurs="0"/> <xs:element name="street2" type="xs:string" minOccurs="0"/> <xs:element name="city" type="xs:string"/> <xs:element name="state" type="xs:string"/> <xs:element name="zip" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> This defines an element "US Address" using xs:string type defined in the W3C XMLSchema. Then you can define a new element "Contact", on top of that, by adding a name to an address: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- Reference to External Module containing USaddress definition --> <xs:include schemaLocation="USaddress.xsd"/> <!-- Element containing USaddress element from included module --> <xs:complexType name="contact"> <xs:sequence> <xs:element name="Name" type="xs:string"/> <xs:element ref="USaddress"/> </xs:sequence> </xs:complexType> </xs:schema> You can also extend an existing type: <xs:complexType name="extendedNameType"> <xs:extension base="nameType"> <xs:sequence> <xs:element name="gen" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexType> This extends the existing type "nameType" (presumably defined in some schema you include as above) by adding to it the sub-element "gen". There's also a facility to redefine existing data types. Etc. etc. This way, there's no reason to change the original schema, you just extend it in your own schema, using the original one as the baseline. A few resources to read up on this: https://www.w3schools.com/xml/el_extension.asp https://www.ibm.com/developerworks/library/x-xtendschema/index.html https://stackoverflow.com/questions/3392402/how-do-i-extend-a-base-schema-with-custom-elements-while-remaining-open-to-chang ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 15:57 ` Eli Zaretskii @ 2021-01-26 16:03 ` Dmitry Gutov 2021-01-26 16:13 ` Eli Zaretskii 2021-01-28 6:29 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-26 16:03 UTC (permalink / raw) To: Eli Zaretskii, rms; +Cc: arthur.miller, ulm, ams, bugs, emacs-devel On 26.01.2021 17:57, Eli Zaretskii wrote: > There are several methods available for that, but the simplest one is > to define new elements using the ones defined in the original schema. Wouldn't that make it a derivative work? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 16:03 ` Dmitry Gutov @ 2021-01-26 16:13 ` Eli Zaretskii 2021-01-26 16:14 ` Dmitry Gutov 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-26 16:13 UTC (permalink / raw) To: Dmitry Gutov; +Cc: rms, bugs, ulm, emacs-devel, ams, arthur.miller > From: Dmitry Gutov <dgutov@yandex.ru> > Date: Tue, 26 Jan 2021 18:03:48 +0200 > Cc: arthur.miller@live.com, ulm@gentoo.org, ams@gnu.org, bugs@gnu.support, > emacs-devel@gnu.org > > On 26.01.2021 17:57, Eli Zaretskii wrote: > > There are several methods available for that, but the simplest one is > > to define new elements using the ones defined in the original schema. > > Wouldn't that make it a derivative work? I don't know. What if it does? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 16:13 ` Eli Zaretskii @ 2021-01-26 16:14 ` Dmitry Gutov 2021-01-26 16:31 ` Eli Zaretskii 0 siblings, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-26 16:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, bugs, ulm, emacs-devel, ams, arthur.miller On 26.01.2021 18:13, Eli Zaretskii wrote: >>> There are several methods available for that, but the simplest one is >>> to define new elements using the ones defined in the original schema. >> Wouldn't that make it a derivative work? > I don't know. What if it does? The original schema's license can impose restrictions on that. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 16:14 ` Dmitry Gutov @ 2021-01-26 16:31 ` Eli Zaretskii 2021-01-26 22:55 ` Dmitry Gutov 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-26 16:31 UTC (permalink / raw) To: Dmitry Gutov; +Cc: rms, bugs, ulm, emacs-devel, ams, arthur.miller > Cc: rms@gnu.org, arthur.miller@live.com, ulm@gentoo.org, ams@gnu.org, > bugs@gnu.support, emacs-devel@gnu.org > From: Dmitry Gutov <dgutov@yandex.ru> > Date: Tue, 26 Jan 2021 18:14:31 +0200 > > On 26.01.2021 18:13, Eli Zaretskii wrote: > >>> There are several methods available for that, but the simplest one is > >>> to define new elements using the ones defined in the original schema. > >> Wouldn't that make it a derivative work? > > I don't know. What if it does? > > The original schema's license can impose restrictions on that. Does it, though? And if it does, how useful is such a schema? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 16:31 ` Eli Zaretskii @ 2021-01-26 22:55 ` Dmitry Gutov 0 siblings, 0 replies; 252+ messages in thread From: Dmitry Gutov @ 2021-01-26 22:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, bugs, ulm, emacs-devel, ams, arthur.miller On 26.01.2021 18:31, Eli Zaretskii wrote: >>>>> There are several methods available for that, but the simplest one is >>>>> to define new elements using the ones defined in the original schema. >>>> Wouldn't that make it a derivative work? >>> I don't know. What if it does? >> The original schema's license can impose restrictions on that. > Does it, though? The OASIS schemas we're talking about have a license blurb that starts with "All right reserved", and then only mentiones permissions to do derivative works "that comment on or otherwise explain it or assist in its implementation", which doesn't seem to cover derivative schemas for, say, experimentation. Of course, many cases could be covered by Fair Use, and even those that don't, the likelihood of being sued is vanishingly low, and the main goal of theirs seems to be to avoid being misrepresented by others (e.g. by removing the authorship or keeping it but changing the contents somehow maliciously), but as a matter of license, permission for arbitrary derivative works seems absent. IANAL, consult your lawyer, etc. > And if it does, how useful is such a schema? Just as a way to describe a certain fixed format, I guess? The wording of their rules seems pretty bureaucratic. It seems you need to join OASIS (or work in a company that is part of it) to safely contribute to any new version of the format. Which is disappointing. Again, IANAL, and perhaps there are some better explanations in their policy somewhere on the website. I just could find them so far. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 15:57 ` Eli Zaretskii 2021-01-26 16:03 ` Dmitry Gutov @ 2021-01-28 6:29 ` Richard Stallman 2021-01-28 14:08 ` Eli Zaretskii 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-28 6:29 UTC (permalink / raw) To: Eli Zaretskii; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Is this extension mechanism limited to adding new fields and options? That may be sufficient most of the time in practice, but not enough to make it free. The reason that TeX change files are sufficient is that, being edit scripts, they can represent deletions as well as additions. You said there are other methods: > There are several methods available for that, but the simplest one is > to define new elements using the ones defined in the original schema. Do the other methods enable the changes that this method does not? Dmitry wrote: > Wouldn't that make it a derivative work? That is a subtle question. If the schemas mechanism is designed for such use, maybe that's an argument that it is permitted. If it comes down to it, I can consult a lawyer about that question. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-28 6:29 ` Richard Stallman @ 2021-01-28 14:08 ` Eli Zaretskii 2021-01-29 6:36 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-28 14:08 UTC (permalink / raw) To: rms; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: ulm@gentoo.org, bugs@gnu.support, ulm@gentoo.org, > emacs-devel@gnu.org, ams@gnu.org, arthur.miller@live.com, > dgutov@yandex.ru > Date: Thu, 28 Jan 2021 01:29:08 -0500 > > Is this extension mechanism limited to adding new fields and options? > That may be sufficient most of the time in practice, but not enough > to make it free. Here's an example of redefining a type. Suppose a schema defines a type named yearType: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:simpleType name="yearType"> <xsd:restriction base="xsd:string"/> </xsd:simpleType> </xsd:schema> Here's how you redefine yearType to force it to have 4 characters, no more, no less: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:simpleType name="yearType"> <xsd:restriction base="yearType"> <xsd:length value="4"/> </xsd:restriction> </xsd:simpleType> </xsd:redefine> <xsd:element name="fullYear" type="yearType"/> </xsd:schema> where prod1.xsd is the previous schema that defines the original yearType. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-28 14:08 ` Eli Zaretskii @ 2021-01-29 6:36 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-29 6:36 UTC (permalink / raw) To: Eli Zaretskii; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Here's how you redefine yearType to force it to have 4 characters, no > more, no less: I have to struggle to understand it, since it is full of constructs and symbols whose meaning I never knew. But it looks like you're saying that it is possible to start with one of those schemas and redefine more or less any part of it. Maybe that makes it comparable to the TeX case. I am trying toget in touch with someone on the committee to discuss the issue with. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 19:53 ` Eli Zaretskii 2021-01-24 20:36 ` Ulrich Mueller @ 2021-01-24 20:47 ` Jean Louis 2021-01-25 15:13 ` Eli Zaretskii 2021-01-25 5:53 ` Richard Stallman 2 siblings, 1 reply; 252+ messages in thread From: Jean Louis @ 2021-01-24 20:47 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-24 22:53]: > Forgive me for a possibly naïve question, but why on earth would you > want to modify a schema? It's the same as modifying a physical law. > Would you say that E = mc² is "non-free" because it cannot be > meaningfully modified at will? I understand it. If that schema defines a document format and document format cannot be modified then I do not see how software that handles that document format is free. Programmers should be able to improve the format or make it incompatible as it is part of the overall document creation. It is not software but data used by software. Data should be modifiable in my opinion. Let us say enriched mode in Emacs, if it would not be modifiable by programmers who fork Emacs, I am not sure if Emacs would be free software. How about Org mode itself? If its format would not be modifiable, then we would not have software similar on Org or based on Org mode, such as: OneModel — an Alternative to emacs org-mode https://soylentnews.org/article.pl?sid=16/04/23/0149257 Maybe we would not have Orgzly as mobile Org mode application that is not Emacs. Maybe there would be not Vim Org mode and so on. I just hope that Libreoffice is not using non-free OASIS schemas. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 20:47 ` Jean Louis @ 2021-01-25 15:13 ` Eli Zaretskii 2021-01-25 17:50 ` Jean Louis ` (2 more replies) 0 siblings, 3 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 15:13 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Sun, 24 Jan 2021 23:47:42 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: ulm@gentoo.org, rms@gnu.org, dgutov@yandex.ru, ams@gnu.org, > arthur.miller@live.com, emacs-devel@gnu.org > > I understand it. If that schema defines a document format and document > format cannot be modified then I do not see how software that handles > that document format is free. Programmers should be able to improve > the format or make it incompatible as it is part of the overall > document creation. It is not software but data used by software. Data > should be modifiable in my opinion. Modifications of a schema produce a file that can no longer be used with the same collection of documents and protocols. So such modifications are not useful. I very much hope that we as a movement will not insist on abstract "freedom" to make useless modifications just for the sake of modifications. To me, Free Software movement is a pragmatic movement that picks up its fights wisely, and this particular fight isn't, it's a Quixotic fight for a useless goal. > Let us say enriched mode in Emacs, if it would not be modifiable by > programmers who fork Emacs, I am not sure if Emacs would be free > software. Enriched mode doesn't have or use a schema, so this example is inapplicable. > How about Org mode itself? If its format would not be modifiable, then > we would not have software similar on Org or based on Org mode, such > as: > > OneModel — an Alternative to emacs org-mode > https://soylentnews.org/article.pl?sid=16/04/23/0149257 Is OneModel compatible with Org? If it is, then it's an extension, not some modification. If it isn't compatible, then it's simply a different schema, unrelated to Org. > I just hope that Libreoffice is not using non-free OASIS schemas. They would be silly if they didn't. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 15:13 ` Eli Zaretskii @ 2021-01-25 17:50 ` Jean Louis 2021-01-25 17:56 ` Jean Louis 2021-01-25 20:10 ` Ulrich Mueller 2 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-25 17:50 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-25 18:14]: > > Date: Sun, 24 Jan 2021 23:47:42 +0300 > > From: Jean Louis <bugs@gnu.support> > > Cc: ulm@gentoo.org, rms@gnu.org, dgutov@yandex.ru, ams@gnu.org, > > arthur.miller@live.com, emacs-devel@gnu.org > > > > I understand it. If that schema defines a document format and document > > format cannot be modified then I do not see how software that handles > > that document format is free. Programmers should be able to improve > > the format or make it incompatible as it is part of the overall > > document creation. It is not software but data used by software. Data > > should be modifiable in my opinion. > > Modifications of a schema produce a file that can no longer be used > with the same collection of documents and protocols. So such > modifications are not useful. I very much hope that we as a movement > will not insist on abstract "freedom" to make useless modifications > just for the sake of modifications. To me, Free Software movement is > a pragmatic movement that picks up its fights wisely, and this > particular fight isn't, it's a Quixotic fight for a useless goal. That may be. I do not know. I find it alright to fork various software and change the final format of a document and produce new software with it. That is why also schemas should be modifiable. Otherwise it could make all software producing those documents non-free. I am just not sure if that schema does what I think it does. Of course people would not really make useless modifications. There are reasons why and how modifications are made, why sometimes forks are necessary. Libreoffice is itself fork from Openoffice. I do not see it being useless, now it is everywhere. I cannot even find Openoffice easy. It is useful. Then again without all the combinations of useless and useful things we would not be able to distinguish between each other. Plethora of people will make some useless things, but some of those useless will incite other people to make useful things. Those are butterfly effects, we better not underestimate it. Some projects will stall. Why does Guile language support Emacs Lisp? One could say it is useless to create new implementation of Emacs Lisp. Or new implementation of Common Lisp. In relation to formats, such should be free and modifiable, people shall be able to build upon them and create new formats. Some will be useless some will be useful. But without freedom, we will not even know it. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 15:13 ` Eli Zaretskii 2021-01-25 17:50 ` Jean Louis @ 2021-01-25 17:56 ` Jean Louis 2021-01-25 19:27 ` Eli Zaretskii 2021-01-26 6:09 ` Richard Stallman 2021-01-25 20:10 ` Ulrich Mueller 2 siblings, 2 replies; 252+ messages in thread From: Jean Louis @ 2021-01-25 17:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-25 18:14]: > > Let us say enriched mode in Emacs, if it would not be modifiable by > > programmers who fork Emacs, I am not sure if Emacs would be free > > software. > > Enriched mode doesn't have or use a schema, so this example is > inapplicable. But it has its format. Right? Content-Type: text/enriched Text-Width: 70 <center> Hello there</center> How about programmer comes and says, now I want to call it Enriched mode, but internally it has to look like this: FORMAT: Enriched Width: 70 <PUT-MIDDLE> Hello there</DONE> > > How about Org mode itself? If its format would not be modifiable, then > > we would not have software similar on Org or based on Org mode, such > > as: > > > > OneModel — an Alternative to emacs org-mode > > https://soylentnews.org/article.pl?sid=16/04/23/0149257 > > Is OneModel compatible with Org? If it is, then it's an extension, > not some modification. If it isn't compatible, then it's simply a > different schema, unrelated to Org. Exactly, I was thinking we were chatting about that. Of course that by changing schema one may get incompatible formats. And that shall be software freedom. We have to allow programmers to make any formats and build upon previous formats. Incompatibility or not, that is not major point. When StarOffice was made first time its format was incompatible to many other formats. It was proprietary software. I know it as I have purchased it in Germany and used. Without that incompatible format we would not have today Open Document Format. So those schemas should be also free that new formats can be devised. The history of StarOffice/OpenOffice/LibreOffice shows that freedom is important and that people build upon it. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 17:56 ` Jean Louis @ 2021-01-25 19:27 ` Eli Zaretskii 2021-01-26 3:50 ` Jean Louis 2021-01-26 6:09 ` Richard Stallman 1 sibling, 1 reply; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 19:27 UTC (permalink / raw) To: Jean Louis; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov > Date: Mon, 25 Jan 2021 20:56:21 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: ulm@gentoo.org, rms@gnu.org, dgutov@yandex.ru, ams@gnu.org, > arthur.miller@live.com, emacs-devel@gnu.org > > * Eli Zaretskii <eliz@gnu.org> [2021-01-25 18:14]: > > > Let us say enriched mode in Emacs, if it would not be modifiable by > > > programmers who fork Emacs, I am not sure if Emacs would be free > > > software. > > > > Enriched mode doesn't have or use a schema, so this example is > > inapplicable. > > But it has its format. Right? Its format is determined by the code, not by a DTD. And that format is specific to Enriched mode alone, it's its private format that is not shared with any other application. > How about programmer comes and says, now I want to call it Enriched > mode, but internally it has to look like this: > > FORMAT: Enriched > Width: 70 > > <PUT-MIDDLE> > > Hello there</DONE> How is this relevant to the issue we are discussing? > Exactly, I was thinking we were chatting about that. Of course that by > changing schema one may get incompatible formats. And that shall be > software freedom. We have to allow programmers to make any formats and > build upon previous formats. > > Incompatibility or not, that is not major point. It is exactly the major point. If you want to create a new schema, you can. > When StarOffice was made first time its format was incompatible to > many other formats. We are not talking about format of office files, we are talking about definitions of data types shared by gazillions of files used for very different purposes. It's a completely different use case. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 19:27 ` Eli Zaretskii @ 2021-01-26 3:50 ` Jean Louis 0 siblings, 0 replies; 252+ messages in thread From: Jean Louis @ 2021-01-26 3:50 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, ulm, emacs-devel, ams, arthur.miller, dgutov * Eli Zaretskii <eliz@gnu.org> [2021-01-25 22:27]: > > Date: Mon, 25 Jan 2021 20:56:21 +0300 > > From: Jean Louis <bugs@gnu.support> > > Cc: ulm@gentoo.org, rms@gnu.org, dgutov@yandex.ru, ams@gnu.org, > > arthur.miller@live.com, emacs-devel@gnu.org > > > > * Eli Zaretskii <eliz@gnu.org> [2021-01-25 18:14]: > > > > Let us say enriched mode in Emacs, if it would not be modifiable by > > > > programmers who fork Emacs, I am not sure if Emacs would be free > > > > software. > > > > > > Enriched mode doesn't have or use a schema, so this example is > > > inapplicable. > > > > But it has its format. Right? > > Its format is determined by the code, not by a DTD. And that format > is specific to Enriched mode alone, it's its private format that is > not shared with any other application. I was assuming it is determined by code. The specification need not be anywhere written in easy manner such as some schema. But it is written in the code and users are free to modify it. So when speaking of freedom users are free to modify the format of that document. I hope so. Freedom gives user opportunity not to make it private format. That is how new software comes into existence. If there is no freedom to modify and distribute and build upon it then programmers will most probably be reluctant to create new works. > > How about programmer comes and says, now I want to call it Enriched > > mode, but internally it has to look like this: > > > > FORMAT: Enriched > > Width: 70 > > > > <PUT-MIDDLE> > > > > Hello there</DONE> > > How is this relevant to the issue we are discussing? Maybe we shall first agree what we are discussing? I am talking about free software and freedom and if non-free program dependent data such as schemas should or should not be distributed with the Org package. What is the issue that we discuss according to you? > > Exactly, I was thinking we were chatting about that. Of course that by > > changing schema one may get incompatible formats. And that shall be > > software freedom. We have to allow programmers to make any formats and > > build upon previous formats. > > > > Incompatibility or not, that is not major point. > > It is exactly the major point. If you want to create a new schema, > you can. But you cannot modify the file that came along with free software. Of course we can create new schemas and new programs from scratch. But if we cannot modify that data coming along with free software such as Org package then Org package as software package is not fully free package. Maybe those functions that depend on non-free data shall be taken out of the Org mode and be distributed separately. It also brings up question if LibreOffice is really Libre if it depends on such non-free schema. > > When StarOffice was made first time its format was incompatible to > > many other formats. > > We are not talking about format of office files, we are talking about > definitions of data types shared by gazillions of files used for very > different purposes. It's a completely different use case. Your reference of the text I wrote is out of the intended context. You said it was useless to change schema and I have pointed out back to same LibreOffice/OpenOffice/StarOffice that it actually improved itself in few decades exactly because somebody was allowed to change the formats. Even if it maybe was not fully free, at least somebody was improving upon it. So the option to improve the format of a document is beneficial and rather useful even if it would break or change some compatibilities from past. My point was that when people are given freedom they are allowed to create new software and build upon the existing one. When bundling non-free schema with Org, do we give that freedom to receiver or not? If we do not give the freedom to user receiving the Org package then maybe such schema shall be removed from the package and functions depending on such non-free schema removed. Jean ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 17:56 ` Jean Louis 2021-01-25 19:27 ` Eli Zaretskii @ 2021-01-26 6:09 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-26 6:09 UTC (permalink / raw) To: Jean Louis; +Cc: ulm, emacs-devel, ams, arthur.miller, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Enriched mode doesn't have or use a schema, so this example is > > inapplicable. > But it has its format. Right? It isn't useful to compare these schemas to Enriched mode in this discussion, because this issue is not about a general idea. It is about how to treat a specific part of the implementation. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 15:13 ` Eli Zaretskii 2021-01-25 17:50 ` Jean Louis 2021-01-25 17:56 ` Jean Louis @ 2021-01-25 20:10 ` Ulrich Mueller 2021-01-25 20:21 ` Eli Zaretskii 2021-01-26 6:09 ` Richard Stallman 2 siblings, 2 replies; 252+ messages in thread From: Ulrich Mueller @ 2021-01-25 20:10 UTC (permalink / raw) To: Eli Zaretskii Cc: rms, Jean Louis, ulm, emacs-devel, ams, arthur.miller, dgutov >>>>> On Mon, 25 Jan 2021, Eli Zaretskii wrote: > Modifications of a schema produce a file that can no longer be used > with the same collection of documents and protocols. So such > modifications are not useful. I very much hope that we as a movement > will not insist on abstract "freedom" to make useless modifications > just for the sake of modifications. To me, Free Software movement is > a pragmatic movement that picks up its fights wisely, and this > particular fight isn't, it's a Quixotic fight for a useless goal. Of the files included with Emacs, maybe the the Unicode data files are the ones that resemble the purpose of the schemas most closely. As they are also part of a standard, modifying them (e.g., put "A" at a position other than 0x41) wouldn't make much sense either. Nevertheless, they are distributed under a license [1] that allows "to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies". [1] https://www.unicode.org/license.html ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 20:10 ` Ulrich Mueller @ 2021-01-25 20:21 ` Eli Zaretskii 2021-01-26 6:09 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 20:21 UTC (permalink / raw) To: Ulrich Mueller; +Cc: rms, bugs, ulm, emacs-devel, ams, arthur.miller, dgutov > From: Ulrich Mueller <ulm@gentoo.org> > Cc: Jean Louis <bugs@gnu.support>, rms@gnu.org, ulm@gentoo.org, > emacs-devel@gnu.org, ams@gnu.org, arthur.miller@live.com, > dgutov@yandex.ru > Date: Mon, 25 Jan 2021 21:10:21 +0100 > > Of the files included with Emacs, maybe the the Unicode data files are > the ones that resemble the purpose of the schemas most closely. As they > are also part of a standard, modifying them (e.g., put "A" at a position > other than 0x41) wouldn't make much sense either. > > Nevertheless, they are distributed under a license [1] that allows > "to deal in the Data Files or Software without restriction, including > without limitation the rights to use, copy, modify, merge, publish, > distribute, and/or sell copies". But we did nothing to have that license, it's how the Unicode Consortium distributes the UCD files. So I don't see how this is relevant to the issue at hand -- unless you'd like to propose that we approach the Unicode Consortium asking them whether they would like to replace their license with a non-free one... ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 20:10 ` Ulrich Mueller 2021-01-25 20:21 ` Eli Zaretskii @ 2021-01-26 6:09 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-26 6:09 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov, eliz [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Of the files included with Emacs, maybe the the Unicode data files are > the ones that resemble the purpose of the schemas most closely. As they > are also part of a standard, modifying them (e.g., put "A" at a position > other than 0x41) wouldn't make much sense either. > Nevertheless, they are distributed under a license [1] that allows > "to deal in the Data Files or Software without restriction, including > without limitation the rights to use, copy, modify, merge, publish, > distribute, and/or sell copies". This is something we could usefully cite if we approach OASIS to ask to put these schemas under a free license. It provides precedent. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 19:53 ` Eli Zaretskii 2021-01-24 20:36 ` Ulrich Mueller 2021-01-24 20:47 ` Jean Louis @ 2021-01-25 5:53 ` Richard Stallman 2021-01-25 15:27 ` Eli Zaretskii 2 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-25 5:53 UTC (permalink / raw) To: Eli Zaretskii; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Forgive me for a possibly naïve question, but why on earth would you > want to modify a schema? It's the same as modifying a physical law. > Would you say that E = mc² is "non-free" because it cannot be > meaningfully modified at will? We can't modify physics, but a physicist might very well want to modify the equation E = mc². For instance, perse might want to use natural units, in which c = 1, which would give E = m. Then perse might want to generalize to handle an object not at rest, by including its momentum. That gives E² - p² = m². Or perse might want to express that in 4-dimensional covariant form as μ 2 2 2 p p = m = p p - p p - p p - p p = E - p μ 0 0 1 1 2 2 3 3 And that's considering only _valid_ equations for relating mass and energy. I might want to modify the equation to make it be valid for some other purpose, or to present an instance of an equation which is not valid. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 5:53 ` Richard Stallman @ 2021-01-25 15:27 ` Eli Zaretskii 0 siblings, 0 replies; 252+ messages in thread From: Eli Zaretskii @ 2021-01-25 15:27 UTC (permalink / raw) To: rms; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov > From: Richard Stallman <rms@gnu.org> > Cc: bugs@gnu.support, ulm@gentoo.org, dgutov@yandex.ru, ams@gnu.org, > arthur.miller@live.com, emacs-devel@gnu.org > Date: Mon, 25 Jan 2021 00:53:57 -0500 > > > Forgive me for a possibly naïve question, but why on earth would you > > want to modify a schema? It's the same as modifying a physical law. > > > Would you say that E = mc² is "non-free" because it cannot be > > meaningfully modified at will? > > We can't modify physics Exactly. And similarly with the data types described by a schema: changing the description doesn't change the things it describes, it just makes the description inaccurate and thus useless. > but a physicist might very well want to modify > the equation E = mc². For instance, perse might want to use natural units, > in which c = 1, which would give E = m. A schema supports extension, which IMO is the analogy of that. > And that's considering only _valid_ equations for relating mass and > energy. I might want to modify the equation to make it be valid for > some other purpose, or to present an instance of an equation which is > not valid. I very much hope we won't fight a Quixotic battle so that we could make a schema invalid. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 19:12 ` Jean Louis 2021-01-24 19:53 ` Eli Zaretskii @ 2021-01-24 20:46 ` tomas 2021-01-27 7:35 ` Richard Stallman 2021-01-25 5:53 ` Richard Stallman 2 siblings, 1 reply; 252+ messages in thread From: tomas @ 2021-01-24 20:46 UTC (permalink / raw) To: emacs-devel; +Cc: Ulrich Mueller, ams, Richard Stallman, arthur.miller, dgutov [-- Attachment #1: Type: text/plain, Size: 2379 bytes --] On Sun, Jan 24, 2021 at 10:12:17PM +0300, Jean Louis wrote: > * Ulrich Mueller <ulm@gentoo.org> [2021-01-24 20:51]: > > >>>>> On Sun, 24 Jan 2021, Jean Louis wrote: > > > > > Schemas are attached. > > > > > I see copyright notices inside and it appears to be fully free > > > document modifiable and distributable as long as copyrights remains. > > > > Read these notices carefully. The key paragraph is this: > > > > This document and translations of it may be copied and furnished to > > others, and derivative works that comment on or otherwise explain it > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > or assist in its implementation may be prepared, copied, published, > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > and distributed, in whole or in part, without restriction of any > > kind, provided that the above copyright notice and this section are > > included on all such copies and derivative works. > > > > Only a special class of derivative works can be distributed freely, > > and it sounds like some of these would fall under "fair use" anyway. > > Certainly this isn't enough to qualify as a free software license? > > > > However, this document itself may not be modified in any way, > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > including by removing the copyright notice or references to OASIS, > > except as needed for the purpose of developing any document or > > deliverable produced by an OASIS Technical Committee (in which case > > the rules applicable to copyrights, as set forth in the OASIS IPR > > Policy, must be followed) or as required to translate it into > > languages other than English. > > Then it is not free. > > Maybe Org mode shall switch from using OASIS infested non-free > specification to Libreoffice. I could not find those files in > Libreoffice folders. But they could be somewhere hidden. LibreOffice's format (ODF) /is/ an OASIS standard [1]. (I have the impression that we might be interpreting to much into the RelaxNG immutability. After all, things like RFCs are, in their way immutable -- you can't change RFC8555 and keep calling it by the same name. Perhaps it'd make sense to talk to the OASIS folks. Cheers [1] https://wiki.documentfoundation.org/OASIS - t [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 20:46 ` tomas @ 2021-01-27 7:35 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-27 7:35 UTC (permalink / raw) To: tomas; +Cc: ulm, dgutov, ams, arthur.miller, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > (I have the impression that we might be interpreting to much into > the RelaxNG immutability. After all, things like RFCs are, in their > way immutable -- you can't change RFC8555 and keep calling it by > the same name. GNU software usually follows standards, and occasionally departs from them. (See node Non-GNU Standards in the GNU Coding Standards.) But the standards a program follows are not part of the program itself. You might think of using a standards document as part of the program's documentation, but we never do that, precisely because standards documents are typically immutable. Documentation must be free (see https://gnu.org/philosophy/free-doc.html). -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 19:12 ` Jean Louis 2021-01-24 19:53 ` Eli Zaretskii 2021-01-24 20:46 ` tomas @ 2021-01-25 5:53 ` Richard Stallman 2021-01-25 9:27 ` Ulrich Mueller 2 siblings, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-25 5:53 UTC (permalink / raw) To: Jean Louis; +Cc: ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Maybe Org mode shall switch from using OASIS infested non-free > specification to Libreoffice. I could not find those files in > Libreoffice folders. But they could be somewhere hidden. This is an interesting issue. If you could verify that LibreOffice does not contain those nonfree schemas, that would be very good news! You don't have to check it yourself -- you could find an expert who understands how LibreOffice works, someone who knows the answer and can explain it. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 5:53 ` Richard Stallman @ 2021-01-25 9:27 ` Ulrich Mueller 2021-01-26 6:03 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-25 9:27 UTC (permalink / raw) To: Richard Stallman; +Cc: Jean Louis, ulm, emacs-devel, ams, arthur.miller, dgutov >>>>> On Mon, 25 Jan 2021, Richard Stallman wrote: >> Maybe Org mode shall switch from using OASIS infested non-free >> specification to Libreoffice. I could not find those files in >> Libreoffice folders. But they could be somewhere hidden. > This is an interesting issue. If you could verify that LibreOffice > does not contain those nonfree schemas, that would be very good news! I fear we are out of luck there. Libreoffice documentation at https://help.libreoffice.org/3.3/Common/XML_File_Formats#Definition_of_the_XML_formats says "The schema for the OpenDocument formats can be found on the www.oasis-open.org web site", i.e., it points to the same nonfree files. I've also checked the Gentoo app-office/libreoffice-7.0.4.2 package, and it doesn't install any Relax-NG schemas. It only installs DTDs for the older OpenOffice.org 1.x format. These are licensed under MPL-2.0. Maybe it's time to contact OASIS Open and ask them if they would consider relicensing the Relax-NG schemas. Does somebody know one of the persons from their committee, because that may be a good place to start: https://www.oasis-open.org/committees/membership.php?wg_abbrev=office ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-25 9:27 ` Ulrich Mueller @ 2021-01-26 6:03 ` Richard Stallman 2021-01-26 9:24 ` Ulrich Mueller ` (2 more replies) 0 siblings, 3 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-26 6:03 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I fear we are out of luck there. Libreoffice documentation at > https://help.libreoffice.org/3.3/Common/XML_File_Formats#Definition_of_the_XML_formats > says "The schema for the OpenDocument formats can be found on the > www.oasis-open.org web site", i.e., it points to the same nonfree files. If we were looking for alternative definitions of those formats, you found that there were none there. But that doesn't necessarily mean there is a problem in LibreOffice. > I've also checked the Gentoo app-office/libreoffice-7.0.4.2 package, > and it doesn't install any Relax-NG schemas. It only installs DTDs for > the older OpenOffice.org 1.x format. These are licensed under MPL-2.0. It sounds like those are enough in practice. That is a vital bit of good news. In what directory does it install them? I'd like to see which ones the Trisquel package contains. What is the command I should use in dpkg to find out what files a package contains? > Maybe it's time to contact OASIS Open and ask them if they would > consider relicensing the Relax-NG schemas. I think we will do that, but let's not rush. We just got mail from someone who knows more than we do about Relax-NG schemas. Let's see what we can learn from per about how to deal with this. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 6:03 ` Richard Stallman @ 2021-01-26 9:24 ` Ulrich Mueller 2021-01-27 7:43 ` Richard Stallman 2021-01-26 15:43 ` Jose A. Ortega Ruiz 2021-01-26 16:48 ` Kévin Le Gouguec 2 siblings, 1 reply; 252+ messages in thread From: Ulrich Mueller @ 2021-01-26 9:24 UTC (permalink / raw) To: Richard Stallman Cc: bugs, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov >>>>> On Tue, 26 Jan 2021, Richard Stallman wrote: >> I've also checked the Gentoo app-office/libreoffice-7.0.4.2 package, >> and it doesn't install any Relax-NG schemas. It only installs DTDs for >> the older OpenOffice.org 1.x format. These are licensed under MPL-2.0. > It sounds like those are enough in practice. That is a vital bit of > good news. In what directory does it install them? I'd like to see > which ones the Trisquel package contains. The Gentoo package installs the DTDs in /usr/<libdir>/libreoffice/share/dtd/officedocument/1_0/ where <libdir> is lib or lib64 depending on the system. > What is the command I should use in dpkg to find out what files a > package contains? No idea. I've checked the Ubuntu package list on the web though, and the DTDs are in their libreoffice-common package, same path as above (with libdir=lib). ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 9:24 ` Ulrich Mueller @ 2021-01-27 7:43 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-27 7:43 UTC (permalink / raw) To: Ulrich Mueller; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Thanks. Now I see that Trisquel has installed the DTDs there, and they are free. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 6:03 ` Richard Stallman 2021-01-26 9:24 ` Ulrich Mueller @ 2021-01-26 15:43 ` Jose A. Ortega Ruiz 2021-01-26 16:48 ` Kévin Le Gouguec 2 siblings, 0 replies; 252+ messages in thread From: Jose A. Ortega Ruiz @ 2021-01-26 15:43 UTC (permalink / raw) To: emacs-devel On Tue, Jan 26 2021, Richard Stallman wrote: > What is the command I should use in dpkg to find out what files a > package contains? dpkg -L <package-name> ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 6:03 ` Richard Stallman 2021-01-26 9:24 ` Ulrich Mueller 2021-01-26 15:43 ` Jose A. Ortega Ruiz @ 2021-01-26 16:48 ` Kévin Le Gouguec 2021-01-28 6:34 ` Richard Stallman 2 siblings, 1 reply; 252+ messages in thread From: Kévin Le Gouguec @ 2021-01-26 16:48 UTC (permalink / raw) To: Richard Stallman Cc: bugs, Ulrich Mueller, emacs-devel, ams, arthur.miller, dgutov Richard Stallman <rms@gnu.org> writes: > What is the command I should use in dpkg to find out what files a > package contains? $ dpkg --listfiles $packagename # or -L for short. In the case of libreoffice, which is composed of many packages, that's not enough to find the files you are after. There might be a way to query dkpg for all packages matching a pattern; if bash completions are enabled, one can also start typing "dpkg -L libreoffice" then hit M-* to ask readline to insert all completions. Piping this into "grep dtd" yields the answer Ulrich gave. Another way to get this answer: $ dpkg --search dtd | grep libreoffice --search $pattern (or -S for short) lists all files from installed packages which match $pattern, prepended with the name of the package. ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-26 16:48 ` Kévin Le Gouguec @ 2021-01-28 6:34 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-28 6:34 UTC (permalink / raw) To: Kévin Le Gouguec Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I think the issue about LibreOffice is not about DTDs, because the DTDs seem to be free. The question about LibreOffice that is pertinent to this issue is whether it contains any form of those schemas. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: Org schemas we talked to be non-free, was: [ELPA] New package: repology.el 2021-01-24 17:50 ` Ulrich Mueller 2021-01-24 19:12 ` Jean Louis @ 2021-01-25 5:51 ` Richard Stallman 1 sibling, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-25 5:51 UTC (permalink / raw) To: Ulrich Mueller; +Cc: ulm, dgutov, ams, arthur.miller, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Only a special class of derivative works can be distributed freely, > and it sounds like some of these would fall under "fair use" anyway. > Certainly this isn't enough to qualify as a free software license? Sad to say, you are right -- it is not a free license. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* freedom issues in free software 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller ` (3 preceding siblings ...) 2021-01-20 6:14 ` Richard Stallman @ 2021-02-16 5:21 ` Richard Stallman 4 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-02-16 5:21 UTC (permalink / raw) To: Ulrich Mueller; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] A month ago you reported an apparent problem of nonfree software in GNU intlfonts and another in Org-mode. I did not know about either of them. i investigated them both. The one in intlfonts is fixed. The one in Org-mode appears not to be a real problem, but we are going to finish checking. It is very important to address these problems. Your message suggested you know of more of them. Would you please tell them to me? If they are not about Emacs, you don't need to send them to emacs-devel. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 7:49 ` Richard Stallman 2021-01-07 9:00 ` Jean Louis 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller @ 2021-01-07 15:05 ` Stefan Monnier 2021-01-13 15:57 ` Richard Stallman 2 siblings, 1 reply; 252+ messages in thread From: Stefan Monnier @ 2021-01-07 15:05 UTC (permalink / raw) To: Richard Stallman; +Cc: Jean Louis, ulm, emacs-devel, ams, arthur.miller, dgutov Could you people actually read what goes in this thread before getting on your high horses. The author already sent a new version days ago which tries to filter out non-free packages (and I'm working with him to refine his code). 'Nough said, Stefan Richard Stallman [2021-01-07 02:49:31] wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > You've brought us bad news about repology.org. Not only does it include > nonfree packages with no effort to avoid them, it fails to provide > enough information for us to easily filter them out. > > I see two ways we could possibly manage to use repology.org in the > Free World. > > * Find a way to distinguish free from nonfree packages. I see two > ideas One is to snarf the lists of free packages from Debian and > Parabola. Another is to see if free packages list a license that > shows they are free. You might have other ideas. > > * Ask the developer of repology.org to work with us to indicate which > packages are free, maybe even provide a way to specify "show me only > free packages". > > Does anyone have another idea? ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-07 15:05 ` [ELPA] New package: repology.el Stefan Monnier @ 2021-01-13 15:57 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-13 15:57 UTC (permalink / raw) To: Stefan Monnier; +Cc: bugs, ulm, emacs-devel, ams, arthur.miller, dgutov [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Could you people actually read what goes in this thread before getting > on your high horses. The author already sent a new version days ago > which tries to filter out non-free packages (and I'm working with him > to refine his code). That's good news. Thank you for working on this. I saw your message just today. I wish I had seen it before, but I have been unable to keep up with the volume of mail in my inbox. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-04 12:09 ` Dmitry Gutov 2021-01-04 14:39 ` Alfred M. Szmidt @ 2021-01-05 6:33 ` Richard Stallman 2021-01-05 11:21 ` Dmitry Gutov 1 sibling, 1 reply; 252+ messages in thread From: Richard Stallman @ 2021-01-05 6:33 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, bugs, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > It doesn't have any links to the programs themselves, or even pointers > to their home pages. Its purpose is to show which version has been > published where, and who is maintaining that. I am not sure that difference is crucial. > As such, it's untenable to suggest that this project, or the proposed > package, promote any particular piece of software listed. I am not convinced -- but I'm willing to take a concrete look at what you're talking about. Would you please show me a couple of entries in repology? For instance, how about the one about LLVM? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-05 6:33 ` Richard Stallman @ 2021-01-05 11:21 ` Dmitry Gutov 2021-01-07 7:32 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Dmitry Gutov @ 2021-01-05 11:21 UTC (permalink / raw) To: rms; +Cc: ulm, bugs, emacs-devel On 05.01.2021 08:33, Richard Stallman wrote: > > As such, it's untenable to suggest that this project, or the proposed > > package, promote any particular piece of software listed. > > I am not convinced -- but I'm willing to take a concrete look at what > you're talking about. Would you please show me a couple of entries > in repology? For instance, how about the one about LLVM? I'm not sure how to do that, the entry is pretty big. But here are two excerpts from two tabs: Repository Package name Version Category Maintainer(s) Adélie Linux current user clang-doc 8.0.1 - awilfox@adelielinux.org Adélie Linux current user clang-analyzer 8.0.1 - awilfox@adelielinux.org Adélie Linux current user clang-libs 8.0.1 - awilfox@adelielinux.org Adélie Linux current user llvm8 8.0.1 - awilfox@adelielinux.org Adélie Linux current user llvm8-libs 8.0.1 - awilfox@adelielinux.org ... Fedora Rawhide clang 11.0.1 Unspecified - Fedora Rawhide compiler-rt 11.0.1 Unspecified - Fedora Rawhide flang 11.0.1 Unspecified - Fedora Rawhide libcxx 11.0.1 Unspecified - Fedora Rawhide libcxxabi 11.0.1 Unspecified - ... and clang 8.0.1 (8.0.1-r0) Summary: A C language family front-end for LLVM Maintainer: awilfox@adelielinux.org License: NCSA Package-related links: APKBUILD Homepage: https://llvm.org/ user Adélie Linux current clang-analyzer 8.0.1 (8.0.1-r0) Summary: Clang source code analysis framework Maintainer: awilfox@adelielinux.org License: NCSA Package-related links: APKBUILD Homepage: https://llvm.org/ user Adélie Linux current clang-dev 8.0.1 (8.0.1-r0) Summary: A C language family front-end for LLVM (development files) Maintainer: awilfox@adelielinux.org License: NCSA Package-related links: APKBUILD Homepage: https://llvm.org/ user Adélie Linux current ... ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el 2021-01-05 11:21 ` Dmitry Gutov @ 2021-01-07 7:32 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-07 7:32 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ulm, bugs, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I'm not sure how to do that, the entry is pretty big. But here are two > excerpts from two tabs: Thanks. That gives me an idea at one level of what it's doing. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el (v2) 2020-12-30 16:23 [ELPA] New package: repology.el Nicolas Goaziou 2020-12-30 19:34 ` Jean Louis @ 2020-12-30 21:58 ` Nicolas Goaziou 2021-01-04 11:45 ` [ELPA] New package: repology.el (v3) Nicolas Goaziou 1 sibling, 1 reply; 252+ messages in thread From: Nicolas Goaziou @ 2020-12-30 21:58 UTC (permalink / raw) To: emacs-devel [-- Attachment #1: Type: text/plain, Size: 589 bytes --] Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > I wrote a small library to access to Repology API > (<https://repology.org>) from Emacs. I'd like to submit it for inclusion > in GNU ELPA, as it might be useful to others. > > I'm attaching the sole file since it has no interweb existence so far. > > Please let me know if it is not suitable for inclusion, or needs more > work. It needed more work… After this brown paper bag announce, the next revision hopefully fixes compilation warnings and expounds the docstring of the main interactive function. Here it is. [-- Attachment #2: Repology library (0.9.1) --] [-- Type: application/emacs-lisp, Size: 41701 bytes --] ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el (v3) 2020-12-30 21:58 ` [ELPA] New package: repology.el (v2) Nicolas Goaziou @ 2021-01-04 11:45 ` Nicolas Goaziou 2021-01-04 17:32 ` Stefan Monnier 0 siblings, 1 reply; 252+ messages in thread From: Nicolas Goaziou @ 2021-01-04 11:45 UTC (permalink / raw) To: emacs-devel Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> I wrote a small library to access to Repology API >> (<https://repology.org>) from Emacs. I'd like to submit it for inclusion >> in GNU ELPA, as it might be useful to others. >> >> I'm attaching the sole file since it has no interweb existence so far. >> >> Please let me know if it is not suitable for inclusion, or needs more >> work. > > It needed more work… After this brown paper bag announce, the next > revision hopefully fixes compilation warnings and expounds the docstring > of the main interactive function. Here it is. So, IIUC, my work is not GNU-compatible. Well. I managed to create a third version of the library (i.e., version 0.10), which tries, in a best effort attempt, to hide any project with a dubious license. It works by matching a list of pre-defined regexps against the license string of the software. There are obvious limitations in that process: - the list of regexps is certainly incomplete, - some licenses are inaccurate in the database, - "unfreedom" is subtler than what softwares can guess, it requires lawyers sometimes. So, one could argue it may give a false sense of "security". Best effort attempt, as I wrote… In addition, I can also add a list of projects to ignore, if requested. I'm not attaching the new file to avoid spamming the list with anti-GNU software. But I'm asking it again, to be sure: do you think this new attempt could go to GNU (or Non-GNU) ELPA with that change, or is anything Repology-related verboten there? Regards, ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el (v3) 2021-01-04 11:45 ` [ELPA] New package: repology.el (v3) Nicolas Goaziou @ 2021-01-04 17:32 ` Stefan Monnier 2021-01-19 9:50 ` [ELPA] New package: repology.el (v4) Nicolas Goaziou 0 siblings, 1 reply; 252+ messages in thread From: Stefan Monnier @ 2021-01-04 17:32 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-devel > I'm not attaching the new file to avoid spamming the list with anti-GNU > software. But I'm asking it again, to be sure: do you think this new > attempt could go to GNU (or Non-GNU) ELPA with that change, or is > anything Repology-related verboten there? I do think it's acceptable, yes, thank you. If the code has all copyright assigned (e.g. is fully yours), then it can go to `elpa.git`. If you have write access, then you can even add it yourself. Let me know if you need help, Stefan ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el (v4) 2021-01-04 17:32 ` Stefan Monnier @ 2021-01-19 9:50 ` Nicolas Goaziou 2021-01-20 6:13 ` Richard Stallman 0 siblings, 1 reply; 252+ messages in thread From: Nicolas Goaziou @ 2021-01-19 9:50 UTC (permalink / raw) To: emacs-devel; +Cc: Stefan Monnier Hello, As announced a few days ago, and with the guidance of Stefan Monnier, I tweaked "repology.el" so it is somewhat aware about freedom, and cautious about what it displays. TL;DR: it is currently located at <https://elpa.gnu.org/devel/repology.html>. Here is its current commentary section. The third and fifth paragraphs are of particular interest for the discussion. This package provides tools to query Repology API (<https://repology.org/api>), process results, and display them. The results of a query revolve around three types of objects: projects, packages and problems. Using this library, you can find projects matching certain criteria, packages in a given project, and possible problems in some repository. See `repology-search-projects', `repology-lookup-project', and `repology-report-problems'. Projects-related requests are limited to `repology-projects-limit'. All requests are cached during `repology-cache-duration' seconds. By default, only projects recognized as free are included in the search results. You can control this behavior with the variable `repology-free-only-projects'. The function `repology-check-freedom' is responsible for guessing if a project, or a package, is free. You can then access data from those various objects using dedicated accessors. See, for example, `repology-project-name', `repology-project-packages', `repology-package-field', or `repology-problem-field'. You can also decide to display (a subset of) results in a tabulated list. See `repology-display-package', `repology-display-packages', `repology-display-projects' and `repology-display-problems'. You can control various aspects of the display, like the colors used (see `repology-status-faces'), or the columns shown (see `repology-display-packages-columns',`repology-display-projects-columns', and `repology-display-problems-columns'). When projects or packages are displayed, pressing <RET> gives you more information about the item at point, whereas pressing <F> reports their "freedom" status. For example, the following expression displays all outdated projects named after "emacs" and containing a package in GNU Guix repository that I do not ignore: (repology-display-projects (seq-filter (lambda (project) (not (member (repology-project-name project) my-ignored-projects))) (repology-search-projects :search "emacs" :inrepo "gnuguix" :outdated "on"))) Eventually, this library provides an interactive function with a spartan interface wrapping this up: `repology'. Since it builds and displays incrementally search filters, you may use it as a template to create your own queries. The library distinguishes between three categories of freedom for projects/packages: free, non-free, and unknown. Out of the 200.000 projects from Repology, it currently considers that about 73.000 are free, 300 are non-free, and the rest is unknown. Out of the box, the interface now only displays projects _most likely free_ (more in this below). It is also possible to configure it so it displays both free and unknown categories, or everything. The commentary section in "repology-license.el" explains how freedom state is obtained: This library provides the `repology-check-freedom' function, which returns t when a package or a project can be considered as free, nil it is identified as being non-free, and `unknown' otherwise. The decision is made by polling a number of "Reference repositories", defined in `repology-license-reference-repositories'. If the ratio of "Free" votes is above `repology-license-poll-threshold', the project is declared as free. In order to see the results of each vote, and possibly debug the process, you can set `repology-license-debug' to a non-nil value. Currently, reference repositories are: Debian, Fedora, OpenSUSE, Gentoo, Mageia, along with all FSF-endorsed distributions known to Repology: GNU Guix, Hyperbola, Parabola, PureOS, and Trisquel. I also added GNU ELPA as a specialized repository. The poll threshold is set to 0.5, so a package/project needs a strict majority of "Free" votes to be considered as free. As explained above, it is possible to look at the vote results to understand the final decision for each project. I hope this is now more in line with GNU expectations. Let me know if you have questions, or suggestions. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 252+ messages in thread
* Re: [ELPA] New package: repology.el (v4) 2021-01-19 9:50 ` [ELPA] New package: repology.el (v4) Nicolas Goaziou @ 2021-01-20 6:13 ` Richard Stallman 0 siblings, 0 replies; 252+ messages in thread From: Richard Stallman @ 2021-01-20 6:13 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: monnier, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > As announced a few days ago, and with the guidance of Stefan Monnier, > I tweaked "repology.el" so it is somewhat aware about freedom, and > cautious about what it displays. Thanks to both of you. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 252+ messages in thread
end of thread, other threads:[~2021-10-06 20:53 UTC | newest] Thread overview: 252+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-12-30 16:23 [ELPA] New package: repology.el Nicolas Goaziou 2020-12-30 19:34 ` Jean Louis 2020-12-30 21:01 ` Clément Pit-Claudel 2020-12-31 13:31 ` Jean Louis 2020-12-31 11:46 ` Nicolas Goaziou 2020-12-31 13:11 ` Jean Louis 2020-12-31 20:30 ` Ulrich Mueller 2021-01-01 7:31 ` Richard Stallman 2021-01-01 10:05 ` Jean Louis 2021-01-01 11:56 ` Eli Zaretskii 2021-01-02 9:56 ` Jean Louis 2021-01-02 5:30 ` Richard Stallman 2021-01-04 12:09 ` Dmitry Gutov 2021-01-04 14:39 ` Alfred M. Szmidt 2021-01-04 15:00 ` Ulrich Mueller 2021-01-04 16:32 ` Alfred M. Szmidt 2021-01-05 6:45 ` Richard Stallman 2021-01-05 8:56 ` Alfred M. Szmidt 2021-01-07 7:34 ` Richard Stallman 2021-01-04 15:02 ` Dmitry Gutov 2021-01-04 16:29 ` Alfred M. Szmidt 2021-01-04 17:08 ` Dmitry Gutov 2021-01-04 17:12 ` Alfred M. Szmidt 2021-01-04 17:17 ` Dmitry Gutov 2021-01-04 17:58 ` Alfred M. Szmidt 2021-01-04 17:43 ` Clément Pit-Claudel 2021-01-04 17:55 ` Vasilij Schneidermann 2021-01-04 18:51 ` Clément Pit-Claudel 2021-01-04 22:21 ` Vasilij Schneidermann 2021-01-05 2:09 ` Stefan Monnier 2021-01-05 6:42 ` Richard Stallman 2021-01-05 9:28 ` Ulrich Mueller 2021-01-06 5:03 ` Richard Stallman 2021-01-06 9:44 ` Alfred M. Szmidt 2021-01-07 17:51 ` Richard Stallman 2021-01-04 19:14 ` Ulrich Mueller 2021-01-04 19:17 ` Clément Pit-Claudel 2021-01-06 5:02 ` Richard Stallman 2021-01-06 10:58 ` Dmitry Gutov 2021-01-06 14:41 ` Jean Louis 2021-01-06 14:59 ` Arthur Miller 2021-01-06 15:21 ` Jean Louis 2021-01-06 16:23 ` Arthur Miller 2021-01-06 18:53 ` Jean Louis 2021-01-06 19:26 ` Eli Zaretskii 2021-01-06 21:18 ` Alfred M. Szmidt 2021-01-06 21:25 ` Dmitry Gutov 2021-01-07 7:47 ` Richard Stallman [not found] ` <E1kxGuO-00079C-NR@fencepost.gnu.org> [not found] ` <b94804db-7140-d450-6fc2-5afa440a8736@yandex.ru> [not found] ` <E1kxZru-0007Cl-DD@fencepost.gnu.org> 2021-01-07 18:46 ` Dmitry Gutov 2021-01-07 21:07 ` Alfred M. Szmidt 2021-01-08 7:04 ` Eli Zaretskii 2021-01-08 10:14 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Göktuğ Kayaalp 2021-01-08 11:46 ` Jean Louis 2021-01-08 12:51 ` Aldric Giacomoni 2021-01-08 16:23 ` Ulrich Mueller 2021-01-08 18:47 ` Jean Louis 2021-01-09 6:42 ` Richard Stallman 2021-01-11 14:11 ` Arthur Miller 2021-01-12 6:09 ` Richard Stallman 2021-01-12 14:29 ` Arthur Miller 2021-01-08 19:17 ` Göktuğ Kayaalp 2021-01-09 6:41 ` Richard Stallman 2021-01-11 14:24 ` Arthur Miller 2021-01-12 6:09 ` Richard Stallman 2021-01-12 14:19 ` Arthur Miller 2021-10-04 13:46 ` Time to dial back the dialectic? [was: Re: Privileges and practicalities] dick 2021-10-04 14:20 ` Eli Zaretskii 2021-10-06 20:53 ` Richard Stallman 2021-01-09 7:25 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Jean Louis 2021-01-10 17:18 ` Devin Prater 2021-01-11 15:57 ` Jean Louis 2021-01-09 6:40 ` Richard Stallman 2021-01-09 6:40 ` Richard Stallman 2021-01-11 13:47 ` Arthur Miller 2021-01-12 6:10 ` Richard Stallman 2021-01-12 14:32 ` Arthur Miller 2021-01-13 5:42 ` Richard Stallman 2021-01-08 13:53 ` [ELPA] New package: repology.el Jean Louis 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 18:38 ` Eli Zaretskii 2021-01-08 19:40 ` Dmitry Gutov 2021-01-10 6:06 ` Sv: " arthur miller 2021-01-11 4:42 ` Richard Stallman 2021-01-11 13:00 ` Arthur Miller 2021-01-12 6:11 ` Richard Stallman 2021-01-12 14:10 ` Arthur Miller 2021-01-13 5:42 ` Richard Stallman 2021-01-09 6:37 ` Richard Stallman 2021-01-09 8:41 ` Eli Zaretskii 2021-01-10 6:31 ` Sv: " arthur miller 2021-01-13 5:29 ` Richard Stallman 2021-01-15 14:37 ` Arthur Miller [not found] ` <2c5399e3-fa36-575d-d662-c7498dc334d6@yandex.ru> [not found] ` <X/dsHBhcgPAXbqwe@protected.rcdrun.com> 2021-01-07 20:34 ` Dmitry Gutov 2021-01-07 20:47 ` Jean Louis [not found] ` <834kjslexq.fsf@gnu.org> [not found] ` <E1kxcV3-0005Rt-7a@fencepost.gnu.org> 2021-01-08 7:06 ` Eli Zaretskii 2021-01-08 11:48 ` Jean Louis 2021-01-08 12:34 ` Eli Zaretskii 2021-01-08 13:56 ` Jean Louis 2021-01-08 14:45 ` Eli Zaretskii 2021-01-08 18:27 ` Jean Louis 2021-01-08 19:38 ` Eli Zaretskii 2021-01-09 6:41 ` Richard Stallman 2021-01-09 8:54 ` Eli Zaretskii 2021-01-10 6:07 ` Richard Stallman 2021-01-10 6:04 ` Richard Stallman 2021-01-10 6:04 ` Richard Stallman 2021-01-07 8:54 ` Jean Louis 2021-01-07 14:07 ` Eli Zaretskii 2021-01-07 18:18 ` Alfred M. Szmidt 2021-01-07 19:31 ` Eli Zaretskii 2021-01-07 21:07 ` Alfred M. Szmidt 2021-01-07 21:17 ` Dmitry Gutov 2021-01-08 17:22 ` Alfred M. Szmidt 2021-01-08 19:43 ` Dmitry Gutov 2021-01-09 6:41 ` Richard Stallman 2021-01-09 8:57 ` Eli Zaretskii 2021-01-08 19:48 ` Eli Zaretskii 2021-01-10 5:59 ` Sv: " arthur miller 2021-01-11 4:43 ` Richard Stallman 2021-01-11 13:35 ` Arthur Miller 2021-01-12 6:10 ` Richard Stallman 2021-01-12 15:20 ` Eli Zaretskii 2021-01-12 15:28 ` Dmitry Gutov 2021-01-12 6:11 ` Richard Stallman 2021-01-12 14:08 ` Arthur Miller 2021-01-13 5:43 ` Richard Stallman 2021-01-15 14:46 ` Arthur Miller 2021-01-09 6:34 ` Richard Stallman 2021-01-09 19:04 ` Dmitry Gutov 2021-01-11 4:43 ` Richard Stallman 2021-01-09 6:37 ` Richard Stallman 2021-01-09 8:43 ` Eli Zaretskii 2021-01-07 7:49 ` Richard Stallman 2021-01-07 11:41 ` Dmitry Gutov 2021-01-09 6:39 ` Richard Stallman 2021-01-09 10:50 ` Dmitry Gutov 2021-01-07 14:24 ` Eli Zaretskii 2021-01-07 8:15 ` Jean Louis 2021-01-07 14:37 ` Eli Zaretskii 2021-01-07 19:38 ` Jean Louis 2021-01-07 20:00 ` Eli Zaretskii 2021-01-07 20:31 ` Jean Louis 2021-01-07 20:38 ` Eli Zaretskii 2021-01-07 21:00 ` Jean Louis 2021-01-08 6:58 ` Eli Zaretskii 2021-01-08 10:24 ` Arthur Miller 2021-01-08 11:28 ` Jean Louis 2021-01-09 6:35 ` Richard Stallman 2021-01-09 8:36 ` Eli Zaretskii 2021-01-09 8:39 ` Eli Zaretskii 2021-01-10 6:13 ` Sv: " arthur miller 2021-01-06 20:36 ` Arthur Miller 2021-01-07 7:48 ` Richard Stallman 2021-01-07 16:53 ` Arthur Miller 2021-01-14 5:21 ` Richard Stallman 2021-01-15 14:52 ` Arthur Miller 2021-01-16 5:14 ` Richard Stallman 2021-01-07 8:49 ` Jean Louis 2021-01-07 7:49 ` Richard Stallman 2021-01-07 9:00 ` Jean Louis 2021-01-08 6:21 ` Richard Stallman 2021-01-08 6:25 ` Richard Stallman 2021-01-08 6:30 ` Jean Louis 2021-01-09 6:45 ` frepology.org Richard Stallman 2021-01-09 8:11 ` frepology.org Jean Louis 2021-01-11 4:47 ` frepology.org Richard Stallman 2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller 2021-01-07 11:46 ` Jean Louis 2021-01-07 19:38 ` Ulrich Mueller 2021-01-07 20:23 ` Jean Louis 2021-01-08 11:54 ` Ulrich Mueller 2021-01-08 18:23 ` Jean Louis 2021-01-09 6:35 ` Richard Stallman 2021-01-07 18:18 ` Alfred M. Szmidt 2021-01-09 6:34 ` Richard Stallman 2021-01-09 21:07 ` Ulrich Mueller 2021-01-11 4:46 ` Richard Stallman 2021-01-12 8:24 ` Ulrich Mueller 2021-01-20 6:14 ` Richard Stallman 2021-01-21 11:09 ` Ulrich Mueller 2021-01-22 6:06 ` Richard Stallman 2021-01-22 9:43 ` Ulrich Mueller 2021-01-24 6:35 ` Richard Stallman 2021-01-24 8:34 ` Ulrich Mueller 2021-01-25 5:53 ` Richard Stallman 2021-01-25 6:52 ` Jean Louis 2021-01-25 12:11 ` Fabrice BAUZAC-STEHLY 2021-01-25 15:29 ` Eli Zaretskii 2021-01-27 7:37 ` Richard Stallman 2021-01-25 15:51 ` Dmitry Gutov 2021-01-25 17:59 ` Jean Louis 2021-01-25 18:21 ` Dmitry Gutov 2021-01-26 3:40 ` Jean Louis 2021-01-26 6:10 ` Richard Stallman 2021-01-26 13:42 ` Stefan Monnier 2021-01-27 18:32 ` Jean Louis 2021-01-25 19:33 ` Eli Zaretskii 2021-01-25 19:38 ` Eli Zaretskii 2021-01-26 13:21 ` Richard Stallman 2021-01-26 5:59 ` Richard Stallman 2021-01-26 13:15 ` Dmitry Gutov 2021-01-27 7:41 ` Richard Stallman 2021-01-24 10:53 ` Org schemas we talked to be non-free, was: " Jean Louis 2021-01-24 17:50 ` Ulrich Mueller 2021-01-24 19:12 ` Jean Louis 2021-01-24 19:53 ` Eli Zaretskii 2021-01-24 20:36 ` Ulrich Mueller 2021-01-25 15:06 ` Eli Zaretskii 2021-01-26 6:01 ` Richard Stallman 2021-01-26 15:57 ` Eli Zaretskii 2021-01-26 16:03 ` Dmitry Gutov 2021-01-26 16:13 ` Eli Zaretskii 2021-01-26 16:14 ` Dmitry Gutov 2021-01-26 16:31 ` Eli Zaretskii 2021-01-26 22:55 ` Dmitry Gutov 2021-01-28 6:29 ` Richard Stallman 2021-01-28 14:08 ` Eli Zaretskii 2021-01-29 6:36 ` Richard Stallman 2021-01-24 20:47 ` Jean Louis 2021-01-25 15:13 ` Eli Zaretskii 2021-01-25 17:50 ` Jean Louis 2021-01-25 17:56 ` Jean Louis 2021-01-25 19:27 ` Eli Zaretskii 2021-01-26 3:50 ` Jean Louis 2021-01-26 6:09 ` Richard Stallman 2021-01-25 20:10 ` Ulrich Mueller 2021-01-25 20:21 ` Eli Zaretskii 2021-01-26 6:09 ` Richard Stallman 2021-01-25 5:53 ` Richard Stallman 2021-01-25 15:27 ` Eli Zaretskii 2021-01-24 20:46 ` tomas 2021-01-27 7:35 ` Richard Stallman 2021-01-25 5:53 ` Richard Stallman 2021-01-25 9:27 ` Ulrich Mueller 2021-01-26 6:03 ` Richard Stallman 2021-01-26 9:24 ` Ulrich Mueller 2021-01-27 7:43 ` Richard Stallman 2021-01-26 15:43 ` Jose A. Ortega Ruiz 2021-01-26 16:48 ` Kévin Le Gouguec 2021-01-28 6:34 ` Richard Stallman 2021-01-25 5:51 ` Richard Stallman 2021-02-16 5:21 ` freedom issues in free software Richard Stallman 2021-01-07 15:05 ` [ELPA] New package: repology.el Stefan Monnier 2021-01-13 15:57 ` Richard Stallman 2021-01-05 6:33 ` Richard Stallman 2021-01-05 11:21 ` Dmitry Gutov 2021-01-07 7:32 ` Richard Stallman 2020-12-30 21:58 ` [ELPA] New package: repology.el (v2) Nicolas Goaziou 2021-01-04 11:45 ` [ELPA] New package: repology.el (v3) Nicolas Goaziou 2021-01-04 17:32 ` Stefan Monnier 2021-01-19 9:50 ` [ELPA] New package: repology.el (v4) Nicolas Goaziou 2021-01-20 6:13 ` Richard Stallman
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.