emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Consideration for Rust contributions in Emacs


From: Po Lu
Subject: Re: Consideration for Rust contributions in Emacs
Date: Tue, 11 Apr 2023 20:39:20 +0800
User-agent: Gnus/5.13 (Gnus v5.13)

Po Lu <luangruo@yahoo.com> writes:

> There are no real ideological reasons.

This has changed.  From my POV, Rust is now completely unsuitable for
writing code for Emacs.

The Rust Foundation has published a draft trademark policy.  They will
apply this policy to all use of the Rust trademark, including towards
documentation surrounding other implementations of the Rust language.

The primary problem with this proposed policy is its attitude towards
use of their trademarks in copies of software, especially modified
versions of the Rust compiler.

>From their policy:

  4.1.1 Distribution of unmodified source code or unmodified executable
  code we have compiled

  When you redistribute an unmodified copy of the Rust software, you are
  not changing the quality or nature of it.  Therefore, you may retain
  the Word Marks and the Logos we have placed on the software to
  identify your redistribution -- whether that redistribution is made
  via physical products, physical media, or download, and whether that
  redistribution consists of unmodified source code or executables.  If
  you autogenerate unmodified documentation created by the Project using
  rustdoc, you do not have to remove any Word Marks or Logos.  This only
  applies if you are redistributing an official distribution from the
  Rust Project that has not been changed in any way.

  4.1.2 Distribution of executable code that you have compiled, or
  modified code

  See [cross-reference to ## Uses for which we are granting a license;
  ### Distribution of modified software] for cases where you may modify
  the software and use the Marks and Logos for it.

  You may also use the Word Marks, but not the Logos, to truthfully
  describe the origin of the software that you are providing, that is,
  that the code you are distributing is a modification of our
  software.  You may say, for example, ``compiled from the Rust source at
  GitHub'' or that "we have included tools taken from the Rust project in
  our toolchain.'' You must also remove our Logos.

  If you are creating documentation and have modified it, you do not
  have to remove any Word Marks or Logos that appear in screenshots or
  in the text for illustrative or explanatory purposes.  However, you
  must remove them where the use suggest that the Rust Foundation has
  published or endorsed your version of the documentation, such as on
  the cover.

  Of course, you can place your own trademarks or logos on versions of
  the software to which you have made modifications, because by
  modifying the software you have become the origin of that exact
  version.

  4.1.3 Statements about compatibility, interoperability or derivation

  You may use the Word Marks, but not the Logos, to truthfully describe
  the relationship between your software and ours.  Our Marks should be
  used after a verb or preposition that describes the relationship
  between your software and ours.  So you may say, for example, "the
  Dungeness tool for the Rust compiler" but may not say "the Dungeness
  Rust compiler," which suggests that Dungeness is the source of the
  Rust compiler.  Some other examples that may work for you are:

    [Your software] is written in the Rust language
    [Your software] can compile software written in Rust 
    [Your software] can be used in the Rust compiler toolchain
    [Your software] is based on the official Rust compiler

  4.1.4 Rust the language versus Rust products and Project

  Rust is the name of a language, the name for software, the name of the
  project, and the name of the community.  It must always be clear which
  one you are referring to when you use ``Rust.'' If there is a
  possibility of misinterpretation, you should amend your wording so
  that there can be no misunderstanding.  For example, the term ``Rust
  compiler'' can be interpreted as both the compiler distributed by the
  Project and any compiler that can compile the Rust language.  If you
  are not referring to the compiler distributed by the Project, you must
  change the wording to make it clear that this is not the compiler
  distributed by the Project, such as ``ABC compiler for Rust.''

Here, several problems are apparent.  First of all, there is an emphasis
on the redistribution of source or binary code unmodified by anyone but
the Rust developers: that in itself is not a problem, but it is
concerning.

4.1.2, 4.1.3, 4.1.4, however, imply that it is forbidden to use the word
``Rust'' to directly describe modified executable code.  For example, if
you modify the Rust compiler in an unapproved manner, it can no longer
call itself the ``Rust compiler''.  Unfortunately, rewording each
reference in the Rust compiler is not feasible, making the compiler
effectively proprietary, as one cannot freely convey modified versions
of the compiler.

4.2.1, 4.3.1 further expand on this:

  4.2.1 Distribution of modified software

  You may use the Word Marks and the Logos for the distribution of a
  modified version of the Rust programming language, compiler, or the
  Cargo package manager, provided that the modifications are limited to:

    - code adjustments for the purpose of porting to a different
      platform, architecture, or system, or integrating the software
      with the packaging system of that platform; or
    - fixing local paths; or
    - adding patches that have been made available upstream and
      accepted, or submitted upstream and not yet rejected (but you must
      remove either the patch or the trademark once the patch has been
      rejected)

  4.3.1 Use of the marks in toolchains or other software for use with
  Rust

  Using the Marks in the name of a tool for use in the Rust toolchain, a
  software program written in the Rust language, or a software program
  compatible with Rust software, will most likely require a license.
  The ``RS'' abbreviation can be used instead.

Restricting redistribution of modified versions of the Rust compiler to
simple ports, and making difficult the development of other Rust
compilers.  If you are writing Rust code for Emacs, please stop.  As
things are, that code is not going to be useful.



The policy is also politically discriminatory: the policy's FAQ section
contains

  Can I use a modified version of the logo on social media?

  In general, we prohibit the modification of the Rust logo for any
  purpose, except to scale it.  This includes distortion, transparency,
  color-changes affiliated with for-profit brands or political
  ideologies.

  On the other hand, if you would like to change the colors of the Rust
  logo to communicate allegiance with a community movement, we simply
  ask that you run the proposed logo change by us by emailing the file
  to contact@rustfoundation.org with a description of the changes you’re
  proposing.  In the future, we intend to publish new versions of the
  Rust logo to accord with community movements (ex: LGBTQIA+ Pride
  Month, Black Lives Matter, etc.)

and 5.3.1 contains:

5.3.1 Events & Conferences

  Events and conferences are a valuable opportunity to grow your network
  and learning.  Please contact us at `Where to go for further
  information' below if you would like to hold an event using the Marks
  in the event name.  We will consider requests to use the Marks on a
  case by case basis, but at a minimum, would expect events and
  conferences using the Marks to be non-profit-making, focused on
  discussion of, and education on, Rust software, prohibit the carrying
  of firearms, comply with local health regulations, and have a robust
  Code of Conduct.

While not directly related to using Rust to write software, it sure
makes me uncomfortable to think about producing long-lasting free
software with a compiler under the firm grasp of developers who seem to
care more about firearms restrictions and issues better left for
soc.motss...



reply via email to

[Prev in Thread] Current Thread [Next in Thread]