cucumber-sp / yandex-music-linux

Linux client of Yandex Music
Other
222 stars 5 forks source link

repack.sh: 95: Syntax error: "(" unexpected (expecting "then") #44

Closed va-proger closed 4 months ago

va-proger commented 4 months ago

Текущая версия bea5319 При попытки сборки

bash repack.sh Yandex_Music_x64_5.0.10.exe

Выводит ошибку и прекращает сборку

repack.sh: 72: read: Illegal option -d
SecretKey replaced
Fixing Title
repack.sh: 80: read: Illegal option -d
Title Fixed
repack.sh: 95: Syntax error: "(" unexpected (expecting "then")

ubuntu 23.10

cucumber-sp commented 4 months ago

а если запускать через sh?

va-proger commented 4 months ago

вот полный вывод команды sh build_deb.sh Yandex_Music_x64_5.0.10.exe

Downloading Yandex_Music_x64_5.0.10.exe
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 69.3M  100 69.3M    0     0  31.2M      0  0:00:02  0:00:02 --:--:-- 31.2M
Checking sha256
/tmp/tmp.VkeOlT8uvV/Yandex_Music_x64_5.0.10.exe: ЦЕЛ
Repaking Yandex_Music_x64_5.0.10.exe
repack.sh: 17: Bad substitution

7-Zip 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
 64-bit locale=ru_RU.UTF-8 Threads:16 OPEN_MAX:1024

Scanning the drive for archives:
1 file, 72716536 bytes (70 MiB)

Extracting archive: /tmp/tmp.VkeOlT8uvV/Yandex_Music_x64_5.0.10.exe
--       
Path = /tmp/tmp.VkeOlT8uvV/Yandex_Music_x64_5.0.10.exe
Type = PE
Physical Size = 72716536
CPU = x86
Characteristics = Executable 32-bit NoRelocs NoLineNums NoLocalSyms
Created = 2018-12-16 02:26:14
Headers Size = 1024
Checksum = 72722671
Image Size = 2068480
Section Alignment = 4096
File Alignment = 512
Code Size = 26624
Initialized Data Size = 473088
Uninitialized Data Size = 16384
Linker Version = 6.0
OS Version = 4.0
Image Version = 6.0
Subsystem Version = 4.0
Subsystem = Windows GUI
DLL Characteristics = Relocated NX-Compatible NoSEH TerminalServerAware
Stack Reserve = 1048576
Stack Commit = 4096
Heap Reserve = 1048576
Heap Commit = 4096
Image Base = 4194304
Comment = 
{
FileVersion: 5.0.10.0
FileVersion: 5.0.10.release-beta-10/b1ebaba6
ProductVersion: 5.0.10.0
ProductVersion: 5.0.10
CompanyName: Яндекс Музыка
FileDescription: Персональные рекомендации, подборки на любой случай и музыкальные новинки
LegalCopyright: Яндекс Музыка
LegalTrademarks: Яндекс Музыка
ProductName: Яндекс Музыка
}
----
Path = [0]
Size = 72306272
Packed Size = 72306272
Virtual Size = 72306272
Offset = 399872
--
Path = [0]
Type = Nsis
Physical Size = 72306267
Tail Size = 5
Method = Deflate
Solid = -
Headers Size = 51792
Embedded Stub Size = 0
SubType = NSIS-3 Unicode

Everything is Ok

Files: 8
Size:       72924614
Compressed: 72716536

7-Zip 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
 64-bit locale=ru_RU.UTF-8 Threads:16 OPEN_MAX:1024

Scanning the drive for archives:
1 file, 71884166 bytes (69 MiB)

Extracting archive: /tmp/tmp.KFfUYDV5SV/app-64.7z
--
Path = /tmp/tmp.KFfUYDV5SV/app-64.7z
Type = 7z
Physical Size = 71884166
Headers Size = 1166
Method = LZMA2:26 LZMA:20 BCJ2
Solid = +
Blocks = 2

Everything is Ok                       

Folders: 2
Files: 74
Size:       281779432
Compressed: 71884166
Fixing SecretKey
repack.sh: 72: read: Illegal option -d
SecretKey replaced
Fixing Title
repack.sh: 80: read: Illegal option -d
Title Fixed
repack.sh: 95: Syntax error: "(" unexpected (expecting "then")

