From: Alexey Gladkov <legion@altlinux.ru> To: Distributions development <devel-distro@lists.altlinux.org> Subject: Re: [devel-distro] mki-copy-efiboot fixes Date: Mon, 17 Aug 2020 21:40:45 +0200 Message-ID: <20200817194045.sofkfcay7ktbbmdt@comp-core-i7-2640m-0182e6> (raw) In-Reply-To: <20200817174700.GF5990@imap.altlinux.org> On Mon, Aug 17, 2020 at 08:47:00PM +0300, Michael Shigorin wrote: > 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 ограничился краткой и ясной > базовой функциональностью, если не дали уже готовую конфигурацию > загрузчика. Напрашиваются шаблоны для элементов меню, которые можно было бы создавать и держать вне mkimage. Тогда часть хардкода из mki-copy-efiboot ушла бы. > Собственно, по такой логике mki-copy-efiboot и развивался > -- сперва что-то базовое, затем "навороты". > > Например, там и посейчас остался прибитый гвоздиком список > языков для передачи lang=... в cmdline инсталятору/livecd. > Задумка была сделать фичу l10n в mkimage-profiles, которая > обеспечит включение нужных пакетов локализации (сейчас они > гвоздиком же прибиты в различных дистрибутивных списках), > возможно, станет влиять на %_install_langs и т.д. > > Да, можно изобрести хоть include в mkimage и подтыкать > генерируемые кусочки из профиля -- я бы такое делать > "потому что могу" не стал, а только если будет нужно > другим авторам профилей (в первую очередь Большакову). > > > Тут, собственно, Антон скорее моими давними соображениями > и руководствуется, когда делает/включает такие генераторы > в mkimage-profiles, а не предлагает в mkimage: это больше > головной боли, чем реюзабельной функциональности, и лучше > бы её тащить в другие места или обобщать тогда, когда это > окажется осмысленным. > > Или вот поддержка memtest86.efi -- там примерно такая же > петрушка: Большакову не нужно, я заморачивался ради rescue > и дистрибутивов. > > > В общем, тут по сути твоё решение о том, чем ты видишь mkimage -- mkimage это alt-specific инструмент для сборки образов в разных форматах. В нём собраны сценарии не завязанные на конкретный альтовый дистрибутив. Я совсем не против включать в mkimage новые востребованные сценарии. Вот только новый функционал должен быть завершённым, чтобы следующий ответственный за дистрибутив мог им воспользоваться. > я считаю, что ужасам вроде даже моего mki-copy-efiboot (а с тех > пор он, смотрю, ещё разросся) там не место, потому что такой код > является _плохим_ примером, в отличие от твоего краткого. Ну теперь-то уж он останется надолго. > И что такие нужные, но некрасивые вещи лучше держать там же, > где и горы других запчастей, нужных конкретно для альтовых > дистрибутивов -- в том числе и чтобы не возлагать на тебя > дополнительную нагрузку по вычитке и приёмке этого всего. Я уверен, что из этих запчастей можно выделить обобщённую логику, которая может быть полезна всем остальным. Если такое есть, то можно стабилизировать и добавить в mkimage. > Есть и прозаический момент по отладке: m-p правится в $HOME, > mkimage -- или в /usr/share, или как boyarsh@ в своё время > ухитрялся -- тоже в $HOME, но нетривиально (уже не помню, как); `make MKLOCAL=1` ? > -------------------------------------------------------------- > > По коммитам: > > * 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 Когда буду перекладывать исправлю. Спасибо! Из кода mki-copy-efiboot-chrooted я не понял: * Я не понял, что кладёшь в forensic_args и почему ты уверен, что syslinux/isolinux.cfg всегда есть. * Почему для rescue нельзя делать submenuentry c lang= ? * В чём логика [ "$n_stages" -ne 1 ] при выборе icon ? * Зачем нужно делать copy_mt86 и потом purge_mt86. Ты же уже всё упаковал. Зачем удалять ? * Я не понял манипуляций с "$efi/$shell". Ты сначала его копируешь в одно место, потом в другое, потом mcopy ... Я ещё хочу подумать о том чтобы распилить mki-copy-efiboot на несколько составных частей (shim, elilo, grub-efi, refind), которые будут параметризованы, а mki-copy-efiboot будет их вызывать. -- Rgrds, legion
next prev parent reply other threads:[~2020-08-17 19:40 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 2020-08-17 19:40 ` Alexey Gladkov [this message] 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=20200817194045.sofkfcay7ktbbmdt@comp-core-i7-2640m-0182e6 \ --to=legion@altlinux.ru \ --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