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

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

    <bug>
          <bug_id>31299</bug_id>
          
          <creation_ts>2015-09-25 13:39:42 +0300</creation_ts>
          <short_desc>Добавить фичу для создания сервера виртуализации VirtualBox</short_desc>
          <delta_ts>2015-09-28 21:34:10 +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>mkimage-profiles</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>patch</keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>26300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="solo">solo</reporter>
          <assigned_to name="Антон Мидюков">antohami</assigned_to>
          <cc>antohami</cc>
    
    <cc>evg</cc>
    
    <cc>mike</cc>
    
    <cc>shadowsbrother</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>152871</commentid>
    <comment_count>0</comment_count>
    <who name="solo">solo</who>
    <bug_when>2015-09-25 13:39:42 +0300</bug_when>
    <thetext>Предлагаю добавить в mkimage-profiles фичу use/server/vbox, предназначенную для создания серверов виртуализации VirtualBox. Суть активации фичи:

1. Должен быть установлены пакеты:

1.а) virtualbox

1.б) Серверные модули virtualbox`а

2. Среди установлеваемых пакетов не должно быть гостевых драйверов virtualbox`а -- сильно мешают тестировать полученный дистрибутив в VirtualBox`овой же виртуалке.

3. Должен быть настроен автостарт демона virtualbox. (Актуально, пока не закрыт https://bugzilla.altlinux.org/show_bug.cgi?id=29112.)

Предлагаемый мной вариант находится в бранче vbox (см. http://git.altlinux.org/people/solo/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=shortlog;h=refs/heads/vbox) репозитория git://git.altlinux.org/people/solo/packages/mkimage-profiles.git (см. http://git.altlinux.org/people/solo/packages/mkimage-profiles.git). Состав коммитов:

7b2271520f6eea06c487e4bcfe59d6f1a0a2381f -- Добавлено описание группы vbox-server и соответсвующий ей список пакетов (см. http://git.altlinux.org/people/solo/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=commitdiff;h=7b2271520f6eea06c487e4bcfe59d6f1a0a2381f).

7ef669104326d86e83d26ac74ea212683098a1e3 -- в фичу server добавлена цель use/server/vbox (см. http://git.altlinux.org/people/solo/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=commitdiff;h=7ef669104326d86e83d26ac74ea212683098a1e3).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152903</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2015-09-28 15:51:49 +0300</bug_when>
    <thetext>(В ответ на комментарий №0)
&gt; 2. Среди установлеваемых пакетов не должно быть гостевых драйверов
&gt; virtualbox`а-- сильно мешают тестировать полученный дистрибутив
&gt; в VirtualBox`овой же виртуалке.
А кто их принёс? (посмотри по build/distcfg.mk или расскажи, от какого образа отталкивался -- regular-server, так понимаю)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152905</commentid>
    <comment_count>2</comment_count>
    <who name="solo">solo</who>
    <bug_when>2015-09-28 17:19:02 +0300</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; (В ответ на комментарий №0)
&gt; &gt; 2. Среди установлеваемых пакетов не должно быть гостевых драйверов
&gt; &gt; virtualbox`а-- сильно мешают тестировать полученный дистрибутив
&gt; &gt; в VirtualBox`овой же виртуалке.
&gt; А кто их принёс? (посмотри по build/distcfg.mk или расскажи, от какого образа
&gt; отталкивался -- regular-server, так понимаю)

Нет, у меня в основе distro/regular-xfce (даёт хорошую основу для последующего отрезания лишнего). Но в конечном итоге (когда функционал устаканится) основу придётся менять -- слишком много лишнего в дистрибутив попадает (тот же firefox, к примеру).

Сейчас (в период бутстрапа) цепочка зависимостей следующая: distro/regular-xfce &lt;- distro/.regular-desktop &lt;- distro/.regular-wm &lt;- distro/.regular-wm  &lt;- distro/.regular-x11 &lt;- +vmguest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152906</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2015-09-28 17:56:34 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; Нет, у меня в основе distro/regular-xfce (даёт хорошую основу
&gt; для последующего отрезания лишнего).
Вообще в m-p идеология построения, а не отчекрыживания -- сформулируй требования (нужно ли DE или предполагается исключительно удалённый/безголовый запуск?), затем найди наиболее близкий к нему образ БЕЗ необходимости что-либо из него выкидывать; если &quot;почти такой&quot;, то можно из данной цели выделить &quot;техническую&quot; промежуточную (см. вывод git grep -F distro/.), подцепив к ней взятую за основу цель с тем, чтобы сама она не изменилась, и свою новую, которая при этом будет содержать всё то, что ты вынес в промежуточную, и не обязана содержать всё, что было в &quot;почти подходящей&quot;.

Разумеется, если добавка закопана глубоко в дереве наследования, так не выйдет.

regular-* вообще не очень хорошая база для того, что должно расти &quot;вбок&quot;, а не надстраиваться над ними, потому что в них включено довольно много функциональности по постановке задачи; более компактные примеры есть в conf.d/{desktop,live,server}.mk, только вот distro/.server-base включает use/cleanup/x11-alterator, а тот выносит libX* и qt4-common, среди прочего...

Так что давай-ка расскажи постановку задачи по образу и сделаем как положено,
на сегодняшний выпуск целиться уже не буду.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152908</commentid>
    <comment_count>4</comment_count>
    <who name="solo">solo</who>
    <bug_when>2015-09-28 18:31:41 +0300</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; (В ответ на комментарий №2)
&gt; &gt; Нет, у меня в основе distro/regular-xfce (даёт хорошую основу
&gt; &gt; для последующего отрезания лишнего).
&gt; Вообще в m-p идеология построения, а не отчекрыживания -- сформулируй
&gt; требования (нужно ли DE или предполагается исключительно удалённый/безголовый
&gt; запуск?), затем найди наиболее близкий к нему образ БЕЗ необходимости что-либо
&gt; из него выкидывать; если &quot;почти такой&quot;, то можно из данной цели выделить
&gt; &quot;техническую&quot; промежуточную (см. вывод git grep -F distro/.), подцепив к ней
&gt; взятую за основу цель с тем, чтобы сама она не изменилась, и свою новую,
&gt; которая при этом будет содержать всё то, что ты вынес в промежуточную, и не
&gt; обязана содержать всё, что было в &quot;почти подходящей&quot;.

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

&gt; 
&gt; Разумеется, если добавка закопана глубоко в дереве наследования, так не выйдет.

Это вижу, по структуре зависимостей между целями сборки. Но пока, без работающего прототипа, непонятно что вообще нужно, кроме основного функционала...

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

OK.

Основная задача -- получить инсталлятор графической пускалки для VirtualBox`а (и управляющего им софта). При этом:

