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

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

    <bug>
          <bug_id>36331</bug_id>
          
          <creation_ts>2019-03-21 12:57:58 +0300</creation_ts>
          <short_desc>Обновление samba</short_desc>
          <delta_ts>2019-04-02 23:30:38 +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>samba</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</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>
          <dependson>36429</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="AEN">aen</reporter>
          <assigned_to name="Evgeny Sinelnikov">sin</assigned_to>
          <cc>ab</cc>
    
    <cc>cas</cc>
    
    <cc>ldv</cc>
    
    <cc>rider</cc>
    
    <cc>sin</cc>
    
    <cc>slev</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179699</commentid>
    <comment_count>0</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2019-03-21 12:57:58 +0300</bug_when>
    <thetext>Прошу обновить до версии 4.10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179702</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-21 13:08:27 +0300</bug_when>
    <thetext>Вышла на днях. Сборка в процессе подготовки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180050</commentid>
    <comment_count>2</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-26 21:56:09 +0300</bug_when>
    <thetext>Таска посыпалась, я уже разобрался:
#225325 FAILING #8 [locked] [test-only] sisyphus libtdb.git=1.3.18-alt1 libtalloc.git=2.1.16-alt1 libtevent.git=0.9.39-alt1 cmocka.git=1.1.3-alt1 libldb.git=1.5.4-alt1 samba.git=4.10.0-alt1 bind.git=9.11.6-alt2 sssd.git=2.1.0-alt1 openchange.git=2.4-alt37.zentyal23 freeipa.git=4.7.1-alt7

Мы долго тянули openchange, более он не совместим с samba-4.10 и выше.
Убираем его из репозитория.

С freeipa тоже всё не обошлось простой пересборкой:
https://bugzilla.redhat.com/show_bug.cgi?id=1678670
https://bugzilla.redhat.com/show_bug.cgi?id=1672231 (https://bugzilla.redhat.com/show_bug.cgi?id=1673312)

Добавил патчи, отправил снова.

PS: В принципе, можно было бы и freeipa обновить до 4.7.2 (я сначала помёрджил, но решил не мешать всё в одну кучу).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180097</commentid>
    <comment_count>3</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-27 16:25:01 +0300</bug_when>
    <thetext>Пересборка новой samba с текущей freeipa не проходит из-за того, что freeipa использует внутренние функции libsmbconf.so, которые более недоступны:
$ girar-show 225325
...
        x86_64: NEW bad_elf_symbols detected:
freeipa-server-trust-ad-4.7.1-alt7.x86_64.rpm   /usr/lib64/samba/pdb/ipasam.so  U       sid_string_dbg
freeipa-server-trust-ad-4.7.1-alt7.x86_64.rpm   /usr/lib64/samba/pdb/ipasam.so  U       sid_string_talloc
        aarch64: NEW bad_elf_symbols detected:
freeipa-server-trust-ad-4.7.1-alt7.aarch64.rpm  /usr/lib64/samba/pdb/ipasam.so  U       sid_string_dbg
freeipa-server-trust-ad-4.7.1-alt7.aarch64.rpm  /usr/lib64/samba/pdb/ipasam.so  U       sid_string_talloc
2019-Mar-26 22:32:38 :: [x86_64 i586 aarch64] ELF symbols check FAILED
2019-Mar-26 22:32:38 :: task #225325 for sisyphus FAILED

Об этом явно указано в соответствующем файле freeipa/daemons/ipa-sam/ipa_sam.c:
...
char *sid_string_talloc(TALLOC_CTX *mem_ctx, const struct dom_sid *sid); /* available in libsmbconf.so */
char *sid_string_dbg(const struct dom_sid *sid); /* available in libsmbconf.so */
...