а если запускать через sh?

ein-shved commented 4 months ago

Запустите с bash -x repack.sh

andrey-onischenko commented 4 months ago

read: Illegal option -d

выглядит как-будто запускается из под sh а не bash. Какие-то проблемы с синтаксисом. Проверьте что у вас установле bash в /bin/bash и попробуйте запустить как исполняемый файл

andrey-onischenko commented 4 months ago

Запустите с bash -x repack.sh

не, проблема в интерпретаторе

ein-shved commented 4 months ago

Запустите с bash -x repack.sh

не, проблема в интерпретаторе

Возможно, и в версии bash. Какая версия используется?

va-proger commented 4 months ago

GNU bash, версия 5.2.21(1)-release (x86_64-pc-linux-gnu)

Запустите с bash -x repack.sh

не, проблема в интерпретаторе

Возможно, и в версии bash. Какая версия используется?

va-proger commented 4 months ago

Запустите с bash -x repack.sh

не, проблема в интерпретаторе

Возможно, и в версии bash. Какая версия используется? Ubuntu 22.04. На версии GNU bash, версия 5.1.16(1)-release (x86_64-pc-linux-gnu) Такая же ошибка

repack.sh: 95: Syntax error: "(" unexpected (expecting "then")
va-proger commented 4 months ago

При этом данная https://github.com/cucumber-sp/yandex-music-linux/commit/06880d7338ce6c6d3cfd0e76619c0be49a1dab5a прекрасно собрала и запустила image

ein-shved commented 4 months ago

Проблема где-то в моем коде. Через часок до компа доберусь - разберусь.

ein-shved commented 4 months ago

Очень странно, но как на версии GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu), так и на версии GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu) я получасю совсем другую ошибку

Applying patch '/home/shved/Projects/nix/yandex-music-linux/patches/0003-Create-app-tray-icon.patch'
patching file main/lib/createTray.js
patching file main/index.js
Hunk #1 FAILED at 23.
Hunk #2 succeeded at 29 with fuzz 1 (offset -1 lines).
1 out of 2 hunks FAILED -- saving rejects to file main/index.js.rej

буду пытаться воспроизвести вашу...

ein-shved commented 4 months ago

@va-proger можете попробовать запустить с таким патчем:

