ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Steam и Bash4
@ 2017-08-31 21:30 Nazarov Denis
  2017-08-31 21:33 ` Paul Wolneykien
  2017-08-31 23:01 ` Alexey Tourbin
  0 siblings, 2 replies; 8+ messages in thread
From: Nazarov Denis @ 2017-08-31 21:30 UTC (permalink / raw)
  To: devel

Привет всем.

Сегодняшнее обновление клиента Steam с серверов Valve принесло неприятность - 
теперь оно требует bash 4, т.к. в скрипте $HOME/.local/share/Steam/steam.sh  
теперь используется инструкция

declare -A

которая в bash 3 не поддерживается. Steam просто виснет на логине. Если 
исправить в начале этого файла интерпретатор с 

#!/usr/bin/env bash

на

#!/usr/bin/env bash4

то всё работает.

Если поправить интерпретатор в /usr/bin/steam, то это не помогает, т.к. он в 
итоге запускает скрипт $HOME/.local/share/Steam/steam.sh (который сам 
обновляется с серверов Valve). 

Что-то я никак не могу придумать как решить эту появившуюся проблему. У кого-
нибудь есть какие-нибудь идеи?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] Steam и Bash4
  2017-08-31 21:30 [devel] Steam и Bash4 Nazarov Denis
@ 2017-08-31 21:33 ` Paul Wolneykien
  2017-08-31 21:57   ` Nazarov Denis
  2017-08-31 23:01 ` Alexey Tourbin
  1 sibling, 1 reply; 8+ messages in thread
From: Paul Wolneykien @ 2017-08-31 21:33 UTC (permalink / raw)
  To: devel

01.09.2017 00:30, Nazarov Denis пишет:

> #!/usr/bin/env bash
> 
> на
> 
> #!/usr/bin/env bash4
> 
> Что-то я никак не могу придумать как решить эту появившуюся проблему. У кого-
> нибудь есть какие-нибудь идеи?

  Если нельзя, по непонятным пока мне причинам, поменять так, как ты
написал выше, то наверняка можно подменить PATH во внешней программе (с
чего там всё это запускается?), чтобы `env bash` равнялось bash4.



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] Steam и Bash4
  2017-08-31 21:33 ` Paul Wolneykien
@ 2017-08-31 21:57   ` Nazarov Denis
  2017-08-31 22:03     ` Paul Wolneykien
  0 siblings, 1 reply; 8+ messages in thread
From: Nazarov Denis @ 2017-08-31 21:57 UTC (permalink / raw)
  To: ALT Linux Team development discussions

В письме от пятница, 1 сентября 2017 г. 0:33:52 MSK пользователь Paul 
Wolneykien написал:
>   Если нельзя, по непонятным пока мне причинам, поменять так, как ты
> написал выше, то наверняка можно подменить PATH во внешней программе (с
> чего там всё это запускается?), чтобы `env bash` равнялось bash4.
Причина проста: файл /usr/bin/steam входит в пакет (и соответсвенно на него 
можно патч сделать), а вот то файл который он запускает в самом конце 
($HOME/.local/share/Steam/steam.sh) динамический (обновляется периодически с 
серверов Valve), соответсвенно его нет в пакете и патчить его невозможно.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] Steam и Bash4
  2017-08-31 21:57   ` Nazarov Denis
@ 2017-08-31 22:03     ` Paul Wolneykien
  2017-08-31 23:18       ` Nazarov Denis
  0 siblings, 1 reply; 8+ messages in thread
From: Paul Wolneykien @ 2017-08-31 22:03 UTC (permalink / raw)
  To: devel

01.09.2017 00:57, Nazarov Denis пишет:
> В письме от пятница, 1 сентября 2017 г. 0:33:52 MSK пользователь Paul 
> Wolneykien написал:
>>   Если нельзя, по непонятным пока мне причинам, поменять так, как ты
>> написал выше, то наверняка можно подменить PATH во внешней программе (с
>> чего там всё это запускается?), чтобы `env bash` равнялось bash4.
> Причина проста: файл /usr/bin/steam входит в пакет (и соответсвенно на него 
> можно патч сделать), а вот то файл который он запускает в самом конце 
> ($HOME/.local/share/Steam/steam.sh) динамический (обновляется периодически с 
> серверов Valve), соответсвенно его нет в пакете и патчить его невозможно.

  Что-то такое я подозревал. ;-)

  А можно в этом /usr/bin/steam написать

    export PATH=/usr/lib/steam/bin:$PATH   # (путь может быть другим),

  и положить  в /usr/lib/steam/bin/ симлинк

    bash -> /bin/bash4

  ? Должно сработать, мне кажется.



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] Steam и Bash4
  2017-08-31 21:30 [devel] Steam и Bash4 Nazarov Denis
  2017-08-31 21:33 ` Paul Wolneykien
