From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 27 Sep 2021 10:45:50 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: <20210927084550.6mgnasnm2rzzz66l@example.org> References: <85596fef-b8b4-79ac-3714-8c7b0ca5b3a7@gmail.com> <20210924183146.ctscatzo5dosddrd@example.org> <8f429882-3362-c39b-bb23-a454399dd91d@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <8f429882-3362-c39b-bb23-a454399dd91d@gmail.com> Subject: Re: [make-initrd] [PATCH v1 03/41] fork pipeline: 10 new files added 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: Mon, 27 Sep 2021 08:45:52 -0000 Archived-At: List-Archive: On Sun, Sep 26, 2021 at 09:41:49PM +0300, Leonid Krivoshein wrote: > > > 24.09.2021 21:31, Alexey Gladkov пишет: > > On Fri, Sep 24, 2021 at 06:55:00PM +0300, Leonid Krivoshein wrote: > > > --- > > > make-initrd/features/bootchain-core/config.mk | 5 + > > > .../bootchain-core/data/bin/machine-info | 123 ++++++++++++++++++ > > > .../bootchain-core/data/lib/bootchain/debug | 84 ++++++++++++ > > > .../data/lib/initrd/cmdline.d/bootchain | 6 + > > > .../bootchain-core/data/sbin/bootchain-logvt | 36 +++++ > > > make-initrd/features/bootchain-core/rules.mk | 3 + > > > .../features/bootchain-getimage/README.md | 20 +++ > > > .../features/bootchain-getimage/config.mk | 5 + > > > .../features/bootchain-getimage/rules.mk | 2 + > > > .../features/bootchain-waitdev/README.md | 21 +++ > > > 10 files changed, 305 insertions(+) > > Леонид, ты мастер commit message! С твоими описаниями не поспоришь. > > Действительно, 10. Но важнее, что это за файлы. > > Да, уже говорил, что на первой итерации первыми тремя патчами просто хотел > показать крупными штрихами, что-куда переехало, и что было добавлено при > форке. > > > > Кстати, я хочу обратить > > внимание: > > > > https://github.com/osboot/make-initrd/blob/master/Documentation/Contributing.md > > > > Для меня это важно. > > Я понял, что финальный вариант должен пименяться к апстримному дереву с > подписыванием коммитов. > > > > Ты добавляешь фичи, но ни слова не пишешь о том, что это. > > В черновике документации всё же постарался всё отразить. Но я понимаю, что и > коммиты теперь нужно превратить на какую-то правдоподобную историю. > > > > Это же относится > > и к README.md. Там ни слова про то что это. Только название и параметры. > > Вот тут я не очень понял. Исходный pipeline содержал README.md, я просто > скопировал отдельно описание getimage и waitdev, оставив на месте основной > исходник. Фича pipeline же тоже осталась. В новой версии описания я просто > добавил ссылку смотреть пока в README от pipeline. # Feature bootchain-getimage This is not a standalone feature. This is an add-on to the bootchain feature. It allows to get a remote image and mount it. This is useful for network boot. ## Boot parameters ... Что-нибудь такое или получше. > Второй момент заключается в том, что я не прочь потренироваться в написании > README и коммит-мессаджей, тем более, по плану до начала апстрима собирался > их написать. Но вот на один README для interactive у меня вся ночь ушла. > > Третий момент заключается в том, что ранее ты предлагал сам перевести > README, если я сделаю документацию на русском. Вот на родном могу написать > хорошо и быстро, но у тебя вроде пока нигде в фичах пока нет README.ru.md, а > так я уже думал на эту тему. Русской документации пока нет. > > > [...] > > > + > > > + find /sys/devices -mindepth 2 -maxdepth 2 -type d -name "$glob" | > > > + grep '/sys/devices/pci' | > > find /sys/devices -mindepth 2 -maxdepth 2 -type d -path "/sys/devices/pci*/$glob" > > > > > + sort | > > > + while read -r sysfs; do > > > + printf "%s" "${sysfs##*/}" > > > + handle_field class > > > + handle_field vendor > > > + handle_field device > > > + handle_field subsystem_vendor > > > + handle_field subsystem_device > > > + handle_field revision > > Мне кажется в handle_field() не имеет смысла проверять на существование > > эти файлы. Это всё компоненты MODALIAS. > > > > Зачем это печатать отдельно, если это ровно modalias ? > > > > По сути всё тело функции можно заменить: > > > > find /sys/devices -mindepth 2 -maxdepth 3 -type f -path "/sys/devices/pci*/$glob/modalias" | sort | > > while read -r path; do > > read -r modalias < "$path" > > path="${path%/modalias}" > > printf '%s %s\n' "${path##*/}" "$modalias" > > done В приведённом выше коде я не уверен в необходимости первой колонки. > Давай переделаю, как ты предлагаешь. machine-info вместе с частью > OEM-установки драйверов это всё равно та часть, которую я сначала предлагал > написать полностью тебе, но потом всё же изобразил какое-то её подобие. Ты > сначала было даже хотел, а потом решил, что в твоих применениях проще > пересобрать initrd, но для уже выпущенных дистрибутивов это действительно > важно. Я помню, что был разговор про OEM, но плохо помню детали. И если нужен точный слепок машины, то почему например не использовать: dmidecode | sed -n -e '/^Table at /,/^End Of Table$/p' | sha256sum ? > Предметным вопросом для обсуждения тут конечно является обсуждение > принадлежности machine-info к той или иной фиче. У меня она используется в > localdev (altboot), в части, отвечающей за пропагаторный параметр > UPDATEMODULES. Но она может пригодиться и для деплоя, и много где ещё. > Может, её вынести уровнем ещё выше, сделать частью самого make-initrd? К > bootchain-core она точно не имеет отношения. Я до сих пор не очень понимаю назначение machine-info. Когда ты рассказывал юскейс, то он мне тогда казался хакерством каким-то. > > > [...] > > > diff --git a/make-initrd/features/bootchain-core/data/sbin/bootchain-logvt > > > b/make-initrd/features/bootchain-core/data/sbin/bootchain-logvt > > > new file mode 100755 > > > index 0000000..037505a > > > --- /dev/null > > > +++ b/make-initrd/features/bootchain-core/data/sbin/bootchain-logvt > > Зачем нужна эта утилита ? Она добавляется, но нигде в коммите не > > используется. Описания у неё тоже нет. > > Такое восприятие из-за последовательности коммитов и отсутствия описаний. > Самые важные и сложные изменения были оставлены на конец, собственно сам > демон, набор общих функций и отделённый главный цикл демона. А это ещё одна > часть, которую использует демон как отдельный процесс, отвечающий за > терминал вывода журнала (по умолчанию tty3). > > > > > @@ -0,0 +1,36 @@ > > > +#!/bin/bash -efu > > > + > > > +. bootchain-sh-functions > [...] > > > +[ -z "${NOTTYS-}" ] && [ -n "$BC_LOG_VT" ] || > > > + exit 1 > > > +set_cleanup_handler exit_handler > > > +exec "/dev/tty$BC_LOG_VT" 2>&1 > > > +printf "bootchain logger started on tty%s\n\n" "$BC_LOG_VT" > > > +tail -f -- "$BC_LOGFILE" & pid="$!" > > Откуда берутся BC_LOG_VT и BC_LOGFILE ? > > Выше по коду подключается bootchain-sh-functions, до которого ты пока не > дошёл, и там эти дефолты есть. Они перебиваются внешним конфигом, > подключаемым там же из /etc/sysconfig/bootchain. За последовательность > коммитов я уже извинялся. :-) Коммиты читаются последовательно. Я же ещё не знаю, что будет, где и в каком формате. Именно поэтому я в последующих письмах попросил переделать коммиты. -- Rgrds, legion