В макефилах водятся привидения. Не всегда быстро и просто обнаружить в них что происходит с нужной переменной, а ещё бывает нужно вытащить переменную из него... Своя рубашка обёртка над сборкой ближе к телу.
Да тут люди утверждают, что двух слоёв недостаточно. Мало иметь просто язык скриптов и утилиту разрешения зависимостей, надо ещё сверху какую-то нашлёпку.
мне пофигу на portage, и я знаю что такое environment variables.
мне интересно «Почему в FreeBSD хватает просто makefile-ов и EnvVars» и что такое EnvVars в этом контексте.
ещё раз спрошу, что такое environment variables? судя по твоим ответам — это нечто волшебное чего просто хватает.
и даже возможно, это как-то связано с тем, что пользователи BSD есть.
будешь продолжать или всё-таки напишешь, какого чёрта переменные окружения стали фишкой фряхи и расскажешь как часто ты их используешь при компилянии портов, вместо использования конфигов которые парсятся трильярдом *.mk файлов?
какого чёрта переменные окружения стали фишкой фряхи
Я как раз удивлён тем, что переменные окружения совершенно одинаковые и в BSD и в linux, но при этом в BSD их хватает, а в linux их не хватает и нужны USE-флаги
будешь продолжать
да! Я так и продолжаю считать, что можно построить аналог portage исключительно средствами make
переменные окружения совершенно одинаковые и в BSD и в linux и в маке и в винде и в ректалосе и вообще везде где они существуют.
или ты считаешь, что написав в шелле OPTIONS_UNSET=DOCS, environment variables автомагически что-то делают?
или от тебя вообще кроме лозунгов про portage на любой вопрос ничего не добиться?
environment variables автомагически что-то делают?
а им это не нужно, потому что есть bash-команды внутри make-файла. Именно они что-то делают как при наличии, так и, самое главное, при отсутствии portage
почему ты считаешь, что я пытаюсь подъе...ать? ну наверное после твоего линка на вики меня немного начало подбешивать, хорошо хоть не на русский перевёл.
наверное меня немного подбешивает упоминание рандомное portage почти в каждом ответе.
да, возможно.
а возможно, я хочу намекнуть, что проверка дефайна переменной прежде чем брать её значение из конфига или ставить дефолтным не является заслугой переменной. и никак не является заслугой механизма, благодаря которому эта переменная возможна.
и да, внутри make-файлов в base фряхи нет bash-команд.
не думаю, что после этого есть смысл с тобой спорить. предлагаю просмотреть пару mk файлов и чегонить почитать. а потом приходить без волшебных EnvVars которые чёта умеют или не умеют.
проверка дефайна переменной прежде чем брать её значение из конфига или ставить дефолтным не является заслугой переменной. и никак не является заслугой механизма, благодаря которому эта переменная возможна.
ну да, и что?
внутри make-файлов в base фряхи нет bash-команд.
это проблемы фряхи. Но ничто не мешает засунуть в make-файл команды шелла. make для этого был рождён.
Не логично. Ты не спрашиваешь в чём различие. Ты начинаешь выдвигать какие-то необоснованные тезисы о том, что нужно или не нужно, не зная устройства ни фряшных портов, ни гентушного портажа. При этом ещё высказываешь оценочное суждение по поводу инструментов, с которыми ни разу не работал.
Можно выкинуть питон и использовать вместо него шелловый скрипт?
При сравнивых возможностях, будет медленнее и сложнее в поддержке.
Работает это как-то в BSD?
Далеко не всё имеющееся в портаже, есть во портах.
Повторяю. Ты не знаешь ни портов, ни портажа, а мнение имеешь. Сперва изучи хотя бы один из этих инструментов, а потом будешь задавать вопросы, есть ли сопоставимые возможности в другом. Сейчас ты или пытаешься толсто троллить или просто расписываешься в собственном неумении думать.
А меня не интересуют фактические возможности. Меня интересует стратегия. Правильно ли сделали, что создали portage или это была стратегическая ошибка. (потому что недостающие возможности можно и дописать)
Пока я считаю, что всё можно было сделать и без portage.
Между тем введение portage в тулчейн подавило некоторые возможности make (portage не умеет _только_ достраивать, он излишне брутален)
Это что сейчас за набор слов был? Портаж делался для того, чтобы взять лучшее из портов и добавить функционал, которого в них не хватало. Это и было сделано.
Что там у тебя за какие-то гипотетические стратегии, я не знаю. А что там ты считаешь, никого не волнует, так как мнение о инструменте человека, которые этот инструмент в глаза не видел, не имеет никакого веса.
Правильно ли сделали, что создали portage или это была стратегическая ошибка
какой-то анонiмус стайл.
какая разница? оно уже есть, а ключей от машины времени тебе не дадут.
у тебя ограниченный список вопросов которые ту можешь ставить:
Типичный хороший компьютерщик, даже занятый довольно сложной работой, — это весьма средний по умственным способностям человек, натаскавшийся в своей профессиональной области. Как правило, на интеллектуала он не тянет. Суждения типичного хорошего компьютерщика даже о сфере его профессиональной деятельности, как правило, ограничены и наивны. Он — придаток к сложным компьютерным системам. Он больше других подвержен всяким компьютерогенным зависимостям. Если у повара и врача их профессиональные знания — в основном о природном, не зависящем от мнений людей, то у компьютерщика — о преходящих условностях. Компьютерная литература, которой 15 лет, — это в основном мусор, причём не потому, что наука ушла вперёд. Чем больше в стране компьютерщиков, тем меньше реалистично мыслящих граждан, на которых можно опереться в больших делах и от которых будет польза в критических условиях. Компьютерщик окажется голодным ненужным никем, зато скорее всего с геморроем, вялой мускулатурой и привычкой к комфортному офисному существованию.
Это означает, что даже с включенным FEATURES=«keep-sources» он всё равно повторно выполняет операции (типа копирования в неимоверных количествах). Многие из этиз операций можно было бы не выполнять и таким образом ускорить сборку
И исходники берёт прямиком из архива, не распаковывая? А потом в процессе сборки не складывает бинарники во временную директорию, в которой потом не делает линковку и из которой потом не инсталлит бинарники в конечные пути на файловой системе?
Но make ничего этого не делает(и это правильно, потому как писали его грамотные люди, а не ты). Сейчас для тебя это будет откровением, но непосредственно для сборки портаж вызывает всё тот же make(или аналоги - зависит от пакета). И все эти действия полностью аналогичны и в портах, и в портаже.
Но если бы make был сквозной и вычислял бы как внутренние зависимости пакета, так и внешние зависимости между пакетами - не пришлось бы выполнять принудительные операции, которые сейчас выполняются каждый раз, так как portage не имеет возможностей make по проверке состояния собранности (всякие там файлы с точками по фазам - это слёзы)
надо добавить, что они оба тормознуты, потому что не умеют через losetup накладывать патчи, по этому распаковывают.
главное, чтобы точки по фазам не пошли.
Ещё раз, какие принудительные операции? Распаковку архива, сборку и линковку бинарников и последующее разнесение их по файловой системе? Эти действия полностью аналогичны и в портах, и в портаже.
Именно. Потому как по сути являются одним и тем же. Упрощённо говоря, и то, и другое вызывает обёртку над configure && make && make install, предварительно проверив зависимости и передав в configure опции сборки.