В samba-4.10.0 функции sid_string_talloc и sid_string_dbg обобщены и заменены на  функцию dom_sid_str_buf:
@@ -423,12 +425,12 @@ static NTSTATUS log_nt_token(struct security_token *token)
        for (i=1; i&lt;token-&gt;num_sids; i++) {
                group_sidstr = talloc_asprintf(
                        frame, &quot;%s %s&quot;, group_sidstr,
-                       sid_string_talloc(frame, &amp;token-&gt;sids[i]));
+                       dom_sid_str_buf(&amp;token-&gt;sids[i], &amp;buf));
        }
 
        command = talloc_string_sub(
                frame, lp_log_nt_token_command(frame),
-               &quot;%s&quot;, sid_string_talloc(frame, &amp;token-&gt;sids[0]));
+               &quot;%s&quot;, dom_sid_str_buf(&amp;token-&gt;sids[0], &amp;buf));
        command = talloc_string_sub(frame, command, &quot;%t&quot;, group_sidstr);
 
        if (command == NULL) {
@@ -605,9 +607,10 @@ NTSTATUS create_local_token(TALLOC_CTX *mem_ctx,
 
                if (ids[i].type != ID_TYPE_GID &amp;&amp;
                    ids[i].type != ID_TYPE_BOTH) {
+                       struct dom_sid_buf buf;
                        DEBUG(10, (&quot;Could not convert SID %s to gid, &quot;
                                   &quot;ignoring it\n&quot;,
-                                  sid_string_dbg(&amp;t-&gt;sids[i])));
+                                  dom_sid_str_buf(&amp;t-&gt;sids[i], &amp;buf)));
                        continue;
                }
                if (!add_gid_to_array_unique(session_info-&gt;unix_token,

При этом новая функция находится теперь в библиотеке /usr/lib64/samba/libsamba-security-samba4.so:

@@ -488,3 +505,13 @@ char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
        talloc_set_name_const(result, result);
        return result;
 }
+
+char *dom_sid_str_buf(const struct dom_sid *sid, struct dom_sid_buf *dst)
+{
+       int ret;
+       ret = dom_sid_string_buf(sid, dst-&gt;buf, sizeof(dst-&gt;buf));
+       if ((ret &lt; 0) || (ret &gt;= sizeof(dst-&gt;buf))) {
+               strlcpy(dst-&gt;buf, &quot;(INVALID SID)&quot;, sizeof(dst-&gt;buf));
+       }
+       return dst-&gt;buf;
+}
diff --git a/libcli/security/dom_sid.h b/libcli/security/dom_sid.h
index 491fc0699f4..abaf305f96a 100644
--- a/libcli/security/dom_sid.h
+++ b/libcli/security/dom_sid.h
@@ -100,9 +100,10 @@ bool dom_sid_in_domain(const struct dom_sid *domain_sid,
 bool dom_sid_is_valid_account_domain(const struct dom_sid *sid);
 
 #define DOM_SID_STR_BUFLEN (15*11+25)
-int dom_sid_string_buf(const struct dom_sid *sid, char *buf, int buflen);
 char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid);
 
+struct dom_sid_buf { char buf[DOM_SID_STR_BUFLEN]; };
+char *dom_sid_str_buf(const struct dom_sid *sid, struct dom_sid_buf *dst);
 
 const char *sid_type_lookup(uint32_t sid_type);
 const struct security_token *get_system_token(void);

И более недоступна.

В общем, пока непонятно как это собирали в федоре. Планирую бекпортировать изменения из новой samba во freeipa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180098</commentid>
    <comment_count>4</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-27 16:28:18 +0300</bug_when>
    <thetext>Хотя у меня есть одно подозрение. Возможно в федоре не проверяется, как у нас? бинарная консистентность и у них просто лежит не рабочий freeipa-server-trust-ad. Сборка-то проходит успешно. Не отрабатывают наши тесты - NEW bad_elf_symbols detected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180099</commentid>
    <comment_count>5</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2019-03-27 16:35:20 +0300</bug_when>
    <thetext>ab@ может знать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180104</commentid>
    <comment_count>6</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-27 22:05:21 +0300</bug_when>
    <thetext>Подготовил патч, повесил багу:
https://pagure.io/freeipa/issue/7893</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180107</commentid>
    <comment_count>7</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-27 23:00:23 +0300</bug_when>
    <thetext>Отправил запрос на git pull:
https://github.com/freeipa/freeipa/pull/2943</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180108</commentid>
    <comment_count>8</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2019-03-27 23:09:09 +0300</bug_when>
    <thetext>Что скажет мейнтейнер freeipa?0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180113</commentid>
    <comment_count>9</comment_count>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2019-03-28 09:43:42 +0300</bug_when>
    <thetext>1) В апстриме высказались уже насчет патча (предложен более лучший вариант)
2) апстримные CI тесты не проходят:
https://travis-ci.org/freeipa/freeipa/jobs/512283738

&quot;&quot;&quot;
ipa_sam.c: In function ‘_domain_sid_string_buf’:
ipa_sam.c:297:10: error: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Werror=implicit-function-declaration]
   return strlcpy(buf, &quot;(NULL SID)&quot;, buflen);
          ^~~~~~~
          strncpy
cc1: some warnings being treated as errors
&quot;&quot;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180125</commentid>
    <comment_count>10</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-28 12:52:08 +0300</bug_when>
    <thetext>(In reply to comment #9)
&gt; 1) В апстриме высказались уже насчет патча (предложен более лучший вариант)
Более лучший, не исключает рабочего. Тем более, что ab@, пока не предложил более лучший вариант, изъявлял готовность принять текущий. Кроме того, я сделал именно так, как он сам советовал в личной переписке.

В общем, развивать в апстриме более лучший вариант мы будем и так. Сейчас нас держит, что нет рабочего.

&gt; 2) апстримные CI тесты не проходят:
&gt; https://travis-ci.org/freeipa/freeipa/jobs/512283738

