all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [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 (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
  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-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-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 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-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 (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
  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 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 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 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 (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
  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: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: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 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 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-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  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-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  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-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-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-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  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 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 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-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
  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-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

* 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-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-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-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-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 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-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  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  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 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-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  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-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  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  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-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-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 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
       [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: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 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 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 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: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
       [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: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: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

* 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 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 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  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: [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-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

* 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

* 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: [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: 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: [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-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: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: 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: [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 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: 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: [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  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 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-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 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: 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 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: [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 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

* 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 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

* 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-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-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 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-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-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-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: 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 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: [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-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: 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: 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: 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: 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: [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

* 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

* 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-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  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-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-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  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

* 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-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

* 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-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

* 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

* 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: 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: [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-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-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-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: 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-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  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: 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-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-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-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-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-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-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: [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-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-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-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-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  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: 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

* 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-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: [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-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: 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-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-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-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-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-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

* 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-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 (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

* 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

* 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 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 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 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

* 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: 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-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: [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: 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: [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: 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-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  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: [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  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: 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: [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: 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: [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: 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: [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: 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: [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: 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-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-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-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: [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: 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: [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-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-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: 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: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  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: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-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: [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-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

* 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: [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: 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-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-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

* 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

* 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

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.