1. Обычные пользователи -- имеют доступ только к заданному множеству VM из под сильно кастрированного openbox`а.

2. Всем этим хозяйством управляет администратор, работающий из под Xfce.

+ в конечном итоге в систему не должно подать ничего лишнего. Но пока непонятно что именно считать лишним... Список лишнего будет получен в процессе исследования прототипа.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152910</commentid>
    <comment_count>5</comment_count>
      <attachid>6387</attachid>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2015-09-28 18:39:47 +0300</bug_when>
    <thetext>Created attachment 6387
рефакторинг server.mk с добавлением distro/server-vbox

Собственно, если сделать

distro/server-vbox: distro/server-mini use/server/vbox; @:

и собрать его -- то после завершения установки пакет virtualbox будет отсутствовать, останется только virtualbox-common; поэтому сделал по мотивам вышепредложенного proof-of-concept без X-сервера, прилагаю (он же проверен без добавленных тобой CLEANUP_PACKAGES, которые я склонен считать относящимися к конкретному образу скорее, чем к предложенной фиче -- если не сделать use/vmguest/vbox или в ручном эквиваленте, то никто выбрасываемые модули в образ и не положит).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152911</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2015-09-28 18:45:50 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Основная задача -- получить инсталлятор графической пускалки для VirtualBox`а
&gt; (и управляющего им софта). При этом:
&gt; 
&gt; 1. Обычные пользователи -- имеют доступ только к заданному множеству VM из под
&gt; сильно кастрированного openbox`а.
Если ничего от WM и не надо -- можно ещё посмотреть на ratpoison, см. применение в livecd-webkiosk.

&gt; 2. Всем этим хозяйством управляет администратор, работающий из под Xfce.
Так это не сервер, а десктоп.  Собственно, не стоит и в фичу добавлять, и даже группу разводить на ровном месте -- просто опиши образ, в который добавь virtualbox.  И всё. :)

&gt; + в конечном итоге в систему не должно подать ничего лишнего.
&gt; Но пока непонятно что именно считать лишним...
EFI, kernel-modules-*, спасательные пакеты/списки?..

Ещё для понимания может быть полезно внимательное изучение build/distcfg.mk.

PS: возможно, Сергей решал отчасти перекликающиеся задачи, на всякий подписываю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152912</commentid>
    <comment_count>7</comment_count>
    <who name="solo">solo</who>
    <bug_when>2015-09-28 18:59:11 +0300</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; Created an attachment (id=6387) [details]
&gt; рефакторинг server.mk с добавлением distro/server-vbox
&gt; 
&gt; Собственно, если сделать
&gt; 
&gt; distro/server-vbox: distro/server-mini use/server/vbox; @:
&gt; 
&gt; и собрать его -- то после завершения установки пакет virtualbox будет
&gt; отсутствовать, останется только virtualbox-common; поэтому сделал по мотивам
&gt; вышепредложенного proof-of-concept без X-сервера, прилагаю (он же проверен без
&gt; добавленных тобой CLEANUP_PACKAGES, которые я склонен считать относящимися к
&gt; конкретному образу скорее, чем к предложенной фиче -- если не сделать
&gt; use/vmguest/vbox или в ручном эквиваленте, то никто выбрасываемые модули в
&gt; образ и не положит).

Такое решение выглядит достаточно красивым.

CLEANUP_PACKAGES позволяет быстро приложить фичу к любому десктопному distro/* и оценить полученный результат. Что, на мой взгляд -- заметно экономит время создания начального варианта прототипа.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152915</commentid>
    <comment_count>8</comment_count>
    <who name="solo">solo</who>
    <bug_when>2015-09-28 19:06:51 +0300</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; (В ответ на комментарий №4)
&gt; &gt; Основная задача -- получить инсталлятор графической пускалки для VirtualBox`а
&gt; &gt; (и управляющего им софта). При этом:
&gt; &gt; 
&gt; &gt; 1. Обычные пользователи -- имеют доступ только к заданному множеству VM из под
&gt; &gt; сильно кастрированного openbox`а.
&gt; Если ничего от WM и не надо -- можно ещё посмотреть на ratpoison, см.
&gt; применение в livecd-webkiosk.

  Нужна корректная работа мультимониторной конфигурации. (Есть подводные камни, как оказалось.)

&gt; 
&gt; &gt; 2. Всем этим хозяйством управляет администратор, работающий из под Xfce.
&gt; Так это не сервер, а десктоп.  Собственно, не стоит и в фичу добавлять, и даже
&gt; группу разводить на ровном месте -- просто опиши образ, в который добавь
&gt; virtualbox.  И всё. :)

  Данную фичу завёл, т. к. решил что у меня получился вполне законченный блок, который может пригодиться кому нибудь ещё. :-) (Для моих цели её мало, но там слишком много частностей появляется.)

&gt; 
&gt; &gt; + в конечном итоге в систему не должно подать ничего лишнего.
&gt; &gt; Но пока непонятно что именно считать лишним...
&gt; EFI, kernel-modules-*, спасательные пакеты/списки?..

  Ага. + всякая мультимедиа.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152916</commentid>
    <comment_count>9</comment_count>
    <who name="Сергей Котляров">shadowsbrother</who>
    <bug_when>2015-09-28 19:18:39 +0300</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; PS: возможно, Сергей решал отчасти перекликающиеся задачи, на всякий
&gt; подписываю.
Если бы решал, то решение уже бы было. Но впопыхах чёткого ТЗ не было, поэтому держал в уме несколько вариантов. В итоге от этого варианта полностью отказались (точнее, дальше наброска дело не пошло, хотя сам набросок вполне себе работал). PS Да, там было отличие от предлагаемого здесь варианта: в iso включался заранее подготовленный образ системы, который требовалось запускать в headless режиме при запуске развернутого на машине iso-шника.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152917</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2015-09-28 19:24:35 +0300</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; CLEANUP_PACKAGES позволяет быстро приложить фичу к любому десктопному distro/*
&gt; и оценить полученный результат. Что, на мой взгляд -- заметно экономит время
&gt; создания начального варианта прототипа.
Ну это всё-таки для оценки, а не для мержа, согласись. :)

У меня тоже куча мелких веточек с кучками временных коммитов, некоторые из которых дозревают до cherry-pick или merge...

(В ответ на комментарий №8)
&gt; Нужна корректная работа мультимониторной конфигурации.
&gt; (Есть подводные камни, как оказалось.)
В своё время сталкивался с некоторыми, но это уже не про m-p, почтой пиши.

&gt; &gt; &gt; Но пока непонятно что именно считать лишним...
&gt; &gt; EFI, kernel-modules-*, спасательные пакеты/списки?..
&gt; Ага. + всякая мультимедиа.
Если у тебя есть жёсткое ТЗ, то может быть лучше отталкиваться от совсем базовых целей вроде distro/.installer и формировать по списку -- см. тот же regular-jeos (там CLEANUP_PACKAGES обусловлены неоптимальностями пакетной базы и отсутствием возможности пометить и удалить начисто пакеты, временно установленные для работы инсталятора).

В m-p изначально заложено много точек выбора между уже готовым, но неконтролируемым заимствуемым и тем, что описываешь врукопашную, зато и гарантируешь...

См. тж.:
https://www.altlinux.org/Mkimage/Profiles/m-p/howto
https://www.altlinux.org/Mkimage/Profiles/m-p/objects

2 sb: понял, спасибо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152919</commentid>
    <comment_count>11</comment_count>
    <who name="solo">solo</who>
    <bug_when>2015-09-28 21:34:10 +0300</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; (В ответ на комментарий №7)
&gt; &gt; CLEANUP_PACKAGES позволяет быстро приложить фичу к любому десктопному distro/*
&gt; &gt; и оценить полученный результат. Что, на мой взгляд -- заметно экономит время
&gt; &gt; создания начального варианта прототипа.
&gt; Ну это всё-таки для оценки, а не для мержа, согласись. :)

Не, не соглашусь. :-)

Основное назначение данной фичи -- гарантированое исключение ситуации, когда гостевой и серверный драйвера имеют возможность загрузится одновременно, т. к. при этом в виртуалке ломаются X`ы. (У нас не тестировал, но на Fedora такой слом был стабильным, см. https://bugzilla.rpmfusion.org/show_bug.cgi?id=3425.) Так что, для меня ценность данной фичи очевидна. Но настаивать что оно важно всем (и потому обязательно должно быть в в пакете) -- не буду. :-)

&gt; 
&gt; В m-p изначально заложено много точек выбора между уже готовым, но
&gt; неконтролируемым заимствуемым и тем, что описываешь врукопашную, зато и
&gt; гарантируешь...

И в этом плане он сильно удобней Fedora`овской anaconda...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6387</attachid>
            <date>2015-09-28 18:39:47 +0300</date>
            <delta_ts>2015-09-28 18:39:47 +0300</delta_ts>
            <desc>рефакторинг server.mk с добавлением distro/server-vbox</desc>
            <filename>m-p_server-vbox.diff</filename>
            <type>text/plain</type>
            <size>1427</size>
            <attacher name="Michael Shigorin">mike</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL2NvbmYuZC9zZXJ2ZXIubWsgYi9jb25mLmQvc2VydmVyLm1rCmluZGV4IGZk
Mjc5NTMuLmQ4Yjc3NmQgMTAwNjQ0Ci0tLSBhL2NvbmYuZC9zZXJ2ZXIubWsKKysrIGIvY29uZi5k
L3NlcnZlci5tawpAQCAtMSwyNCArMSwyOSBAQAogIyBzZXJ2ZXIgZGlzdHJpYnV0aW9ucwogaWZl
cSAoZGlzdHJvLCQoSU1BR0VfQ0xBU1MpKQogCi1kaXN0cm8vLnNlcnZlci1iYXNlOiBkaXN0cm8v
Lmluc3RhbGxlciB1c2Uvc3lzbGludXgvdWkvbWVudSB1c2UvbWVtdGVzdCBcCi0JdXNlL2NsZWFu
dXAveDExLWFsdGVyYXRvcgorZGlzdHJvLy5zZXJ2ZXItYmFyZTogZGlzdHJvLy5pbnN0YWxsZXIg
dXNlL3N5c2xpbnV4L3VpL21lbnUgdXNlL21lbXRlc3QKIAlAJChjYWxsIGFkZCxCQVNFX0xJU1RT
LHNlcnZlci1iYXNlIG9wZW5zc2gpCiAKK2Rpc3Ryby8uc2VydmVyLWJhc2U6IGRpc3Ryby8uc2Vy
dmVyLWJhcmUgdXNlL2NsZWFudXAveDExLWFsdGVyYXRvcjsgQDoKKwogZGlzdHJvL3NlcnZlci1u
YW5vOiBkaXN0cm8vLnNlcnZlci1iYXNlIHVzZS9ib290bG9hZGVyL2xpbG8gK3Bvd2VyIFwKIAl1
c2UvaW5zdGFsbDIvY2xlYW51cC9jcnlwdG8gdXNlL2luc3RhbGwyL2NsZWFudXAvdm5jCiAJQCQo
Y2FsbCBhZGQsQkFTRV9MSVNUUywkKGNhbGwgdGFncyxzZXJ2ZXIgbmV0d29yaykpCiAJQCQoY2Fs
bCBhZGQsQkFTRV9QQUNLQUdFUyxkaGNwY2QgY3BpbykKIAotZGlzdHJvL3NlcnZlci1taW5pOiBk
aXN0cm8vLnNlcnZlci1iYXNlICtuZXQtZXRoIFwKLQl1c2Uvc2VydmVyL21pbmkgdXNlL2tlcm5l
bC9uZXQgdXNlL2VmaSB1c2UvcG93ZXIvYWNwaS9idXR0b24KK21peGluL3NlcnZlci1taW5pOiB1
c2Uvc2VydmVyL21pbmkgK25ldC1ldGggXAorCXVzZS9rZXJuZWwvbmV0IHVzZS9lZmkgdXNlL3Bv
d2VyL2FjcGkvYnV0dG9uCiAJQCQoY2FsbCBzZXQsSU5TVEFMTEVSLGFsdGxpbnV4LXNlcnZlcikK
IAlAJChjYWxsIGFkZCxCQVNFX1BBQ0tBR0VTLG1ha2UtaW5pdHJkLW1kYWRtIG1ha2UtaW5pdHJk
LWx2bSkKIAorZGlzdHJvL3NlcnZlci1taW5pOiBkaXN0cm8vLnNlcnZlci1iYXNlIG1peGluL3Nl
cnZlci1taW5pOyBAOgorCiBkaXN0cm8vc2VydmVyLW92ejogZGlzdHJvL3NlcnZlci1taW5pIHVz
ZS9zZXJ2ZXIvb3Z6IHVzZS9zZXJ2ZXIvZ3JvdXBzL2Jhc2UgXAogCXVzZS9pbnN0YWxsMi9uZXQg
dXNlL2hkdCB1c2UvcmVzY3VlIFwKIAl1c2UvZmlybXdhcmUvc2VydmVyIHVzZS9maXJtd2FyZS9j
cHUgK3dpcmVsZXNzOyBAOgogCiBkaXN0cm8vc2VydmVyLXphYmJpeDogZGlzdHJvL3NlcnZlci1t
aW5pIHVzZS9zZXJ2ZXIvemFiYml4OyBAOgogCitkaXN0cm8vc2VydmVyLXZib3g6IGRpc3Ryby8u
c2VydmVyLWJhcmUgbWl4aW4vc2VydmVyLW1pbmkgdXNlL3NlcnZlci92Ym94OyBAOgorCiBlbmRp
Zgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>