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

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

    <bug>
          <bug_id>32147</bug_id>
          
          <creation_ts>2016-05-27 14:50:24 +0300</creation_ts>
          <short_desc>errors with bash4</short_desc>
          <delta_ts>2017-11-20 19:32:48 +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>gear</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>https://bugzilla.altlinux.org/show_bug.cgi?id=32110#c6</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31399</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan Zakharyaschev">imz</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>alexey.tourbin</cc>
    
    <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>kde</cc>
    
    <cc>ldv</cc>
    
    <cc>legion</cc>
    
    <cc>placeholder</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>157073</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-05-27 14:50:24 +0300</bug_when>
    <thetext>+++ This bug was initially created as a clone of Bug #32110 +++

Comment #6 From alexey.tourbin@gmail.com 2016-05-26 21:32:57

Created an attachment (id=6735) [details]
gear patch for bash4+

This patch might be redundant: only one hunk might be needed.

--- /usr/bin/gear-sh-functions-	2016-02-02 15:03:33.000000000 +0000
+++ /usr/bin/gear-sh-functions	2016-03-08 11:29:46.289625374 +0000
@@ -69,7 +69,7 @@ uninstall_cleanup_handler()
 # 2ns arg is the name of variable that contains the value to be assigned.
 set_var_value()
 {
-	eval &quot;$1=\&quot;\$$2\&quot;&quot;
+	eval &quot;$1=\&quot;\${$2-}\&quot;&quot;
 }
 
 lineno=
@@ -444,6 +444,7 @@ disable_specsubst=
 get_specsubst_from_rules()
 {
 	if [ -z &quot;$disable_specsubst&quot; ]; then
+		local specsubst=
 		get_uniq_directive_from_rules specsubst specsubst
 		if [ -n &quot;$specsubst&quot; ]; then
 			[ -z &quot;$(printf %s &quot;$specsubst&quot; |LANG=C tr -d &apos;[:alnum:]_[:space:]&apos;)&quot; ] ||

Comment #7 From alexey.tourbin@gmail.com 2016-05-26 21:33:24

Имхо, нет смысла дальше поддерживать bash != bash4. Bash &lt; 4 прекратился
обновляться уже почти 10 лет назад (версия 3.2 вышла в октябре 2006 года;
дальше только errata и security fixes).

Я у себя на одной машине с альлинуксом уже второй год обновляю bash
самостоятельно; сейчас это bash43-042. Кроме того, я сделал всего один подпакет
- bash, и симлинк &quot;ln -s bash %buildroot/bin/sh&quot;. Я считаю, что всякие игры в
другие шеллы неинтересны и никому не нужны. Люди рассчитывают на bash4+. (For
the record, я также скептически отношусь к dash.)

Я столкнулся с тем, что в bash &lt; 4 не работают следующие вещи:
- доступ к массиву с конца; вот строчка кода, которую я написал:
w=1280 h=720 orig=(&quot;${orig[-1]}&quot; &quot;${orig[@]}&quot;)
- самое главное, &quot;wait -n&quot;, ожидание завершения первого процесса;
без этого примитива нельзя реализовать сложный пайплайн с параллельной
обработкой каждой стадии; я где-то писал наброс на эту тему, кажется в группе
ВКонтакте &quot;Типичный Линукс&quot;, но сейчас не смог его найти.

К сожалению, если обновить системный bash до bash4+, то часть скриптов в альт
линуксе перестает работать. К счастью, этих скриптов не так много. Разозлил
меня один раз только gear(1), где используется eval. Методом исправления
по-живому &quot;sudo vim&quot; я его немного подправил, и вроде он заработал.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167361</commentid>
    <comment_count>1</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2017-11-20 19:32:48 +0300</bug_when>
    <thetext>gear-2.1.1-alt1 -&gt; sisyphus:

Mon Nov 20 2017 Dmitry V. Levin &lt;ldv@altlinux&gt; 2.1.1-alt1
- Applied bash4 compatibility workaround (closes: #32147).
- Added SOURCE_DATE_EPOCH support (closes: #34203).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>