Rust's Freedom Flaws

As free software activists, we all enjoy using the latest and greatest in free software, but we need to make sure that the software we are using really does respect our freedom. Many users have expressed to us their desire to run Rust, since it appears to be fully free software, but it still fails in several ways.

What are the issues?

Rust and also Cargo (the Rust package manager) violate the freedom to redistribute without “explicit” approval. Their trademark license imposes requirements for the distribution of modified versions that make it inconvenient to exercise freedom 3. The Rust's Media Guide says it merely supplements the official Mozilla trademark policy; it doesn't replace it. Since their trademark policy applies, then everything in that list (including Rust and Cargo) pulls in the same issue as Firefox and Thunderbird.

In short, Mozilla won't be happy with us applying patches and modifications to their trademarked language without “explicit approval”, except for non-commercial usage, so it is a freedom issue. For further references, there is a report in Rust about those trademark restrictions and Niko's response (one of the members of the Rust Legal Team).

Big Picture

There are important applications integrating Rust as a first-class language. Tor is one of them, and at some point in the future, the Tor team has plans to announce a release and release date where Rust will be required. Even the Linux Kernel Team is interested in providing modules written in Rust.

As an alternative to Tor, i2pd (I2P Daemon) may be used. It is a full-featured C++ implementation of I2P client, useful for building and using the anonymous I2P network. However, i2pd isn't compatible with the Tor network and uses .i2p rather than .onion sites (also known as Tor Hidden Services).

Solutions

  • Rebranding the entire language to avoid the trademark restriction. Such as IceCat was made to replace Firefox and Iceweasel-UXP to replace Basilisk; however it is a programming language, not a browser. A rebranded version of Rust maintained by the GNU Project and FSDG-compliant distros could be the way. However, we would need patches to adapt all Rust-dependant applications to the modified version of Rust, since it is a programming language. We would also need to maintain a list of nonfree cargo packages to blacklist those for your-freedom.
  • Getting Rust to change its trademark agreement to allow modifications on the rust binary for any purpose in respect of Freedom 3.