From: Michael Shigorin <mike@altlinux.org> To: devel-distro@lists.altlinux.org Subject: Re: [devel-distro] mki-copy-efiboot fixes Date: Mon, 17 Aug 2020 20:47:00 +0300 Message-ID: <20200817174700.GF5990@imap.altlinux.org> (raw) In-Reply-To: <20200817165619.mnplmex2kz2rlwif@comp-core-i7-2640m-0182e6> On Mon, Aug 17, 2020 at 06:56:19PM +0200, Alexey Gladkov wrote: > Я зарефакторил mki-copy-efiboot. Теперь его будет проще > поддерживать. Плюс я нашёл несколько небольших ошибок в нём. > Заинтересованных прошу посмотреть. Заинтересовался, посмотрел, по коммитам -- в конце письма. > http://git.altlinux.org/people/legion/packages/mkimage.git?a=shortlog;h=refs/heads/dev "А что, так можно было?!" (ц) ;-) Н-да, что ж я не додумался до такого, когда его писал и отлаживал... да и у тебя помощи не попросил. Но это одна часть проблемы (развесистая логика, которая была выписана по сути под конкретное семейство ISO -- регулярки, стартеркиты и дистрибутивы альта), вторая остаётся: эта функциональность именно в развесистом виде была втащена в mkimage потому, что не хотелось спихивать с mkimage-profiles-desktop принудительно при наличии возможности сделать и там поддержку малыми затратами. То есть _тогда_ у меня при реализации функциональности выбор был -- делать её _и_ в m-p, _и_ в m-p-d, или же помучиться и сделать единообразно в mkimage; решение для меня было очевидным. А _сейчас_ m-p-d проводили на пенсию естественным путём, поскольку там никто не делал работы по поддержке других архитектур (и технически она была куда сложней, даже с m-p оказалось немало сюрпризов по мере взросления ARM). И если бы архитектуры вынудили выпускать седьмой альт уже сразу на m-p (когда на нём были только стартеркиты), то я бы делал менюшки сразу там, а в mkimage ограничился краткой и ясной базовой функциональностью, если не дали уже готовую конфигурацию загрузчика. Собственно, по такой логике mki-copy-efiboot и развивался -- сперва что-то базовое, затем "навороты". Например, там и посейчас остался прибитый гвоздиком список языков для передачи lang=... в cmdline инсталятору/livecd. Задумка была сделать фичу l10n в mkimage-profiles, которая обеспечит включение нужных пакетов локализации (сейчас они гвоздиком же прибиты в различных дистрибутивных списках), возможно, станет влиять на %_install_langs и т.д. Да, можно изобрести хоть include в mkimage и подтыкать генерируемые кусочки из профиля -- я бы такое делать "потому что могу" не стал, а только если будет нужно другим авторам профилей (в первую очередь Большакову). Тут, собственно, Антон скорее моими давними соображениями и руководствуется, когда делает/включает такие генераторы в mkimage-profiles, а не предлагает в mkimage: это больше головной боли, чем реюзабельной функциональности, и лучше бы её тащить в другие места или обобщать тогда, когда это окажется осмысленным. Или вот поддержка memtest86.efi -- там примерно такая же петрушка: Большакову не нужно, я заморачивался ради rescue и дистрибутивов. В общем, тут по сути твоё решение о том, чем ты видишь mkimage -- я считаю, что ужасам вроде даже моего mki-copy-efiboot (а с тех пор он, смотрю, ещё разросся) там не место, потому что такой код является _плохим_ примером, в отличие от твоего краткого. И что такие нужные, но некрасивые вещи лучше держать там же, где и горы других запчастей, нужных конкретно для альтовых дистрибутивов -- в том числе и чтобы не возлагать на тебя дополнительную нагрузку по вычитке и приёмке этого всего. Есть и прозаический момент по отладке: m-p правится в $HOME, mkimage -- или в /usr/share, или как boyarsh@ в своё время ухитрялся -- тоже в $HOME, но нетривиально (уже не помню, как); ну или с полным циклом сборки-установки пакета, что немного перебор именно при отладке всех этих менюшечек (там и так можно было чокнуться, поскольку помимо сборок mkimage и сборок образов ещё были нюансы загрузчиков, фирмварей и упаковки этого всего). Как-то так... жаль, что получился целый шкаф скелетов, но пока их откладывали "на потом" -- они из него никуда не девались. -------------------------------------------------------------- По коммитам: * Reformat -- руками или чем-нить вроде indent(1)? * Refactor generation of refind submenu -- дифф глазами нормально не разобрал, но сами функции после него выглядят заметно чище, конечно * Move code for ia32efi_flag=present in one place -- хорошо бы nickel@ проверил такую сборку, в Обнинске вроде была IA32 EFI-машинка * Avoid using "type -t" in the posix code -- намотал на ус (но я на POSIX и не претендовал) Другие фиксы тоже почитал, на один commit message предложу такой фикс: -is already exists +already exists -If the +If PS: вот, молодёжь, учимся рефакторить :-) -- ---- WBR, Michael Shigorin / http://altlinux.org ------ http://opennet.ru / http://anna-news.info
next prev parent reply other threads:[~2020-08-17 17:47 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-17 16:56 Alexey Gladkov 2020-08-17 17:47 ` Michael Shigorin [this message] 2020-08-17 19:40 ` Alexey Gladkov 2020-08-24 19:56 ` Alexey Gladkov 2020-08-30 17:28 ` Michael Shigorin 2020-08-31 10:01 ` Alexey Gladkov 2020-09-01 10:26 ` Michael Shigorin 2020-09-17 13:48 ` Nikolai Kostrigin 2020-09-30 9:40 ` Alexey Gladkov 2020-09-30 10:26 ` Nikolai Kostrigin 2020-09-04 13:14 ` Michael Shigorin 2020-09-08 18:45 ` Michael Shigorin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200817174700.GF5990@imap.altlinux.org \ --to=mike@altlinux.org \ --cc=devel-distro@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Distributions development This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \ devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com public-inbox-index devel-distro Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel-distro AGPL code for this site: git clone https://public-inbox.org/public-inbox.git