<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>34481</bug_id>
          
          <creation_ts>2018-01-25 16:40:43 +0300</creation_ts>
          <short_desc>паразитная зависимость от parted</short_desc>
          <delta_ts>2018-03-24 01:32:55 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>extlinux</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gremlin from Kremlin">gremlin</reporter>
          <assigned_to name="Alexey Gladkov">legion</assigned_to>
          <cc>gremlin</cc>
    
    <cc>klark.devel</cc>
    
    <cc>legion</cc>
    
    <cc>mike</cc>
    
    <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>168613</commentid>
    <comment_count>0</comment_count>
    <who name="Gremlin from Kremlin">gremlin</who>
    <bug_when>2018-01-25 16:40:43 +0300</bug_when>
    <thetext># rpm -qR extlinux-6.03-alt1.x86_64
libshell
util-linux
parted
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168614</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-01-25 17:03:58 +0300</bug_when>
    <thetext>Не паразитная.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168673</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-01-29 19:53:57 +0300</bug_when>
    <thetext>Ой, а зачем он там?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168678</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-01-29 23:02:26 +0300</bug_when>
    <thetext>Ребята, ну нельзя же быть такими ленивыми. Ведь даже клонировать к себе репозиторий не нужно:

http://git.altlinux.org/gears/e/extlinux.git?p=extlinux.git&amp;a=search&amp;h=HEAD&amp;st=grep&amp;s=parted

Если кто-нибудь придумает как получить эту информацию без parted, то выкину его мгновенно. С другой стороны не вижу, кому она может мешать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169642</commentid>
    <comment_count>4</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-15 15:05:23 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; С другой стороны не вижу, кому она может мешать.

parted тянет за собой много добра, т.к. сама является надстройкой над уймой более низкоуровневых утилит, а установка минималистичного загрузчика порою требуется для всяких встраиваемых решений и компактных образов. В результате вижу, что даже наши пользователи, вместо использования штатных syslinux/extlinux, качают ИХ из апстрима (!!!), а не из нашей репы (справедливости ради: не только по этой причине, но ещё и из-за старой версии). Кроме того, дистрибутивно-полезно начать замену остановившегося в развитии lilo на syslinux (к примеру, для той же JeOS). И не только lilo, кстати, но и в ряде случаев мы уже смело можем менять &quot;ОС GRUB2&quot; на него, заодно отказавшись от конгломерата с elilo и refind&apos;а.

&gt; Если кто-нибудь придумает как получить эту информацию без parted, то выкину его мгновенно.

Но я не знаю, чем ЛУЧШЕ заменить parted. Сходу нашлось несколько вариантов, а что &quot;легковесней&quot;, решайте сами...

1. Определение способа разметки диска

# Можно получить gpt/dos (не msdos):
# sfdisk -d /dev/sda | head -n1
label: dos
или
label: gpt

# Скорее всего, зависит от версии fdisk, встречал пустой вывод на GPT
# LANG=C fdisk -l /dev/sda | grep -E &apos;^Disklabel type: &apos;
Disklabel type: dos

# Весьма надёжный способ
# LANG=C gdisk -l /dev/sda 2&gt;/dev/null | grep -A4 -E &apos;^Partition table scan:&apos;

# Такой вывод будет на машинах с MBR:
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present

# А такой вывод будет на машинах с GPT:
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

# Достаточно надёжный способ определения MBR, для GPT вывод будет пустой
# LANG=C sgdisk -p /dev/sda | grep -A1 &apos;Found invalid GPT and valid MBR&apos;
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory.

# Это будет единственный раздел на диске, не загрузочный!
# LANG=C fdisk -l /dev/sda | tail -n1 | grep -qE &quot; ee EFI GPT$&quot;

2. Определение флага загрузки для раздела (MBR only)

# Здесь /dev/sda1 -- это м.б. &quot;${device}${partition}&quot;
# sfdisk -d /dev/sda | grep &quot;/dev/sda1 &quot; | grep -qE &quot;, bootable$&quot;

# То же самое, но раздел загрузочный, если &quot;$bootflag&quot; = &quot;*&quot;
# bootflag=$(LANG=C fdisk -l /dev/sda | grep &quot;/dev/sda1 &quot; | awk &apos;{print $2;}&apos;)

3. Определение флага загрузки для раздела (GPT only, хотя смысла в этом мало)

# sgdisk -A $partition:show /dev/sda | grep -q &apos;legacy BIOS bootable&apos;
# sgdisk -A $partition:show /dev/sda | grep -qE &quot;^$partition\:2\:&quot;

4. Посмотреть все доступные флаги разделов можно так

# sgdisk -A list
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount

Полагаю, список не исчерпывающий.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169643</commentid>
    <comment_count>5</comment_count>
    <who name="Gremlin from Kremlin">gremlin</who>
    <bug_when>2018-03-15 15:17:20 +0300</bug_when>
    <thetext>Вижу довольно простое решение: вынести скрипт в subpackage. То есть:

# rpm -ql extlinux
/boot/boot
/boot/extlinux.conf.sample
/etc/extlinux.conf.sample
/sbin/extlinux
/usr/share/extlinux/altmbr.bin
/usr/share/extlinux/gptmbr.bin
/usr/share/extlinux/mbr.bin
/usr/share/man/man1/extlinux.1.xz

Все остальное - в какой-нибудь extlinux-support, и уже он пусть зависит от чего угодно. Можно, наверное, даже обозвать вышеперечисленный набор extlinux-base, а в пакете extlinux написать Requires: extlinux-base = %version-%release, extlinux-support = %version-%release

А уж отличить MBR от GPT - совсем детская задача:
dd bs=512 skip=1 count=1 &quot;if=$dev&quot; | sha256sum | sed -re &apos;s,(^.{8}).*,\1,g&apos;
и сравнить вывод с волшебным числом 076a27c7 - если совпадает, то это MBR :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169647</commentid>
    <comment_count>6</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-15 15:33:31 +0300</bug_when>
    <thetext>(In reply to comment #5)
&gt; и сравнить вывод с волшебным числом 076a27c7 - если совпадает, то это MBR :-)

У меня на MBR показал 99ed8546, на ONIE/GPT 93928b26, на других машинах и дисках с GUID/GPT: d7b907074d, 40e7b3d0, a997bcd9.

Но если использовать не второй сектор диска и не использовать sha256sum, думаю, вытащить все данные будет можно самым кошерным способом.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169648</commentid>
    <comment_count>7</comment_count>
    <who name="Gremlin from Kremlin">gremlin</who>
    <bug_when>2018-03-15 15:36:02 +0300</bug_when>
    <thetext>Мне тут подсказывают, что шутка про различия MBR и GPT может быть воспринята всерьез, поэтому вот решение, полностью соответствующее стандарту:

dd bs=8 skip=64 count=1 &quot;if=$dev&quot; | xxd -p

Если выдаст 0000000000000000 - MBR, если 4546492050415254 (&quot;EFI PART&quot;) - GPT. Другие значения являются признаком того, что на диске записано что-то неизвестное, и во избежание повреждения данных на него лучше ничего не писать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169652</commentid>
    <comment_count>8</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-15 16:05:29 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; dd bs=8 skip=64 count=1 &quot;if=$dev&quot; | xxd -p

Тогда уж лучше так, поскольку base64 есть даже в busybox, в отличие от xxd:
magic=&quot;$(dd bs=8 skip=64 count=1 &quot;if=$dev&quot; | base64)&quot;
if [ &quot;$magic&quot; = &quot;RUZJIFBBUlQ=&quot; ]; then
    # GUID/GPT code here...
fi

&gt; Если выдаст 0000000000000000 - MBR, если 4546492050415254 (&quot;EFI PART&quot;) - GPT.
&gt; Другие значения являются признаком того, что на диске записано что-то
&gt; неизвестное, и во избежание повреждения данных на него лучше ничего не писать.

