Comments 70
Первое апреля было вчера.
А вообще слишком толсто и много манипуляций чтобы пытаться спорить.
Также отсутствует зависимость от Интернет-репозитория. Можно дисками обмениваться, создавать свои репозитории.
Разрабатываемый мной дистрибутив основан на исходниках, а не бинарниках.ок, но чем он должен быть лучше Gentoo или других source-based дистрибутивов?
Что же, удачи вам!
cargo vendor и еще какие то тулзы и хелперы из инфрастуктуры федоры.
Что там грибы эти разрушают и кому мешают жить — непонятно…
Справедливости ради, даже на этой странице wiki видно, кого эти грибы разрушают и кому они мешают жить. И, как по мне, ржавчина даже менее непривлекательная, чем эти грибы.
В условиях Чебурнета ценность лицензионных версий отсутсвует. Что с лицензией баги не фиксятся что с пираткой.
Я пользуюсь виндой, которая у меня куплена, и полученной когда-то подпиской на MSVS professional. Пишу на расте опенсорс, например порт opencv cv-rs
. Где тут кряки и серийники? Или я "ненастоящий шотландец"?
Про порт я видимо думал про что-то другое, и отвлекся. Не порт, конечно же, а враппер. Порт было бы хорошо заиметь, но это ведь нереальное количество усилий необходимо. Вряд ли это возможно.
Since the Rust compiler is written in Rust, it must be built by a precompiled «snapshot» version of itself (made in an earlier stage of development). As such, source builds require a connection to the Internet, to fetch snapshots, and an OS that can execute the available snapshot binaries.Однако, автор сильно загибает, предполагая гипотетическую ситуацию, когда он остался один во всём мире с единственным рабочим компьютером, на котором увы, нет бинарника Rust, но по каким-то причинам есть исходники.
Да собственно, какая кому разница будет в Чебурнете?
Т.е. я могу представить людей, которые идут от двоичных кодов простейшего ассемблера, к более-менее рабочему асму, далее small-c, далее (возможно с промежуточным каким-то билдом) gcc, ну и далее везде.
В с другой стороны — и gcc собирают уже готовым блобом gcc :-)
ну вот ozkriff уже подсказал, что вроде можно.
Ken Thompson — Reflections on Trusting Trust
Ну вот поэтому в gentoo в параноидальном режиме gcc трижды пересобирался, вначале старой версией, потом сам собой, а потом новой копией и хеши двух последних сравнивались и должны были совпасть.
В чем смысл совпадения хешей? Получается, компилятор не может применять новые оптимизации с новой версией? Зачем его пересобирать тогда?
Можно еще вспомнить https://github.com/thepowersgang/mrustc как замену блобу компилятора для раскрутки, правда mrustc в последние версии ржавчины (пока?) не умеет, надо через много промежуточных версий будет пробутстрапиться.
As with many other programming languages, rustc (the rust compiler) needs a binary from which to bootstrap. It will download a stage0 binary and many cargo crates (these are actually .tar.gz source archives) at the start of the build, so you cannot compile it without an internet connection.
Вот читаю по вашей ссылке «The LFS system will be built by using an already installed Linux distribution». То есть не имея блоба компилятора в уже установленной системе Linux — собрать линукс БЕЗ rust невозможно, даже следуя инструкции! Ужас-ужас, это не опенсорс, заговор масонов, нас хотят оставить без линукса!
не имея блоба компилятора
Открываем LFS и читаем:
The LFS system will be built by using an already installed Linux distribution
2.2. Host System Requirements
Your host system should have the following software
GCC-5.2
Ой.
А там ещё целый список из двадцати обязательных для сборки блобов помимо компилятора. Ну и само ядро линукса как ещё один большой жирный блоб, да.
А проблема в статье поднята справедливо. Действительно, странно что "свободный" софт не собрать без закрытого бинарника. Мне кажется, тут половина комментаторов вообще не понимает, о чем речь.
Это какая-то гуглизация (огугливание?) свободного ПО. Сегодня мы раст не можем собрать без бинарника, Хромиум не можем использовать без одобрения Гугла, а завтра нам ОС будет не установить без регистрации и полученитя ключей API в проприетарном сервисе (но, конечно, это будет хороший проприетарный сервис, а не такой как другие).
Нет, вполне можете. Просто вам придется пройти через сравнительно длинную цепочку.
Сначала вы с помощью gcc собираете mrustc.
Далее, с помощью mrustc собираете rustc 1.19
И дальше собираете следующие версии rustc через предыдущие.
Принципиальных отличий от сборки gcc нет.
Эту цепочку стоило бы заскриптовать и поместить в репозиторий. Необходимость что-то бинарное скачивать плохо соотносится с идеологией опен сурс, потому что:
- мозилла может отказаться предоставлять блоб, например, если вы живете на Кубе, в Иране или Северной Корее
- мозилла может просто отказаться предоставлять вам блоб
- блоба под вашу архитектуру может не быть. Как тогда разработчикам российских процессоров использовать раст?
По поводу российских процессоров. Насколько я понимаю архитектуру rustc, разработчики процессоров должны портировать на них LLVM, а раст заработает сам. И сборка компилятора все равно будет куда проще, чем написание качественного llvm-бэкенда.
Ничего проприетарного в блобе нет. Вы можете взять его у любого человека с той же архитектурой компьютера и ОС. Это блоб той же природы, что и компилятор C/C++, Roslyn, CoffeeScript и так далее. Всякий раз, когда компилятор языка Х пишется на языке Х, неизбежно возникает длинная цепочка бутстрапа.
Все в ваших руках, при желании.
Манипуляция фактами, gcc абсолютно точно так-же невозможно собрать без имеющегося закрытого бинарника gcc. Фактически вы подменяете возможность бутстрапинга тем фактом, что программа обязательно должна уметь собираться при помощи gcc и если так не происходит, то о ужас печалька.
Rust тут ведет себя строго так-же как и gcc, который при сборке обновления некоторые по три раза собирают.
Да и тут неоднократно давали ссылку на mrust, который можно собрать с помощью gcc, а уже с помощью mrust собрать полноценный rustc.
Да, это вполне можно считать «крайне маловероятным сценарием атаки», «радикальной столлмановщиной» и т.п., но тем не менее существуют bootstrappable.org и reproducible-builds.org. Есть проекты «бутстрапа с нуля» вроде asmc или stage0, авторы которых пытаются создать тулчейн, позволяющий начать с минимального загрузчика (который действительно можно понять и набрать хоть в машинных кодах) и последовательно собирать инструменты всё возрастающей сложности, заканчивая компилятором C, способным собрать gcc 4.7, способным собрать gcc 4.7+, способным собрать что угодно*.
* кроме Rust
Статья «переходит на личности» в отношении Rust, однако шевеление проблемы compiler bootstrapping — хорошее и полезное дело. Оно может пригодиться, если вы делаете процессор из песка и камушков или пишете какую-нибудь Haiku OS под Байкал (не сарказм).
P.S. mrustc описанную Томпсоном проблему «trusting trust attack» решает частично т.к., если я правильно понимаю, результатом работы mrustc будут собираемые, но не слишком читаемые транслированные исходники на С (но это уже из разряда философии).
Вроде писал нормальные статьи, а потом резко крыша поехала и всё. Ещё такие же — Imonin и butt--head
С блобом разобрались, осталось с репозиторием разобраться чтоб «исходник» в свободный Интернет не лез. Иначе за попытку
То что минусы тролли наставили — тролли писали эту статью и я уверен что они не минусовали свою статью)
Правда никому не нравится — только в статье ее нет, начиная прям с первого предложения :)
если врубят Суверенный Чебурнет — как старухи у разбитого корыта остануться все. А it сектор в частности здорово сдаст свои позиции, вакансии за 300$ в Москве станут верхом желания. Не секрет что основная прибыль, приходит от работы с западом, да часть компаний останется на плаву(эльбрусы, альт линуксы и им подобные, сори названий именно компаний не помню поэтому назвал продукты) Но все остальные закроются, ибо столько ит спецов сколько есть сейчас рынку снг не надо, а с другими рынками работать будет низя.
Иначе за попытку шпионажа соединения с заграничным сервером уголовную статью впаяют. — если так боитесь этого сценария, спросите совет их есть у меня:
1) Что бы не волноваться, закуриваете астру или беломорканал. Пыхаете пару колечек дыма.
2) Жену, детей, родителей, внуков, правнуков, сестру и брата дислоцируете в гараж.
3) Снимаете с вешалки давно пылившиеся ключи.
4) Двигаете в гараж к родне.
5) Расчехляете транспартное стредство.
6) Вставляете ключики.
7) Заводите.
8) Пересекаете границу
9) Оборачиваетесь назад.
10) Делаете жест ручкой, вытираете сопли о березку.
11) Глушите трактор возле серверов, линукса, раста ну по вкусу.
12) Разбиваете палатку
13) И живете без всяких угроз.
Правда в том, что подобное высказывание — ложно.
Если же речь идёт не о домохозяйках, черпающих информацию из тельавизора, то не нравится вбросы, передёргивание, враньё.
> если врубят Суверенный Чебурнет
, то он и всякие компиляторы будут наименьшей проблемой. Это будет интересовать разве что работающих «на систему», превозмогая создаваемые ей сложности.
Хорошую вещь ржавчиной не назовут