* [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 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 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 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