Для GPT -- да, для MBR -- нет. Например, на всех машинах с grub2 второй сектор диска начинается с core2.img (stage1.5), а там совсем другое. На других системах, где сектора начиная со второго и до начала первого раздела не используются, там не обязательно будут нули. Только если диск специально почистили. Но также там может быть код какого-то другого загрузчика.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169657</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-15 21:33:34 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; (In reply to comment #3)
&gt; &gt; С другой стороны не вижу, кому она может мешать.
&gt; 
&gt; parted тянет за собой много добра, т.к. сама является надстройкой над уймой
&gt; более низкоуровневых утилит, а установка минималистичного загрузчика порою
&gt; требуется для всяких встраиваемых решений и компактных образов. В результате
&gt; вижу, что даже наши пользователи, вместо использования штатных
&gt; syslinux/extlinux, качают ИХ из апстрима (!!!), а не из нашей репы
&gt; (справедливости ради: не только по этой причине, но ещё и из-за старой версии).
&gt; Кроме того, дистрибутивно-полезно начать замену остановившегося в развитии lilo
&gt; на syslinux (к примеру, для той же JeOS). И не только lilo, кстати, но и в ряде
&gt; случаев мы уже смело можем менять &quot;ОС GRUB2&quot; на него, заодно отказавшись от
&gt; конгломерата с elilo и refind&apos;а.

Очень эмоционально и я очень такому участию, но вы не перепутали пакеты (это не троллинг) ?
Я объясню. Дело в том, что есть пакет syslinux[1], который поддерживается некоторым числом мантейнеров (в которое я не вхожу). Он для всех для дистрибутивов, для сетевой загрузки ... я на самом деле не знаю кто и как им пользуется.

И есть extlinux[2], который является загрузчиком моей системы. Именно поэтому это только extlinux без остальных pxelinux, isolinux etc. Я его использую, обновляю и поддерживаю. Я же написал простейшую скриптовую обвязку для генерации конфигов и прочего. Я также понимаю, что это моё решение не применяется в дистрибутивах так как не является универсальным (это только локальный ext-like раздел). В дистрибутивах используется grub2 как универсальный загрузчик, где есть поддержка lvm, raid и хрен знает ещё чего.

Может вы хотите не этот корманный проект, а syslinux[1] в котором в некоторой степени запаковано почти тоже самое ?

Поймите меня правильно, я не против внести изменения и дорабатывать пакет, но мне хочется понимать во имя чего.

Что вы хотите получить ?
Вы где это хотите использовать ?
Какие юскейсы ?

так как для моего профиля использования (десктопная система) наличие parted не является проблемой и это не является ошибкой потому что я использовал его сознательно.

[1] http://git.altlinux.org/gears/s/syslinux.git 
[2] http://git.altlinux.org/gears/e/extlinux.git</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169660</commentid>
    <comment_count>10</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-16 01:00:28 +0300</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; вы не перепутали пакеты (это не троллинг) ?

Точно не троллинг. Не перепутал, родительский-то проект один. Но почему-то думал, что Вы поддерживаете оба пакета, и главная моя ошибка, что смешал всё в одну кучу. Просто в этом случае их сложно разделить. Когда работаем с FAT, тогда syslinux, когда BIOS/EFI машины поддерживает и нужен ext2/3/4, тогда extlinux, когда нужна загрузка с ISO-образа, тогда isolinux, кто-то ещё использует pxelinux. Лично я тоже активно раньше использовал extlinux, в т.ч. на загрузочных флэшках и rescue-разделах HDD. Причём без parted, хотя кому-то удобнее именно этот инструмент.

Начиная с 6 версии syslinux/extlinux поддерживают EFI, не только MBR. Не во всех, но во многих случаях это позволяет отказаться от огромной кучи ненужного в _компактных системах_ барахла. Про это и другие юзэкейсы я выше написал. Было бы очень неплохо сделать хотя бы так, как выше предложил Gremlin from Kremlin. Тем более, сами говорите, что тянете parted только для собственной скриптовой обвязки, а у нас тут постоянно горячие споры про &quot;паразитные зависимости&quot; и &quot;форки, не удовлетворяющие общей концепции дистрибутива&quot;. Мы не можем усидеть на двух стульях при таком подходе, когда одни говорят, &quot;мы делаем только десктопные решения&quot;, другие &quot;сделайте нам компактный образ для свича&quot;, а третьи настаивают, чтобы это не былом &quot;форком&quot;.

&gt; Я также понимаю, что это моё решение не применяется в дистрибутивах
&gt; так как не является универсальным (это только локальный ext-like раздел).

Но extlinux люди используют. Есть пример проекта с примерно 16 тыс машин по всей стране, в том числе, в местах, где с Интернетом совсем труба. Образы они собирают сами на базе наших бранчей и m-p. Размер образа для них очень критичен (обновления централизованы). И эти люди качают статически линкуемые бинари с оффсайта проекта. Эмоции были только, когда увидел это своими глазами. :) И это ни единственный пример за последние пол года.

&gt; Что вы хотите получить ?

Обновить syslinux&amp;Ко до 6.0.3 (это ясно, не к Вам, и не здесь), и собственно избавить сабж от parted хоть каким-то компромиссным для всех способом. Потому что в таком виде и мне сложно дать пакету широкое применение в реализуемом сейчас деплойном решении (речь не о десктопах, конечно). Сегодня как раз ваял код, где обошёлся dd и base64 для решения той же задачи, а уж они есть в любой системе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169661</commentid>
    <comment_count>11</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-16 01:36:14 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Кроме того, дистрибутивно-полезно начать замену остановившегося в развитии
&gt; lilo на syslinux (к примеру, для той же JeOS).

Здесь точно ошибся: на extlinux, в основном. Хотя, в ряде случаев должен быть обходной манёвр для отдельного FAT-раздела с EFI/syslinux.

&gt; И не только lilo, кстати, но и в ряде случаев мы уже смело можем менять
&gt; &quot;ОС GRUB2&quot; на него, заодно отказавшись от конгломерата с elilo и refind&apos;ом.

Тут стоит дополнить: об этом мало кто знает. Раньше дистрибутивы предлагали выбор между lilo и grub. Сейчас от такой практики, в основном, ушли, а lilo перестал развиваться. Но у lilo появилась полноценная, развиваемая замена. Это extlinux, но где-то вместо него предпочтительно использовать syslinux. Так вот, это относительно крошечное решение сравнительно недавно стало поддерживать не только LegacyBIOS/MBR, но и GUID/GPT. А значит мы, не во всех, но в большинстве случаев можем вполне обоснованно вернуть людям выбор:

а) extlinux либо syslinux с куда более простой установкой и конфигурацией
б) grub2+refind+elilo+блэкджек+женщины+все_остальные_радости</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169662</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-16 03:30:20 +0300</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; Точно не троллинг.

Про троллинг я говорил о себе и моих вопросах :)

&gt; Не перепутал, родительский-то проект один.

Апстримный проект один, но ирония в том, что в сизифе есть два пакета с одним кодом. Мне с моим пакетом не интересно собирать остальные части проекта syslinux. Да и не даст мне никто этого по очевидной причине.

&gt; Просто в этом случае их сложно разделить. Когда работаем с FAT,
&gt; тогда syslinux, когда BIOS/EFI машины поддерживает и нужен ext2/3/4, тогда
&gt; extlinux, когда нужна загрузка с ISO-образа, тогда isolinux, кто-то ещё
&gt; использует pxelinux.

Так вот чтобы было комплексное решение, как вы хотите, нужно обновлять и допиливать пакет syslinux, который уже протух на 10 релизов.

&gt; Начиная с 6 версии syslinux/extlinux поддерживают EFI, не только MBR. Не во
&gt; всех, но во многих случаях это позволяет отказаться от огромной кучи ненужного
&gt; в _компактных системах_ барахла. Про это и другие юзэкейсы я выше написал.

Вы выше писали про создание замены lilo, чем проект extlinux и пой пакет тем более не являются.
Так что мне понятна ваша точка зрения на проект syslinux, но я всё ещё не услышал юскейсов для _моего_ пакета extlinux.

&gt; Было
&gt; бы очень неплохо сделать хотя бы так, как выше предложил Gremlin from Kremlin.

Обоснуйте пожалуйста.

&gt; Тем более, сами говорите, что тянете parted только для собственной скриптовой
&gt; обвязки

Для меня эта обвязка важна. Она у меня работает годами. Если по какой-то причине она вам не нравится, то нет проблем: сделайте патч с адекватной заменой и я приложу его.

&gt; а у нас тут постоянно горячие споры про &quot;паразитные зависимости&quot; и
&gt; &quot;форки, не удовлетворяющие общей концепции дистрибутива&quot;. Мы не можем усидеть
&gt; на двух стульях при таком подходе, когда одни говорят, &quot;мы делаем только
&gt; десктопные решения&quot;, другие &quot;сделайте нам компактный образ для свича&quot;, а третьи
&gt; настаивают, чтобы это не былом &quot;форком&quot;.

Это всё хорошо и правильно, но я больше не делаю дистрибутивы альта, не создаю и не внедряю решения на его основе. Я не понимаю зачем вы взываете к сознательности дистрибутивостроителя во мне ))

&gt; Но extlinux люди используют.

Вы имеете в виду мой пакет ?!

&gt; Обновить syslinux&amp;Ко до 6.0.3 (это ясно, не к Вам, и не здесь), и собственно
&gt; избавить сабж от parted хоть каким-то компромиссным для всех способом.

Ещё раз, вы валите всё в кучу. Мой пакет не собирается из syslinux[1]. Обновляйте его как хотите. Поставьте конфликт на мой пакет и будет счастье. Это _разные_ пакеты в сизифе, у них разные мантейнеры и видинье и они имеют разные циклы обновления.

[1] http://git.altlinux.org/gears/s/syslinux.git

&gt; Потому
&gt; что в таком виде и мне сложно дать пакету широкое применение в реализуемом
&gt; сейчас деплойном решении (речь не о десктопах, конечно).

Так не давайте. Я чего-то не понимаю. Я разве у вас этого просил ?

&gt; Сегодня как раз ваял
&gt; код, где обошёлся dd и base64 для решения той же задачи, а уж они есть в любой
&gt; системе.