@ 2017-08-31 23:01 ` Alexey Tourbin
  2017-08-31 23:24   ` Nazarov Denis
  2017-08-31 23:27   ` Hihin Ruslan
  1 sibling, 2 replies; 8+ messages in thread
From: Alexey Tourbin @ 2017-08-31 23:01 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Sep 01, 2017 at 12:30:31AM +0300, Nazarov Denis wrote:
> Сегодняшнее обновление клиента Steam с серверов Valve принесло неприятность - 
> теперь оно требует bash 4, т.к. в скрипте $HOME/.local/share/Steam/steam.sh  
> теперь используется инструкция
> 
> declare -A
> 
> которая в bash 3 не поддерживается. Steam просто виснет на логине. Если 
> исправить в начале этого файла интерпретатор с 
> 
> #!/usr/bin/env bash
> 
> на
> 
> #!/usr/bin/env bash4
> 
> то всё работает.
> 
> Если поправить интерпретатор в /usr/bin/steam, то это не помогает, т.к. он в 
> итоге запускает скрипт $HOME/.local/share/Steam/steam.sh (который сам 
> обновляется с серверов Valve). 
> 
> Что-то я никак не могу придумать как решить эту появившуюся проблему. У кого-
> нибудь есть какие-нибудь идеи?

Можно пропатчить /bin/bash.

--- bash-3.2.57/shell.c-	2017-09-01 01:11:07 +0300
+++ bash-3.2.57/shell.c	2017-09-01 01:28:39 +0300
@@ -448,6 +448,13 @@ main (argc, argv, env)
   this_command_name = shell_name;	/* for error reporting */
   arg_index = parse_shell_options (argv, arg_index, argc);
 
+  if (arg_index < argc && !want_pending_command /* not -c */ &&
+      strstr(argv[arg_index], "/Steam/steam.sh"))
+    {
+      execv("/bin/bash4", argv);
+      fprintf(stderr, "execv /bin/bash4 failed: %m");
+    }
+
   /* If user supplied the "--login" (or -l) flag, then set and invert
      LOGIN_SHELL. */
   if (make_login_shell)

Хорошо работает!

$ pwd
.../BUILD/bash-3.2.57/build-bash
$ cat ./Steam/steam.sh
echo $BASH_VERSION
$ ./bash -c 'echo $BASH_VERSION ./Steam/steam.sh'
3.2.57(10)-release ./Steam/steam.sh
$ ./bash './Steam/steam.sh'
4.2.50(1)-release


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] Steam и Bash4
  2017-08-31 22:03     ` Paul Wolneykien
@ 2017-08-31 23:18       ` Nazarov Denis
  0 siblings, 0 replies; 8+ messages in thread
From: Nazarov Denis @ 2017-08-31 23:18 UTC (permalink / raw)
  To: ALT Linux Team development discussions

В письме от пятница, 1 сентября 2017 г. 1:03:08 MSK пользователь Paul 
Wolneykien написал:
>   Что-то такое я подозревал. ;-)
> 
>   А можно в этом /usr/bin/steam написать
> 
>     export PATH=/usr/lib/steam/bin:$PATH   # (путь может быть другим),
> 
>   и положить  в /usr/lib/steam/bin/ симлинк
> 
>     bash -> /bin/bash4
> 
>   ? Должно сработать, мне кажется.
Да, так работает, спасибо! ;)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] Steam и Bash4
  2017-08-31 23:01 ` Alexey Tourbin