diff --git a/repack.sh b/repack.sh
index 91252cc..8157d03 100755
--- a/repack.sh
+++ b/repack.sh
@@ -86,13 +86,13 @@ echo "Title Fixed"
 # applying patches
 apply_patch()
 {
-    local patchfile patchname
+    local patchfile patchname re

     patchfile="$(realpath "$1")"
     patchname="$(basename "$patchfile")"
     patchname="${patchname,,}"
-
-    if [[ $patchname =~ [[:digit:]]+\-optional\-(.+).patch ]]; then
+    re='[[:digit:]]+\-optional\-(.+).patch ]]'
+    if [[ $patchname =~ $re ]]; then
         patchname="${BASH_REMATCH[1]}"
         patchname="${patchname//[- ]/_}"
         if eval [ \"\$"patch_$patchname"\" != 1 ]; then
ein-shved commented 4 months ago
Hunk #1 FAILED at 23.

Ааа это у меня старая версия YM была...

va-proger commented 4 months ago

@va-proger можете попробовать запустить с таким патчем:

diff --git a/repack.sh b/repack.sh
index 91252cc..8157d03 100755
--- a/repack.sh
+++ b/repack.sh
@@ -86,13 +86,13 @@ echo "Title Fixed"
 # applying patches
 apply_patch()
 {
-    local patchfile patchname
+    local patchfile patchname re

     patchfile="$(realpath "$1")"
     patchname="$(basename "$patchfile")"
     patchname="${patchname,,}"
-
-    if [[ $patchname =~ [[:digit:]]+\-optional\-(.+).patch ]]; then
+    re='[[:digit:]]+\-optional\-(.+).patch ]]'
+    if [[ $patchname =~ $re ]]; then
         patchname="${BASH_REMATCH[1]}"
         patchname="${patchname//[- ]/_}"
         if eval [ \"\$"patch_$patchname"\" != 1 ]; then

sh build_deb.sh x64 Yandex_Music_x64_5.0.10.exe 
Downloading Yandex_Music_x64_5.0.10.exe
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 69.3M  100 69.3M    0     0  27.5M      0  0:00:02  0:00:02 --:--:-- 27.5M
Checking sha256
/tmp/tmp.7PekMdP5JE/Yandex_Music_x64_5.0.10.exe: ЦЕЛ
Repaking Yandex_Music_x64_5.0.10.exe
repack.sh: 17: Bad substitution

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,12 CPUs AMD Ryzen 5 5600H with Radeon Graphics (A50F00),ASM,AES-NI)

Scanning the drive for archives: 1 file, 72716536 bytes (70 MiB)

Extracting archive: /tmp/tmp.7PekMdP5JE/Yandex_Music_x64_5.0.10.exe --
Path = /tmp/tmp.7PekMdP5JE/Yandex_Music_x64_5.0.10.exe Type = PE Physical Size = 72716536 CPU = x86 Characteristics = Executable 32-bit NoRelocs NoLineNums NoLocalSyms Created = 2018-12-16 02:26:14 Headers Size = 1024 Checksum = 72722671 Image Size = 2068480 Section Alignment = 4096 File Alignment = 512 Code Size = 26624 Initialized Data Size = 473088 Uninitialized Data Size = 16384 Linker Version = 6.0 OS Version = 4.0 Image Version = 6.0 Subsystem Version = 4.0 Subsystem = Windows GUI DLL Characteristics = Relocated NX-Compatible NoSEH TerminalServerAware Stack Reserve = 1048576 Stack Commit = 4096 Heap Reserve = 1048576 Heap Commit = 4096 Image Base = 4194304 Comment = FileVersion: 5.0.10.0 FileVersion: 5.0.10.release-beta-10/b1ebaba6 ProductVersion: 5.0.10.0 ProductVersion: 5.0.10 CompanyName: Яндекс Музыка FileDescription: Персональные рекомендации, подборки на любой случай и музыкальные новинки LegalCopyright: Яндекс Музыка LegalTrademarks: Яндекс Музыка ProductName: Яндекс Музыка

Path = [0] Size = 72306272 Packed Size = 72306272 Virtual Size = 72306272 Offset = 399872

Path = [0] Type = Nsis Physical Size = 72306267 Tail Size = 5 Method = Deflate Solid = - Headers Size = 51792 Embedded Stub Size = 0 SubType = NSIS-3 Unicode BadCmd=11

Everything is Ok

Files: 8 Size: 72924614 Compressed: 72716536

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,12 CPUs AMD Ryzen 5 5600H with Radeon Graphics (A50F00),ASM,AES-NI)

Scanning the drive for archives: 1 file, 71884166 bytes (69 MiB)

Extracting archive: /tmp/tmp.ccMjUYAl72/app-64.7z

Path = /tmp/tmp.ccMjUYAl72/app-64.7z Type = 7z Physical Size = 71884166 Headers Size = 1166 Method = LZMA2:26 LZMA:20 BCJ2 Solid = + Blocks = 2

Everything is Ok

Folders: 2 Files: 74 Size: 281779432 Compressed: 71884166 Fixing SecretKey repack.sh: 72: read: Illegal option -d SecretKey replaced Fixing Title repack.sh: 80: read: Illegal option -d Title Fixed repack.sh: 99: Bad substitution


```bash
bash build_deb.sh x64 Yandex_Music_x64_5.0.10.exe 
Downloading Yandex_Music_x64_5.0.10.exe
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 69.3M  100 69.3M    0     0  25.1M      0  0:00:02  0:00:02 --:--:-- 25.1M
Checking sha256
/tmp/tmp.pbtpG6rR9g/Yandex_Music_x64_5.0.10.exe: ЦЕЛ
Repaking Yandex_Music_x64_5.0.10.exe
repack.sh: 17: Bad substitution

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,12 CPUs AMD Ryzen 5 5600H with Radeon Graphics          (A50F00),ASM,AES-NI)

Scanning the drive for archives:
1 file, 72716536 bytes (70 MiB)

Extracting archive: /tmp/tmp.pbtpG6rR9g/Yandex_Music_x64_5.0.10.exe
--       
Path = /tmp/tmp.pbtpG6rR9g/Yandex_Music_x64_5.0.10.exe
Type = PE
Physical Size = 72716536
CPU = x86
Characteristics = Executable 32-bit NoRelocs NoLineNums NoLocalSyms
Created = 2018-12-16 02:26:14
Headers Size = 1024
Checksum = 72722671
Image Size = 2068480
Section Alignment = 4096
File Alignment = 512
Code Size = 26624
Initialized Data Size = 473088
Uninitialized Data Size = 16384
Linker Version = 6.0
OS Version = 4.0
Image Version = 6.0
Subsystem Version = 4.0
Subsystem = Windows GUI
DLL Characteristics = Relocated NX-Compatible NoSEH TerminalServerAware
Stack Reserve = 1048576
Stack Commit = 4096
Heap Reserve = 1048576
Heap Commit = 4096
Image Base = 4194304
Comment = FileVersion: 5.0.10.0
FileVersion: 5.0.10.release-beta-10/b1ebaba6
ProductVersion: 5.0.10.0
ProductVersion: 5.0.10
CompanyName: Яндекс Музыка
FileDescription: Персональные рекомендации, подборки на любой случай и музыкальные новинки
LegalCopyright: Яндекс Музыка
LegalTrademarks: Яндекс Музыка
ProductName: Яндекс Музыка
----
Path = [0]
Size = 72306272
Packed Size = 72306272
Virtual Size = 72306272
Offset = 399872
--
Path = [0]
Type = Nsis
Physical Size = 72306267
Tail Size = 5
Method = Deflate
Solid = -
Headers Size = 51792
Embedded Stub Size = 0
SubType = NSIS-3 Unicode BadCmd=11

Everything is Ok

Files: 8
Size:       72924614
Compressed: 72716536

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,12 CPUs AMD Ryzen 5 5600H with Radeon Graphics          (A50F00),ASM,AES-NI)

Scanning the drive for archives:
1 file, 71884166 bytes (69 MiB)

Extracting archive: /tmp/tmp.9Lv51PBX5l/app-64.7z
--
Path = /tmp/tmp.9Lv51PBX5l/app-64.7z
Type = 7z
Physical Size = 71884166
Headers Size = 1166
Method = LZMA2:26 LZMA:20 BCJ2
Solid = +
Blocks = 2

Everything is Ok                       

Folders: 2
Files: 74
Size:       281779432
Compressed: 71884166
Fixing SecretKey
repack.sh: 72: read: Illegal option -d
SecretKey replaced
Fixing Title
repack.sh: 80: read: Illegal option -d
Title Fixed
va-proger commented 4 months ago

Я собрал старой сборкой, работает и гуд. Новой не собирает. Может кончено у меня проблема, но я как раз переустанавливал ubuntu, и так получилось что пытался собирать на двух версиях стабильной 22.04 и 23.10, результат один и тот же

repack.sh: 72: read: Illegal option -d
SecretKey replaced
Fixing Title
repack.sh: 80: read: Illegal option -d
Title Fixed
repack.sh: 95: Syntax error: "(" unexpected (expecting "then")

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

cucumber-sp commented 4 months ago

Возможно как то я не правильно собираю🙂

да нет, очень странно выглядит, как будто бы интерпретатор другой и не поддерживает часть команд которые мы используем. Непонятно в чем проблема, но я бы на вашем месте просто скачал бинарник из релиза или yandexmusic.asar уже перепакованный и его уже крутил просто вместо самостоятельной перепаковки.

ein-shved commented 4 months ago

@va-proger, можете, пожалуйста запустить точно вот такой командой:

bash -x ./repack.sh Yandex_Music_x64_5.0.10.exe

и скинуть полный лог.

cucumber-sp commented 4 months ago

ого, автоматически закрывает)

cucumber-sp commented 4 months ago

@va-proger закрываю пока не будет предоставлено больше информации