Отлично! Если вы хотите использовать именно этот пакет, то жду патч с заменой parted.

(В ответ на комментарий №11)
&gt; Тут стоит дополнить: об этом мало кто знает. Раньше дистрибутивы предлагали
&gt; выбор между lilo и grub.

Я знаю, поверьте.

&gt; Сейчас от такой практики, в основном, ушли, а lilo
&gt; перестал развиваться. Но у lilo появилась полноценная, развиваемая замена. Это
&gt; extlinux, но где-то вместо него предпочтительно использовать syslinux.

Проект syslinux не является заменой lilo. Тем более полноценной. У них настолько разные философии, что общего у них разве что начальный загрузчик. В качестве примера, попробуйте использовать syslinux на RAID.

&gt; А значит мы, не во всех, но в большинстве
&gt; случаев можем вполне обоснованно вернуть людям выбор:
&gt; 
&gt; а) extlinux либо syslinux с куда более простой установкой и конфигурацией
&gt; б) grub2+refind+elilo+блэкджек+женщины+все_остальные_радости

Эти варианты не сопоставимы по фичам.

Вы всё время упоминаете extlinux либо syslinux (я думаю, что вы говорите о пакетах в сизифе) и о наведении некоего порядка. Но это всё относится к пакету syslinux и к ваши просьбы должны быть обращены к тем богатырям, которые его мантейнят. Про глобальное счастье с свежим syslinux это к ним. Вот эти герои:

$ giter acl sisyphus syslinux show
syslinux	zerg mike

Они могут также дособрать extlinux в виде подпакета. Чего вы хотите от меня ?

Я не могу (и пока не хочу) дособирать остальные программы проекта syslinux из своего srpm. Я могу улучшить лишь свой пакет и могу попробовать сделать его более пригодным.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169663</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-16 03:33:41 +0300</bug_when>
    <thetext>Если же вас смущает название пакета, то я могу переименовать его в extloader например, чтобы дать дорогу богатырям.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169666</commentid>
    <comment_count>14</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2018-03-16 07:47:50 +0300</bug_when>
    <thetext>О чём вы спорите ?
extlinux надо собирать в рамках исходников syslinux. А этот - переименовать что бы никого не смущал.

syslinux действительно требует обновления, в том числе с точки зрения сборки на EFI (если он поддерживает EFI, конечно, а не просто GPT).
из пакета syslinux было бы неплохо собрать и бинарь extlinux. Который, как раз, положить в пакет extlinux.

Лёш, может быть тебе в рамках этих перетрубаций сделать отдельный пакет extloader, с твоей обвязкой и зависимостью на пакет extlinux ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169668</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-16 12:53:44 +0300</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; О чём вы спорите ?

О! Антон, тут твои клиенты. Пользователи хотят большей актуальности, поддерживаемости и большего функционала от syslinux.

&gt; extlinux надо собирать в рамках исходников syslinux. А этот - переименовать что
&gt; бы никого не смущал.

Да, неправильно вводить людей в заблуждение, что я имею отношение к syslinux.

&gt; syslinux действительно требует обновления, в том числе с точки зрения сборки на
&gt; EFI (если он поддерживает EFI, конечно, а не просто GPT).
&gt; из пакета syslinux было бы неплохо собрать и бинарь extlinux. Который, как раз,
&gt; положить в пакет extlinux.

Это похоже на хороший план ))

&gt; Лёш, может быть тебе в рамках этих перетрубаций сделать отдельный пакет
&gt; extloader, с твоей обвязкой и зависимостью на пакет extlinux ?

Хорошо. Я переименую пакет, но зависимость делать не буду. Во-первых сейчас зависимость ставить просто не на что. Во-вторых у syslinux и у моего разные задачи и как следствие циклы обновления. Мне важны новые релизы и фичи extlinux, а в syslinux важна стабильность.

Я знаю, что так просто syslinux не обновить. Даже если отвлечься, что обновление скорее всего сломает дистро-пекарей, он просто не пройдёт сборочницу из-за одного фундаментального изменения, которое произошло в 2012 году. Так что, я сомневаюсь, что богатыри обновлят его в ближайшей перспективе. Кроме того, для правильной работы extlinux в syslinux из коробки предётся написать скрипты опять же.

В целом, переименование пакета это хороший способ для меня спрятаться в кусты ))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169671</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-16 13:05:28 +0300</bug_when>
    <thetext>Хе! А мне и не нужно ничего переименовывать. У нас уже есть пакет syslinux-extlinux и он собран из syslinux. У меня есть конфликт. Поэтому я вам мешать не могу никак.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169681</commentid>
    <comment_count>17</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2018-03-16 14:21:33 +0300</bug_when>
    <thetext>Более того, ментейнеры syslinux - zerg и mike.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169682</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-03-16 14:42:53 +0300</bug_when>
    <thetext>(В ответ на комментарий №15)
&gt; Я знаю, что так просто syslinux не обновить [...] он просто не пройдёт
&gt; сборочницу из-за одного фундаментального изменения, которое произошло
&gt; в 2012 году.
А что там стряслось?

&gt; Так что, я сомневаюсь, что богатыри обновлят его в ближайшей перспективе. 
Особенно шикарно это прозвучало сегодня, когда что-то еле поднялся...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169688</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-16 17:10:25 +0300</bug_when>
    <thetext>(В ответ на комментарий №18)
&gt; (В ответ на комментарий №15)
&gt; &gt; Я знаю, что так просто syslinux не обновить [...] он просто не пройдёт
&gt; &gt; сборочницу из-за одного фундаментального изменения, которое произошло
&gt; &gt; в 2012 году.
&gt; А что там стряслось?

Switched from the COM32 object format to ELF as it is a much more powerful format that allows undefined symbols to be resolved at runtime and dynamic loading of module dependencies, which means modules now become shared object files instead of statically linked binaries - reducing both disk space and runtime memory consumption.

Эти файлы выполняются не в живой системе, а в загрузчике и их ELF файлы просто файлы и ни о какой правильной линковке речи не идёт т.к. им там это не нужно. 

        i586: NEW bad_elf_symbols detected:                                                                                         
extlinux.rpm /boot/extlinux/cat.c32    U     _fread
extlinux.rpm /boot/extlinux/cat.c32    U     _fwrite
extlinux.rpm /boot/extlinux/chain.c32  U     lfree
extlinux.rpm /boot/extlinux/chain.c32  U     lmalloc
extlinux.rpm /boot/extlinux/chain.c32  U     syslinux_force_text_mode
extlinux.rpm /boot/extlinux/cmd.c32    U     com32_cmdline
extlinux.rpm /boot/extlinux/cptime.c32 U     __ms_timer
extlinux.rpm /boot/extlinux/cptime.c32 U     _fread

Наша сборочница видит ELF и проверяет символы. Она просто не пропустит такие ELF&apos;ы. Мы с ldv не нашли способа, как научить её их правильно обарабатывать. Насколько помню мы смогли найти почти все символы, кроме com32_cmdline, который представляется внутри бинарника extlinux.

Сейчас в сборочнице действует исключение для файлов в /boot и такое исключение меня вполне устраивает, но вот для syslinux 
этот вариант не подойдёт т.к. syslinux хранит файлы не в /boot. Дима говорил, что если рассматривать эти файлы, как файлы другой природы, то их тоже надо будет игнорировать. Вопрос только по какому принципу.

&gt; &gt; Так что, я сомневаюсь, что богатыри обновлят его в ближайшей перспективе. 
&gt; Особенно шикарно это прозвучало сегодня, когда что-то еле поднялся...

Тогда я бы хотел, чтобы это звучало, как пожелание богатырского здоровья.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169690</commentid>
    <comment_count>20</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-16 17:47:02 +0300</bug_when>
    <thetext>&gt; &gt; Тут стоит дополнить: об этом мало кто знает. Раньше дистрибутивы предлагали
&gt; &gt; выбор между lilo и grub.
&gt; Я знаю, поверьте.

Имелось ввиду совсем другое! Отвечаю абзацем ниже (заодно Антону):

&gt; syslinux действительно требует обновления, в том числе с точки зрения сборки
&gt; на EFI (если он поддерживает EFI, конечно, а не просто GPT).
&gt; из пакета syslinux было бы неплохо собрать и бинарь extlinux.

http://www.rodsbooks.com/efi-bootloaders/ - на эту информацию ориентировались при создании альтовых решений, совместимых с EFI. Не так давно информация в первоисточнике была актуализирована и при более внимательном рассмотрении открываются возможности, которые мы в текущей ситуации использовать не можем. В качестве примера приведу три типовых юзэкейса:

1. Универсальная загрузочная флэшка FAT32 (разметка MBR, единственный активный раздел), которая может грузить уйму систем, ядер, initrd. Никаких ISO-Hybrid, просто syslinux-загрузчик + меню + разложенные по папочкам образы. С версией 6+ это будет работать не только на BIOS, но и на EFI. Если кто не в курсе, для EFI совершенно необязательна GPT, эта разметка нужна только для дисков &gt;2Тб.