На этот счёт поправку внёс - тесты апстрима перезапущены.

А между тем у нас появилась рабочая сборка:
#225325 TESTED #11 [test-only] sisyphus libtdb.git=1.3.18-alt1 libtalloc.git=2.1.16-alt1 libtevent.git=0.9.39-alt1 cmocka.git=1.1.3-alt1 libldb.git=1.5.4-alt1 samba.git=4.10.0-alt1 sssd.git=2.1.0-alt1 del=openchange freeipa.git=4.7.1-alt7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180142</commentid>
    <comment_count>11</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-29 00:29:02 +0300</bug_when>
    <thetext>Предлагаю отправить текущий вариант в сизиф, потому более красивый вариант можно дожидаться ещё долго, я не уверен, что в этом есть смысл. Патч я поправил, как просил апстрим.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180143</commentid>
    <comment_count>12</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-03-29 00:31:31 +0300</bug_when>
    <thetext>(In reply to comment #11)
&gt; Предлагаю отправить текущий вариант в сизиф, потому более красивый вариант
&gt; можно дожидаться ещё долго, я не уверен, что в этом есть смысл. Патч я
&gt; поправил, как просил апстрим.

Как апстрим просил изначально, а не в лучшем варианте, потому что там управление памятью затрагивается и возможны утечки. Отладить это быстро просто так я уже не смогу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180144</commentid>
    <comment_count>13</comment_count>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2019-03-29 09:24:44 +0300</bug_when>
    <thetext>(В ответ на комментарий №12)
&gt; (In reply to comment #11)
&gt; &gt; Предлагаю отправить текущий вариант в сизиф, потому более красивый вариант
&gt; &gt; можно дожидаться ещё долго, я не уверен, что в этом есть смысл. Патч я
&gt; &gt; поправил, как просил апстрим.
&gt; 
&gt; Как апстрим просил изначально, а не в лучшем варианте, потому что там
&gt; управление памятью затрагивается и возможны утечки. Отладить это быстро просто
&gt; так я уже не смогу.

Да, поддерживаю предложение. Главное (для меня) - информировать апстрим, они в любом случае сделают лучше.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180151</commentid>
    <comment_count>14</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2019-03-29 12:19:08 +0300</bug_when>
    <thetext>(В ответ на комментарий №13)
&gt; (В ответ на комментарий №12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Предлагаю отправить текущий вариант в сизиф, потому более красивый вариант
&gt; &gt; &gt; можно дожидаться ещё долго, я не уверен, что в этом есть смысл. Патч я
&gt; &gt; &gt; поправил, как просил апстрим.
&gt; &gt; 
&gt; &gt; Как апстрим просил изначально, а не в лучшем варианте, потому что там
&gt; &gt; управление памятью затрагивается и возможны утечки. Отладить это быстро просто
&gt; &gt; так я уже не смогу.
&gt; 
&gt; Да, поддерживаю предложение. 
Ok. Тогда отправляем, но отслеживания изменения в апстрим регулярно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180198</commentid>
    <comment_count>15</comment_count>
    <who name="Alexander Bokovoy">ab</who>
    <bug_when>2019-03-30 14:24:52 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Хотя у меня есть одно подозрение. Возможно в федоре не проверяется, как у нас?
&gt; бинарная консистентность и у них просто лежит не рабочий
&gt; freeipa-server-trust-ad. Сборка-то проходит успешно. Не отрабатывают наши тесты
&gt; - NEW bad_elf_symbols detected.

Нет, дело не в этом. В Федоре еще не было 4.10 до вчерашнего дня.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180199</commentid>
    <comment_count>16</comment_count>
    <who name="Alexander Bokovoy">ab</who>
    <bug_when>2019-03-30 14:32:01 +0300</bug_when>
    <thetext>Разница появилась между RC3 и релизом.
https://taskotron.fedoraproject.org/artifacts/all/94d16f02-4b42-11e9-b891-525400fc9f92/tests.yml/samba-4.10.0-5.fc30.log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180322</commentid>
    <comment_count>17</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2019-04-02 23:00:01 +0300</bug_when>
    <thetext>Я перенёс исправление из апстрима в новую сборку freeipa:
#226422 TESTED #1 [test-only] sisyphus freeipa.git=4.7.2-alt1

Я готов её отправить в сизиф, но поскольку не тестирую пока этот пакет на стендах, предлагаю к рассмотрению.

Поскольку новая samba уже в сизифе, эту задачу считаю разрешённой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180323</commentid>
    <comment_count>18</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2019-04-02 23:13:43 +0300</bug_when>
    <thetext>Спасибо!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180324</commentid>
    <comment_count>19</comment_count>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2019-04-02 23:30:38 +0300</bug_when>
    <thetext>Отдельное спасибо Александру за оперативное исправление в апстриме!</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>