@ 2017-08-31 23:24   ` Nazarov Denis
  2017-08-31 23:27   ` Hihin Ruslan
  1 sibling, 0 replies; 8+ messages in thread
From: Nazarov Denis @ 2017-08-31 23:24 UTC (permalink / raw)
  To: ALT Linux Team development discussions

В письме от пятница, 1 сентября 2017 г. 2:01:27 MSK пользователь Alexey 
Tourbin написал:

> Можно пропатчить /bin/bash.
> 
> --- bash-3.2.57/shell.c-	2017-09-01 01:11:07 +0300
> +++ bash-3.2.57/shell.c	2017-09-01 01:28:39 +0300
> @@ -448,6 +448,13 @@ main (argc, argv, env)
>    this_command_name = shell_name;	/* for error reporting */
>    arg_index = parse_shell_options (argv, arg_index, argc);
> 
> +  if (arg_index < argc && !want_pending_command /* not -c */ &&
> +      strstr(argv[arg_index], "/Steam/steam.sh"))
> +    {
> +      execv("/bin/bash4", argv);
> +      fprintf(stderr, "execv /bin/bash4 failed: %m");
> +    }
> +
>    /* If user supplied the "--login" (or -l) flag, then set and invert
>       LOGIN_SHELL. */
>    if (make_login_shell)
> 
> Хорошо работает!
> 
> $ pwd
> .../BUILD/bash-3.2.57/build-bash
> $ cat ./Steam/steam.sh
> echo $BASH_VERSION
> $ ./bash -c 'echo $BASH_VERSION ./Steam/steam.sh'
> 3.2.57(10)-release ./Steam/steam.sh
> $ ./bash './Steam/steam.sh'
> 4.2.50(1)-release
Тогда у bash3 будет зависимость на bash4 же... Какой-то изврат получается...

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] Steam и Bash4
  2017-08-31 23:01 ` Alexey Tourbin
  2017-08-31 23:24   ` Nazarov Denis
@ 2017-08-31 23:27   ` Hihin Ruslan
  1 sibling, 0 replies; 8+ messages in thread
From: Hihin Ruslan @ 2017-08-31 23:27 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1757 bytes --]

Здравствуйте Alexey Tourbin
  В сообщении от 1 сентября 2017 Alexey Tourbin написал(a):
> On Fri, Sep 01, 2017 at 12:30:31AM +0300, Nazarov Denis wrote:
> > Сегодняшнее обновление клиента Steam с серверов Valve
> > принесло неприятность - теперь оно требует bash 4, т.к. в
> > скрипте $HOME/.local/share/Steam/steam.sh теперь
> > используется инструкция
> >
> > declare -A
> >
> > которая в bash 3 не поддерживается. Steam просто виснет на
> > логине. Если исправить в начале этого файла интерпретатор с
> >
> > #!/usr/bin/env bash
> >
> > на
> >
> > #!/usr/bin/env bash4
> >
> > то всё работает.
> >
> > Если поправить интерпретатор в /usr/bin/steam, то это не
> > помогает, т.к. он в итоге запускает скрипт
> > $HOME/.local/share/Steam/steam.sh (который сам обновляется с
> > серверов Valve).
> >
> > Что-то я никак не могу придумать как решить эту появившуюся
> > проблему. У кого- нибудь есть какие-нибудь идеи?
>
> Можно пропатчить /bin/bash.
>
...
> Хорошо работает!
>
.....
> $ ./bash './Steam/steam.sh'
> 4.2.50(1)-release

Хочу такой патч !!!  ;-)


-- 
  А ещё говорят так  (fortune): 
 
Having a wonderful wine, wish you were beer. 
________________________________________________________________________
С уважением Хихин Руслан 

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-08-31 23:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-31 21:30 [devel] Steam и Bash4 Nazarov Denis
2017-08-31 21:33 ` Paul Wolneykien
2017-08-31 21:57   ` Nazarov Denis
2017-08-31 22:03     ` Paul Wolneykien
2017-08-31 23:18       ` Nazarov Denis
2017-08-31 23:01 ` Alexey Tourbin
2017-08-31 23:24   ` Nazarov Denis
2017-08-31 23:27   ` Hihin Ruslan

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git