2. Выкинуть из нашего JeOS lilo и заменить его на extlinux. Кому нужен блэкжек и прочие радости, ставят не JeOS или руками до-устанавливают grub2&amp;Ко. Для EFI-систем вместо extlinux ставим syslinux с тем же меню и той же версии. Считайте, это будет как отдельный /boot раздел. И наш JeOS становится более универсальным. Пока же мы можем предложить минимальную систему только для Legacy-BIOS загрузки.

3. Для большинства по крайней мере серверных систем не требуется ни плимут, ни графическое меню загрузчика, ни &quot;ОС grub2&quot;, достаточно ванильного extlinux (либо syslinux на отдельном разделе FAT32 для систем с EFI). Вопреки устаревших убеждений, он прекрасно грузится и с аппаратных рейдов, и с программного зеркала md (raid-1).

(In reply to comment #14)
&gt; О чём вы спорите ?

Да какой же это спор! Напротив, я очень благодарен Алексею Гладкову за эту важную и познавательную дискуссию на тему плачевного состояния загрузчиков syslinux/extlinux в ALT Linux. Теперь я знаю, что пакеты в Сизифе с одной и той же функциональностью под разными названиями, равно как и &quot;форки&quot; -- это норма для Сизифа. Для меня открылось, что Сизиф -- это место для &quot;своих личных&quot; пакетов. Если серьёзно, Алексей обозначил статус пакета &quot;extlinux&quot; в Сизифе и теперь понятно, почему в &quot;его личных&quot; пакетах &quot;паразитных&quot; зависимостей быть не может. :) Ну, и без троллинга не обошлось:

&gt; Если кто-нибудь придумает как получить эту информацию
&gt; без parted, то выкину его мгновенно.
&gt; С другой стороны не вижу, кому она может мешать.
&gt; Что вы хотите получить ?
&gt; Вы где это хотите использовать ?
&gt; Чего вы хотите от меня ?
&gt; Если же вас смущает название пакета, то я могу переименовать его в extloader
&gt; Хорошо. Я переименую пакет
&gt; В целом, переименование пакета это хороший способ для меня спрятаться в кусты
&gt; Хе! А мне и не нужно ничего переименовывать. У нас уже есть пакет
&gt; Про троллинг я говорил о себе и моих вопросах :)

:D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169698</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-16 20:30:46 +0300</bug_when>
    <thetext>(В ответ на комментарий №20)
&gt; Для меня открылось, что Сизиф -- это место для &quot;своих личных&quot;
&gt; пакетов.

Это можно сказать о практически всех моих пакетах :) 

&gt; Если серьёзно, Алексей обозначил статус пакета &quot;extlinux&quot; в Сизифе и
&gt; теперь понятно, почему в &quot;его личных&quot; пакетах &quot;паразитных&quot; зависимостей быть не
&gt; может. :)

Я этого говорил. Я также не говорил, что &quot;моими личными&quot; пакетами не могут пользоваться другие и их нельзя менять в сторону большего удобства.

&gt; &gt; Если кто-нибудь придумает как получить эту информацию
&gt; &gt; без parted, то выкину его мгновенно.
&gt; &gt; С другой стороны не вижу, кому она может мешать.
&gt; &gt; Что вы хотите получить ?
&gt; &gt; Вы где это хотите использовать ?
&gt; &gt; Чего вы хотите от меня ?
&gt; &gt; Если же вас смущает название пакета, то я могу переименовать его в extloader
&gt; &gt; Хорошо. Я переименую пакет
&gt; &gt; В целом, переименование пакета это хороший способ для меня спрятаться в кусты
&gt; &gt; Хе! А мне и не нужно ничего переименовывать. У нас уже есть пакет
&gt; &gt; Про троллинг я говорил о себе и моих вопросах :)
&gt; 
&gt; :D

Эм ... я уже старинкий и уже подзабыл почему этот пакет так назван и какой пакет был форкнут :)
А вместе с тем эта работа уже была когда-то проделана и даже конфликты расставлены.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169700</commentid>
    <comment_count>22</comment_count>
      <attachid>7432</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-17 04:39:51 +0300</bug_when>
    <thetext>Created attachment 7432
no-parted.patch

Ввиду некоторого недопонимания, выложу сюда сделанное, вдруг кому пригодится. Не выкидывать же! Но я этот код не проверял ни в каком режиме, даже не пробовал пакет пересобрать. Там могут быть ошибки, в т.ч. в адресной арифметике.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169709</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-17 21:22:38 +0300</bug_when>
    <thetext>(В ответ на комментарий №22)
&gt; Ввиду некоторого недопонимания, выложу сюда сделанное, вдруг кому пригодится.
&gt; Не выкидывать же! Но я этот код не проверял ни в каком режиме, даже не пробовал
&gt; пакет пересобрать. Там могут быть ошибки, в т.ч. в адресной арифметике.

Эм ... ну ладно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169711</commentid>
    <comment_count>24</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-18 00:55:06 +0300</bug_when>
    <thetext>(В ответ на комментарий №23)
&gt; Эм ... ну ладно.

Просто вчера не было времени тестировать. Да и не понимаю пока, как это лучше сделать. &quot;Выкусил&quot; из скрипта всё необходимое и проверял на трёх виртуалках с EFI и MBR. По MBR в первом приближении вопросов не возникло, там всё чётко. По EFI не могу гарантировать. И сам до сих пор логику не понимаю. Стандартные тулзы про legacy-boot ничего не знают и не пишут. Либо я всё время попадаю в байт, где бит #1 установлен, либо любая GPT-партиция #8300 заведомо legacy-boot... Видимо придётся продолжить тестировать, сверяясь по выводу parted. Если нужно, могу скинуть &quot;выкушенный&quot; скрипт или сюда его приложить. Ну и собраться пакет с этими изменениями конечно собрался (task #202375). Вопрос только в том, как это ПРАВИЛЬНО проверять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169713</commentid>
    <comment_count>25</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-18 15:44:46 +0300</bug_when>
    <thetext>Полностью рабочий и с MBR, и с GPT код можно посмотреть теперь в task #202381. А в выше приложенном к сабжу патче были ошибки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169714</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-18 17:21:48 +0300</bug_when>
    <thetext>(В ответ на комментарий №25)
&gt; Полностью рабочий и с MBR, и с GPT код можно посмотреть теперь в task #202381.
&gt; А в выше приложенном к сабжу патче были ошибки.

У меня всё правильно определило. Спасибо, но к вашему коду есть несколько вопросов. Это башизм:

```
+[ &quot;$magic&quot; = $&apos;\x55\xAA&apos; ] ||
```

Вы уверены, что хотите привязать к пакету bash ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169718</commentid>
    <comment_count>27</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-18 18:55:08 +0300</bug_when>
    <thetext>(В ответ на комментарий №26)
&gt; Вы уверены, что хотите привязать к пакету bash ?

Напротив, чем меньше зависимостей, тем лучше. Вообще удивился, почему `ls -l /bin/sh` говорит, что это ELF, а не симлинк, а этот ELF говорит, что он bash 3 версии. :)

&gt; +[ &quot;$magic&quot; = $&apos;\x55\xAA&apos; ] ||

Наверняка можно выкрутиться. Чем-нибудь таким заменить:

+[ &quot;$magic&quot; = &quot;$(printf &apos;\x55\xAA&apos;)&quot; ] ||

Если не катит, тогда вернуть, как предлагалось выше с base64. Куда интереснее, что именно эта конструкция не вызывает никаких отторжений у Mellanox&apos;овского busybox&apos;а. На нём тоже проверял, хотя и позже. Но там три конструкции пришлось поменять:

1) status=none пришлось вернуть на уродливый 2&gt;/dev/null для всех dd;
2) s/readlink -ev/readlink -fv/ в sysfs_path=...
3) dd...|hexdump &apos;-e&quot;%x&quot;&apos; в read_entry() оказался нерабочим. Заработало так:
local x=&quot;$(dd if=&quot;$dev&quot; bs=1 skip=$offset count=1 2&gt;/dev/null)&quot;
printf &quot;%u&quot; &quot;&apos;$x&quot;

Но это очень куцый busybox с не пойми чем внутри, для тестов вполне пригоден. По крайней мере, версию bash он не выводит, что наводит на мысль, что это всё-таки POSIX-shell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169720</commentid>
    <comment_count>28</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-18 20:53:16 +0300</bug_when>
    <thetext>(В ответ на комментарий №27)
&gt; &gt; +[ &quot;$magic&quot; = $&apos;\x55\xAA&apos; ] ||
&gt; 
&gt; Наверняка можно выкрутиться. Чем-нибудь таким заменить:
&gt; 
&gt; +[ &quot;$magic&quot; = &quot;$(printf &apos;\x55\xAA&apos;)&quot; ] ||

Так лучше.

Хочу ещё отметить, что вся арифметика тоже не posix-овая у вас. Я могу это исправить, когда патч буду прикладывать.

&gt; Но это очень куцый busybox с не пойми чем внутри, для тестов вполне пригоден.
&gt; По крайней мере, версию bash он не выводит, что наводит на мысль, что это
&gt; всё-таки POSIX-shell.

