From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 24 Sep 2021 21:00:28 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: <20210924190028.6g45na2ufxjk7stz@example.org> References: <20210922130839.b4iwv2arqyggczb3@example.org> <20210922144619.3h4va7j4u6m36mka@example.org> <20210922190348.rrn3cjywjwwcrhbl@example.org> <20210923004510.vwdythqavekqoow3@example.org> <20210923113814.ib7rjlvungq6gcyn@example.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [make-initrd] =?utf-8?b?dWRoY3BjIHNjcmlwdCDQsiDRhNC40YfQtSBuZXR3?= =?utf-8?q?ork?= X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Sep 2021 19:00:30 -0000 Archived-At: List-Archive: On Fri, Sep 24, 2021 at 08:31:50PM +0300, Leonid Krivoshein wrote: > Привет! > > > 23.09.2021 14:38, Alexey Gladkov пишет: > > On Thu, Sep 23, 2021 at 05:40:10AM +0300, Leonid Krivoshein wrote: > > > > Этот репозитории повторяет стратегию make-initrd-propagator, который > > > > как-то встраивался в make-initrd. И то и другое отдельно стоящие вещи в > > > > себе. Новый, правда, интегрирован с основным кодом лучше. > > > Я так понимаю, это всё из-за интеграции с network. Но посуди сам: pipeline и > > > network, плюс ещё несколько новых фич, это и есть тот набор, что ты сделал > > > на замену пропагатора, я лишь приделываю к этому диалоги и совместимость с > > > нынешним stage2. Если что-то не так приделываю, можно же это предметно > > > обсуждать. Да, я сначала думал делать полный или частичный форк фичи > > > network, потому что были большие сомнения, что удастся с ней > > > интегрироваться. Но это последнее, что нужно было altboot, чтобы быть больше > > > похожим на propagator (по возможностям) и удалось обойтись без форка, в > > > отличии от pipeline. Ты можешь сказать, чем плоха такая интеграция? http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918 > > > -- работает просто идеально. > > Тут надо пояснить, что о работе и интеграции говорилось с учётом ранее > сказанного и того факта, что waitnet времянка снаружи, а не заапстримленный > код внутри make-initrd. При создании waitnet ставилась совершенно > определённая цель и в этом плане она выполнена на 100%, далее объясню, > почему... > > > > К вопросу о ревью: вот и как предполагается комментировать код с git.alt ? > > Ок, буду по ссылкам. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l12 > > Уже понял, что лучше отдельными патчами в рассылку. Просто, когда-то давно > ты и так принимал. > > > > Про это я уже писал. Это проверяется не так. > > С has_feature() я разобрался. И в новой версии уже она. Но пока код не > заапстримлен, полагаться на API в make-initrd и тем более привязываться > жёстко к каким-то фичам весьма рисково: любая твоя новая сборка с таким > изменением сможет поломать работу ещё не заапстримленного altboot, поэтому я > иду по пути минимальной привязки на данном этапе. Поэтому и: > > > Остальной интегрируется так, что не использует ничего из того с чем > > интегрируется. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l32 > > > > В network-sh-functions есть ipv4_enabled. > > Разумеется, я внимательно изучил код фичи и видел эту функцию. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l51 > > > > Теряются абсолютно все ошибки. Ошибки в ip=, в macaddr, в указании масок. > > Вместо всего этого будет "can't reconfigure network settings". Этого быть > > не должно. > > Тут я полностью согласен. Но уже говорил, что код не финальный. waitnet -- > времянка для выяснения конкретной возможности. Если выкинуть этот код, > выкинуть шаг waitnet из цепочки загрузки, все 4 сетевых метода сейчас будут > работать без него. Надо будет указывать ip=dhcp в /proc/cmdline или задавать > другие сетевые настройки. Поэтому отправка в /dev/null сейчас сделана чисто > чтобы не портить внешний вид диалога, наверное, лучше отправлять в 1>&2 в > этом месте. > > > > Также я уже говорил, что я думаю про дёргание /lib/initrd/cmdline.d/network. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l56 > > > > Этот шаг можно выполнить лишь один раз. > > Не согласен! :-) Ты делаешь внутри условия запись: if [ ! -s "$NETBOOT_IFNAME" ]; then ... echo "$netdev" >"$NETBOOT_IFNAME" fi Больше ты этот файл нигде не пишешь: http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git&a=search&h=0b2522e81ea6279295bae02a8aa77e84c86d3918&st=grep&s=NETBOOT_IFNAME то есть после записи в этот файл этот if никогда больше не выполнится. Этот шаг можно выполнить лишь один раз. > И waitnet демонстрирует это без чистки предыдущей > конфигурации. Объясню почему. Сейчас waitnet смотрит, была ли выполнена > конфигурация. И если конфигурировался только lo, то повторный запуск без > чистки ни на что не повлияет. Он же не создаст дублирующего правила udev, > т.к. перед дёрганием явно задаётся IFNAME="0". > > > > Это не вяжется у меня с > > > > "Can't bridge up network interface. Try with other network settings, wired > > connection and/or cable." > > > > Если пользователь попробует тот же интерфейс с другими настройками, то > > второй раз проверки не будет ??? > > На этом диалоге ранее выполнялся перезапуск машины, в версии 0.1.5-alt3 > решил в этом месте перезапустить altboot -- сейчас тут возврат в начальное > меню, где можно выбрать другой метод загрузки, не по сети. Т.е., прошло 16 > секунд, сеть так и не поднялась. Если этого мало, пользователь дойдёт сюда > снова. Но может и другой путь выбрать для загрузки. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l65 > > > > Хардкод имени интерфейса. is_loopback(). > > Не только, это ещё и break loop / защита от пустого каталога. Обычно я тут > ставлю "_". Тогда так и нужно писать: for d in /sys/class/net/*; do [ -d "$d" ] || continue ... done И не нужно отдельно вписывать lo. Он всегда там есть. > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l67 > > > > Для чего эта проверка ? > > Чтобы предотвратить дальнейшую работу цикла, если мы имеем дело не с сетевым > интерфейсом. В этом каталоге только сетевые интерфейсы. > И ещё проверка того факта, что с момента вышестоящей команды ls > интерфейс не исчез. Это бессмысленно т.к. интерфейс может исчезнуть сразу после этой проверки. > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l73 > > > > Я полагаю это проверка на то что интерфейс поднят ? Если да, то is_link_up > > Если проверка на присутствие адреса, то "/.initrd/online/$NET_IF". > > Да, разумеется, про более тесную интеграцию я уже выше написал. Где-то ранее > мы как раз обсуждали, ты же сам и говорил, что надёжнее не дёргать > внутренности make-initrd, а проверять через ip. Эм. Кажется, ты меня неправильно понял. Где я такое писал ? > waitnet -- "проверка боем" того факта, что внутри make-initrd можно повторно > дёрнуть фичу network, выполнив конфигурирование в том случае, если его ещё > не было, возможность передать ему вполне конкретные настройки. Правильное > название этой фичи -- bootchain-network, правильное название шага с > диалогами (!) -- neconfig или netsetup, основная цель -- "не делать форк > фичи network" достигнута. > > Разумеется, netconfig/netsetup при апстириме нужно будет интегрировать с > фичей network более жёстко, но тогда тебе придётся следить в обеих местах, > чтобы не разъезжалось. Собственно, именно это и было целью эксперимента > "waitnet", и целью одной из так и не состоявшихся встреч -- обсудить > принципиальную возможность интеграции существующих фич с > bootchain/interactive. > > > > > > Кроме того, если тебе нужно поведение propagator, то он уже есть и незачем > > > > его переизобретать. > > > Выше озвучивались не просто общие слова -- у нас куча граблей и нет способа > > > быстро перейти на make-initrd + pipeline с ними. Вот простейший пример, мы > > > готовимся избавиться от isolinux для legacy/x86, но сколько это будет > > > тянуться -- неизвестно. Он сам (его брэндинг) добавляет опции пропагатора в > > > загрузку и на это приходится ориентироваться, так как если не работает, > > > сразу баг. > > Я уж не знаю вашей кухни, но вообще-то, да, это сразу бага. > > Бага на брэндинг. Он передаёт устаревшие параметры. > > Всё так, но надо учитывать, что их куча, и нет цели и возможности исправить > это всё сразу. Это не оправдание для костылей любой ценой в новом коде. > > [...] > > А тут ты про некую последовательность коммитов говорил, но где они ??? > > Я до сих пор не получил ни одного коммита. Все эти разговоры пустая > > болтовня какая-то. > > И с этим вроде разобрались, а то github, ещё PR какой-то. Я предложил несколько альтернативных вариантов. В целом, github это всё тот же git репозиторий, только в дополнение он сам вызывает некоторые мои тесты. -- Rgrds, legion