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

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

    <bug>
          <bug_id>48890</bug_id>
          
          <creation_ts>2023-12-21 08:36:16 +0300</creation_ts>
          <short_desc>Отсутствует встроенная команда time</short_desc>
          <delta_ts>2023-12-23 10:25:20 +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>bash5</component>
          <version>unstable</version>
          <rep_platform>x86_64</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>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>xdsl</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>aen</cc>
    
    <cc>amakeenk</cc>
    
    <cc>asy</cc>
    
    <cc>glebfm</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>vt</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>239368</commentid>
    <comment_count>0</comment_count>
    <who name="">xdsl</who>
    <bug_when>2023-12-21 08:36:16 +0300</bug_when>
    <thetext>Команда time описана в разделе 3.2.3 Pipelines https://www.gnu.org/software/bash/manual/bash.html, описание доступно также через help time.

Команда time отсутствует в bash4, проверено на 9 и 10 платформах.

Сборка из bash4-4.4.23-alt1.src.rpm, без патчей и спеков, дает bash с командой time. Сборка через rpm --rebuil bash4-4.4.23-alt1.src.rpm дает bash без команды time.

Возможное объяснение в спеке: Tue Jul 8 1999 Thierry Vignaud &lt;tvignaud@mandrakesoft.com&gt; : &quot;disable built-in time command (incompatible with standard POSIX time command)&quot;. 

24 года прошло, причина все еще актуальна? Или причина в чем-то другом?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239372</commentid>
    <comment_count>1</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2023-12-21 09:14:15 +0300</bug_when>
    <thetext>Команда time есть в отдельном пакете с аналогичным названием:

$ time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
       [--portability] [--format=format] [--output=file] [--version]
       [--quiet] [--help] command [arg...]

$ rpm -qf $(which time)
time-1.7-alt4.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239398</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2023-12-21 16:27:48 +0300</bug_when>
    <thetext>(In reply to xdsl from comment #0)

&gt; Возможное объяснение в спеке: Tue Jul 8 1999 Thierry Vignaud
&gt; &lt;tvignaud@mandrakesoft.com&gt; : &quot;disable built-in time command (incompatible
&gt; with standard POSIX time command)&quot;. 
&gt; 
&gt; 24 года прошло, причина все еще актуальна? Или причина в чем-то другом?

А этого, разве, мало? Или time в bash стал совместим с POSIX? На что ориентируются скрипты, использующие time, и как они себя поведут в bash, котрый пересборан с встроенной time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239411</commentid>
    <comment_count>3</comment_count>
    <who name="">xdsl</who>
    <bug_when>2023-12-22 08:08:35 +0300</bug_when>
    <thetext>Под рукой были Ubuntu, Debian, Mandrake, Astra - все собирают bash с командой time.
Утилита меряет время до сотых секунды, команда - до тысячных. Может в 99 году это было несущественно, но сейчас - актуально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239428</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2023-12-22 14:12:40 +0300</bug_when>
    <thetext>Пусть мантейнер пакета решит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239429</commentid>
    <comment_count>5</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-12-22 14:19:24 +0300</bug_when>
    <thetext>Тогда уж сразу на bash5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239431</commentid>
    <comment_count>6</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2023-12-22 15:55:22 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #5)

&gt; Тогда уж сразу на bash5

А в p11 что по умолчанию предполагается?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239432</commentid>
    <comment_count>7</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2023-12-22 16:05:20 +0300</bug_when>
    <thetext>(Ответ для Sergey Y. Afonin на комментарий #6)
&gt; (In reply to Anton Farygin from comment #5)
&gt; 
&gt; &gt; Тогда уж сразу на bash5
&gt; 
&gt; А в p11 что по умолчанию предполагается?

https://packages.altlinux.org/ru/sisyphus/srpms/bash-defaults/

p11 будет бранчеваться из нынешнего Sisyphus</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239448</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2023-12-23 01:57:06 +0300</bug_when>
    <thetext>(In reply to xdsl from comment #3)
&gt; Под рукой были Ubuntu, Debian, Mandrake, Astra - все собирают bash с
&gt; командой time.
&gt; Утилита меряет время до сотых секунды, команда - до тысячных. Может в 99
&gt; году это было несущественно, но сейчас - актуально.

time ничего не меряет, все измерения производит ядро, time лишь выводит результат измерений.  Формат вывода time(1), в том числе точность, настраивается с помощью параметра --format.  Появление bash builtin, перекрывающего time(1), создало бы проблемы пользователям bash, которые используют возможности time(1), отсутствующие в bash builtin.  Не следует ломать обратную совместимсть без веских оснований.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239451</commentid>
    <comment_count>9</comment_count>
    <who name="">xdsl</who>
    <bug_when>2023-12-23 09:06:26 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #8)
&gt; (In reply to xdsl from comment #3)
&gt; &gt; Под рукой были Ubuntu, Debian, Mandrake, Astra - все собирают bash с
&gt; &gt; командой time.
&gt; &gt; Утилита меряет время до сотых секунды, команда - до тысячных. Может в 99
&gt; &gt; году это было несущественно, но сейчас - актуально.
&gt; 
&gt; time ничего не меряет, все измерения производит ядро, time лишь выводит
&gt; результат измерений.  Формат вывода time(1), в том числе точность,
&gt; настраивается с помощью параметра --format.  Появление bash builtin,
&gt; перекрывающего time(1), создало бы проблемы пользователям bash, которые
&gt; используют возможности time(1), отсутствующие в bash builtin.  Не следует
&gt; ломать обратную совместимсть без веских оснований.

В time.c из https://git.altlinux.org/tasks/278099/build/4500/x86_64/srpm/time-1.7-alt4.src.rpm недвусмысленно сказано:
...
369         case &apos;E&apos;:       /* Elapsed real (wall clock) time.  */
370           if (resp-&gt;elapsed.tv_sec &gt;= 3600) /* One hour -&gt; h:m:s.  */
371             fprintf (fp, &quot;%ld:%02ld:%02ld&quot;,
372              resp-&gt;elapsed.tv_sec / 3600,
373              (resp-&gt;elapsed.tv_sec % 3600) / 60,
374              resp-&gt;elapsed.tv_sec % 60);
375           else
376             fprintf (fp, &quot;%ld:%02ld.%02ld&quot;, /* -&gt; m:s.  */
377              resp-&gt;elapsed.tv_sec / 60,
378              resp-&gt;elapsed.tv_sec % 60,
379              resp-&gt;elapsed.tv_usec / 10000);
380           break;
...
Каким образом можно получить тысячные доли секунды таким кодом? Какой --format поможет?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>