Чтобы быть увереннее проверьте с dash. Апстримный busybox содержит именно его.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169726</commentid>
    <comment_count>29</comment_count>
      <attachid>7435</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-19 01:06:12 +0300</bug_when>
    <thetext>Created attachment 7435
Тестовый скрипт

Этим скриптом ещё раз протестировал на всех конфигурациях. Видимо, башизмов не осталось, раз работает без изменений. :) В busybox dash не оказалось, там пришлось поменять шабанг. Но всё равно будет интересно увидеть в конечном виде Ваши исправления.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169807</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-22 00:49:27 +0300</bug_when>
    <thetext>(В ответ на комментарий №29)
&gt; Этим скриптом ещё раз протестировал на всех конфигурациях. Видимо, башизмов не
&gt; осталось, раз работает без изменений. :) В busybox dash не оказалось, там
&gt; пришлось поменять шабанг. Но всё равно будет интересно увидеть в конечном виде
&gt; Ваши исправления.

Посмотрите пожалуйста:

http://git.altlinux.org/people/legion/packages/extlinux.git?p=extlinux.git;a=shortlog;h=refs/heads/rpm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169808</commentid>
    <comment_count>31</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-22 02:06:37 +0300</bug_when>
    <thetext>(В ответ на комментарий №30)
&gt; (В ответ на комментарий №29)
&gt; &gt; Но всё равно будет интересно увидеть в конечном виде Ваши исправления.
&gt; 
&gt; Посмотрите пожалуйста:

Всё классно, только не нашёл там кнопки &quot;Like&quot;! :) Честно удивился, когда Вы согласились принять ЭТО. Понятно, что и на шеле можно писать, как на ассемблере, но читабельность и понимание таким кодом мы ухудшаем. Поэтому я думал, что Вам будет сподручней разделить пакет, как предлагали Gremlin и Антон.

Возник ещё вопрос по строке, которая там была раньше:

