From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 21 Dec 2015 18:38:40 +0300 From: Michael Shigorin To: ALT Linux Team development discussions Message-ID: <20151221153840.GC9467@imap.altlinux.org> Mail-Followup-To: ALT Linux Team development discussions References: <20151221105003.GA12022@gyle.altlinux.org> <20151221120117.GA9467@imap.altlinux.org> <56780557.2080604@solin.spb.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56780557.2080604@solin.spb.ru> User-Agent: Mutt/1.5.23.88.hg577987ca2d02 (2014-03-12) Subject: Re: [devel] [#154910] EPERM (try 2) mkimage.git=0.2.17-alt1.1 X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Dec 2015 15:38:40 -0000 Archived-At: List-Archive: List-Post: On Mon, Dec 21, 2015 at 04:57:43PM +0300, Aleksey Avdeev wrote: > > Лёш, аккуратней надо. Если б ты не отправил лишний тег на сборку, > > а попросил вычитать -- я бы тоже вычитал и указал на слом. > > осталось без ответа... Ой, и впрямь проморгал за анонсами стартеркитов, виноват. > > -mkdir $verbose -p -- \$boot > > +[ -d \$boot ] || mkdir $verbose -p -- \$boot > > Зачем? mkdir -p молча обеспечит наличие каталога, если не было. > Для исключения появления каталогов вида a/b/b в результате вызова > mkdir -p a/b при существующим a/b. (Был уверен что натыкался на > подобное, но быстрая проверка показала что что-то попутал.) Точно напутал, скорее всего с rsync или cp. > Как перешёл на нужную (с изменениями) -- тут баги и полезли. Да уж, они такие... > > - cp $verbose -pLf "\$src" "\$dest/memtest86.efi" && > > + cp $verbose -pLn "\$src" "\$dest/memtest86.efi" && > > > > Как вариант -- хотя как раз здесь было бы уместно проверить > > наличие целевого бинарника и если уже есть, то не копировать > > ресурсы, т.к. не исключено, что профиль мог копировать не всё: > > > > find /usr/share/efi-memtest86 -type f | > > - xargs cp $verbose -pLft "\$dest" > > + xargs cp $verbose -pLnt "\$dest" > > Т. е., если уже существует "\$dest/memtest86.efi", то > содержимое /usr/share/efi-memtest86 копировать не надо? Я бы делал так. Т.е. бинарник как ключ, по которому определяется -- делаем ли что-либо с таким бинарником _и_ нужными ему файлами. > > Аналогично и далее с refind. > Т. е., если существует $boot/bootx64.efi, copy_refind() должна > завершить свою работу ничего (в том числе и все refind.conf) > не копируя? Похоже, да. Не было ли там переписывания $bin_path -- не помню на все сто процентов, но с такими штуками в любом случае пора завязывать. > > + [ ! -e "\$boot/elilo.conf" ] || return 0 > > > > Здесь как раз следует обламываться, если нет конфига -- > Там ниже по коду идёт создание "\$boot/elilo.conf" через cat. А, это уже я торможу. > > - [ ! -d \$refind_aux/altlinux ] || > > + [ -d "\$boot/icons/altlinux" ] || [ ! -d \$refind_aux/altlinux ] || > > mv \$refind_aux/altlinux \$boot/icons > > > > Добавлена логическая ошибка (проверять при таком методе обработки > > следует _отсутствие_ каталога, а не его наличие). > Не вижу ошибки. Т. к. здесь цель именно исключить выполнение > mv, если каталог "\$boot/icons/altlinux" уже существует. Т.е. > mv должна вызываться только если нет "\$boot/icons/altlinux". Действительно, спасибо. > Исправленный вариант -- > Смотрю. > PS: Как лучше выполнить перенос скрипта в mkimage-profiles: > > 1. Перенести необходимые коммиты (затрагивающие tools/mki-copy-efiboot, > как сделано сейчас в efiboot, см. > )? > > 2. Прямой мерж необходимого? Пока не знаю, надо думать/пробовать/думать. --  ---- WBR, Michael Shigorin / http://altlinux.org   ------ http://opennet.ru / http://anna-news.info