dev=&quot;$(sed -n -e &apos;s,^DEVNAME=,/dev/,p&apos; &quot;${sysfs_path%/*}/uevent&quot;)&quot;

Будет ли здесь значение ожидаемым в системе, где нет udev? Скорее да, но на всякий случай...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169809</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-22 02:27:14 +0300</bug_when>
    <thetext>(В ответ на комментарий №31)
&gt; Всё классно, только не нашёл там кнопки &quot;Like&quot;! :) Честно удивился, когда Вы
&gt; согласились принять ЭТО. Понятно, что и на шеле можно писать, как на
&gt; ассемблере, но читабельность и понимание таким кодом мы ухудшаем.

Да, читабильность несколько упала, но разобраться можно. Если кто-то не сможет, то знает кого благодарить. git всё помнит. Конечно, если бы был развёрнутый комментарий, то было бы лучше. Если вы напишите, то я буду очень благодарен! :)

Но в крайнем случае у меня есть старый вариант в git&apos;е :)

&gt; Поэтому я
&gt; думал, что Вам будет сподручней разделить пакет, как предлагали Gremlin и
&gt; Антон.

Для меня пакет extlinux без скриптов настройки.

&gt; Возник ещё вопрос по строке, которая там была раньше:
&gt; 
&gt; dev=&quot;$(sed -n -e &apos;s,^DEVNAME=,/dev/,p&apos; &quot;${sysfs_path%/*}/uevent&quot;)&quot;
&gt; 
&gt; Будет ли здесь значение ожидаемым в системе, где нет udev? Скорее да, но на
&gt; всякий случай...

Будет. Это никакого отношения к udev не имеет. Это sysfs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169810</commentid>
    <comment_count>33</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-22 03:43:02 +0300</bug_when>
    <thetext>(В ответ на комментарий №32)
&gt; Конечно, если бы был развёрнутый
&gt; комментарий, то было бы лучше. Если вы напишите, то я буду очень благодарен! 

Моего английского боятся и не понимают! :) Но попробую...

Change to tear off the &quot;parted&quot; package and its dependencies. The same actions are performed in several direct disk read operations. First, 2-bytes MBR-signature at address 510 (end of the first sector) is read. It should be read as 0x55, 0xAA. Then 8-bytes GPT-signature &quot;EFI PART&quot; is checked at the beginning of the second sector of the disk. MBR partition table starts at offset 446, each element of the table occupying 16 bytes. The 0th byte of the element must have 0x80 value for the boot partition.

The GPT-header begins in the second sector of the disk. 4 bytes from offset 80 (0x50) at the header start contain the number of table elements in little-endian, the next 4 bytes from offset 84 (0x54) contain the size of a single partition entry, usually 128 bytes. These two numbers are obtained by the function read_gpt(). GPT partition table begins in the third sector of the disk. If the bit &quot;2&quot; of the byte of the table element at offset 48 is set, the partition is marked as bootable in the Legacy BIOS. This &quot;attributes&quot; byte is obtained by the function read_entry().

Только не спрашивайте, что значит атрибут legacy_bios_bootable! Сам этого не понимаю и даже по-русски не знаю, как объяснить! EFI (а только она и умеет работать с GPT) этот атрибут не использует для определения, откуда грузить систему. Legacy BIOS не может брать информацию из GPT, и в этом случае MBR там фейковый (защитный). Утилиты конвертации типа sgdisk этот бит теряют. Я так понял, если прошивка машины поддерживает и переведена из режима EFI в Legacy режим, теоретически есть шанс с такого диска загрузиться в Legacy-режиме. Но я в этом не уверен, нужно вычитывать спецификацию UEFI, которая определяет и формат GUID/GPT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169811</commentid>
    <comment_count>34</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-22 04:00:38 +0300</bug_when>
    <thetext>(В ответ на комментарий №32)
&gt; Если кто-то не сможет, то знает кого благодарить. git всё помнит.

Пока сочинял комментарий, возникло сомнение по этой строке:

magic=&quot;$(dd if=&quot;$dev&quot; bs=8 skip=64 count=1 2&gt;/dev/null)&quot;

Это рабочий вариант, если размер логического сектора равен 512 байтам. В 99.9% случаев это так. Мне ещё не попадалось AF-дисков Native4K, но думаю и там логический сектор будет 512 байт. Тем не менее, надёжнее переписать так:

magic=&quot;$(dd if=&quot;$dev&quot; bs=1 skip=$sector_size count=8 2&gt;/dev/null)&quot;

Иначе и в функциях вместо $sector_size можно было бы использовать константу 512.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169822</commentid>
    <comment_count>35</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-22 17:52:49 +0300</bug_when>
    <thetext>http://git.altlinux.org/people/legion/packages/extlinux.git?p=extlinux.git;a=commit;h=9b9986cbe7f2863199ced92ab49a7706bc857abc

Looks good ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169826</commentid>
    <comment_count>36</comment_count>
      <attachid>7446</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-23 01:06:22 +0300</bug_when>
    <thetext>Created attachment 7446
comments.patch

(В ответ на комментарий №35)
&gt; Looks good ?

Смотрится отлично, хотя вот это предложение не очень понятно:
MBR partition table starts at the function read_gpt().

Поэтому предлагаю (на Ваше усмотрение) такой вариант...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169836</commentid>
    <comment_count>37</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-23 11:59:48 +0300</bug_when>
    <thetext>Applied. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169839</commentid>
    <comment_count>38</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-23 12:13:40 +0300</bug_when>
    <thetext>Вы ещё говорили про EFI. Хотите его тоже добавить ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169850</commentid>
    <comment_count>39</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-23 22:59:13 +0300</bug_when>
    <thetext>(В ответ на комментарий №38)
&gt; Вы ещё говорили про EFI. Хотите его тоже добавить ?

По моим (возможно устаревшим) убеждениям, extlinux для другого, а для EFI нужен syslinux. Наиболее корректно попытался описать вероятное использование в сообщении #20. Если всё-таки я заблуждаюсь, и extlinux можно задействовать для загрузки с GUID/GPT ESP или FAT32-раздела в Legacy BIOS, то обеими руками буду &quot;ЗА&quot;. Но, на всякий случай, чтобы не дублировать и тратить зря силы, попросил Гремлина и он уже занимается (разбирается) с апстримным syslinux в том варианте, который Вы обсуждали с Антоном выше. Версию с gfxboot не трогаем, всё остальное надо сделать по-человечески и назвать как-нибудь типа syslinux-vanilla или syslinux-base.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169851</commentid>
    <comment_count>40</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-03-24 01:27:51 +0300</bug_when>
    <thetext>(В ответ на комментарий №39)
&gt; По моим (возможно устаревшим) убеждениям, extlinux для другого, а для EFI нужен
&gt; syslinux.

Код один. Есть три цели в Makefile: bios efi32 efi64
Сейчас я собираю только bios.

&gt; Наиболее корректно попытался описать вероятное использование в
&gt; сообщении #20. Если всё-таки я заблуждаюсь, и extlinux можно задействовать для
&gt; загрузки с GUID/GPT ESP или FAT32-раздела в Legacy BIOS, то обеими руками буду
&gt; &quot;ЗА&quot;. Но, на всякий случай, чтобы не дублировать и тратить зря силы, попросил
&gt; Гремлина и он уже занимается (разбирается) с апстримным syslinux в том
&gt; варианте, который Вы обсуждали с Антоном выше. Версию с gfxboot не трогаем, всё
&gt; остальное надо сделать по-человечески и назвать как-нибудь типа
&gt; syslinux-vanilla или syslinux-base.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169852</commentid>
    <comment_count>41</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-03-24 01:32:55 +0300</bug_when>
    <thetext>(В ответ на комментарий №37)
&gt; Applied. Thanks!

Так это Вам спасибо!

(В ответ на комментарий №38)
&gt; Вы ещё говорили про EFI. Хотите его тоже добавить ?

С одной стороны, есть утверждение, что начиная с 4-й версии syslinux и extlinux это одно и то же. Не берусь судить, правда ли это. С другой стороны, для относительно новых ядер, собранных с CONFIG_EFI_STUB=y, загрузчик в EFI не нужен, ядро может само выступать в его роли. Поскольку наше ядро собрано с этой опцией, вариант без дополнительного загрузчика для EFI-систем очень даже привлекательно выглядит. Для Legacy BIOS и pure-linux-fs -- extlinux.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7432</attachid>
            <date>2018-03-17 04:39:51 +0300</date>
            <delta_ts>2018-03-17 04:39:51 +0300</delta_ts>
            <desc>no-parted.patch</desc>
            <filename>no-parted.patch</filename>
            <type>text/plain</type>
            <size>3179</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3JwbS9leHRsaW51eC1jb25maWcgYi9ycG0vZXh0bGludXgtY29uZmlnCmlu
ZGV4IDMxZWYzN2YuLmE5M2UyMWIgMTAwNzU1Ci0tLSBhL3JwbS9leHRsaW51eC1jb25maWcKKysr
IGIvcnBtL2V4dGxpbnV4LWNvbmZpZwpAQCAtMzAsNyArMzAsNyBAQCBzaG93X2hlbHAoKSB7CiAK
IHByaW50X3ZlcnNpb24oKSB7CiAJY2F0IDw8LUVPRgotCSRQUk9HIHZlcnNpb24gMi4wCisJJFBS
T0cgdmVyc2lvbiAyLjEKIAlXcml0dGVuIGJ5IEFsZXhleSBHbGFka292LgogCiAJQ29weXJpZ2h0
IChDKSAyMDEwLTIwMTIgIEFsZXhleSBHbGFka292IDxnbGFka292LmFsZXhleUBnbWFpbC5jb20+
CkBAIC00MCw2ICs0MCwxMyBAQCBwcmludF92ZXJzaW9uKCkgewogCWV4aXQKIH0KIAorcmVhZF9n
cHQoKSB7CisJbG9jYWwgb2Zmc2V0PSQoKCQxICsgNTEyKSkgbGVuPSR7MjotMX0KKwlsb2NhbCB4
PSQoZGQgaWY9IiRkZXYiIGJzPTEgc2tpcD0kb2Zmc2V0IGNvdW50PSRsZW4gMj4vZGV2L251bGwg
fCBvZCAtQSBuIC10IHUkbGVuKQorCWVjaG8gIiR7eC8vIC99IgorfQorCisKIEdFVE9QVF9BTExP
V19VTktOT1dOPTEKIFRFTVA9YGdldG9wdCAtbiAkUFJPRyAtbyBiOixkLHI6LHYsVixoIC1sIGJv
b3Q6LGRyeS1ydW4scm9vdDosdmVyYm9zZSx2ZXJzaW9uLGhlbHAgLS0gIiRAImAgfHwKIAlzaG93
X2hlbHAKQEAgLTg2LDI2ICs5Myw0MCBAQCBzeXNmc19wYXRoPSIkKHJlYWRsaW5rIC1ldiAiL3N5
cy9kZXYvYmxvY2svJGJvb3RfbWFqbWluIiAyPi9kZXYvbnVsbCkiIHx8CiByZWFkIHBhcnRpdGlv
biA8ICIkc3lzZnNfcGF0aC9wYXJ0aXRpb24iCiAKIGRldj0iJChzZWQgLW4gLWUgJ3MsXkRFVk5B
TUU9LC9kZXYvLHAnICIke3N5c2ZzX3BhdGglLyp9L3VldmVudCIpIgotcGFydGl0aW9uX3RhYmxl
PSIkKExBTkc9QyBwYXJ0ZWQgLW1zICIkZGV2IiBwcmludCB8IGdyZXAgXi8gfGN1dCAtZDogLWY2
KSIKKworbWFnaWM9IiQoZGQgaWY9IiRkZXYiIGJzPTIgc2tpcD0yNTUgY291bnQ9MSAyPi9kZXYv
bnVsbCkiCitbICIkbWFnaWMiID0gJCdceDU1XHhBQScgXSB8fAorCWZhdGFsICJVbmtub3duIHBh
cnRpdGlvbiB0YWJsZSIKKworbWFnaWM9IiQoZGQgaWY9IiRkZXYiIGJzPTggc2tpcD02NCBjb3Vu
dD0xIDI+L2Rldi9udWxsKSIKK2lmIFsgIiRtYWdpYyIgIT0gIkVGSSBQQVJUIiBdOyB0aGVuCisJ
cGFydGl0aW9uX3RhYmxlPSdtc2RvcycKKwltYWdpYz00CitlbHNlCisJcGFydGl0aW9uX3RhYmxl
PSdncHQnCisJbWFnaWM9JChyZWFkX2dwdCA4MCA0KQorZmkKIAogdmVyYm9zZSAiUGFydGl0aW9u
IHRhYmxlOiAkcGFydGl0aW9uX3RhYmxlIgogCi1jYXNlICIkcGFydGl0aW9uX3RhYmxlIiBpbgot
CWdwdCkKLQkJbWJyX2Jpbj0nZ3B0bWJyLmJpbicKLQkJZmxhZz0nbGVnYWN5X2Jvb3QnCi0JCTs7
Ci0JbXNkb3MpCi0JCW1icl9iaW49J21ici5iaW4nCi0JCWZsYWc9J2Jvb3QnCi0JCTs7Ci0JKikJ
ZmF0YWwgIlVua25vd24gcGFydGl0aW9uIHRhYmxlOiAkcGFydGl0aW9uX3RhYmxlIiA7OwotZXNh
YwotCi1ib290ZmxhZ3M9IiQoTEFORz1DIHBhcnRlZCAtbXMgIiRkZXYiIHByaW50IHwgZ3JlcCAi
XiRwYXJ0aXRpb246IiB8Y3V0IC1kOiAtZjcpIgotCi1bIC16ICIke2Jvb3RmbGFncyMjKiRmbGFn
Kn0iIF0gfHwKLQlmYXRhbCAicGFydGl0b24gbm90IGJvb3RhYmxlIgorWyAkcGFydGl0aW9uIC1n
ZSAxIC1hICRwYXJ0aXRpb24gLWxlICRtYWdpYyBdIHx8CisJZmF0YWwgImludmFsaWQgcGFydGl0
aW9uIG51bWJlciIKKworaWYgWyAiJHBhcnRpdGlvbl90YWJsZSIgPSAibXNkb3MiIF07IHRoZW4K
KwltYWdpYz0kKCgkKChwYXJ0aXRpb24gLSAxKSkgKiAxNiArIDQ0NikpCisJbWFnaWM9IiQoZGQg
aWY9IiRkZXYiIGJzPTEgc2tpcD0kbWFnaWMgY291bnQ9MSAyPi9kZXYvbnVsbCkiCisJWyAiJG1h
Z2ljIiA9ICQnXHg4MCcgXSB8fAorCQlmYXRhbCAicGFydGl0b24gbm90IGJvb3RhYmxlIgorCW1i
cl9iaW49J21ici5iaW4nCitlbHNlCisJZW50cnlfc2l6ZT0kKHJlYWRfZ3B0IDg0IDQpCisJbWFn
aWM9JCgoJCgocGFydGl0aW9uIC0gMSkpICogJGVudHJ5X3NpemUgKyA1NTIpKQorCW1hZ2ljPSIk
KHJlYWRfZ3B0ICRtYWdpYykiCisJbWFnaWM9JCgobWFnaWMgJiAyKSkKKwlbICIkbWFnaWMiID0g
IjIiIF0gfHwKKwkJZmF0YWwgInBhcnRpdG9uIG5vdCBib290YWJsZSIKKwltYnJfYmluPSdncHRt
YnIuYmluJworZmkKIAogREVWTkFNRT0KIGRpcj0iJChyZWFkbGluayAtbSAiJFJPT1RESVIvIiki
CmRpZmYgLS1naXQgYS9ycG0vZXh0bGludXguc3BlYyBiL3JwbS9leHRsaW51eC5zcGVjCmluZGV4
IDVmZTFmZTkuLjM3ZmEzNDMgMTAwNjQ0Ci0tLSBhL3JwbS9leHRsaW51eC5zcGVjCisrKyBiL3Jw
bS9leHRsaW51eC5zcGVjCkBAIC0xLDcgKzEsNyBAQAogU3VtbWFyeTogVGhlIEVYVExJTlVYIGJv
b3Rsb2FkZXIsIGZvciBib290aW5nIHRoZSBsb2NhbCBzeXN0ZW0uCiBOYW1lOiBleHRsaW51eAog
VmVyc2lvbjogNi4wMwotUmVsZWFzZTogYWx0MQorUmVsZWFzZTogYWx0MgogTGljZW5zZTogR1BM
MgogR3JvdXA6IFN5c3RlbS9CYXNlCiBVcmw6IGh0dHA6Ly93d3cuc3lzbGludXgub3JnL3dpa2kv
aW5kZXgucGhwL1RoZV9TeXNsaW51eF9Qcm9qZWN0CkBAIC0xNSw3ICsxNSw3IEBAIFNvdXJjZTQ6
IGV4dGxpbnV4LmZpbGV0cmlnZ2VyCiAKIEJ1aWxkUmVxdWlyZXM6IGxpYmUyZnMtZGV2ZWwgbGli
dXVpZC1kZXZlbCBuYXNtCiAKLVJlcXVpcmVzOiBsaWJzaGVsbCB1dGlsLWxpbnV4IHBhcnRlZAor
UmVxdWlyZXM6IGxpYnNoZWxsIHV0aWwtbGludXgKIAogQ29uZmxpY3RzOiBzeXNsaW51eC1leHRs
aW51eAogT2Jzb2xldGVzOiBzeXNsaW51eDQtZXh0bGludXgKQEAgLTEwMCw2ICsxMDAsOSBAQCBs
biAtcyAuLi9ib290L2V4dGxpbnV4L2V4dGxpbnV4LmNvbmYuZCAuCiAlZG9jIHNhbXBsZQogCiAl
Y2hhbmdlbG9nCisqIEZyaSBNYXIgMTYgMjAxNyBMZW9uaWQgS3Jpdm9zaGVpbiA8a2xhcmtAYWx0
bGludXgub3JnPiA2LjAzLWFsdDIKKy0gUmVtb3ZlZCBkZXBlbmRlbmN5IHRvIHBhcnRlZCAoQUxU
IzM0NDgxKS4KKwogKiBUdWUgRGVjIDI2IDIwMTcgQWxleGV5IEdsYWRrb3YgPGxlZ2lvbkBhbHRs
aW51eC5ydT4gNi4wMy1hbHQxCiAtIE5ldyByZWxlYXNlICg2LjAzKS4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7435</attachid>
            <date>2018-03-19 01:06:12 +0300</date>
            <delta_ts>2018-03-19 01:06:12 +0300</delta_ts>
            <desc>Тестовый скрипт</desc>
            <filename>extltest.sh</filename>
            <type>application/x-shellscript</type>
            <size>1773</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">IyEvYmluL2Rhc2ggLWV1Cgp2ZXJib3NlKCkgewoJbG9jYWwgcHJvZ25hbWU9IiR7MCMjKi99IgoJ
ZWNobyAiJHByb2duYW1lOiAkKiIgPiYyCn0KCmZhdGFsKCkgewoJdmVyYm9zZSAiJCoiCglleGl0
IDEKfQoKcmVhZF9ncHQoKSB7Cglsb2NhbCBvZmZzZXQ9JCgoc2VjdG9yX3NpemUgKyAkMSkpCglk
ZCBpZj0iJGRldiIgYnM9MSBza2lwPSRvZmZzZXQgY291bnQ9NCAyPi9kZXYvbnVsbCB8IGhleGR1
bXAgJy1lIiV1IicKfQoKcmVhZF9lbnRyeSgpIHsKCWxvY2FsIG9mZnNldD0kKChzZWN0b3Jfc2l6
ZSAqIDIgKyAkMSkpCglsb2NhbCB4PSIkKGRkIGlmPSIkZGV2IiBicz0xIHNraXA9JG9mZnNldCBj
b3VudD0xIDI+L2Rldi9udWxsKSIKCXByaW50ZiAiJXUiICInJHgiCn0KCgpib290X2Rpcj0iJHsx
Oi0vYm9vdH0iCmJvb3RfbWFqbWluPSIkKG1vdW50cG9pbnQgLWQgIiRib290X2RpciIpIiB8fDoK
c3lzZnNfcGF0aD0iJChyZWFkbGluayAtZnYgIi9zeXMvZGV2L2Jsb2NrLyRib290X21ham1pbiIg
Mj4vZGV2L251bGwpIiB8fAoJZmF0YWwgIlVuYWJsZSB0byBnZXQgc3lzZnMgcGF0aCIKClsgLWYg
IiRzeXNmc19wYXRoL3BhcnRpdGlvbiIgXSB8fAoJZmF0YWwgIkJvb3QgZGV2aWNlIG11c3QgYmUg
cGFydGl0aW9uIgoKcmVhZCBwYXJ0aXRpb24gPCAiJHN5c2ZzX3BhdGgvcGFydGl0aW9uIgpkZXY9
IiQoc2VkIC1uIC1lICdzLF5ERVZOQU1FPSwvZGV2LyxwJyAiJHtzeXNmc19wYXRoJS8qfS91ZXZl
bnQiKSIKc2VjdG9yX3NpemU9JChibG9ja2RldiAtLWdldHNzICIkZGV2IikKCnZlcmJvc2UgIkRl
dmljZSBuYW1lOiAkZGV2Igp2ZXJib3NlICJTZWN0b3Igc2l6ZTogJHNlY3Rvcl9zaXplIgoKbWFn
aWM9IiQoZGQgaWY9IiRkZXYiIGJzPTIgc2tpcD0yNTUgY291bnQ9MSAyPi9kZXYvbnVsbCB8IGJh
c2U2NCkiClsgIiRtYWdpYyIgPSAiVmFvPSIgXSB8fAoJZmF0YWwgIlVua25vd24gcGFydGl0aW9u
IHRhYmxlIgoKbWFnaWM9IiQoZGQgaWY9IiRkZXYiIGJzPTggc2tpcD02NCBjb3VudD0xIDI+L2Rl
di9udWxsKSIKaWYgWyAiJG1hZ2ljIiA9ICJFRkkgUEFSVCIgXTsgdGhlbgoJcGFydGl0aW9uX3Rh
YmxlPSdncHQnCgltYWdpYz0kKHJlYWRfZ3B0IDgwKQplbHNlCglwYXJ0aXRpb25fdGFibGU9J21z
ZG9zJwoJbWFnaWM9NApmaQoKdmVyYm9zZSAiUGFydGl0aW9uIHRhYmxlOiAkcGFydGl0aW9uX3Rh
YmxlIgoKWyAkcGFydGl0aW9uIC1nZSAxIC1hICRwYXJ0aXRpb24gLWxlICRtYWdpYyBdIHx8Cglm
YXRhbCAiaW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyOiAkcGFydGl0aW9uIgoKaWYgWyAiJHBhcnRp
dGlvbl90YWJsZSIgPSAibXNkb3MiIF07IHRoZW4KCW1hZ2ljPSQoKDE2ICogJCgocGFydGl0aW9u
IC0gMSkpICsgNDQ2KSkKCW1hZ2ljPSIkKGRkIGlmPSIkZGV2IiBicz0xIHNraXA9JG1hZ2ljIGNv
dW50PTEgMj4vZGV2L251bGwgfCBiYXNlNjQpIgoJWyAiJG1hZ2ljIiA9ICJnQT09IiBdIHx8CgkJ
ZmF0YWwgInBhcnRpdGlvbiBub3QgYm9vdGFibGUiCgltYnJfYmluPSdtYnIuYmluJwplbHNlCglt
YWdpYz0kKHJlYWRfZ3B0IDg0KQoJbWFnaWM9JCgobWFnaWMgKiAkKChwYXJ0aXRpb24gLSAxKSkg
KyA0OCkpCgltYWdpYz0kKHJlYWRfZW50cnkgJG1hZ2ljKQoJbWFnaWM9JCgobWFnaWMgJiA0KSkK
CVsgIiRtYWdpYyIgPSAiNCIgXSB8fAoJCWZhdGFsICJwYXJ0aXRpb24gbm90IGJvb3RhYmxlIgoJ
bWJyX2Jpbj0nZ3B0bWJyLmJpbicKZmkKCnZlcmJvc2UgIkJvb3QgY29kZTogJG1icl9iaW4iCgpl
eGl0IDAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7446</attachid>
            <date>2018-03-23 01:06:22 +0300</date>
            <delta_ts>2018-03-23 01:06:22 +0300</delta_ts>
            <desc>comments.patch</desc>
            <filename>comments.patch</filename>
            <type>text/plain</type>
            <size>3080</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">Y29tbWl0IDlmZjM1YjAyOGFhMTNlYmU0MGFiODQxNThkMjJmYWE4NWE1YmYyMGQKQXV0aG9yOiBM
ZW9uaWQgS3Jpdm9zaGVpbiA8a2xhcmtAYWx0bGludXgub3JnPgpEYXRlOiAgIEZyaSBNYXIgMjMg
MDA6NTg6MjYgMjAxOCArMDMwMAoKICAgIEFkZCBkZXNjcmlwdGlvbiBmb3IgTUJSL0dQVCBhbmQg
Ym9vdCBmbGFnIGRldGVjdGlvbgoKZGlmZiAtLWdpdCBhL3JwbS9leHRsaW51eC1jb25maWcgYi9y
cG0vZXh0bGludXgtY29uZmlnCmluZGV4IGRiOTAyNTAuLjM1NjI3MzYgMTAwNzU1Ci0tLSBhL3Jw
bS9leHRsaW51eC1jb25maWcKKysrIGIvcnBtL2V4dGxpbnV4LWNvbmZpZwpAQCAtMzksMTIgKzM5
LDE4IEBAIHByaW50X3ZlcnNpb24oKSB7CiAJZXhpdAogfQogCisjIFJlYWQgMzItYml0IGxpdHRs
ZS1lbmRpYW4gZnJvbSBHUFQgaGVhZGVyIGFuZCBvdXRwdXQgaXRzIGFzIGRlY2ltYWwgbnVtYmVy
LgorIyBHUFQgaGVhZGVyIGJlZ2lucyBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZGlzay4g
JDEgaXMgb2Zmc2V0LgorIwogcmVhZF9ncHQoKSB7CiAJbG9jYWwgb2Zmc2V0PSQoKCRzZWN0b3Jf
c2l6ZSArICQxKSkKIAlkZCBpZj0iJGRldiIgYnM9MSBza2lwPSRvZmZzZXQgY291bnQ9NCAyPi9k
ZXYvbnVsbCB8CiAJCWhleGR1bXAgJy1lIiV1IicKIH0KIAorIyBSZWFkIHNpbmdsZSBieXRlIGZy
b20gcGFydGl0aW9uIHRhYmxlIGVsZW1lbnQgYW5kIG91dHB1dCBpdHMgYXMgZGVjaW1hbCBudW1i
ZXIuCisjIEdQVCBwYXJ0aXRpb24gdGFibGUgYmVnaW5zIGluIHRoZSB0aGlyZCBzZWN0b3Igb2Yg
dGhlIGRpc2suICQxIGlzIG9mZnNldC4KKyMKIHJlYWRfZW50cnkoKSB7CiAJbG9jYWwgb2Zmc2V0
PSQoKCRzZWN0b3Jfc2l6ZSAqIDIgKyAkMSkpCiAJbG9jYWwgeD0iJChkZCBpZj0iJGRldiIgYnM9
MSBza2lwPSRvZmZzZXQgY291bnQ9MSAyPi9kZXYvbnVsbCkiCkBAIC0xMDYsMTMgKzExMiwyNCBA
QCB2ZXJib3NlICJEZXZpY2UgbmFtZTogJGRldiIKIHZlcmJvc2UgIlBhcnRpdGlvbiBudW1iZXI6
ICRwYXJ0aXRpb24iCiB2ZXJib3NlICJTZWN0b3Igc2l6ZTogJHNlY3Rvcl9zaXplIgogCisjCisj
IEZpcnN0LCAyLWJ5dGVzIE1CUi1zaWduYXR1cmUgYXQgYWRkcmVzcyA1MTAgKGVuZCBvZiB0aGUg
Zmlyc3Qgc2VjdG9yKSBpcyByZWFkLgorIyBJdCBzaG91bGQgYmUgcmVhZCBhcyAweDU1LCAweEFB
LgorIyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NYXN0ZXJfYm9vdF9yZWNvcmQjU2Vj
dG9yX2xheW91dAorIwogbWFnaWM9IiQoZGQgaWY9IiRkZXYiIGJzPTIgc2tpcD0yNTUgY291bnQ9
MSAyPi9kZXYvbnVsbCB8IGJhc2U2NCkiCiBbICIkbWFnaWMiID0gIlZhbz0iIF0gfHwKIAlmYXRh
bCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUiCiAKLW1hZ2ljPSIkKGRkIGlmPSIkZGV2IiBicz04
IHNraXA9NjQgY291bnQ9MSAyPi9kZXYvbnVsbCkiCisjCisjIFRoZW4gOC1ieXRlcyBHUFQtc2ln
bmF0dXJlICJFRkkgUEFSVCIgaXMgY2hlY2tlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWNv
bmQKKyMgc2VjdG9yIG9mIHRoZSBkaXNrLgorIyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lr
aS9HVUlEX1BhcnRpdGlvbl9UYWJsZSNQYXJ0aXRpb25fdGFibGVfaGVhZGVyXyhMQkFfMSkKKyMK
K21hZ2ljPSIkKGRkIGlmPSIkZGV2IiBicz0xIHNraXA9JHNlY3Rvcl9zaXplIGNvdW50PTggMj4v
ZGV2L251bGwpIgogaWYgWyAiJG1hZ2ljIiA9ICJFRkkgUEFSVCIgXTsgdGhlbgogCXBhcnRpdGlv
bl90YWJsZT0nZ3B0JworCSMgTnVtYmVyIG9mIHBhcnRpdGlvbiBlbnRyaWVzLCA0IGJ5dGVzIGxp
dHRsZS1lbmRpYW4uCiAJbWFnaWM9JChyZWFkX2dwdCA4MCkKIGVsc2UKIAlwYXJ0aXRpb25fdGFi
bGU9J21zZG9zJwpAQCAtMTI1LDE2ICsxNDIsMjYgQEAgdmVyYm9zZSAiUGFydGl0aW9uIHRhYmxl
OiAkcGFydGl0aW9uX3RhYmxlIgogCWZhdGFsICJpbnZhbGlkIHBhcnRpdGlvbiBudW1iZXI6ICRw
YXJ0aXRpb24iCiAKIGlmIFsgIiRwYXJ0aXRpb25fdGFibGUiID0gIm1zZG9zIiBdOyB0aGVuCisJ
IyBNQlIgcGFydGl0aW9uIHRhYmxlIHN0YXJ0cyBhdCBvZmZzZXQgNDQ2LgorCSMgRWFjaCBlbGVt
ZW50IG9mIHRoZSB0YWJsZSBvY2N1cHlpbmcgMTYgYnl0ZXMuCiAJbWFnaWM9JCgoMTYgKiAoJHBh
cnRpdGlvbiAtIDEpICsgNDQ2KSkKIAltYWdpYz0iJChkZCBpZj0iJGRldiIgYnM9MSBza2lwPSRt
YWdpYyBjb3VudD0xIDI+L2Rldi9udWxsIHwgYmFzZTY0KSIKKwkjIEZpcnN0IGJ5dGUgb2YgdGhl
IGVsZW1lbnQgaXMgMHg4MCBmb3IgdGhlIGJvb3QgcGFydGl0aW9uLgorCSMgaHR0cHM6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvTWFzdGVyX2Jvb3RfcmVjb3JkI1BURQogCVsgIiRtYWdpYyIgPSAi
Z0E9PSIgXSB8fAogCQlmYXRhbCAicGFydGl0aW9uIG5vdCBib290YWJsZSIKIAltYnJfYmluPSdt
YnIuYmluJwogZWxzZQorCSMgU2l6ZSBvZiBhIHNpbmdsZSBwYXJ0aXRpb24gZW50cnksIDQgYnl0
ZXMgbGl0dGxlLWVuZGlhbi4KIAltYWdpYz0kKHJlYWRfZ3B0IDg0KQorCSMgQXR0cmlidXRlIGZs
YWdzICg4IGJ5dGVzIGxpdHRsZS1lbmRpYW4pIHN0YXJ0cyBhdCBvZmZzZXQgNDggb2YgdGhlIGVu
dHJ5LgorCSMgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvR1VJRF9QYXJ0aXRpb25fVGFi
bGUjUGFydGl0aW9uX2VudHJpZXNfKExCQV8yLTMzKQogCW1hZ2ljPSQoKCRtYWdpYyAqICgkcGFy
dGl0aW9uIC0gMSkgKyA0OCkpCisJIyBXZSBpbnRlcmVzdGVkIG9ubHkgbG93IGJ5dGUgb2YgdGhl
IGF0dHJpYnV0ZSBmbGFncyBhbmQgb25seSBiaXQgIjIiIChtYXNrIDB4MDQpLgogCW1hZ2ljPSQo
cmVhZF9lbnRyeSAkbWFnaWMpCiAJbWFnaWM9JCgoJG1hZ2ljICYgNCkpCisJIyBJZiB0aGUgYml0
ICIyIiBvZiB0aGUgYXR0cmlidXRlIGZsYWdzIGlzIHNldCwKKwkjIHBhcnRpdGlvbiBpcyBtYXJr
ZWQgYXMgYm9vdGFibGUgaW4gdGhlIExlZ2FjeSBCSU9TLgogCVsgIiRtYWdpYyIgPSAiNCIgXSB8
fAogCQlmYXRhbCAicGFydGl0aW9uIG5vdCBib290YWJsZSIKIAltYnJfYmluPSdncHRtYnIuYmlu
Jwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>